A prompt mint program
A promptot érdemes úgy kezelni, mint a rendszered egyik forráskódját. Nem egyetlen inputot céloz meg, hanem az inputok egész osztályát. Egy összefoglaló prompt nem egy adott cikkre íródik, hanem minden lehetséges cikkre, a rövidre és a hosszúra, a jól strukturáltra és a zavarosra is. Az OpenAI és az Anthropic prompttervezési útmutatói ezért a világos, explicit fogalmazást hangsúlyozzák. Mondd meg pontosan, mit vársz, add meg a modellnek a szerepét, jelöld ki egyértelmű elhatárolókkal, hol kezdődik a beviteli anyag, és határozd meg a kimenet formáját. A homályos prompt a demóban működhet, éles forgalomban viszont a szélső eseteknél csúszik szét.
Few-shot példák és a kontextusból tanulás
A modell képes a promptban megadott néhány példából megtanulni a kívánt viselkedést, anélkül hogy bármit is átállítanánk benne. Ezt hívjuk kontextusból tanulásnak (in-context learning), a néhány példát tartalmazó változatot pedig few-shot promptnak. A példák sokszor erősebben irányítják a modellt, mint a szóban megfogalmazott szabályok, mert megmutatják, nem csak elmondják a helyes kimenetet. Éles rendszerben ez azt jelenti, hogy a példák megválasztása mérnöki feladat. Jó, ha a példák lefedik a nehéz és a szélső eseteket is, nem csak a tankönyvi tiszta esetet. Ugyanakkor minden példa tokenbe, tehát költségbe és a kontextusablak helyébe kerül, ezért a példák számát és hosszát is mérlegelni kell.
Sablon és a dinamikus bemenet elkülönítése
Éles rendszerben a prompt java része statikus, tehát minden híváskor azonos, egy kisebb része pedig dinamikus, mert felhasználói vagy visszakeresett tartalom kerül bele. Ezt a kettőt érdemes tisztán szétválasztani egy sablonban, ahol jól látszik, hol van a fix utasítás, és hova illesztjük be a változó anyagot. A szétválasztásnak biztonsági oldala is van. A felhasználótól érkező szöveget mindig adatként kezeljük, nem utasításként, és világos elhatárolók közé tesszük, hogy a modell tudja, ez a rész feldolgozandó tartalom, nem pedig új parancs. Ez a prompt injekció elleni védekezés első lépése, amelyre a biztonsági leckében részletesen visszatérünk. A statikus rész elkülönítése ráadásul azért is hasznos, mert így a modell szolgáltatás gyorsítótárazása is jobban kihasználható, ahogy azt az inferencia leckében látni fogjuk.
Playground prompt
- Egyetlen kézzel kiválasztott bemenetre készül
- Sikeres, ha egyszer jó választ ad
- Szélső esetek nélkül
- Nincs verzió, nincs teszt
Éles prompt
- Bemenetek egész osztályára készül
- Sikeres, ha sok bemeneten megbízható
- Szélső és rosszindulatú esetekre is felkészül
- Verziózva, evalhoz kötve, mérve
A promptok verziózása
Mivel a prompt a rendszer viselkedését határozza meg, a módosítása ugyanolyan kockázatos, mint egy kódmódosítás. Egy látszólag ártalmatlan átfogalmazás javíthat az esetek egy részén, és ronthat máson. Ezért a promptokat verziózni kell, változásnaplóval, és minden érdemi változtatást le kell mérni a kiértékelő készleten, amelyet a hatodik leckében építünk fel. A gyakorlatban ez azt jelenti, hogy a prompt nem a kód mélyén, szétszórva él, hanem külön, azonosítható, verziózott egységként, amelyhez tartozik egy eredménytábla arról, hogyan teljesített a korábbi változatokhoz képest. A prompt így válik varázslatból mérnöki eszközzé, amelynek a viselkedése követhető és visszagörgethető.
- MegfogalmazásA prompt strukturált változatának megírása szereppel, feladattal, korlátokkal, példákkal.
- MérésA prompt lefuttatása a kiértékelő készleten, nem egyetlen kézi példán.
- Verzió rögzítéseA működő változat elmentése azonosítóval és változásnaplóval.
- VisszagörgetésHa egy új változat ront, a korábbi verzióra bármikor vissza lehet állni.
Workshop
AI Transformation Day
Egésznapos, vezetőknek szóló program. Feltérképezzük, hol tart a szervezet, mi az első reális lépés, és milyen belső feltételek szükségesek a sikerhez. A nap végén konkrét, prioritizált cselekvési lista.
Érdekel a program →