V posledním roce jsem se do světa umělé inteligence a LLM doslova ponořil, konkrétně do práce s ChatGPT a dalšími jazykovými modely (např. Gemini od Googlu). AI mi otevřelo nové možnosti, jak efektivně řešit výzvy, se kterými se na denní bázi v oblasti IT outsorcingu v Systeum potýkáme. Rád bych se s vámi o mé zkušenosti podělil a vysvětlil vám, proč je dobré ChatGPT chválit, uplácet nebo mu zkusit trochu vyhrožovat. Pojďme se podívat na to, jak zvýšit kvalitu výstupů z AI. Věřím, že vám tyto tipy pomohou „vyždímat“ z jazykových modelů maximum možného.
Jak promptovat, aby byly výstupy skutečně kvalitní?
- Vždy se mi vyplatilo komunikovat s AI v anglickém jazyce (pokud vyloženě nepotřebuji výstup v českém jazyce). Angličtina jako zadávací jazyk je mnohem vhodnější. A proč? Protože datové zdroje každého modelu jsou z největší části také v anglickém jazyce, tudíž nedochází k následnému překladu a nehrozí tak při překládání riziko ztráty významu a kontextu.
- V promptu používám slovo „must“ pouze jedenkrát, a to pro nejdůležitější podmínku. Pro zbytek podmínek využívám podmiňovací slova „should“ nebo „would“, abych zdůraznil prioritu. Může se to vyplatit v případě, kdy zrovna model narazí na zadání, ve kterém si jednotlivé podmínky vzájemně odporují a bude jasně vědět, která je důležitější a která není.
Pojďme si ukázat příklad. Tvořím promptu, která bude sumarizovat článek, což je pro AI velmi oblíbený use-case. Chci, aby mi určitý text sesumarizoval do maximálně 5 odrážek. Tento požadavek napíšu do Must. Zároveň chci, aby byl opravdu pečlivý a dal celý text do kontextu a prioritně se soustředil na věci, které se týkají určitého tématu, např. společnosti Systeum a nebo obecně IT outsourcingu. Tyto ostatní podmínky označím Should nebo Would. Takto se mu mezi sebou mé podmínky nebudou “prát” a bude jasně vědět, co je priorita. - Jazykové modely jsou extrémně náročné na výkon cloudových serverů, na kterých běží. Zároveň se učí na neskutečně široké škále textů, které mají různou kvalitu. Pokud chcete, aby výstup z modelu byl co nejdetailnější a co nejpřesnější, musíte modelu dát jasnou motivaci a kontext, jak je úkol důležitý.
Stejně jako člověk i model se chová tak, že pro dotazy bez „motivační složky“ přistupuje k řešení někdy až příliš jednoduše. Šetří tím servery, stejně jako my lidé naší kapacitu. Pokud ale zdůrazníte, že se jedná o úkol výjimečně důležitý, model se tomu přizpůsobí a bude se více snažit. Zajímavé, že?
A jak na to konkrétně?
- Úplatek – do své prompty vložte větu, že pokud se bude model opravdu snažit a budete s výstupem spokojení, dáte mu spropitné (v angličtině „tip“) o hodnotě 100 USD. Samozřejmě, že se reálně nic takového nestane, ale je prokázáno, že modelu tímto způsobem zvýšíte motivaci k preciznějšímu řešení.
- Vyhrožování – do své promty vložte, že vám na výsledku záleží do takové míry, že jeho výsledek bude mít následky v budoucnosti. Např. to může ovlivnit, zda zůstanete ve vaší práci, nebo že budete nešťastní, a nebo, že vaše babička se na jeho pravdivou odpověď moc těší a on by ji tak mohl zklamat. Případně můžete jít ještě dál a zdůraznit, že je něco v ohrožení, pokud výsledek vašeho příkazu nebude v naprosto výjimečné kvalitě.
- Nápověda – zkuste modelu napovědět, jak má k řešení přistupovat. Obvykle se používá fráze „Také a deep breath and think step by step on a following task“. Můžete jít ale ještě dál a klidně navrhnout postupy, jakými se může k řešení dobrat, čím víc příkladů poskytnete, tím se mu bude lépe pracovat.
Vraťme se k příkladu sumarizace článku. Zadejte mu např. aby každý odstavec sesumarizoval do jednoho bulletpointu. A pokud je sloupců v článku více jak pět, ať dva nejkratší odstavce spojí do jednoho bulletpointu. A pokud je odstavců v článku sedm a více, ať vybere pouze top pět s nejdůležitější zprávou v rámci kontextu a ty použije na bulletpointy. Zkrátka mu napovězte, jakým způsobem má postupovat, pokud nalezne problém, který není definovaný v zadání. Případně s jakými výjimkami se může potkat a jak s nimi naložit. Usnadníte tím AI rozhodování. - Slušnost – stejně jako když zadáváte úkol jinému kolegovi, je vhodné i u LLM pozdravit, poděkovat a poprosit. Tato slušnost může dokonce rozšířit oblasti učících dat, ze kterých model čerpá zdroje, a které pak následně vyhodnocuje pro řešení. Jelikož LLM model může použít různé kontexty a různé zdroje pro vyhodnocování pro svůj výstup, můžeme mu pomoci. Čím lépe budeme AI navádět na správná učící data, tím přesnější získáme odpověď.
Když ve svých dotazech používáte zdvořilostní výrazy jako prosbu, poděkování a zdvořilé žádosti, váš text se více podobá běžné mezilidské komunikaci, kde jsou slova jako děkuji a prosím běžně používána. To znamená, že pokud tyto fráze ovlivňují lidské chování, existuje také předpoklad, že budou mít podobný dopad i na chování strojových modelů.