Core prompt engineering techniques (CS)

From Systems analysis Wiki
Jump to navigation Jump to search

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