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ů.
Zajímá vás oblast IT a hledáte pracovní pozice a pracovní příležitosti v IT oboru? Ať už jste programátor, developer, tester, analytik nebo software architekt, ozvěte se nám a my vám z naší nabídky IT práce najdeme IT projekt na míru. Podívejte se, jaká volná pracovní místa v IT oblasti momentálně nabízíme. Pomůžeme vám najít nové pracovní výzvy a příležitosti. Těšíme se na spolupráci s vámi!
- Gramatika – pokud nejsem rodilý speaker a píšu prompt v anglickém jazyce, lehce se stane, že vypustím význam členů „a / the“ v textu. Pro AI jsou členy ovšem velmi důležité, jelikož může lépe pochopit kontext. Např. co myslíte tím, když napíšete „an input“ nebo „the input“? Trvalo mi déle, než jsem zjistil, že se ChatGPT nechová tak, jak jsem si přál, a to právě díky nevhodnému použití členů. Zároveň si dejte pozor na velká / malá písmena u pojmenovávání nadpisů, pozic nebo struktur. Mohou dělat také neplechu.
- AI má v sobě již nativně uloženo, že text, který zadáte jako první, má větší důležitost (weight) než text následující. Platí tedy, že ty nejdůležitější informace pro kontext by měly být na začátku a s každou větou by se měla snižovat důležitost pro celkový význam zadání. Jinak se vám může stát, že pokud dáte velmi důležitou podmínku na konec promptu, nebude na ni brán takový zřetel, jako na podmínku na začátku.
- Struktura textu – oddělujte jednotlivé sekce, a to jak na začátku tak i na konci. Například „Prompt conditions“ a „End of prompt conditions“ nebo „Vstupní data“ a „Konec vstupních dat“ a nebo „Článek k sumarizaci“ a „Konec článku k sumarizaci“. Nebojte se používat číslování, pokud máte více podmínek. Zároveň pokud máte složitější prompt skládající se z podmínek, vstupů, volitelných proměnných apod., vše oddělujte do vlastních sekcí s označením začátku a konce.
Já jsem šel tak daleko, že jsem i texty jednotlivých podmínek pro jistotu dával ještě do závorek, abych jasně zdůraznil, kde text začíná a končí. Čím lepší struktura, tím bude AI lépe udržovat kontext a vyzná se v celém zadání.
- Role a příklady – upřesněte formou příkladů, jaký výstup očekáváte. Zde opět platí, že čím více, tím lépe. Jediné, kde bych se s příklady krotil, je u opravdu dlouhých promtů, kde může být riziko, že než dojde AI na konec, ztratí kontext.
Je vhodné upřesnit, o jaký typ úkolu se jedná a kdo ho umí v ideálním případě nejlépe vyřešit. Tzn. pokud mám matematický úkol, řeknu AI, že chci, aby myslelo či jednalo jako špičkový matematik. Pokud se bude jednat o sumarizaci článků v oblasti IT, řeknu mu, aby se stalo zkušeným žurnalistou právě v této oblasti apod. Tímto způsobem pomůžete LLM vytřídit z miliard textů jen ty, které se týkají oboru či oblasti, kterou potřebujete. Předejdete tak nechtěným halucinacím či jiným nepřesným výsledkům.
Jazykové modely mají k dispozici celý svět v podobě internetu, kde jsou informace hodnotné, ale i ty méně hodnotné, společensky uznávané, ale i ty méně přijatelné. Proto bychom měli mít na paměti, že je vždy důležité brát v potaz i celý kontext daného tématu. Odpovědi tak mohou být samotnou umělou inteligencí okleštěny vzhledem ke společenským normám. A přesně to je důvod, proč pochvaly mohou lépe fungovat. A tak jsem sám zvědav, jak daleko v promt engeneeringu dojdeme.
Autor článku: Martin Smětala
🟡 Hledáte zajímavý projekt? Mrkněte, jak to u nás chodí a jaké kolegy aktuálně hledáme.
🟡 Máte kolegu nebo kamaráda, který se poohlíží po novém projektu? Zapojte se do našeho referral programu Doporuč a získejte finanční odměnu za doporučení.
🟡 Chtěli byste začít pracovat v IT? Stáhněte si náš ebook Začněte pracovat v IT: aneb od prvních krůčků po vysněnou práci,ve kterém vás provedeme krůček po krůčku informacemi, kurzy i praxí, které jsou tolik potřebné nejen pro ty, kteří chtějí změnit obor, ale i pro ty, kteří se chtějí pracovně posunout a dále se vzdělávat.
🟡 Víte, jak si co nejjednodušeji a nejefektivněji připravit půdu pro nové pracovní začátky? Mrkněte na náš ebook Připravte se na nová pracovní dobrodružství: Průvodce k úspěšné změně zaměstnání. Dream job je za dveřmi, stačí jen vzít správně za kliku.
Nebo sdílejte tento článek, který třeba poslouží i vašim známým.