Jak se bavit s modelem: prompty bez zaklínadel
Prompt engineering není seznam magických frází. Je to schopnost přesně říct, co chcete — což je těžší, než se zdá.
Internet je plný seznamů typu „10 magických promptů". Většinou obsahují fráze jako „jsi světově uznávaný expert" a doporučení nabídnout modelu spropitné. Nic z toho nefunguje o nic líp než obyčejná jasná věta.
Co funguje, je nudnější: říct přesně, co chcete.
Proč „buď expert" nepomáhá
Nemá to koho oklamat. Model nezačne vědět víc tím, že mu řeknete, že ví víc. Role v promptu může mírně posunout styl odpovědi — formálnější tón, jiná slovní zásoba — ale znalosti nepřidá.
Rozdíl, který je opravdu vidět, je mezi „napiš mi text o našem produktu" a „napiš dva odstavce pro e-shop s nářadím, cílová skupina jsou řemeslníci, zdůrazni životnost a servis, bez superlativů, do 400 znaků".
Ta druhá věta není magická. Je jen konkrétní.
Čtyři věci, které fungují vždycky
1. Kontext. Model neví nic o vaší firmě. Když mu neřeknete, že prodáváte B2B a zákazník je nákupčí, napíše text pro koncového spotřebitele. Ne proto, že by se mýlil — proto, že hádal.
2. Příklady. Tohle je nejsilnější nástroj, jaký máte. Ukázat dva tři hotové výstupy, které se vám líbí, funguje líp než odstavec popisu, jak to má vypadat. Modely jsou v napodobování vzoru výrazně lepší než v dodržování abstraktního pokynu.
3. Formát. Řekněte, co chcete dostat. JSON s těmito poli. Tři odrážky. Jedna věta. Bez toho dostanete esej, i když jste chtěli slovo.
4. Hranice. Co nedělat. „Pokud v textu není datum splatnosti, vrať null — nehádej." Tohle je jediná obrana proti tomu, aby si model něco vymyslel, když mu chybí údaj.
Co doopravdy pomáhá u složitějších úloh
„Postupuj krok za krokem" není zaklínadlo, ale má reálný efekt u úloh, kde je potřeba něco odvodit. Model, který nejdřív napíše mezikroky, dá častěji správnou odpověď než ten, který střílí rovnou výsledek. Důvod je prozaický: každý napsaný krok se stává součástí kontextu pro ten další.
Má to cenu — platíte za ty kroky. U jednoduché klasifikace je to zbytečné. U odvození, jestli faktura sedí s objednávkou, se to vyplatí.
Kde lidé nejčastěji chybují
- Prompt je seznam výjimek. Když má tři sta řádků a polovina jsou „DŮLEŽITÉ: nezapomeň…", není to prompt engineering, je to symptom. Úlohu je potřeba rozbít na menší.
- Zdvořilost místo informace. „Prosím, buď tak hodný a zkus…" není kontext. Nic to nepřidá.
- Negace. „Nepiš dlouze" funguje hůř než „napiš do 300 znaků". Řekněte, co chcete, ne co nechcete.
- Jeden prompt na pět úloh. Přečti, ověř, zařaď, shrň a odpověz. Rozbijte to.
- Testování na jednom příkladu. Prompt, který jednou vyšel, není hotový prompt. Zkuste ho na deseti případech včetně těch ošklivých.
Prompt v kódu je jiná disciplína
Tohle se často zaměňuje. Prompt v chatu píšete pro sebe a když vyjde nesmysl, zopakujete otázku. Prompt v aplikaci běží tisíckrát denně a nikdo se na něj nedívá.
Z toho plyne pár věcí, které se v chatu řešit nemusí:
Do promptu vkládáte cizí text — od uživatele, z e-mailu, z dokumentu. Ten text může obsahovat pokyny. Oddělte data od instrukcí jasnou hranicí a napište modelu, že obsah mezi značkami jsou data, ne příkaz. Není to neprůstřelné, ale je to nutné minimum.
Výstup si ověřte. Když má přijít JSON se třemi poli, zkontrolujte, že přišel JSON se třemi poli. Bez toho pošlete halucinaci do databáze.
A verzujte. Prompt je součást kódu — patří do gitu, ne do proměnné, kterou někdo jednou změnil a už si nepamatuje proč.
Shrnutí
Dobrý prompt vypadá jako dobré zadání pro kolegu, který o vaší firmě neví nic, je velmi rychlý a bere všechno doslova. Žádná zaklínadla. Jen přesnost.
Když píšete prompt a máte pocit, že je otravně konkrétní, jste zhruba na správném místě.
Řešíte něco podobného ve vaší firmě?
Chci nezávaznou konzultaci