Konec špatným AI odpovědím! Tajemství promptingu pro Gemini a další LLM (NÁVOD) Hlavní stránka Návody Prompt engineering je proces tvorby kvalitních zadání (promptů) pro velké jazykové modely (LLM) s cílem získat přesné a relevantní výstupy Existuje řada technik promptingu, od základních (zero-shot, few-shot) po pokročilé (Chain of Thought, ReAct), které pomáhají vést model ke správným výsledkům Správné nastavení parametrů modelu (teplota, Top-K, Top-P, délka výstupu) a dodržování osvědčených postupů jsou klíčové pro optimalizaci výkonu LLM Sdílejte: Adam Indra Publikováno: 12.5.2025 08:00 Žádné komentáře 0 Vytváření efektivních zadání, známé jako prompt engineering, je klíčovou dovedností pro práci s velkými jazykovými modely (LLM), jako je například Gemini. Nejde jen o položení otázky, ale o pečlivé formulování vstupního textu, které model navede k požadovanému výsledku. Tento proces zahrnuje experimentování s různými technikami, optimalizaci délky promptu, volbu stylu a struktury, a také správné nastavení konfiguračních parametrů modelu. Kvalitní prompt je zásadní pro získání přesných a smysluplných odpovědí, zatímco nevhodné zadání může vést k nejasným nebo irelevantním výstupům. Co je prompt engineering? Konfigurace výstupu LLM Techniky promptingu Prompting pro generování kódu Osvědčené postupy (Best Practices) Závěr Co je prompt engineering? Prompt engineering je proces navrhování vysoce kvalitních vstupních zadání (promptů), které vedou velké jazykové modely (LLM) k produkci přesných a požadovaných výstupů. Je to iterativní proces, který zahrnuje experimentování s různými formulacemi, optimalizaci délky promptu a hodnocení jeho stylu a struktury ve vztahu k danému úkolu. Cílem je co nejlépe „nastavit“ LLM, který funguje jako predikční engine – na základě vstupního textu předpovídá nejpravděpodobnější následující token (slovo nebo jeho část). Dobře navržený prompt pomáhá modelu efektivněji plnit úkoly jako je sumarizace textu, extrakce informací, odpovídání na otázky, klasifikace textu, překlad, generování kódu nebo dokumentace kódu. Google Gemini Google LLC Instalovat (Free) Google Play Úspěšnost promptu závisí na mnoha faktorech: použitý model (např. Gemini, GPT, Claude, Llama), jeho trénovacích datech, konfiguraci modelu, volbě slov, stylu, tónu, struktuře a poskytnutém kontextu. I když k napsání základního promptu nepotřebujete být datovým vědcem, tvorba skutečně efektivních promptů vyžaduje znalosti a praxi. Konfigurace výstupu LLM Kromě samotného textu promptu je pro dosažení optimálních výsledků zásadní správné nastavení konfiguračních parametrů LLM. Mezi nejdůležitější patří: Délka výstupu (Max Tokens): Určuje maximální počet tokenů, které model vygeneruje. Je důležité nastavit ji rozumně – příliš krátký limit může odpověď useknout, příliš dlouhý zvyšuje výpočetní náročnost, dobu odezvy a náklady. Omezení délky samo o sobě nezaručí stručnost, pouze zastaví generování po dosažení limitu. Sampling Controls (Ovládání vzorkování): LLM nepredikuje jen jeden nejpravděpodobnější token, ale celou distribuci pravděpodobností pro všechny tokeny ve svém slovníku. Nastavení vzorkování určují, jak se z těchto pravděpodobností vybere finální token. Teplota (Temperature): Ovlivňuje míru náhodnosti při výběru tokenu. Nižší teplota (blížící se 0) vede k determinističtějším, předvídatelnějším a často fakticky správnějším odpovědím (model vybírá tokeny s nejvyšší pravděpodobností). Vyšší teplota zvyšuje kreativitu a diverzitu výstupů, ale i riziko nesmyslů nebo opakování (tzv. „repetition loop bug“), kdy model začne náhodně opakovat slova nebo fráze. Teplota 0 znamená tzv. „greedy decoding“, kdy je vždy vybrán nejpravděpodobnější token. Top-K: Omezuje výběr dalšího tokenu pouze na K nejpravděpodobnějších tokenů. Nižší K vede k cílenějším a faktickým odpovědím, vyšší K podporuje kreativitu. K=1 odpovídá greedy decoding. Top-P (Nucleus Sampling): Vybírá tokeny z nejpravděpodobnější podmnožiny, jejichž kumulativní pravděpodobnost dosahuje hodnoty P. P=0 se blíží greedy decoding, P=1 zahrnuje všechny tokeny s nenulovou pravděpodobností. Kombinace nastavení: Tato nastavení se vzájemně ovlivňují. Například ve Vertex AI Studio jsou nejprve vybrány tokeny splňující kritéria Top-K i Top-P a teprve na tuto podmnožinu se aplikuje vzorkování podle teploty. Extrémní hodnoty jednoho parametru mohou ostatní prakticky vyřadit (např. Teplota=0 nebo Top-K=1 činí ostatní parametry irelevantními). Doporučené výchozí hodnoty pro vyvážené výsledky mohou být Teplota=0.2, Top-P=0.95, Top-K=30. Pro kreativnější výstupy zkuste Teplota=0.9, Top-P=0.99, Top-K=40. Pro faktické úkoly s jedinou správnou odpovědí (např. matematika) začněte s Teplotou=0. Techniky promptingu Existuje mnoho technik, jak strukturovat a formulovat prompty pro dosažení lepších výsledků. Zde jsou některé klíčové: Zero-shot prompting (Prompting bez příkladu) Nejjednodušší forma, kdy prompt obsahuje pouze popis úkolu a případně vstupní text. Model nedostává žádné konkrétní příklady, jak má výstup vypadat. Spoléhá se na svou obecnou schopnost porozumět instrukcím. Příklad: „Klasifikuj následující recenzi filmu jako POZITIVNÍ, NEUTRÁLNÍ nebo NEGATIVNÍ: [text recenze]“. One-shot & Few-shot prompting (Prompting s jedním/více příklady) Pokud zero-shot nestačí, přidání jednoho (one-shot) nebo několika (few-shot) příkladů přímo do promptu může výrazně zlepšit výkon modelu. Příklady ukazují požadovaný formát, styl nebo způsob řešení úkolu. To je užitečné zejména pro složitější úkoly nebo když vyžadujete specifickou strukturu výstupu (např. JSON). Počet příkladů (obvykle 3-5) závisí na složitosti úkolu a možnostech modelu. Je důležité používat kvalitní, relevantní a různorodé příklady, včetně okrajových případů (edge cases). System, Contextual & Role prompting (Systémový, Kontextový a Rolový prompting) Tyto techniky poskytují modelu další vodítka: Systémový prompting (System Prompting): Definuje obecný rámec, účel nebo specifické instrukce pro model nad rámec samotného úkolu. Může například nařídit formát výstupu (např. „Odpověz pouze jedním slovem.“, „Vrať výsledek jako JSON podle tohoto schématu.“), nebo nastavit bezpečnostní mantinely („Odpovídej vždy uctivě.“). Kontextový prompting (Contextual Prompting): Poskytuje modelu specifické informace nebo pozadí relevantní pro aktuální úkol nebo konverzaci. Pomáhá modelu pochopit nuance a přizpůsobit odpověď. Příklad: „Context: Píšeš pro blog o retro arkádových hrách z 80. let. Navrhni 3 témata článků…“ Rolový prompting (Role Prompting): Přiděluje modelu specifickou roli nebo identitu (např. „Chovej se jako cestovní průvodce.“, „Jsi expert na kybernetickou bezpečnost.“). Model pak generuje odpovědi konzistentní s danou rolí, jejím stylem, tónem a znalostmi. Lze specifikovat i styl (např. formální, humorný, přesvědčivý). Tyto techniky se často překrývají a kombinují. Například rolí může být definována systémovým promptem a doplněna kontextem. Step-back prompting (Prompting s krokem zpět) Tato technika zlepšuje řešení komplexních úkolů tím, že model nejprve požádáme, aby se zamyslel nad obecnější otázkou nebo principy souvisejícími s konkrétním problémem. Odpověď na tuto obecnou otázku pak vložíme jako kontext do dalšího promptu, který řeší původní specifický úkol. Tento „krok zpět“ aktivuje relevantní znalosti a uvažovací procesy modelu, což vede k přesnějším a promyšlenějším odpovědím. Příklad: Místo přímého „Napiš příběh pro level FPS hry“ se nejprve zeptáme „Jaké jsou klíčové prvky dobrého příběhu pro level FPS hry?“ a odpověď pak použijeme jako kontext pro původní úkol. Chain of Thought (CoT) prompting (Prompting s řetězcem myšlenek) Zlepšuje schopnost LLM řešit problémy vyžadující logické uvažování (např. matematické úlohy, logické hádanky). Místo přímé odpovědi instruujeme model, aby explicitně vypsal jednotlivé kroky svého uvažování („Mysli krok za krokem.“). To modelu pomáhá dojít ke správnému výsledku a zároveň poskytuje transparentnost jeho postupu. CoT lze kombinovat s few-shot promptingem, kdy příklady obsahují nejen zadání a výsledek, ale i ukázkový řetězec myšlenek. Nevýhodou je delší výstup a tedy vyšší náklady a latence. Self-consistency (Sebekonzistence) Rozšíření CoT, které dále zvyšuje spolehlivost u složitých úloh. Princip spočívá v tom, že stejný CoT prompt položíme modelu vícekrát s vyšší teplotou, čímž získáme několik různých řetězců myšlenek a potenciálně i různých odpovědí. Finální odpověď se pak určí jako nejčastější výsledek z těchto pokusů (majority voting). Tato metoda je robustnější než jednoduchý CoT, ale výpočetně náročnější. Tree of Thoughts (ToT) (Strom myšlenek) Zobecnění CoT, které umožňuje modelu prozkoumávat více různých cest uvažování současně, nikoli jen jednu lineární. Model si udržuje „strom“ myšlenek, kde každý uzel představuje mezikrok řešení. Může se pak větvit a prozkoumávat alternativní přístupy. To je užitečné pro velmi komplexní problémy vyžadující exploraci a plánování. ReAct (Reason & Act – Uvažuj a Konej) Paradigma umožňující LLM řešit komplexní úkoly kombinací uvažování v přirozeném jazyce a používání externích nástrojů (např. vyhledávání na webu, spouštění kódu, volání API). Model generuje myšlenkový pochod (Reason), který vede k akci (Act), jako je použití nástroje. Výsledek akce (Observation) pak slouží jako vstup pro další krok uvažování. Tento cyklus myšlenka-akce-pozorování se opakuje, dokud není úkol vyřešen. ReAct je základem pro vytváření tzv. AI agentů. Vyžaduje programování a často použití frameworků jako LangChain. Automatic Prompt Engineering (APE) (Automatické Promptování) Metoda, kde se LLM používá k automatickému generování a optimalizaci promptů pro jiný (nebo i stejný) LLM. Například můžeme požádat model, aby vygeneroval mnoho variant promptu pro určitý úkol. Tyto kandidátní prompty se pak automaticky vyhodnotí pomocí nějaké metriky (např. BLEU, ROUGE, nebo pomocí dalšího LLM) a vybere se ten nejlepší. Cílem je snížit manuální úsilí při tvorbě promptů. Prompting pro generování kódu LLM jako Gemini mohou být velmi užitečné i pro vývojáře. Lze je použít pro: Psaní kódu: Generování kódu na základě popisu v přirozeném jazyce (např. „Napiš Bash skript, který přejmenuje všechny soubory v adresáři přidáním prefixu ‚draft_'“). Vysvětlování kódu: Porozumění existujícímu kódu (např. „Vysvětli mi, co dělá tento Python skript.“). Překlad kódu: Převod kódu z jednoho programovacího jazyka do druhého (např. „Přelož tento Bash kód do Pythonu.“). Debugging a revize kódu: Nalezení chyb v kódu a navržení vylepšení (např. „Tento Python kód hází chybu [chybová hláška]. Najdi problém a navrhni opravu a vylepšení.“). Při práci s kódem je obzvláště důležité výsledky pečlivě kontrolovat a testovat, protože LLM mohou generovat kód, který je syntakticky správný, ale funkčně chybný nebo neefektivní. Osvědčené postupy (Best Practices) Pro dosažení nejlepších výsledků při prompt engineeringu se doporučuje dodržovat následující principy: Poskytujte příklady (Few-shot): Jak bylo zmíněno, přidání relevantních a kvalitních příkladů do promptu je jednou z nejefektivnějších metod, jak model naučit požadovaný výstup. Jednoduchost a srozumitelnost: Formulujte prompty jasně, stručně a přímočaře. Vyhněte se složitému jazyku a zbytečným informacím. Používejte aktivní slovesa (např. Vytvoř, Analyzuj, Seřaď, Popiš). Buďte specifičtí ohledně výstupu: Jasně definujte, co od modelu očekáváte. Místo obecného „Napiš něco o konzolích“ použijte „Napiš blogový příspěvek o 3 odstavcích o top 5 herních konzolích v konverzačním stylu.“ Preferujte instrukce před omezeními: Místo výčtu toho, co model nemá dělat („Nevypisuj názvy her“), je často efektivnější říct, co má dělat („Diskutuj pouze o názvu konzole, výrobci, roku vydání a prodejích.“). Omezení používejte cíleně pro bezpečnost nebo striktní formátování. Kontrolujte délku výstupu: Použijte buď konfigurační parametr (max tokens) nebo explicitní instrukci v promptu („Vysvětli kvantovou fyziku ve délce tweetu.“). Používejte proměnné: Pro opakovaně používané prompty v aplikacích je výhodné používat zástupné symboly (proměnné), které se dynamicky nahrazují konkrétními hodnotami (např. „Řekni mi fakt o městě: {city}“). Experimentujte s formáty a styly: Zkoušejte různé formulace (otázka, příkaz, tvrzení), styly a vstupní formáty. Výsledky se mohou lišit. Míchejte třídy u klasifikace (Few-shot): Při použití few-shot pro klasifikační úkoly se ujistěte, že příklady pokrývají různé třídy a nejsou seřazeny monotónně, aby se model nenaučil jen pořadí. Adaptujte se na aktualizace modelu: LLM se vyvíjejí. Sledujte změny a testujte své prompty na novějších verzích modelů, případně je upravte pro využití nových schopností. Experimentujte s výstupními formáty (JSON, XML): Pro úkoly jako extrakce, řazení nebo strukturování dat zvažte použití strukturovaných formátů jako JSON. To vynucuje strukturu, snižuje riziko halucinací a usnadňuje strojové zpracování. Buďte si vědomi možných problémů s neúplným JSONem (např. kvůli token limitu) a použijte nástroje pro opravu (např. knihovna json-repair). Pracujte se schématy (JSON Schema): Pro strukturovaný vstup i výstup použijte JSON Schema. Definování očekávané struktury a datových typů pomáhá modelu lépe porozumět datům a zaměřit se na relevantní informace. Spolupracujte a dokumentujte: Pokud na promptu pracuje více lidí, nechte je vytvořit vlastní verze a porovnejte výsledky. Klíčové je pečlivě dokumentovat každý pokus: název/verze promptu, cíl, použitý model, konfigurace (teplota, token limit, top-k, top-p), celý text promptu a výsledný výstup. Ukládejte prompty (např. ve Vertex AI Studio) a zaznamenávejte zpětnou vazbu (OK/NOK). To je nezbytné pro učení, ladění a budoucí úpravy. Specifika pro CoT: Odpověď by měla následovat až po řetězci myšlenek. Ujistěte se, že finální odpověď lze snadno extrahovat. Pro CoT obecně používejte nízkou teplotu (ideálně 0), protože cílem je logické odvození jedné správné odpovědi. Závěr Prompt engineering je dynamická a stále se vyvíjející disciplína, která je zásadní pro efektivní využití potenciálu velkých jazykových modelů. Pochopení základních principů LLM, různých promptingových technik a konfiguračních možností, spolu s dodržováním osvědčených postupů a důkladnou dokumentací, vám umožní vytvářet prompty, které povedou k přesnějším, relevantnějším a užitečnějším výsledkům. Jaké techniky promptingu nejčastěji používáte vy a s jakými výsledky? Zdroj: Whitepaper „Prompt Engineering“ od Lee Boonstra (Google), únor 2025 O autorovi Adam Indra Sdílejte: Žádné komentáře Vložit komentář AI Gemini Google Mohlo by vás zajímat Android Auto dostane schopnějšího asistenta! Takto (zhruba) vypadá Gemini v akci Adam Kurfürst 9.1. Android Auto dostává první letošní aktualizaci. Co je nového? Adam Kurfürst 10.1. Google Quick Share přináší pro všechny skvělou funkci, kterou už Samsung umí dávno Libor Foltýnek 8.1.