Core prompt engineering techniques (CS)
Prompt engineering zahrnuje různorodé techniky a metodiky zaměřené na optimalizaci interakce s velkými jazykovými modely (LLM) za účelem dosažení požadovaných výsledků. Tyto techniky se týkají strukturování dotazů, poskytování kontextu, řízení stylu výstupu a zlepšování schopnosti modelu uvažovat. Protože LLM generují odpověď předpovídáním následujících tokenů na základě vstupního promptu, kvalita a struktura tohoto promptu přímo ovlivňují výsledek. Základní techniky prompt engineeringu umožňují vývojářům a uživatelům efektivně řídit chování modelu, snižovat chyby a přizpůsobovat jej konkrétním úlohám bez nutnosti měnit vnitřní parametry modelu.
Základní principy a struktura promptu
Ačkoli se konkrétní implementace liší, efektivní prompty jsou často sestavovány s ohledem na obecné principy a strukturu:
- Empirické vodítko: Jako jedno z praktických schémat (nikoli průmyslový standard) se doporučuje dodržovat následující principy: Určit Směr, Specifikovat Formát, Poskytnout Příklady, Vyhodnotit Kvalitu a Rozdělit Úkol.
- Efektivní prompt často zahrnuje tyto složky:
- Úvod/Role: Nastavuje kontext úkolu nebo roli/personu modelu.
- Instrukce: Jasné pokyny, co je třeba udělat.
- Kontext: Potřebné informace (statické nebo dynamicky získané přes RAG).
- Příklady (Few-shot): Ukázka požadovaného formátu/stylu.
- Požadavek na odpověď: Explicitní určení, co má model vygenerovat.
- Systémová zpráva (System Prompt): V chatovacích rozhraních API (například u modelů OpenAI, Anthropic) umožňuje nastavit globální instrukce a roli pro celou relaci.
- Formátování: Použití Markdown, JSON, XML nebo YAML pomáhá strukturovat prompt a usnadňuje parsování odpovědi. Oddělovače (```, `\"\"\"`, XML-tagy) jsou důležité pro oddělení instrukcí od dat.
Základní techniky instrukcí a příkladů
- Jasné a konkrétní instrukce: Co nejpřesněji popsat úkol, požadovaný výsledek a omezení. Vyhýbat se nejednoznačnosti.
- Přiřazení role (Role Prompting): Přidělení role modelu („Jsi expert na...") pro řízení tónu, stylu a znalostní základny.
- Zero-shot Prompting: Dotaz bez příkladů. Efektivní pro jednoduché úkoly nebo úkoly, které model dobře zná.
- Few-Shot Prompting: Poskytnutí několika (obvykle 2 až 5) příkladů „otázka-odpověď" pro demonstraci úkolu. Zvláštním případem je One-shot Prompting s jedním příkladem. Zvláště užitečné pro složité formáty nebo styly. Vyžaduje opatrnost, aby nedošlo ke zkreslení (anchoring) nebo zachycení falešných vzorů z příkladů.
Techniky správy kontextu
- Retrieval-Augmented Generation (RAG): Dynamické přidávání relevantních informací z externích znalostních bází do promptu před odesláním LLM. Poprvé navržená Meta AI v roce 2020, tato metoda je klíčová pro potlačení halucinací a zajištění aktuálnosti dat.
- Chunking: Rozdělení velkých textů na menší části (chunky), aby se vešly do kontextového okna modelu. Strategie zahrnují dělení po větách, odstavcích, tokenech (s překryvem).
- Sumarizace: Komprese dlouhých textů nebo historie dialogu pro přenos hlavního smyslu v omezeném kontextu.
Techniky zlepšování uvažování (Reasoning)
Tyto techniky jsou zaměřeny na to, aby model „přemýšlel" důkladněji a strukturovaněji. Účinnost mnoha z nich, zejména CoT, se projevuje na modelech velkého měřítka (zpravidla více než 100 miliard parametrů).
- Chain-of-Thought (CoT): Instrukce modelu generovat postupné uvažování před finální odpovědí. Výrazně zlepšuje výsledky v matematice, logice a víceúrovňových úlohách.
- Zero-shot CoT: Nejjednodušší forma, nevyžadující příklady. Přidání fráze jako „Uvažujme krok za krokem" (Let's think step by step) do promptu může samo o sobě spustit řetězec úvah.
- Variace CoT:
- Auto-CoT: Automatické generování příkladů uvažování pro few-shot prompting.
- Self-Consistency: Generování několika řetězců uvažování a výběr nejčastější odpovědi metodou „hlasování", což zvyšuje spolehlivost.
- Tree-of-Thoughts (ToT): Prozkoumávání několika cest uvažování ve formě stromu s možností návratu a vyhodnocení mezikroků. Tato technika vykazuje vysokou účinnost u složitých úloh, například zvyšuje úspěšnost řešení „Game of 24" přibližně ze 4 % na přibližně 74 %.
- Graph-of-Thought (GoT), LogiCoT a další, zaměřené na složitější nebo logicky ověřené uvažování.
- ReAct (Reason and Act): Technika rozvíjející CoT. Představuje iterativní cyklus, ve kterém model střídá kroky Uvažování (Thought) a Akce s využitím nástrojů (Act), přičemž aktualizuje své chápání na základě Pozorování (Observation).
- Self-Refine: Iterativní proces, při kterém model nejprve vygeneruje odpověď, poté ji zkritizuje a nakonec vylepší na základě vlastní kritiky. Tento cyklus „generování-kritika-vylepšení" se může opakovat několikrát.
- Take a Step Back Prompting: Model nejprve formuluje obecné principy nebo abstrakce a poté je aplikuje na konkrétní úkol.
Pokročilé techniky: agenti a nástroje
- Využití nástrojů (Tool Usage) / Volání funkcí (Function Calling): Poskytnutí možnosti LLM volat externí API (vyhledávání, kalkulačka, databáze). Model generuje strukturovaný požadavek na volání nástroje, který aplikace vykoná, a výsledek je vrácen modelu. Moderní LLM (GPT-4, Claude 3) mají tuto funkci vestavěnou.
- Agenti (Agents): Systémy na bázi LLM, které mohou autonomně plánovat, využívat nástroje a jednat za účelem dosažení cíle. Často využívají cykly podobné ReAct. Frameworky (LangChain, AutoGen, CrewAI) zjednodušují jejich vytváření.
- Víceagentní systémy: Spolupráce několika specializovaných agentů při řešení komplexních úloh.
Techniky snižování chyb a halucinací
- RAG: Ukotvení odpovědí v získaných faktických datech.
- Instrukce pro omezení odpovědi: Požadavek odpovídat pouze na základě poskytnutého kontextu nebo vyjadřovat nejistotu („Pokud odpověď není známa, řekni ‚Nevím'").
- Požadavek na citace: Požadavek, aby model uváděl zdroje nebo citoval části kontextu, na nichž je odpověď založena.
- Ověřování a sebekritika: Využití technik jako Chain-of-Verification (CoVe) (generování odpovědi s následnou kontrolou a opravou), Self-Refine nebo přímý požadavek na model, aby zkontroloval svou odpověď na chyby.
- CoT: Postupné uvažování samo o sobě může snížit logické chyby.
Techniky hodnocení a iterace
Ačkoli hodnocení je samostatný proces, některé jeho aspekty jsou součástí prompt engineeringu:
- A/B testování promptů: Porovnávání účinnosti různých verzí promptů na stejných úlohách.
- Využití LLM pro hodnocení: Použití výkonného modelu (například GPT-4) k hodnocení kvality odpovědí vygenerovaných jiným promptem nebo modelem (LLM-as-a-Judge).
Vzory promptů
Běžné znovupoužitelné struktury:
- Vzor Persony (Persona Pattern).
- Vzor Přizpůsobení Výstupu (Output Customization Pattern).
- Vzor Požadavku na Upřesnění (Question Refinement Pattern).
- Vzor Kognitivního Ověřování / Sebekritiky (Cognitive Verifier / Self-Critique Pattern).
- Vzor Postupného Uvažování (Step-by-Step / Chain-of-Thought Pattern).
- Vzor Šablony (Template Pattern).
Literatura
- Radford, A. et al. (2019). Language Models are Unsupervised Multitask Learners. PDF.
- Brown, T. B. et al. (2020). Language Models are Few-Shot Learners. arXiv:2005.14165.
- Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
- Li, X. L.; Liang, P. (2021). Prefix-Tuning: Optimizing Continuous Prompts for Generation. arXiv:2101.00190.
- Liu, Y. et al. (2021). Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity. arXiv:2104.08786.
- Bai, Y. et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
- Wei, J. et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
- Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
- Kojima, T. et al. (2022). Large Language Models are Zero-Shot Reasoners. arXiv:2205.11916.
- Zhang, Z. et al. (2022). Automatic Chain of Thought Prompting in Large Language Models. arXiv:2210.03493.
- Zhou, D. et al. (2022). Least-to-Most Prompting Enables Complex Reasoning in Large Language Models. arXiv:2205.10625.
- Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
- Besta, M. et al. (2023). Graph of Thoughts: Solving Elaborate Problems with Large Language Models. arXiv:2308.09687.
- Madaan, A. et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
- Rafailov, R. et al. (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. arXiv:2305.18290.
- Wang, Y. et al. (2023). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
- Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
- Chen, S. Y. et al. (2023). Extending Context Window of Large Language Models via Positional Interpolation. arXiv:2306.15595.
- Chang, K. et al. (2024). Efficient Prompting Methods for Large Language Models: A Survey. arXiv:2404.01077.
- Genkina, D. (2024). AI Prompt Engineering Is Dead. IEEE Spectrum. [1].
- Li, Z. et al. (2024). Prompt Compression for Large Language Models: A Survey. arXiv:2410.12388.
- Liang, X. et al. (2024). Internal Consistency and Self-Feedback in Large Language Models: A Survey. arXiv:2407.14507.
- Han, H. et al. (2025). Retrieval-Augmented Generation with Graphs (GraphRAG). arXiv:2501.00309.
- Li, W. et al. (2025). A Survey of Automatic Prompt Engineering: An Optimization Perspective. arXiv:2502.11560.
- Wu, Z. et al. (2025). The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models. EMNLP 2025. PDF.
- Yang, B. et al. (2025). Hallucination Detection in Large Language Models with Metamorphic Relations. arXiv:2502.15844.
Viz také
- Velké jazykové modely
- Chain-of-Thought Prompting
- Halucinace a nesprávné odpovědi LLM