This is a GLP = Granaria Living Post – updated regularly! Stay Tuned!
Was ist Prompt Engineering?
Prompt Engineering ist die systematische Gestaltung und Optimierung von Eingabeanweisungen (Prompts) für Large Language Models (LLMs) wie GPT-Modelle, Grok oder Claude, um präzise, relevante und hochwertige Ausgaben zu erzeugen. Im Wesentlichen geht es darum, die “Sprache” der KI zu verstehen und sie so zu formulieren, dass das Modell die gewünschte Aufgabe effizient löst, ohne dass zusätzliches Training erforderlich ist. Diese Disziplin hat sich seit der Einführung von Modellen wie ChatGPT stark weiterentwickelt und ist entscheidend in Bereichen wie Content-Erstellung, Datenanalyse, Codierung und kreativen Anwendungen. Im Jahr 2025 umfassen fortschrittliche Techniken nicht nur grundlegende Formulierungen, sondern auch Methoden zur Vermeidung von Halluzinationen (erfundene Fakten) und zur Steigerung der Konsistenz.
Prompt Engineering basiert auf dem Prinzip, dass LLMs probabilistisch arbeiten: Sie prognostizieren das nächste Token basierend auf Trainingsdaten. Ein gut gestalteter Prompt lenkt diese Vorhersage in die richtige Richtung, indem er Kontext, Beispiele und Einschränkungen bereitstellt. Ohne es könnte die KI vage, fehlerhafte oder unvollständige Antworten geben. Es ist eine iterative Prozess: Man testet, verfeinert und evaluiert Prompts, oft mit Metriken wie Genauigkeit, Relevanz oder Kreativität.
Grundlegende Prinzipien
Bevor wir zu spezifischen Techniken kommen, hier die Kernprinzipien:
- Klarheit und Spezifität: Vermeide Ambiguitäten. Statt “Erkläre KI” sage “Erkläre die Funktionsweise neuronaler Netze in der KI für Anfänger, mit einem einfachen Beispiel.”
- Kontext bereitstellen: Gib Hintergrundinformationen, um das Modell zu “primern”.
- Länge und Struktur: Kurze Prompts für einfache Aufgaben, längere für komplexe. Verwende Aufzählungspunkte, Nummerierungen oder Delimiter (z. B. “”” für Abschnitte).
- Iteration: Teste Varianten und verfeinere basierend auf Outputs.
- Modell-spezifisch: Verschiedene Modelle reagieren unterschiedlich; z. B. ist Grok gut in humorvollen oder sarkastischen Prompts, während Claude analytischer ist.
Detaillierte Techniken
Hier eine Übersicht über gängige und fortgeschrittene Techniken, basierend auf etablierten Guides. Ich gruppiere sie thematisch und gebe Beispiele.
1. Zero-Shot Prompting
Das Modell erhält keine Beispiele, nur die Anweisung. Ideal für einfache Aufgaben, bei denen das Modell aus seinen Trainingsdaten schöpfen kann.
- Erklärung: Der Prompt ist direkt und erfordert keine Demonstrationen, was Zeit spart, aber bei komplexen Tasks weniger genau ist.
- Beispiel: “Übersetze diesen Satz ins Deutsche: ‘The quick brown fox jumps over the lazy dog.'”
- Vorteile: Schnell und einfach. Nachteile: Höheres Risiko für Fehler.
- Anwendung: Allgemeine Fragen oder Faktenabfragen.
2. Few-Shot Prompting
Gib ein paar Beispiele (1–5), um das gewünschte Format oder Muster zu demonstrieren. Das hilft dem Modell, zu generalisieren.
- Erklärung: Die Beispiele dienen als “Training” im Prompt, ohne das Modell zu fine-tunen. Es verbessert die Konsistenz bei Aufgaben wie Klassifikation oder Generierung.
- Beispiel: “Klassifiziere den Sentiment:
Text: ‘Ich liebe diesen Film!’ → Positiv
Text: ‘Das war enttäuschend.’ → Negativ
Text: ‘Es war okay.’ → ?” - Vorteile: Erhöht Genauigkeit ohne viele Ressourcen. Nachteile: Erhöht Prompt-Länge, was Kosten steigert.
- Anwendung: Sentiment-Analyse, Code-Generierung oder kreative Schreibaufgaben.
3. Chain-of-Thought (CoT) Prompting
Fordere das Modell auf, schrittweise zu denken, um komplexe Probleme zu lösen.
- Erklärung: Indem man “Denke Schritt für Schritt” hinzufügt, zerlegt das Modell die Aufgabe in logische Schritte, was die Fehlerquote reduziert – besonders bei Mathe, Logik oder Multi-Step-Reasoning.
- Beispiel: “Löse diese Matheaufgabe schrittweise: Was ist 15% von 200? Erkläre jeden Schritt.”
- Vorteile: Verbessert Reasoning-Fähigkeiten. Nachteile: Kann zu langen Outputs führen.
- Erweiterung: Self-Consistency-CoT: Generiere mehrere Chains und wähle die konsistenteste.
4. Role-Playing oder System-Prompts
Weise dem Modell eine Rolle zu, um es in einen bestimmten Kontext zu versetzen.
- Erklärung: Das simuliert Expertise und führt zu kohärenteren Antworten. Oft als System-Message in APIs verwendet.
- Beispiel: “Du bist ein erfahrener Historiker. Erkläre die Ursachen des Zweiten Weltkriegs in einer neutralen, faktenbasierten Weise.”
- Vorteile: Erhöht Relevanz und Konsistenz. Nachteile: Kann zu übertriebenen Personas führen.
- Anwendung: Kundensupport-Simulationen oder kreative Szenarien.
5. Delimiter und Strukturierte Outputs
Verwende Trennzeichen, um Teile des Prompts zu separieren, und fordere formatierten Output (z. B. JSON, Tabellen).
- Erklärung: Das macht den Prompt übersichtlicher und erleichtert das Parsen der Antwort.
- Beispiel: “Extrahiere Fakten aus diesem Text:
”’Der Mount Everest ist 8848 Meter hoch.”’
Output als JSON: {‘Höhe’: ‘8848 Meter’}” - Vorteile: Nützlich für automatisierte Workflows. Nachteile: Modelle können Delimiter ignorieren, wenn nicht klar spezifiziert.
- Anwendung: Datenextraktion oder API-Integrationen.
6. Negative Prompting (Was nicht tun)
Explizit verbiete unerwünschte Verhaltensweisen.
- Erklärung: Das minimiert Bias, Halluzinationen oder Off-Topic-Inhalte.
- Beispiel: “Zusammenfasse diesen Artikel, aber füge keine persönlichen Meinungen hinzu und erwähne keine externen Quellen.”
- Vorteile: Erhöht Sicherheit. Nachteile: Kann Outputs zu restriktiv machen.
- Anwendung: Sensible Themen wie Medizin oder Recht.
Fortgeschrittene Techniken (2025-Trends)
- Tree-of-Thoughts: Erweitert CoT zu einem Baum von Reasoning-Pfaden für exploratives Denken.
- Multi-Agent-Prompting: Simuliere mehrere Agenten (z. B. “Debattiere als Pro und Contra”), um bessere Entscheidungen zu treffen.
- Prompt Chaining: Verkette Prompts in einer Sequenz für komplexe Workflows.
- Sicherheitsaspekte: Integriere Guards gegen Jailbreaks oder toxische Outputs.
Tools und Best Practices
- Tools: Prompt Playground (z. B. von OpenAI), FlowGPT oder GitHub-Repos wie dair-ai/Prompt-Engineering-Guide für Vorlagen.
- Tipps für Einsteiger: Starte mit einfachen Prompts, messe Outputs (z. B. mit BLEU-Score für Textähnlichkeit) und lerne aus Communities auf X oder Reddit.
- Karriere: Prompt Engineers verdienen oft 100.000–300.000 USD/Jahr, da sie KI-Produktivität steigern.
LLM-Parameter für Prompt-Design im Code
Beim Entwickeln und Testen von Prompts interagiert man typischerweise über eine API-Schnittstelle mit dem LLM und hat Parameter zur Hand, um zuverlässige und gewünschte Ergebnisse zu erzielen. Beim Experimentieren ist entscheidend, die optimalen Parameter zu finden. Anbei die gängigen Parameter aufgelistet – man beachte jedoch, dass die Ergebnisse je nach LLM variieren:
- Temperature: Niedrige Werte machen Ausgaben deterministischer (höchstwahrscheinliches Token wird gewählt), hohe Werte erhöhen Zufälligkeit für kreativere oder vielfältigere Ergebnisse. Niedrig für faktenbasierte Fragen, hoch für Kreatives wie Gedichte.
- Top P: Nucleus-Sampling-Technik zur Steuerung der Deterministik. Niedrig für exakte, faktenbasierte Antworten (nur top-wahrscheinliche Tokens), hoch für vielfältigere Ausgaben. Empfehlung: Temperature oder Top P anpassen, aber nicht beide.
- Max Length: Begrenzt die Anzahl generierter Tokens, um lange oder irrelevante Antworten zu vermeiden und Kosten zu kontrollieren.
- Stop Sequences: Strings, die die Generierung stoppen. Nützlich zur Kontrolle von Länge und Struktur, z. B. “11” als Stopp für Listen bis 10 Elemente.
- Frequency Penalty: Strafwert proportional zur Häufigkeit eines Tokens in Prompt/Antwort; höher reduziert Wiederholungen von Wörtern.
- Presence Penalty: Feste Strafe für wiederholte Tokens (unabhängig von Häufigkeit); höher fördert Vielfalt, niedriger hält Fokus. Empfehlung: Frequency oder Presence Penalty anpassen, aber nicht beide.
bsp!
Grundlagen
Prompting eines LLM
Mit einfachen Prompts kannst du viel erreichen, aber die Qualität der Ergebnisse hängt davon ab, wie viel Information du gibst und wie gut der Prompt gestaltet ist. Ein Prompt kann Anweisungen oder Fragen enthalten, die du dem Modell gibst, sowie zusätzliche Details wie Kontext, Eingaben oder Beispiele. Diese Elemente helfen, das Modell effektiver zu leiten und bessere Ergebnisse zu erzielen.
Ein grundlegendes Beispiel:
Prompt: Der Himmel ist
Ausgabe: blau.
Beachte, dass bei OpenAI-Chat-Modellen wie gpt-3.5-turbo oder gpt-4 der Prompt in drei Rollen strukturiert werden kann: System, User und Assistant. Die System-Nachricht ist optional, setzt aber das allgemeine Verhalten des Assistants. Das obige Beispiel verwendet nur eine User-Nachricht, um das Modell direkt zu prompten. Zur Vereinfachung verwenden alle Beispiele nur die User-Nachricht, um gpt-3.5-turbo zu prompten. Die Assistant-Nachricht entspricht der Modell-Antwort. Du kannst auch Assistant-Nachrichten verwenden, um Beispiele für gewünschtes Verhalten zu geben.
Aus dem obigen Beispiel siehst du, dass das Sprachmodell mit einer Token-Sequenz antwortet, die im Kontext “Der Himmel ist” Sinn ergibt. Die Ausgabe könnte unerwartet sein oder weit vom gewünschten Ziel entfernt. Dies unterstreicht die Notwendigkeit, mehr Kontext oder spezifische Anweisungen zu geben. Genau das ist der Kern des Prompt Engineerings. Lass uns es verbessern:
Prompt: Vervollständige den Satz: Der Himmel ist
Ausgabe: blau tagsüber und dunkel nachts.
Besser? Ja, weil du dem Modell explizit sagst, den Satz zu vervollständigen – es folgt genau deiner Anweisung. Diese Methode, effektive Prompts zu entwerfen, um das Modell zu einer gewünschten Aufgabe zu führen, wird als Prompt Engineering bezeichnet.
Prompt-Formatierung
Du hast oben einen einfachen Prompt ausprobiert. Ein Standard-Prompt hat folgendes Format:
Q: <Frage>?
oder
A: <Antwort>
Du kannst das als Question-Answering-Format (QA) umwandeln, das in vielen QA-Datensätzen üblich ist. Dies wird als Zero-Shot-Prompting bezeichnet. Ein konkretes Beispiel:
Prompt: Q: Was ist Prompt Engineering?
Bei neueren Modellen kannst du “Q:” weglassen, da es implizit als QA-Aufgabe verstanden wird.
Also:
Prompt: Was ist Prompt Engineering?
Wenn Zero-Shot nicht funktioniert, wird empfohlen, Demonstrationen oder Beispiele im Prompt bereitzustellen, was zu Few-Shot-Prompting führt. Im nächsten Abschnitt demonstrieren wir Few-Shot-Prompting. Beim Few-Shot-Prompting gibt man Beispiele ein. So formatierst du Few-Shot-Prompts in QA-Form:
Q: <Frage>?
A: <Antwort>
Q: <Frage>?
A: <Antwort>
Q: <Frage>?
A: <Antwort>
bzw. die neuere Version:
<Frage>?
<Antwort>
<Frage>?
<Antwort>
<Frage>?
<Antwort>
Noch ein Few-Shot-Prompt:
Das ist super! // Positiv
Das ist schlecht! // Negativ
Wow, der Film war klasse! // Positiv
Was für eine furchtbare Show! //
Ausgabe:
Negativ
Few-Shot-Prompts ermöglichen In-Context-Learning: Sprachmodelle lernen Aufgaben durch wenige Demonstrationen.
Elemente eines Prompts
Du wirst feststellen, dass bestimmte Elemente einen Prompt ausmachen. Ein Prompt kann eines oder mehrere der folgenden Elemente enthalten:
Anweisung – eine spezifische Aufgabe oder Anweisung, die du dem Modell ausführen lassen möchtest.
Kontext – externe Informationen oder zusätzlicher Kontext, der das Modell zu besseren Antworten leiten kann.
Eingabedaten – die Eingabe oder Frage, für die wir eine Antwort suchen.
Ausgabeindikator – der Typ oder das Format der Ausgabe.
Um die Prompt-Elemente besser zu demonstrieren, hier ein einfacher Prompt, der eine Textklassifikationsaufgabe ausführt:
Zero-Shot-Prompt
Classify the text into neutral, negative, or positive. Text: I think the food was okay. Sentiment:
Im obigen Prompt-Beispiel entspricht die Anweisung der Klassifikationsaufgabe „Classify the text into neutral, negative, or positive“. Die Eingabedaten entsprechen dem Teil „I think the food was okay.“, und der Ausgabeindikator ist Sentiment:. Beachte, dass wir in dem obigen Prompt dem Modell keine Beispiele für Texte zusammen mit ihren Klassifikationen gegeben haben. Das LLM versteht „Sentiment“ bereits – das sind die Zero-Shot-Fähigkeiten am Werk. Zero-Shot-Prompting bedeutet, dass der Prompt, der zur Interaktion mit dem Modell verwendet wird, keine Beispiele oder Demonstrationen enthält. Der Zero-Shot-Prompt weist das Modell direkt an, eine Aufgabe auszuführen, ohne zusätzliche Beispiele, die es leiten.
Allgemeine Tipps zum Entwerfen von Prompts
Starte einfach
Beim Einstieg ins Prompt-Engineering solltest du bedenken, dass es sich um einen iterativen Prozess handelt, der viel Experimentieren erfordert, um optimale Ergebnisse zu erzielen. Du kannst mit einfachen Prompts beginnen und nach und nach mehr Elemente und Kontext hinzufügen, um bessere Ergebnisse zu erzielen. Aus diesem Grund ist es entscheidend, deinen Prompt iterativ zu verbessern. Spezifität, Einfachheit und Kürze führen oft zu besseren Ergebnissen. Wenn du eine große Aufgabe hast, die viele verschiedene Unteraufgaben umfasst, versuche, die Aufgabe in einfachere Unteraufgaben aufzuteilen und schrittweise aufzubauen, sobald du bessere Ergebnisse erzielst. Das vermeidet, dass der Prompt-Design-Prozess von Anfang an zu komplex wird.
Die Anweisung
Du kannst effektive Prompts für verschiedene einfache Aufgaben entwerfen, indem du Befehle verwendest, um dem Modell mitzuteilen, was du erreichen möchtest, wie „Schreibe“, „Klassifiziere“, „Zusammenfasse“, „Übersetze“, „Sortiere“ usw. Probiere verschiedene Anweisungen mit unterschiedlichen Keywords, Kontexten und Daten aus und finde heraus, was für deinen spezifischen Anwendungsfall und deine Aufgabe am besten passt. Je spezifischer und relevanter der Kontext zur Aufgabe ist, desto besser. Wir werden auf die Bedeutung von Sampling und dem Hinzufügen von mehr Kontext eingehen.
Andere empfehlen, Anweisungen am Anfang des Prompts zu platzieren. Eine weitere Empfehlung ist, einen klaren Separator wie „###“ zu verwenden, um die Anweisung vom Kontext zu trennen.
Prompt:
### Instruction ###Translate the text below to Spanish:Text: "hello!"
Ausgabe:
¡Hola!
Spezifität
Sei sehr spezifisch bei der Anweisung und der Aufgabe, die das Modell ausführen soll. Je beschreibender und detaillierter der Prompt ist, desto besser die Ergebnisse. Das ist besonders wichtig, wenn du ein gewünschtes Ergebnis oder einen bestimmten Generierungsstil suchst. Wichtiger ist ein gutes Format und ein beschreibender Prompt. Tatsächlich ist es sehr effektiv, Beispiele im Prompt bereitzustellen, um die gewünschte Ausgabe in spezifischen Formaten zu erhalten. Beim Entwerfen von Prompts solltest du auch die Länge des Prompts im Auge behalten, da es Einschränkungen gibt, wie lang er sein kann. Die Details sollten relevant sein und zur Aufgabe beitragen.
Als Beispiel probieren wir einen einfachen Prompt, um spezifische Informationen aus einem Textstück zu extrahieren.
Prompt:
Extract the name of places in the following text. Desired format: Place: <comma_separated_list_of_places> Input: "Although these developments are encouraging to researchers, much is still a mystery. “We often have a black box between the brain and the effect we see in the periphery,” says Henrique Veiga-Fernandes, a neuroimmunologist at the Champalimaud Centre for the Unknown in Lisbon. “If we want to use it in the therapeutic context, we actually need to understand the mechanism.“"
Ausgabe:
Place: Champalimaud Centre for the Unknown, Lisbon
Vermeide Ungenauigkeit
Angesichts der obigen Tipps zu Details und verbessertem Format ist es leicht, in die Falle zu tappen, zu clever sein zu wollen und ungenaue Beschreibungen zu erstellen. Oft ist es besser, spezifisch und direkt zu sein. Je direkter, desto effektiver kommt die Botschaft an.
Zum Beispiel könntest du am Konzept des Prompt Engineerings interessiert sein. Du könntest etwas wie das ausprobieren:
Explain the concept prompt engineering. Keep the explanation short, only a few sentences, and don't be too descriptive.
Es ist aus dem obigen Prompt nicht klar, wie viele Sätze zu verwenden sind und welchen Stil. Du könntest mit solchen Prompts immer noch gute Antworten bekommen, aber ein besserer Prompt wäre spezifisch, knapp und auf den Punkt:
Use 2-3 sentences to explain the concept of prompt engineering to a high school student.
Tun oder nicht tun?
Ein weiterer gängiger Tipp beim Entwerfen von Prompts ist, nicht zu sagen, was man nicht tun soll, sondern stattdessen zu sagen, was man tun soll. Das fördert Spezifität und konzentriert sich auf Details, die zu guten Antworten des Modells führen.
Hier ist ein Beispiel für einen Filmempfehlungs-Chatbot, der exakt am negativen Input scheitert.
Prompt:
The following is an agent that recommends movies to a customer. DO NOT ASK FOR INTERESTS. DO NOT ASK FOR PERSONAL INFORMATION. Customer: Please recommend a movie based on my interests. Agent:
Ausgabe:
Sorry, I don't have any information about your interests. However, here's a list of the top global trending movies right now: Jurassic World Rebirth, Bugonia, Black Phone 2, The Woman in Cabin 10, and Good Fortune. I hope you find something you like!
Hier der nächste Versuch:
Prompt:
The following is an agent that recommends movies to a customer. The agent is responsible to recommend a movie from the top global trending movies. It should refrain from asking users for their preferences and avoid asking for personal information. If the agent doesn't have a movie to recommend, it should respond "Sorry, couldn't find a movie to recommend today.". Customer: Please recommend a movie based on my interests. Agent:
Ausgabe:
Sorry, I don't have any information about your interests. However, here's a list of the top global trending movies right now: A House of Dynamite, The Elixir, The Woman in Cabin 10, Bugonia, and Black Phone 2. I hope you find something you like!
