OpenAI
Diese Seite wurde maschinell übersetzt. Den Originalartikel auf Englisch ansehen.

Best Practices für Prompt Engineering mit der OpenAI API

So gibst du OpenAI-Modellen klare und wirksame Anweisungen

Aktualisiert: 2 days ago

So funktioniert Prompt Engineering

Weil OpenAI-Modelle auf eine bestimmte Weise trainiert werden, gibt es Prompt-Formate, die besonders gut funktionieren und zu nützlicheren Modell-Ausgaben führen. Der offizielle Leitfaden von OpenAI zu Prompt Engineering ist für Tipps zum Prompting meist der beste Einstieg.

Im Folgenden stellen wir einige Prompt-Formate vor, die sich aus unserer Sicht bewährt haben. Probiere aber auch andere Formate aus, die besser zu deiner Aufgabe passen können.

Faustregeln und Beispiele

Hinweis: „{text input here}“ ist ein Platzhalter für den tatsächlichen Text oder Kontext

1. Verwende das neueste Modell

Für die besten Ergebnisse empfehlen wir in der Regel, die neuesten und leistungsfähigsten Modelle zu verwenden. Bei neueren Modellen lässt sich Prompt Engineering meist einfacher anwenden.


Hinweis: Beim Prompting eines Reasoning-Modells gibt es im Vergleich zum Prompting eines GPT-Modells einige Unterschiede zu beachten. Mehr Details findest du hier.

2. Setze Anweisungen an den Anfang des Prompts und trenne Anweisung und Kontext mit ### oder """

Weniger effektiv ❌:

Fasse den folgenden Text als Aufzählung der wichtigsten Punkte zusammen.

{text input here}

Besser ✅:

Fasse den folgenden Text als Aufzählung der wichtigsten Punkte zusammen.

Text: """
{text input here}
"""

3. Beschreibe den gewünschten Kontext, das Ergebnis, die Länge, das Format, den Stil usw. so konkret, anschaulich und detailliert wie möglich

Beschreibe Kontext, Ergebnis, Länge, Format, Stil usw. konkret

Weniger effektiv ❌:

Schreibe ein Gedicht über OpenAI. 

Besser ✅:

Schreibe ein kurzes, inspirierendes Gedicht über OpenAI. Der Fokus soll auf der jüngsten Produkteinführung von DALL-E liegen (DALL-E ist ein Text-zu-Bild-ML-Modell), im Stil von {famous poet}

4. Verdeutliche das gewünschte Ausgabeformat mit Beispielen

Weniger effektiv ❌:

Extrahiere die Entitäten, die im folgenden Text erwähnt werden. Extrahiere die folgenden 4 Entitätstypen: Unternehmensnamen, Personennamen, konkrete Themen und übergeordnete Themen.

Text: {text}

Zeigen und erklären: Modelle reagieren besser, wenn konkrete Formatvorgaben gezeigt werden. So lassen sich mehrere Ausgaben auch zuverlässiger programmgesteuert parsen.

Besser ✅:

Extrahiere die wichtigen Entitäten, die im folgenden Text erwähnt werden. Extrahiere zuerst alle Unternehmensnamen, dann alle Personennamen, anschließend konkrete Themen, die zum Inhalt passen, und zuletzt allgemeine übergeordnete Themen

Gewünschtes Format:
Unternehmensnamen: <comma_separated_list_of_company_names>
Personennamen: -||-
Konkrete Themen: -||-
Allgemeine Themen: -||-

Text: {text}

5. Beginne mit Zero-Shot, dann Few-Shot. Wenn beides nicht funktioniert, nutze Fine-Tuning

✅ Zero-Shot

Extrahiere Schlüsselwörter aus dem folgenden Text.

Text: {text}

Schlüsselwörter:

✅ Few-Shot: einige Beispiele angeben

Extrahiere Schlüsselwörter aus den entsprechenden Texten unten.

Text 1: Stripe stellt APIs bereit, mit denen Webentwickelnde die Zahlungsabwicklung in ihre Websites und mobilen Anwendungen integrieren können.
Schlüsselwörter 1: Stripe, Zahlungsabwicklung, APIs, Webentwickelnde, Websites, mobile Anwendungen
##
Text 2: OpenAI hat moderne Sprachmodelle trainiert, die Text sehr gut verstehen und generieren können. Unsere API bietet Zugriff auf diese Modelle und kann für nahezu jede Aufgabe eingesetzt werden, bei der Sprache verarbeitet wird.
Schlüsselwörter 2: OpenAI, Sprachmodelle, Textverarbeitung, API.
##
Text 3: {text}
Schlüsselwörter 3:

✅ Fine-Tuning: Best Practices für Fine-Tuning findest du hier.

6. Weniger „blumige“ und ungenaue Beschreibungen verwenden

Weniger effektiv ❌:

Die Beschreibung für dieses Produkt sollte recht kurz sein, nur wenige Sätze und nicht viel länger.

Besser ✅:

Beschreibe dieses Produkt in einem Absatz mit 3 bis 5 Sätzen.

7. Sage nicht nur, was zu vermeiden ist, sondern was stattdessen zu tun ist

Weniger effektiv ❌:

Die folgende Unterhaltung findet zwischen einem Agent und einer Person aus der Kundschaft statt. NICHT NACH BENUTZERNAMEN ODER PASSWORT FRAGEN. NICHT WIEDERHOLEN.

Kundschaft: Ich kann mich nicht in mein Konto einloggen.
Agent:

Besser ✅:

Die folgende Unterhaltung findet zwischen einem Agent und einer Person aus der Kundschaft statt. Der Agent versucht, das Problem zu diagnostizieren und eine Lösung vorzuschlagen, ohne Fragen zu PII zu stellen. Bitte nicht nach PII wie Benutzername oder Passwort fragen, sondern die nutzende Person auf den Hilfeartikel www.samplewebsite.com/help/faq verweisen

Kundschaft: Ich kann mich nicht in mein Konto einloggen.
Agent:

8. Speziell für Codegenerierung: Verwende „Anfangswörter“, um das Modell in ein bestimmtes Muster zu lenken

Weniger effektiv ❌:

# Schreibe eine einfache Python-Funktion, die
# 1. mich nach einer Zahl in Meilen fragt
# 2. Meilen in Kilometer umrechnet

Im folgenden Codebeispiel signalisiert „import“ dem Modell, dass es mit Python-Code beginnen soll. (Ebenso ist „SELECT“ ein guter Hinweis für den Anfang einer SQL-Anweisung.)

Besser ✅:

# Schreibe eine einfache Python-Funktion, die
# 1. mich nach einer Zahl in Meilen fragt
# 2. Meilen in Kilometer umrechnet

import

9. Verwende die Funktion „Generate Anything“

Entwickelnde können die Funktion „Generate Anything“ nutzen, um eine Aufgabe oder die erwartete natürlichsprachliche Ausgabe zu beschreiben und einen passenden Prompt zu erhalten.


Mehr über die Nutzung der Funktion „Generate Anything“ erfahren.

Parameter

Nach unserer Erfahrung werden `model` und `temperature` am häufigsten verwendet, um die Modell-Ausgabe zu verändern.

  1. `model`: Leistungsstärkere Modelle sind in der Regel teurer und können eine höhere Latenz haben.

  2. `temperature`: Ein Maß dafür, wie oft das Modell einen weniger wahrscheinlichen Token ausgibt. Je höher die temperature, desto zufälliger und meist kreativer ist die Ausgabe. Das ist jedoch nicht dasselbe wie „Wahrhaftigkeit“. Bei den meisten faktenbasierten Anwendungsfällen, etwa Datenextraktion und wahrheitsgetreuen Q&A, ist eine temperature von 0 am besten.

  3. `max_completion_tokens` (maximale Länge) : Steuert nicht die Länge der Ausgabe, sondern setzt eine feste Obergrenze für die Token-Generierung. Idealerweise erreichst du dieses Limit selten, da dein Modell entweder stoppt, wenn es die Aufgabe für abgeschlossen hält, oder wenn es auf eine von dir definierte Stop-Sequenz trifft.

  4. `stop` (Stop-Sequenzen) : Eine Reihe von Zeichen (Tokens), die bei der Generierung dazu führt, dass die Texterstellung beendet wird.

Weitere Parameterbeschreibungen findest du in der API-Referenz.

War dieser Artikel hilfreich?