Néhány éve egy konferencián hallottam egy jó viccet: “Hogyan tudod megkülönböztetni a gépi tanulást a mesterséges intelligenciától? Egyszerű: Ha működő kódot látsz, akkor az gépi tanulás, ha csak PowerPoint prezentációt, akkor az mesterséges intelligencia.” Teljesen igaza volt, akkor. A ChatGPT 2022 végi megjelenése ebben hozott forradalmi változást: a mesterséges intelligenciát bárki számára elérhetővé tette. Írunk egy promptot, s máris megkapjuk a mesterséges intelligencia válaszát.
Sohasem volt még ilyen könnyű termékleírást készíteni, hírlevelet megíratni, egy cikket kielemeztetni, vagy akár egy egyszerűbb chatbotot készíteni. Csak egy jó prompt, s kész. Viszont jó promptot nem annyira könnyű írni. Hogyan tudunk ebben jók lenni? A válasz egyszerű: gyakorlás. Sok gyakorlás. 🙂 Hogy az utad gyorsabb legyen, mint az enyém, íme néhány tipp, hogy mire érdemes figyelni:
1. Válaszd ki a megfelelő modellt (az egyszerűség kedvéért a továbbiakban így hivatkozok a ChatGPT-hez hasonló Large Language Model-lekre) és tartsd magad hozzá: Az ideális világban minden modell ugyanúgy értelmezné a promptjaidat. De jelenleg mindegyiknek valamelyest eltérő a logikája. Tehát válassz egyet, tartsd magad hozzá, és gyakorolj vele sokat. Lehet, hogy különböző verziókat használsz majd belőlük (pl. bizonyos feladatokhoz a GPT 3.5-öt használom, másokhoz a 4-est), de légy tisztában a prompt-feldolgozás különbségeivel.
Egyszerűség és áttekinthetőség
2. Legyél világos: Gondolkodj úgy, mintha egy vezérigazgatónak írnál, aki nagyon korlátozott idővel rendelkezik. Írj a legvilágosabb, legcélratörőbb formában. Csak az legyen a promptban, ami feltétlenül szükséges, de az teljesen egyértelműen. Szükség lehet egy kis gyakorlásra, amíg pontosan érezni fogod, mit is jelent az egyértelműség a modellek számára, s hogy mennyire fontos ezt a készséget jól elsajátítani.
3. Legyél egyszerű: Általában a modellek minden információt igyekeznek felhasználni, amit a prompthoz hozzáadsz. Ezért csak azt az információt írd bele, amire mindenképp szükség van a feladat végrehajtásához. Sok esetben nem tudod előre, pontosan mire lesz szükség (pl. ha egy külső felhasználónak készítesz chatbotot). Ebben az esetben adj világos utasításokat arról, milyen körülmények között kell felhasználni az általad adott információt, és mikor hagyja azt figyelmen kívül a modell. Ez különösen igaz akkor, ha előzményeket is hozzáadsz a promptjaidhoz. (Pl. ha egy chatbotban információt kérsz a boltban kapható banánokról, majd utána egy receptet az esti vacsorához, akkor jó eséllyel banánkenyér lesz az ajánlott menü. 🙂 )
4. Bontsd fel a feladatokat: Nagyobb eséllyel működnek jól a promptok, ha a bennük szereplő utasítások világosak, és végig egyszerű maradsz. Ez sokszor csak úgy lehetséges, hogy csökkented a prompt feladatainak komplexitását. Ezért összetett feladatokra általában jó ötlet különböző forgatókönyveket létrehozni és szakosított promptokat készíteni rájuk. Például, ha adóügyekkel foglalkozol, több különböző promptot célszerű létrehoznod – pl. magánszemélyek vagy vállalkozások számára, illetve különböző adónemekhez – és kezdésnek egy rendezőpromptot, esetleg egyszerű szabályokat használni annak eldöntéséhez, hogy az adott feladatra melyik prompt az ideális. (A rendezőprompt olyan prompt, ami segít a modellnek eldönteni, hogy melyik szakosodott promptot használja.) Mostanra kutatások is kimutatták, hogy a hosszabb promptok közepét nagyobb eséllyel hagyják figyelmen kívül a különböző modellek, így a túl hosszú promptokat mindenképp célszerű felbontani.
5. Adj a prompthoz kontextust: A legjobb válaszokhoz szükséges meghatározni kérdésedhez megfelelő kontextust. Ez lehet egyszerű, mint pl. az aktuális dátum, vagy komplexebb, mint a prompt pontos feladatának leírása, esetleg a válasz stílusának cégarculathoz formálása is. Kezdésként egy egyszerű példa: „Mik az évszakhoz illő gyümölcsök most?” Hmmm, hol vagy éppen? Mi a mai dátum? Vagy egy kicsit továbbmenve: valószínűleg a 42 a tökéletes válasz volt az „Az Élet, a Világegyetem és Minden” kérdésre a gép szempontjából. Azonban a tervezőmérnök elfelejtette hozzáadni a vevő intellektuális képességeit az elején, így a válasz teljességgel értelmezhetetlen lett a befogadók számára.
Egyértelműség és forma
6. Mondd el, mit ne csináljon: Még akkor is, ha a promptod nem tartalmaz ügyfelektől bemeneteket – tehát nem félsz a prompt meghackelésétől –, nagyon hasznos lehet elmondani a promptban, mit NE csináljon a robot. Tehát a kontextus hozzáadása mellett tüntesd fel, mi nincs a prompt feladatai között, illetve milyen utasításokat és információkat hagyjon figyelmen kívül. Készülj fel: még akkor is, ha nagyon részletesen elmondod, mit ne csináljon, ki kell találnod, HOGYAN mondhatod el neki. Például, ha utasítod a modellt, hogy „soha ne tartalmazzon kolibrit a válaszod”, lehet, hogy mégis hozzáadja. Még akkor is, ha közlöd vele, hogy attól egy kiscica szomorú lesz, vagy hogy az egész kódod összeomlik. Miután elég sokszor próbálkoztál és a promptodat is egyszerűsítetted, látni fogod, hogyan tudod a modellt rávenni arra, hogy ténylegesen azt csinálja, amit szeretnél.
7. Formázd a bemenetet: Ha mindent logikus sorrendbe rendezel és a különböző részek világosan elkülönítettek, nagyobb esélyed lesz a sikerre. Még akkor is, ha egy API-t használsz. Használhatsz vesszőket, nagybetűket és más speciális karaktereket ehhez, a modellek általában felismerik a mintát.
8. Formázd a kimenetet: Sokkal nagyobb esélyed van rá, hogy azt kapd, amit szeretnél, ha a promptban leírod, mik az elvárásaid. Tehát közöld a modellel, milyen kimetet vársz pontosan. Hossz, nyelv, stílus, formátum – bármi, ami fontos számodra. Nagyszerű képességeik vannak a modelleknek, használd is őket! Ezenkívül vedd figyelembe, hogy tudnod kell, milyen formázás teszi a promptokat nagyobbá és lassabbá: lehet, hogy jobb, ha egyszerűsíted a kimenetet, és saját magad végzel el még némi utófeldogozást.
PRO tippek
9. Adj példákat: Ha jó kimenetet szeretnél elérni – különösen, ha a kimeneted formázásáról van szó –, adj meg néhány példát. Ez nagyban segíti a modellt abban, hogy pontosan azt tegye, amit szeretnél. Próbálj valós felhasználási példákat megadni.
10. Próbálkozz és finomíts: Ha pontos és jól megfogalmazott a promptod, a modell nagyrészt azt fogja tenni, amit szeretnél. Azonban biztosan lesznek határesetek. Tehát ne spórolj a teszteléssel. Amint látod ezeket a határeseteket, próbáld meg kezelni őket a promptodban. Azonban minél bonyolultabb a prompt, annál nagyobb az esélye az inkonzisztenciáknak, így érdemes átgondolni, hogy a változtatások többet árthatnak-e, mint használnak. Adott esetben dönthetsz úgy, hogy egy bizonyos hibaszázalékot elfogadsz, de dönthetsz úgy is, hogy a ritkán előforduló esetekre új, specializát promptokat hozol létre. A folyamatos finomítás segít megérteni a modell logikáját is. Például néhány esetben az utasítások végrehajtásának sorrendje is számít – még akkor is, ha logikailag nem kéne különbségnek lennie a kimenetben.
11. Írj automatizált teszteket, amelyek figyelik a promptjaidat. Ha a modell, amit használsz, fejlesztés alatt áll, a promptok viselkedése megváltozhat egy új verzióval. Tehát lehet, hogy időről időre módosítanod kell a promptjaidat. Jobb minél hamarabb tudni erről, nem pedig a fogyasztói visszajelzésekből értesülni arról, hogy valami elromlott.
Ha a fentieket betartod a nyelvi modellekkel való kommunikációdban, az már fél siker. És ami még lényeges: a kísérletezés rendkívül izgalmas folyamat. Új, forradalmi technológiát próbálhatsz ki nagyon könnyen, amellett, hogy a munkádat is radikálisan leegyszerűsítheted vele. Ne felejtsd el élvezni ezt az utat! 🙂