AI Engineer · Lecke 03

Prompt engineering éles rendszerben

A prompt éles rendszerben nem egy szerencsés varázsmondat, amit egyszer eltalálsz. Program, amelyet sok különböző bemenetre kell megbízhatóan lefuttatni, és amelyet ugyanúgy verziózni és tesztelni kell, mint bármely más kódot. Ez a lecke a strukturált promptról, a few-shot példákról, a sablonokról és a promptok kezeléséről szól.

Vissza a tananyaghoz


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.


EGY STRUKTURÁLT PROMPT RÉTEGEI Szerep ki a modell, milyen hangnem Feladat mit kell pontosan elvégeznie Korlátok mit ne tegyen, milyen szabályok Példák few-shot minta a kívánt viselkedésre Bemenet a dinamikus anyag, elhatárolók között Kimeneti forma milyen szerkezetben adja vissza
A jó éles prompt nem egyetlen bekezdés. Elkülöníthető rétegekből áll, és minden réteg egy külön mérnöki döntés. A szerep és a kimeneti forma keretezi a többit.

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.


Példák a promptban bemenet 1 → helyes válasz 1 bemenet 2 → helyes válasz 2 bemenet 3 → helyes válasz 3 új bemenet → ? Modell a mintát követi új válasz A modell a példák mintázatát alkalmazza az új bemenetre, tanítás nélkül.
A few-shot prompt néhány kész bemenet és válasz párral mutatja meg a mintát. A modell ezt a mintát alkalmazza az új bemenetre, a súlyai megváltoztatása nélkül.

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ő.


  1. MegfogalmazásA prompt strukturált változatának megírása szereppel, feladattal, korlátokkal, példákkal.
  2. MérésA prompt lefuttatása a kiértékelő készleten, nem egyetlen kézi példán.
  3. Verzió rögzítéseA működő változat elmentése azonosítóval és változásnaplóval.
  4. VisszagörgetésHa egy új változat ront, a korábbi verzióra bármikor vissza lehet állni.

← Előző lecke Következő lecke →

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 →