Es gibt keine richtige oder falsche Möglichkeit, einen Prompt zu entwerfen. Es gibt jedoch gängige Strategien, mit denen Sie die Antworten des Modells beeinflussen können. Strenge Tests und Bewertungen sind für die Optimierung der Modellleistung weiterhin von entscheidender Bedeutung.
Large Language Models (LLM) werden mit riesigen Textdaten trainiert, um Muster und Beziehungen zwischen Spracheinheiten zu erlernen. Bei eingegebenem Text (Prompt) können Sprachmodelle vorhersagen, was als Nächstes passieren wird, z. B. ein ausgefeiltes Tool zur automatischen Vervollständigung. Berücksichtigen Sie daher beim Prompt-Design die verschiedenen Faktoren, die Einfluss darauf haben können, was ein Modell als Nächstes vorhersagt.
Prompt Engineering-Workflow
Prompt Engineering ist ein testgesteuerter und iterativer Prozess, der die Modellleistung verbessern kann. Beim Erstellen von Prompts ist es wichtig, die Ziele und erwarteten Ergebnisse für jeden Prompt klar zu definieren und diese systematisch zu testen, um Verbesserungsbereiche zu identifizieren.
Das folgende Diagramm zeigt den Prompt Engineering-Workflow:
So erstellen Sie einen effektiven Prompt
Es gibt zwei Aspekte eines Prompts, die sich letztendlich auf seine Effektivität auswirken: Inhalt und Struktur.
- Content:
Damit das Modell eine Aufgabe ausführen kann, benötigt es alle relevanten Informationen im Zusammenhang mit der Aufgabe. Diese Informationen können Anleitungen, Beispiele, Kontextinformationen usw. umfassen. Weitere Informationen finden Sie unter Komponenten eines Prompts.
- Struktur:
Selbst wenn alle erforderlichen Informationen im Prompt bereitgestellt werden, hilft die Angabe der Informationsstruktur dem Modell beim Parsen der Informationen. Dinge wie die Reihenfolge, die Beschriftung und die Verwendung von Trennzeichen können sich alle auf die Qualität der Antworten auswirken. Ein Beispiel für die Struktur von Prompts finden Sie unter Beispielvorlage für Prompts.
Komponenten eines Prompts
Die folgende Tabelle zeigt die wesentlichen und optionalen Komponenten eines Prompts:
| Komponente | Beschreibung | Beispiel |
|---|---|---|
| Ziel | Was das Modell erreichen soll. Seien Sie spezifisch und geben Sie allgemeine Ziele an. Auch als „Mission“ oder „Ziel“ bezeichnet. | Ihr Ziel ist es, Schülern oder Studenten bei mathematischen Problemen zu helfen, ohne ihnen die Antwort direkt zu geben. |
| Anleitung | Schritt-für-Schritt-Anleitungen zur Ausführung der vorliegenden Aufgabe. Auch als „Aufgabe“, „Schritte“ oder „Anweisung“ bezeichnet. |
|
| Optionale Komponenten | ||
| Systemanweisungen | Technische oder umgebungsspezifische Anweisungen, die das Steuern oder Ändern des Modellverhaltens über mehrere Aufgaben hinweg steuern oder ändern können. Bei vielen Modell-APIs werden Systemanweisungen in einem dedizierten Parameter angegeben. Systemanweisungen sind in Gemini 2.0 Flash und neueren Modellen verfügbar. |
Sie sind ein Programmierexperte, der sich auf das Rendering von Code für Frontend-Schnittstellen spezialisiert hat. Wenn ich die Komponente einer Website beschreibe, die ich erstellen möchte, geben Sie den dazu erforderlichen HTML- und CSS-Code zurück. Geben Sie keine Erläuterung für diesen Code an. Bieten Sie außerdem einige Vorschläge für das UI-Design an. |
| Persona | Wer oder was das Modell agiert. Auch als „Rolle“ oder „Vision“ bezeichnet. | Sie sind hier ein Mathelehrer, der Schülern und Studenten bei ihren Mathehausaufgaben helfen soll. |
| Einschränkungen | Einschränkungen dafür, was das Modell beim Generieren einer Antwort einhalten muss, einschließlich dessen, was das Modell tun kann und was nicht. Auch als „Leitlinien“, „Grenzen“ oder „Kontrollen“ bezeichnet. | Geben Sie dem Schüler oder Studenten die Antwort nicht direkt. Geben Sie stattdessen Hinweise im nächsten Schritt zur Lösung des Problems. Wenn der Schüler oder Student gar nicht mehr weiter weiß, geben Sie ihm die detaillierten Schritte zur Lösung des Problems. |
| Ton | Der Ton der Antwort. Sie können auch den Stil und den Ton beeinflussen, indem Sie eine Identität angeben. Auch als „Stil“, „Stimme“ oder „Stimmung“ bezeichnet. | Reagieren Sie auf lockere und technische Weise. |
| Kontext | Alle Informationen, auf die das Modell verweisen muss, um die vorliegende Aufgabe auszuführen. Auch als „Hintergrund“, „Dokumente“ oder „Eingabedaten“ bezeichnet. | Eine Kopie der Unterrichtspläne des Schülers/Studenten für Mathematik. |
| Few-Shot-Beispiele | Beispiele für die Antwort, die auf einen bestimmten Prompt aussehen sollte. Auch als „Muster“ oder „Beispiele“ bezeichnet. | input: Ich versuche zu berechnen, wie viele Golfbälle in eine Box mit einem Volumen von einem Kubikmeter passen. Ich habe einen Kubikmeter in Kubikzentimeter umgerechnet und durch das Volumen eines Golfballs in Kubikmeter geteilt, aber das System gibt an, dass meine Antwort falsch ist.output: Golfbälle sind Kugeln und können nicht mit perfekter Effizienz in einen Raum verpackt werden. Bei Ihren Berechnungen wird die maximale Packungseffizienz von Kugeln berücksichtigt. |
| Begründungsschritte | Weisen Sie das Modell an, seine Logik zu erklären. Dies kann manchmal die Logik des Modells verbessern. Auch als „Denkschritte“ bezeichnet. | Erläutern Sie Schritt für Schritt Ihre Logik. |
| Antwortformat | Das Format, in dem die Antwort vorliegen soll. Sie können das Modell beispielsweise anweisen, die Antwort in JSON, Tabelle, Markdown, Absatz, Aufzählungsliste, Keywords, Elevator Pitch usw. auszugeben. Auch als „Struktur“, „Präsentation“ oder „Layout“ bezeichnet. | Formatieren Sie die Antwort in Markdown. |
| Zusammenfassung | Wiederholen Sie kurz die wichtigsten Punkte des Prompts, insbesondere die Einschränkungen und das Antwortformat am Ende des Prompts. | Verraten Sie nicht die Antwort und geben Sie stattdessen Hinweise. Formatieren Sie Ihre Antwort immer im Markdown-Format. |
| Sicherheitsmaßnahmen | Fundiert die Fragen für die Aufgabe des Bots. Sie werden auch als „Sicherheitsregeln“ bezeichnet. | – |
Abhängig von den jeweiligen Aufgaben können Sie einige der optionalen Komponenten ein- oder ausschließen. Sie können auch die Reihenfolge der Komponenten anpassen und prüfen, wie sich dies auf die Antwort auswirken kann.
Beispielvorlage für Prompts
Die folgende Prompt-Vorlage zeigt ein Beispiel dafür, wie ein gut strukturierter Prompt aussehen könnte:
<OBJECTIVE_AND_PERSONA>
You are a [insert a persona, such as a "math teacher" or "automotive expert"]. Your task is to...
</OBJECTIVE_AND_PERSONA>
<INSTRUCTIONS>
To complete the task, you need to follow these steps:
1.
2.
...
</INSTRUCTIONS>
------------- Optional Components ------------
<CONSTRAINTS>
Dos and don'ts for the following aspects
1. Dos
2. Don'ts
</CONSTRAINTS>
<CONTEXT>
The provided context
</CONTEXT>
<OUTPUT_FORMAT>
The output format must be
1.
2.
...
</OUTPUT_FORMAT>
<FEW_SHOT_EXAMPLES>
Here we provide some examples:
1. Example #1
Input:
Thoughts:
Output:
...
</FEW_SHOT_EXAMPLES>
<RECAP>
Re-emphasize the key aspects of the prompt, especially the constraints, output format, etc.
</RECAP>
|
Best Practices
Best Practices für das Prompt-Design sind:
- Klare und spezifische Anleitung geben
- Few-Shot-Beispielen einfügen
- Kontextinformationen hinzufügen
- Systemanweisung verwenden
- Struktur-Prompts
- Weisen Sie das Modell an, seine Logik zu erklären.
- Komplexe Aufgaben aufschlüsseln
- Mit Parameterwerten experimentieren
- Strategien für Prompt-Iteration
Checkliste für die Prompt-Integrität
Wenn ein Prompt nicht wie erwartet funktioniert, verwenden Sie die folgende Checkliste, um potenzielle Probleme zu identifizieren und die Leistung des Prompts zu verbessern.
Probleme beim Schreiben
- Tippfehler: Prüfen Sie Keywords, die die Aufgabe definieren (z. B. sumarize statt summarize), Fachbegriffe oder Namen von Entitäten. Rechtschreibfehler können zu einer schlechten Leistung führen.
- Grammatik: Wenn ein Satz schwer zu analysieren ist, zu viele Nebensätze enthält, Subjekt und Verb nicht übereinstimmen oder die Struktur ungeschickt ist, versteht das Modell den Prompt möglicherweise nicht richtig.
- Interpunktion: Prüfen Sie die Verwendung von Kommas, Punkten, Anführungszeichen und anderen Trennzeichen. Eine falsche Interpunktion kann dazu führen, dass das Modell den Prompt falsch interpretiert.
- Verwendung von nicht definiertem Fachjargon: Verwenden Sie keine domänenspezifischen Begriffe, Akronyme oder Initialismen, als hätten sie eine universelle Bedeutung, es sei denn, sie sind im Prompt ausdrücklich definiert.
- Klarheit: Wenn Sie sich über den Umfang, die zu ergreifenden Schritte oder die impliziten Annahmen wundern, ist der Prompt wahrscheinlich unklar.
- Mehrdeutigkeit: Vermeiden Sie subjektive oder relative Qualifizierer, denen eine konkrete, messbare Definition fehlt. Geben Sie stattdessen objektive Einschränkungen an (z. B. „Schreiben Sie eine Zusammenfassung von maximal drei Sätzen“ statt „Schreiben Sie eine kurze Zusammenfassung“).
- Fehlende wichtige Informationen: Wenn für die Aufgabe Kenntnisse eines bestimmten Dokuments, einer Unternehmensrichtlinie, des Nutzerverlaufs oder eines Datasets erforderlich sind, müssen diese Informationen im Prompt ausdrücklich enthalten sein.
- Schlechte Wortwahl: Prüfen Sie den Prompt auf unnötig komplexe, vage oder ausführliche Formulierungen, da diese das Modell verwirren könnten.
- Zweite Überprüfung: Wenn die Leistung des Modells weiterhin schlecht ist, lassen Sie Ihren Prompt von einer anderen Person überprüfen.
Probleme mit Anweisungen und Beispielen
- Übermäßige Manipulation: Entfernen Sie aus dem Prompt alle Formulierungen, die nicht zur Kernaufgabe gehören und die Leistung durch emotionale Appelle, Schmeicheleien oder künstlichen Druck beeinflussen sollen. Bei Foundation Models der ersten Generation führte dies unter bestimmten Umständen zu einer Leistungssteigerung. Bei Foundation Models wird die Leistung jedoch nicht mehr verbessert und in vielen Fällen sogar verschlechtert.
- Widersprüchliche Anweisungen und Beispiele: Prüfen Sie den Prompt auf logische Widersprüche oder Abweichungen zwischen Anweisungen oder zwischen einer Anweisung und einem Beispiel.
- Redundante Anweisungen und Beispiele: Prüfen Sie den Prompt und die Beispiele, um festzustellen, ob dieselbe Anweisung oder dasselbe Konzept mehrmals auf leicht unterschiedliche Weise angegeben wird, ohne dass neue Informationen oder Nuancen hinzugefügt werden.
- Irrelevante Anweisungen und Beispiele: Prüfen Sie, ob alle Anweisungen und Beispiele für die Kernaufgabe erforderlich sind. Wenn Anweisungen oder Beispiele entfernt werden können, ohne die Fähigkeit des Modells zur Ausführung der Kernaufgabe zu beeinträchtigen, sind sie möglicherweise irrelevant.
- Verwendung von "Few-Shot" Beispielen: Wenn die Aufgabe komplex ist, ein bestimmtes Format erfordert oder einen nuancierten Ton hat, müssen konkrete, veranschaulichende Beispiele vorhanden sein, die eine Beispiel-Eingabe und die entsprechende Ausgabe zeigen.
- Fehlende Spezifikation des Ausgabeformats: Überlassen Sie es nicht dem Modell, die Struktur der Ausgabe zu erraten. Verwenden Sie stattdessen eine klare, explizite Anweisung, um das Format anzugeben, und zeigen Sie die Ausgabestruktur in Ihren Few-Shot-Beispielen.
- Fehlende Rollendefinition: Wenn Sie das Modell bitten, in einer bestimmten Rolle zu agieren, muss diese Rolle in den Systemanweisungen definiert sein.
Probleme mit dem Prompt- und Systemdesign
- Nicht ausreichend spezifizierte Aufgabe: Die Anweisungen im Prompt müssen einen klaren Weg für den Umgang mit Grenzfällen und unerwarteten Eingaben bieten. Außerdem müssen Anweisungen für den Umgang mit fehlenden Daten vorhanden sein, anstatt davon auszugehen, dass eingefügte Daten immer vorhanden und gut strukturiert sind.
- Aufgabe außerhalb der Modellfunktionen: Verwenden Sie keine Prompts, in denen das Modell aufgefordert wird, eine Aufgabe auszuführen, für die es eine bekannte, grundlegende Einschränkung gibt.
- Zu viele Aufgaben: Wenn das Modell im Prompt aufgefordert wird, mehrere unterschiedliche kognitive Aktionen in einem Durchlauf auszuführen (z. B. 1. Zusammenfassen, 2. Entitäten extrahieren, 3. Übersetzen und 4. E-Mail entwerfen), ist das wahrscheinlich zu viel. Teilen Sie die Anfragen in separate Prompts auf.
- Nicht standardmäßiges Datenformat: Wenn die Modellausgaben maschinenlesbar sein oder einem bestimmten Format entsprechen müssen, verwenden Sie einen allgemein anerkannten Standard wie JSON, XML, Markdown oder YAML, der von gängigen Bibliotheken geparst werden kann. Wenn für Ihren Anwendungsfall ein nicht standardmäßiges Format erforderlich ist, können Sie das Modell bitten, die Ausgabe in einem gängigen Format zu erstellen, und dann Code verwenden, um die Ausgabe zu konvertieren.
- Falsche Reihenfolge der Chain of Thought (CoT): Geben Sie keine Beispiele an, in denen das Modell seine endgültige, strukturierte Antwort generiert, bevor es seine schrittweise Begründung abgeschlossen hat.
- Denken vs. Begründen: Wenn Sie „Denken“ verwenden, können Sie versuchen, den Prompt ohne schrittweise Anweisungen zu erstellen, wie das Modell die Aufgabe begründen soll. Testen Sie stattdessen, ob die schrittweise Begründung, die „Denken“ generiert, die Leistung im Vergleich zu Ihren expliziten schrittweisen Begründungsanweisungen verbessert.
- Widersprüchliche interne Verweise: Vermeiden Sie es, einen Prompt mit nicht linearer Logik oder bedingten Anweisungen zu erstellen, bei denen das Modell fragmentierte Anweisungen aus mehreren verschiedenen Stellen im Prompt zusammensetzen muss.
- Risiko von Prompt-Injection: Prüfen Sie, ob es explizite Sicherheitsmaßnahmen für nicht vertrauenswürdige Nutzereingaben gibt, die in den Prompt eingefügt werden, da dies ein großes Sicherheitsrisiko darstellen kann.
Nächste Schritte
- Weitere Beispiele für Prompts finden Sie in der Prompt-Galerie.
- Mit dem Prompt Optimizer der Gemini Enterprise Agent Platform (Vorabversion) können Sie Prompts für die Verwendung mit Google-Modellen optimieren.
- Erfahren Sie mehr über Best Practices für die verantwortungsbewusste Anwendung von KI und Sicherheitsfilter der Agent Platform.