Intervju
Marko Horvat: Pravila za kreiranje AI prompta
Drastično bolji rezultati mogu se dobiti korištenjem Markdown, JSON ili XML oznaka za odvajanje elemenata u ulaznom kontekstu i upitu.

Intervju
Veliko iskustvo i pogled sa znanstvene strane na umijeće kreiranja kvalitetnog prompta dao nam je docent Marko Horvat sa Zavoda za primijenjeno računarstvo zagrebačkog FER-a.
VIDI: Koje tehnologije i znanja je potrebno usvojiti kako bi se postao kvalitetan GenAI prompt inženjer?
Marko Horvat: Da bi se postalo kvalitetan inženjer upita generativne umjetne inteligencije (GenAI prompt inženjer) potrebno je steći specifičan spoj heterogenih računalnih znanja i jezične preciznosti izražavanja, te domenskog znanja o kontekstu u kojem se alat koristi. Iako se na prvi pogled čini da je riječ o jednostavnom unosu teksta, inženjering upita (engl. prompt engineering) zahtijeva daleko više. Zapravo, pretpostavlja razumijevanje kako funkcioniraju veliki jezični modeli model (engl. Large Language Models, LLM), kako strukturirati ulazne podatke da bi se postigao stabilan i poželjan izlaz, te kako prepoznati i ispraviti situacije kada model daje nejasan, nepotpun ili pogrešan odgovor.
S teorijskog aspekta, ključno je osnovno razumijevanje načina rada umjetnih neuronskih mreža i transformerskih dubokih arhitektura.
Potrebno je znati da modeli generativne UI ne razmišljaju, nemaju model fizičkog svijeta i sve što znaju napraviti jest statistički odrediti najvjerojatniji nastavak niza riječi na temelju prethodnih primjera. To nije razmišljanje, a ponajmanje je slično ljudskom razmišljanju. Dakle, alati kao što su ChatGPT, Gemini, Claude, Llama, DeepSeek ili Grok ne razumiju sadržaj već oponašaju jezične obrasce i na taj način mogu proizvesti tekst na prirodnom jeziku koji djeluje uvjerljivo kao da ga je pisao čovjek. Prirodan jezik ili računalni program, modelima je svejedno, radi se o nizu tokena, riječi, iz korpusa za učenje koji oni modeliraju (interno pojednostavljeno predstavljaju) i temeljem ulaznog konteksta od više desetaka tisuća do milijun riječi vlastitim algoritmom generiraju sljedeći nevjerojatniji token ili riječ.
Nadalje, nužno je razviti osjećaj za lingvističku jasnoću, konciznost i formalnu logiku u izražavanju zahtjeva. Dobro oblikovan upit nije samo tehnički točan, nego je i jezično ujednačen, nedvosmislen, strukturiran po logici postupnog navođenja modela prema željenom odgovoru. Tu dolazimo do važnog elementa: vještina pisanja i sposobnost segmentiranja složenih zahtjeva u korake koje je model sposoban pratiti.
Vrlo korisna je i volja za eksperimentiranjem (i strpljivost). S obzirom da isti upit može različito djelovati ovisno o verziji modela, jeziku na kojem se upit definira, temperaturi modela (važan hiperparametar koji upravlja razinom kreativnosti odgovora), pa i o duljini konteksta. Dobar inženjer upita učiti će iterativno, analizirati dobiveni izlaz i na temelju njega poboljšavati sljedeću verziju upita.
Također, važno je poznavanje široke lepeze upravljačkih tehnika ili metoda upita poput chain-of-thought prompting (navođenje modela da razmišlja korak po korak), few-shot i zero-shot learning (davanje primjera unutar upita), te rad s kontekstualnim prozorom, pogotovo kod dužih i višedijaloških zadataka. Izazov je da ovih metoda upita već ima na desetke, i stalno se znanstvenim istraživanjem definiraju novi. Srećom, na internetu postoji više vrlo kvalitetnih i besplatnih izvora za učenje, javno dostupnih na stranicama tvrtki OpenAI, Google, Microsoft, Anthropic i drugih. Primjerice:
https://microsoft.github.io/generative-ai-for-beginners/#/04-prompt-engineering-fundamentals/
https://www.promptingguide.ai/techniques
https://platform.openai.com/docs/examples
https://www.anthropic.com/engineering/claude-code-best-practices
U domeni programiranja i izrade aplikacija, inženjer upita mora znati i kako integrirati upite u programske skripte i aplikacijske okvire, te pozvati API sučelja svakog modela, predati im ulazne podatke s korisničkim tekstom i skupom hiperparametara koji upravljaju ponašanjem modela, te asinkrono dohvatiti dobivene odgovore.
VIDI: Koje su najčešće greške koji korisnici rade u kreiranju prompta za AI?
Marko Horvat: Najčešća greška je korištenje „zero-shot“ upita. Oni jesu najjednostavniji i najkraći, ali daju najlošije rezultate. Ne daju dovoljno konteksta za odgovor. Ne koriste ulančavanje upita, „prompt-chaining“ za proširenje prozora konteksta. Također, ne preciziraju format izlaznog odgovora. Ovisno o formatu ispisa mogu se dobiti drastično različiti rezultati, i po pitanju opsežnosti, ali i kvalitete odgovora. Ali ono što bismo bar svi trebali znati i mogli napraviti, jest definirati ulogu razgovornom agentu prije nego dajemo naredbu.
Drastično bolji rezultati mogu se dobiti korištenjem Markdown , JSON ili XML oznaka (tagova) za odvajanje elemenata u ulaznom kontekstu i upitu. Dapače, bilo kakve oznake koje jednoznačno određuju naredbu, dijelove naredbe, primjere, traženi oblik ispisa, i druge elemente upita, znatno će poboljšati razumijevanje zahtjeva korisnika i konverzacija će brže konvergirati željenom cilju.
Korištenje engleskog jezika umjesto hrvatskog također može pomoći.
Nemojmo zaboraviti da komercijalni agenti u oblaku, pogotovo u besplatnoj verziji, imaju ograničen broj riječi u kontekstu, pa je u dužim konverzacijama često potrebno ponavljati naredbe. Npr. da želite odgovor na književnom hrvatskom jeziku.
I da – nije potrebno reći „Hvala“ na kraju interakcije s agentom, zaista neće poboljšati kvalitetu odgovora. Već početkom 2023. godine napravljena su istraživanja koja to nedvojbeno potvrđuju.
VIDI: Može li se napraviti neki generalizirani set pravila za kreiranje upita prema više modela generativnog AI-a i ako da, što bi u tim pravilima trebalo biti?
Marko Horvat: Da, moguće je izraditi opći skup pravila za oblikovanje upita („prompta“) prema različitim modelima generativne umjetne inteligencije.
Ta se vještina naziva inženjering upita (engl. prompt engineering). Riječ je o skupu pravila za pisanje učinkovitih upita, odnosno o oblikovanju i unosu naredbi i podataka u veliki jezični model (engl. Large Language Model, LLM). Korištenjem odabranih pravila inženjeringa upita želimo u što kraćem vremenu dobiti željeni ili barem što bolji rezultat.
Važno je naglasiti da inženjering upita ne predstavlja temeljno ili osnovno znanje kao, primjerice, računalno inženjerstvo, već je to vještina koja se razvija iskustvom, eksperimentiranjem i razumijevanjem specifičnosti svakog pojedinog modela.
S obzirom da se ponašanje generativnih modela ne temelji na statičnim pravilima, nego na stohastičkom izlazu, isti upit može dati različite odgovore u različitim pokušajima. Drugim riječima, stohastička priroda generativne umjetne inteligencije i transformer modela otežava nam razumijevanje mehanizama rada ovih algoritama, jer moramo sustavno i više puta unositi upite da bismo mogli napraviti temeljiti zaključak o pravilima izgradnje optimalnog upita.
Dodatnu složenost donosi činjenica da su današnji razgovorni agenti u velikoj većini složeni informacijski sustavi zatvorenog koda, komercijalni proizvodi koji funkcioniraju kao „crne kutije“
Ne raspolažemo uvidom u njihove interne mehanizme, pa o njihovom ponašanju možemo suditi isključivo na temelju analize poznatog ulaza koji dajemo i dobivenog izlaza. Zato se pravila za oblikovanje upita neprestano razvijaju i mijenjaju. Ono što je danas učinkovito, sutra možda više neće biti, ovisno o novim verzijama modela ili promjenama u njegovim funkcionalnim svojstvima.
Učitavam komentare ...