Prompt je specifikace, ne přání
Nejčastější chyba při psaní promptu není špatná formulace, ale nejasná představa, co vlastně model potřebuje vědět. Napište mi text o produktu zní jako zadání, ale modelu chybí skoro všechno: pro koho text je, jak má být dlouhý, jaký má mít tón a kam ho firma použije. Model si tu mezeru něčím vyplní, a co si vyplní, to se pozná až u hotového výstupu.
Prompt se skládá z bloků, které mají každý jinou práci. Role říká, z jakého úhlu má model odpovídat, kontext dodává informace, které jinak chybí, instrukce zadává samotný úkol, příklad ukazuje očekávanou formu odpovědi, omezení hlídá, co odpověď nesmí obsahovat nebo jak dlouhá smí být, a formát určuje výsledný tvar výstupu. Dobrý prompt není ten, který má všechny bloky. Je to ten, který má přesně ty bloky, které tenhle konkrétní úkol potřebuje.
Kde vznikají chyby
Chyby v promptu mají v zásadě dvě podoby, a obě se dají pojmenovat bez odborného slovníku.
První je chybějící blok. Když prompt neřekne, na jaké úrovni má být vysvětlení, model zvolí úroveň sám, obvykle tu, která je v trénovacích datech nejčastější, a to často znamená víc žargonu, než čtenář snese. Když prompt neurčí formát, výstup sedí náhodně, jednou jako odstavec, jindy jako seznam, a nedá se strojově dál zpracovat.
Druhá je blok navíc. Role experta u věcného výčtu tří nástrojů obsah nijak nezlepší, jen prodlouží prompt. Příklad u úkolu, který se neopakuje, model nasměruje ke kopírování vzoru místo řešení skutečného zadání. Omezení, které si nikdo nevymyslel kvůli reálné potřebě, jen úkol zbytečně svazuje. Balast v promptu nestojí jen tokeny navíc, může model reálně zmást tím, že mu podsune informaci, která s úkolem nesouvisí.
Třetí věc, kterou hra procvičuje, je pořadí. Prompt se čte odshora dolů a model si v něm postupně staví očekávání. Role a kontext patří na začátek, protože nastavují, jak se má dívat na zbytek. Instrukce je jádro, přichází uprostřed. Příklad, omezení a formát doplňují, jak přesně má výstup vypadat, a logicky patří až za samotný úkol.
Šest bloků v praxi
Role zní jako kosmetika, ale u úkolů, kde záleží na úhlu pohledu, mění výsledek zásadně. Požádejte model, aby posoudil smluvní klauzuli jako právní asistent, a zaměří se na rizika ve formulaci. Bez role stejně dobře odpoví na otázku gramaticky, ale právní pohled do odpovědi sám od sebe nevloží. Kontext dělá podobnou práci jinde: říká modelu, kdo je čtenář, jaká firma za promptem stojí, nebo co se stalo předtím, takže model neopakuje otázky, na které už odpověď dávno existuje.
Instrukce je jediný blok, který v promptu nesmí chybět nikdy, protože bez ní model neví, co má vlastně udělat. Zbylé tři bloky, příklad, omezení a formát, mají společné to, že řeší formu, ne obsah. Příklad se hodí tam, kde se úkol opakuje mnohokrát a formát odpovědi musí zůstat stejný, třeba u třídění desítek ticketů do kategorií. U jednorázové odpovědi konkrétnímu klientovi příklad naopak škodí, protože model svede k opakování cizí fráze místo řešení skutečné situace. Omezení je obranou proti tomu nejčastějšímu selhání promptů, totiž že model při nejistotě raději něco věrohodně vymyslí, než aby přiznal mezeru. Věta jako pokud si nejste jistí, napište, že to v dokumentu není, dělá v boji proti halucinacím víc než jakákoli sofistikovanější technika.
Co z toho plyne v praxi
Prompt engineering česky často zní jako sbírka triků, které se dají nalepit na cokoli. Ve skutečnosti je to disciplína skládání, blíž technické specifikaci než psaní e-mailu. Firma, která pošle model jednou špatně sestaveným promptem, dostane jednou špatný výstup. Firma, která používá stejný typ promptu opakovaně, ale bez přemýšlení o tom, co v něm skutečně má být, dostane nekonzistentní výstup pořád dokola, a nikdo neví proč.
Řešení není naučit se dvacet triků nazpaměť. Je to naučit se ptát u každého promptu na tu samou otázku: co konkrétně tenhle úkol potřebuje, aby dopadl dobře, a co je tam jen proto, že to tam obvykle bývá? Tahle otázka se dá položit u každého promptu bez ohledu na to, jestli jde o jednu odpověď na e-mail, nebo o šablonu, kterou firma použije tisíckrát.