Grundlegende Techniken des Prompt Engineering

From Systems analysis wiki
Jump to navigation Jump to search

Prompt Engineering umfasst eine Vielzahl von Techniken und Methoden, die darauf abzielen, die Interaktion mit großen Sprachmodellen (LLMs) zu optimieren, um die gewünschten Ergebnisse zu erzielen. Diese Techniken betreffen die Strukturierung von Anfragen, die Bereitstellung von Kontext, die Steuerung des Ausgabestils und die Verbesserung der Denkfähigkeit des Modells. Da LLMs eine Antwort generieren, indem sie die nächsten Tokens auf der Grundlage des eingegebenen Prompts vorhersagen, beeinflussen Qualität und Struktur dieses Prompts direkt das Ergebnis. Die grundlegenden Techniken des Prompt Engineering ermöglichen es Entwicklern und Nutzern, das Verhalten des Modells effektiv zu steuern, Fehler zu reduzieren und es an spezifische Aufgaben anzupassen, ohne die internen Parameter des Modells ändern zu müssen.

Grundprinzipien und Struktur eines Prompts

Obwohl die spezifischen Implementierungen variieren, basieren effektive Prompts oft auf allgemeinen Prinzipien und einer gemeinsamen Struktur:

  • Empirische Leitlinien: Als eine praktische Struktur (jedoch kein Industriestandard) wird empfohlen, sich an folgende Prinzipien zu halten: Richtung vorgeben, Format festlegen, Beispiele bereitstellen, Qualität bewerten und Aufgabe aufteilen.
  • Ein effektiver Prompt enthält oft die folgenden Komponenten:
    • Einleitung/Rolle: Legt den Kontext der Aufgabe oder die Rolle/Persona des Modells fest.
    • Anweisungen: Klare Angaben, was zu tun ist.
    • Kontext: Notwendige Informationen (statisch oder dynamisch durch RAG abgerufen).
    • Beispiele (Few-Shot): Demonstration des gewünschten Formats/Stils.
    • Antwortaufforderung: Eine explizite Anweisung, was das Modell generieren soll.
  • System-Prompt (System Message): In Chat-Schnittstellen von APIs (z. B. bei Modellen von OpenAI, Anthropic) ermöglicht dies, globale Anweisungen und eine Rolle für die gesamte Sitzung festzulegen.
  • Formatierung: Die Verwendung von Markdown, JSON, XML oder YAML hilft, den Prompt zu strukturieren und das Parsen der Antwort zu erleichtern. Trennzeichen (```, `"""`, XML-Tags) sind wichtig, um Anweisungen von Daten zu trennen.

Grundlegende Techniken für Anweisungen und Beispiele

  • Klare und spezifische Anweisungen: Beschreiben Sie die Aufgabe, das gewünschte Ergebnis und die Einschränkungen so präzise wie möglich. Vermeiden Sie Mehrdeutigkeiten.
  • Rollenbasiertes Prompting (Role Prompting): Weisen Sie dem Modell eine Rolle zu („Du bist ein Experte für...“), um Ton, Stil und Wissensbasis zu steuern.
  • Zero-Shot Prompting: Eine Anfrage ohne Beispiele. Effektiv für einfache oder dem Modell gut bekannte Aufgaben.
  • Few-Shot Prompting: Bereitstellung mehrerer (normalerweise 2 bis 5) „Frage-Antwort“-Beispiele, um die Aufgabe zu demonstrieren. Ein Sonderfall ist das One-Shot Prompting mit einem einzigen Beispiel. Besonders nützlich für komplexe Formate oder Stile. Erfordert Vorsicht, um Verzerrungen (Anchoring) oder das Erkennen falscher Muster aus den Beispielen zu vermeiden.

Techniken zur Kontextsteuerung

  • Retrieval-Augmented Generation (RAG): Dynamisches Hinzufügen relevanter Informationen aus externen Wissensdatenbanken zum Prompt, bevor er an das LLM gesendet wird. Diese Methode, die erstmals 2020 von Meta AI vorgeschlagen wurde, ist entscheidend, um Halluzinationen zu bekämpfen und die Aktualität der Daten zu gewährleisten.
  • Chunking: Aufteilen großer Texte in kleinere Teile (Chunks), um das Kontextfenster des Modells nicht zu überschreiten. Strategien umfassen die Aufteilung nach Sätzen, Absätzen oder Tokens (mit Überlappung).
  • Zusammenfassung (Summarization): Komprimieren langer Texte oder Dialogverläufe, um die Hauptaussage in einem begrenzten Kontext zu übermitteln.

Techniken zur Verbesserung des logischen Denkens (Reasoning)

Diese Techniken zielen darauf ab, das Modell zu einem gründlicheren und strukturierteren „Denken“ zu veranlassen. Die Wirksamkeit vieler dieser Techniken, insbesondere von CoT, zeigt sich bei großen Modellen (in der Regel mit mehr als 100 Milliarden Parametern).

  • Chain-of-Thought (CoT): Anweisung an das Modell, eine schrittweise Argumentation zu generieren, bevor die endgültige Antwort gegeben wird. Dies verbessert die Ergebnisse in Mathematik, Logik und mehrstufigen Aufgaben erheblich.
    • Zero-Shot CoT: Die einfachste Form, die keine Beispiele erfordert. Das Hinzufügen einer Phrase wie „Lass uns Schritt für Schritt denken“ (Let's think step by step) zum Prompt kann bereits eine Denk-Kette auslösen.
  • Variationen von CoT:
    • Auto-CoT: Automatische Generierung von Beispielen für Argumentationsketten für das Few-Shot Prompting.
    • Self-Consistency: Generierung mehrerer Argumentationsketten und Auswahl der häufigsten Antwort durch „Abstimmung“, was die Zuverlässigkeit erhöht.
    • Tree-of-Thoughts (ToT): Untersuchung mehrerer Argumentationspfade in Form eines Baumes, mit der Möglichkeit, zurückzugehen und Zwischenschritte zu bewerten. Diese Technik zeigt eine hohe Effizienz bei komplexen Aufgaben, indem sie beispielsweise die Erfolgsquote bei der Lösung des „Game of 24“ von ~4 % auf ~74 % erhöht.
    • Graph-of-Thought (GoT), LogiCoT und andere, die auf komplexere oder logisch verifizierte Argumentationen abzielen.
  • ReAct (Reason and Act): Eine Technik, die CoT weiterentwickelt. Sie stellt einen iterativen Zyklus dar, in dem das Modell zwischen den Schritten des Denkens (Thought) und der Handlung unter Verwendung von Werkzeugen (Act) wechselt und sein Verständnis auf der Grundlage von Beobachtungen (Observation) aktualisiert.
  • Self-Refine: Ein iterativer Prozess, bei dem das Modell zuerst eine Antwort generiert, diese dann kritisiert und schließlich auf der Grundlage seiner eigenen Kritik verbessert. Dieser Zyklus aus „Generierung-Kritik-Verbesserung“ kann mehrmals wiederholt werden.
  • Take a Step Back Prompting: Das Modell formuliert zuerst allgemeine Prinzipien oder Abstraktionen und wendet diese dann auf die spezifische Aufgabe an.

Fortgeschrittene Techniken: Agenten und Werkzeuge

  • Werkzeugnutzung (Tool Usage) / Funktionsaufrufe (Function Calling): Dem LLM die Möglichkeit geben, externe APIs aufzurufen (Suche, Rechner, Datenbank). Das Modell generiert eine strukturierte Anfrage zum Aufruf eines Werkzeugs, die von der Anwendung ausgeführt wird, und das Ergebnis wird an das Modell zurückgegeben. Moderne LLMs (GPT-4, Claude 3) haben eine integrierte Unterstützung für diese Funktion.
  • Agenten (Agents): Systeme auf Basis von LLMs, die autonom planen, Werkzeuge verwenden und handeln können, um ein Ziel zu erreichen. Sie verwenden oft ReAct-ähnliche Zyklen. Frameworks (LangChain, AutoGen, CrewAI) vereinfachen ihre Erstellung.
  • Multi-Agenten-Systeme: Interaktion mehrerer spezialisierter Agenten zur Lösung komplexer Aufgaben.

Techniken zur Reduzierung von Fehlern und Halluzinationen

  • RAG: Verknüpfung von Antworten mit abgerufenen faktischen Daten.
  • Anweisungen zur Beschränkung der Antwort: Die Forderung, nur auf der Grundlage des bereitgestellten Kontexts zu antworten oder auf Unsicherheit hinzuweisen („Wenn die Antwort unbekannt ist, sage 'Ich weiß nicht'“).
  • Aufforderung zur Quellenangabe: Die Forderung an das Modell, Quellen anzugeben oder Teile des Kontexts zu zitieren, auf denen die Antwort basiert.
  • Verifizierung und Selbstkritik: Verwendung von Techniken wie Chain-of-Verification (CoVe) (Generierung einer Antwort mit anschließender Überprüfung und Korrektur), Self-Refine oder die direkte Aufforderung an das Modell, seine eigene Antwort auf Fehler zu überprüfen.
  • CoT: Das schrittweise Denken an sich kann bereits logische Fehler reduzieren.

Techniken zur Bewertung und Iteration

Obwohl die Bewertung ein separater Prozess ist, sind einige ihrer Aspekte Teil des Prompt Engineering:

  • A/B-Testing von Prompts: Vergleich der Wirksamkeit verschiedener Prompt-Versionen bei denselben Aufgaben.
  • Nutzung von LLMs zur Bewertung: Einsatz eines leistungsstarken Modells (z. B. GPT-4) zur Bewertung der Qualität von Antworten, die von einem anderen Prompt oder Modell generiert wurden (LLM-as-a-Judge).

Prompt-Muster (Patterns)

Verbreitete wiederverwendbare Strukturen:

  • Persona-Muster (Persona Pattern).
  • Muster zur Anpassung der Ausgabe (Output Customization Pattern).
  • Muster zur Fragverfeinerung (Question Refinement Pattern).
  • Muster zur kognitiven Verifizierung / Selbstkritik (Cognitive Verifier / Self-Critique Pattern).
  • Muster des schrittweisen Denkens (Step-by-Step / Chain-of-Thought Pattern).
  • Vorlagenmuster (Template Pattern).

Siehe auch

Literatur

  • 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.