Einführung in das Prompt Engineering

Die Modelle GPT-3, GPT-3.5 und GPT-4 von OpenAI sind prompt-basiert. Bei prompt-basierten Modellen interagiert der Benutzer mit dem Modell, indem er einen Textprompt eingibt, auf den das Modell mit einer Textvervollständigung antwortet. Diese Vervollständigung ist die Fortsetzung des Eingabetexts durch das Modell.

Obwohl diese Modelle äußerst leistungsfähig sind, ist ihr Verhalten auch sehr vom eingegebenen Prompt abhängig. Dies macht das Erstellen von Prompts zu einer wichtigen Fähigkeit, die es zu entwickeln gilt.

Das Erstellen von Prompts kann schwierig sein. In der Praxis fungiert der Prompt, um die Modellgewichte so zu konfigurieren, dass sie die gewünschte Aufgabe erfüllen. Aber dies ist eher eine Kunst als eine Wissenschaft und es erfordert häufig Erfahrung und Intuition, einen erfolgreichen Prompt zu erstellen. Das Ziel dieses Artikels ist es, Ihnen den Einstieg in diesen Lernprozess zu erleichtern. Der Artikel versucht, allgemeine Konzepte und Muster zu vermitteln, die für alle GPT-Modelle gelten. Dabei ist allerdings zu beachten, dass sich jedes Modell anders verhält, sodass die Erkenntnisse möglicherweise nicht für alle Modelle gleichermaßen gelten.

Grundlagen

In diesem Abschnitt werden die grundlegenden Konzepte und Elemente von GPT-Eingabeaufforderungen behandelt.

Benutzer interagieren mit GPT-Modellen über Textprompts. Wie bei allen generativen Sprachmodellen versuchen GPT-Modelle, die nächste Wortfolge zu erzeugen, die am ehesten aus dem vorherigen Text folgen. Es ist, als würden Sie sagen Was ist das Erste, was Ihnen in den Sinn kommt, wenn ich <prompt> sage?. Die folgenden Beispiele veranschaulichen dieses Verhalten. Bei Eingabe der ersten Wörter bekannter Inhalte ist das Modell in der Lage, den Text richtig fortzusetzen.

Prompt Completion
Vor 87 Jahren gründeten unsere Väter auf diesem Kontinent eine neue Nation, die in Freiheit geboren wurde und der Idee gewidmet ist, dass alle Menschen gleich geschaffen sind. […]
„Nennt mich Ismael.“ „Als ich vor einigen Jahren – wie lange es genau her ist, tut wenig zu Sache – so gut wie nichts in der Tasche hatte und von einem weiteren Aufenthalt auf dem Lande nichts mehr wissen wollte, kam ich auf den Gedanken, ein wenig zur See zu fahren, um die Welt des Meeres kennenzulernen.“ […]

Wenn Sie komplexere Prompts entwickeln, ist es hilfreich, dieses grundlegende Verhalten im Hinterkopf zu behalten. Unabhängig von dem angegebenen Prompt reagiert das Modell einfach mit dem, was es als höchstwahrscheinlich annimmt (angesichts seiner Trainingsdaten und Trainingsziele). Wenn Sie in Ihrem Prompt eine Frage stellen, folgt das Modell nicht einem separaten F&A-Codepfad, sondern scheint die Frage zu beantworten, da eine Antwort die wahrscheinlichste Art von Reaktion für die eingegebene Frage ist.

Komponenten von Prompts

Bei der Verwendung der Vervollständigungs-API wird zwar nicht zwischen verschiedenen Teilen des Prompts unterschieden, doch kann es für das Lernen und die Diskussion nützlich sein, die zugrunde liegenden Prompt-Komponenten zu identifizieren. In der Chat Vervollständigungs-API gibt es unterschiedliche Abschnitte des Prompts, die in Form eines Arrays von Dictionarys mit zugeordneten Rollen an die API gesendet werden: System, Benutzer und Assistent. Dieser Leitfaden befasst sich eher allgemein mit der Frage, wie eine prompte Konstruktion aussehen kann, als dass er präskriptive Leitlinien enthält. Er stellt keine verbindliche Anleitung für eine bestimmte API dar.

Es ist auch wichtig zu verstehen, dass es zwar auch andere Möglichkeiten gibt, Prompts zu analysieren. Das Ziel dieser Aufschlüsselung ist es jedoch, relativ einfache Überlegungen zum Aufbau von Prompts zu liefern. Bei der Vervollständigungs-API sind alle Komponenten optional. Es muss aber mindestens eine vorhanden sein und die meisten Prompts enthalten mehr als eine Komponente. Es kann auch eine Grauzone zwischen Komponenten geben. Die nachstehende Reihenfolge entspricht in etwa der Häufigkeit, mit der die einzelnen Komponenten verwendet werden, und zwar von der häufigsten zur geringsten.

Anweisungen

Anweisungen sind wahrscheinlich die am häufigsten verwendete Komponente in Prompts. Anweisungen sind ganz einfach Anweisungen für das Modell, was zu tun ist. Auch wenn das Konzept einfach ist, können Anweisungen in der Praxis komplex sein. Die folgende Tabelle veranschaulicht dies anhand einfacher und komplexerer Anweisungen in zwei verschiedenen Formen.

Anweisungstyp Prompt Completion
Einfache Anweisungen Schreibe eine Einleitung für einen wöchentlichen Newsletter. Willkommen zu unserem wöchentlichen Newsletter. Diese Woche liegt der Schwerpunkt auf Produktivität. Wir teilen Tipps und Tricks, wie Sie in allen Bereichen Ihres Lebens produktiv sein können. Wir wünschen Ihnen viel Spaß und würden uns freuen, wenn Sie Ihren Freunden zu unserem Newsletter einladen!
Komplexe Anweisungen Schreibe eine Einleitung für einen wöchentlichen Newsletter für die Mitarbeiter meines Unternehmens mit dem Namen Contoso. Sie sollte das großartige All-Hands-Meeting erwähnen, das wir letzte Woche hatten, und dem Team für all seine harte Arbeit in den letzten Monaten danken. Willkommen beim wöchentlichen Newsletter von Contoso! Wir hatten letzte Woche ein großartiges All-Hands-Meeting und ich möchte dem Team für all seine harte Arbeit in den letzten Monaten danken. Wir sehen einer glänzenden Zukunft entgegen und ich bin zuversichtlich, dass wir mit dem Einsatz und dem Engagement unseres Teams Großes erreichen werden. Vielen Dank, dass Sie Teil unseres Teams sind. Ich freue mich auf die Zusammenarbeit mit Ihnen allen in den kommenden Wochen und Monaten. Mit freundlichen Grüßen [Ihr Name].
Komplexe Anweisungen Schreibe eine Einleitung für einen wöchentlichen Newsletter, einschließlich der folgenden Aspekte:
- Mein Unternehmen heißt Contoso
- Beginne mit einem überschwänglichen Gruß
- Dank an das Team für die harte Arbeit über ein paar harte Monate
- Positiver Ausblick für das kommende Quartal
- Signiert vom SLT
Hallo Contoso-Team! Ich wollte mir einen Moment Zeit nehmen, um Ihnen für all Ihre harte Arbeit in den letzten Monaten zu danken. Es waren ein paar harte Monate, aber Sie haben alle an einem Strang gezogen und einen fantastischen Job gemacht. Ich bin wirklich stolz auf Sie alle. Mit Blick auf das nächste Quartal bin ich wirklich positiv gestimmt. Ich denke, wir werden einige großartige Dinge erreichen. Nochmals vielen Dank, das Senior Leadership Team.

Hauptinhalt

Hauptinhalt bezieht sich auf eine Art von Text, der vom Modell verarbeitet oder transformiert wird. Hauptinhalt wird in der Regel in Verbindung mit Anweisungen verwendet. Ein einfaches Beispiel wäre die Sprachübersetzung. Im folgenden Beispiel wird der deutsche Text als Hauptinhalt betrachtet, während „Übersetze ins Französische:“ eine Anweisung ist.

Prompt Completion
Können Sie mir bitte sagen, wie ich zum Museum komme?
Übersetze ins Französische:
Pouvez-vous s'il vous plaît me dire comment aller au musée?

Hauptinhalt kann auch viel länger sein. Im folgenden Beispiel ist der Hauptinhalt der Einführungsabschnitt aus dem Wikipedia-Eintrag zur Zeitkomplexität, der fast 300 Wörter lang ist. In unserer Tabelle wurde dieser Inhalt zur Vereinfachung der Anzeige abgekürzt.

Prompt Completion
Unter der Zeitkomplexität eines Problems wird in der Informatik die Anzahl der Rechenschritte verstanden, die ein optimaler Algorithmus zur Lösung dieses Problems benötigt, in Abhängigkeit von der Länge der Eingabe. Man spricht hier auch von der asymptotischen Laufzeit [...]
Fasse den vorangehenden Text in ein paar Sätzen zusammen:
Die Zeitkomplexität ist ein Maß dafür, wie lange die Ausführung eines Algorithmus dauert. Sie wird in der Regel als Funktion der Größe der Eingabe ausgedrückt. Das gebräuchlichste Maß ist die Worst-Case-Zeitkomplexität, d. h. die maximale Zeit, die für Eingaben einer bestimmten Größe benötigt wird.
Unter der Zeitkomplexität eines Problems wird in der Informatik die Anzahl der Rechenschritte verstanden, die ein optimaler Algorithmus zur Lösung dieses Problems benötigt, in Abhängigkeit von der Länge der Eingabe. Man spricht hier auch von der asymptotischen Laufzeit [...]
TL;DR (Zu lang, nicht gelesen)
Die Zeitkomplexität eines Algorithmus ist die Zeit, die zum Ausführen eines Algorithmus benötigt wird. Die Zeitkomplexität wird in der Regel durch Zählen der vom Algorithmus durchgeführten Elementaroperationen geschätzt, wobei angenommen wird, dass jede Elementaroperation eine feste Zeitspanne für die Durchführung benötigt. Die Zeitkomplexität wird in der Regel als Funktion der Größe der Eingabe ausgedrückt.

GPT-Modelle können auch strukturierte Hauptinhalte verarbeiten. Im folgenden Beispiel wird eine TSV mit belgischen Bieren (in diesem Artikel für Anzeige abgekürzt) als Teil der Eingabeaufforderung an das Modell übergeben. Das Modell kann den Inhalt richtig interpretieren und Fragen zu den Daten beantworten.

Prompt Completion
Belgian Beer Brands
Beer name Beer style color ABV Brewery
"Chimay Gold: ""Doree""" trappist pale ale gold 4.80% Chimay Brewery (official trappist)
"Chimay Blue: ""Grande Reserve""" trappist dark ale dark 9.00%
[…]
Wie viele Biere haben laut der Tabelle oben weniger als 6 % Alkoholgehalt (ABV)?
Es gibt 10 Biere in der Tabelle, die weniger als 6 % Alkoholgehalt (ABV) haben.

Beispiele

Erfolgreiche Prompts basieren häufig auf der Praxis des One-Shot- oder Few-Shot-Lernens. Damit ist die Aufnahme von einem oder mehreren Beispielen für das gewünschte Verhalten des Modells gemeint, in der Regel durch Einbeziehung von Eingabe- und Ausgabepaaren. Durch diese Art von Lernen wird das Modell nicht dauerhaft geändert. Vielmehr konditionieren die Beispiele das Modell darauf, nur auf die aktuelle Schlussforderung wie gewünscht zu reagieren. Die Verwendung von Prompts ohne Beispielen wird manchmal als Zero-Shot-Lernen bezeichnet. Beachten Sie, dass mit der Chat Completion-API dem Nachrichtenarray in der Regel nach der ersten Systemnachricht Few-Shot-Lernbeispiele in Form von Beispielinteraktionen zwischen Benutzern und Assistent hinzugefügt werden.

Lerntyp Prompt Completion
Zero-shot Überschrift: Trainer zuversichtlich, dass Verletzungen die Warriors nicht aus der Bahn werfen werden
Thema:
Der Trainer ist zuversichtlich, dass die Verletzung den Warriors die Saison nicht verderben wird. Das Team konzentriert sich nach wie vor auf seine Ziele und wird weiterhin hart daran arbeiten, sie zu erreichen.
Few-shot Überschrift: Twins Correa nutzt Ausstiegsoption und testet unabhängige Agentur
Thema: Baseball
Überschrift: Bei der WM in Katar soll es Bereiche zur Ausnüchterung geben
Thema: Fußball
Überschrift: Yates: Tipps für Fantasy Football in Woche 6
Thema: American Football
Überschrift: Trainer zuversichtlich, dass Verletzungen die Warriors nicht aus der Bahn werfen werden
Thema:
Basketball

Im obigen Beispiel wird der Nutzen des Few-Shot-Lernens veranschaulicht. Ohne die Beispiele scheint das Modell das gewünschte Verhalten zu erraten, während die Beispiele dem Modell eindeutig sagen, wie es funktionieren soll. Dies zeigt auch die Leistungsfähigkeit des Modells. Es kann die gewünschte Kategorie der Bezeichnung ableiten, auch ohne die Bezeichnung „Basketball“ in den Beispielen.

Position (Cue)

Hinweise dienen als „Starthilfe“ für die Ausgabe des Modells und helfen dabei, das Modell zum gewünschten Ergebnis zu führen. Häufig handelt es sich um ein Präfix, auf dem das Modell aufbauen kann. Im folgenden Beispiel zeigen wir Hinweise, die die Antwort lenken, so dass wichtige Elemente enthalten sind. Hinweise werden häufig zusammen mit Anweisungen verwendet, aber nicht immer. In den folgenden Beispielen wird das Modell verwendet, um eine lange E-Mail mit einer Ankündigung zusammenzufassen. In einem Fall wird ein Hinweis verwendet, um die Ausgabe des Modells zu fokussieren und in einem anderen Fall ein bestimmtes Ausgabeformat (Aufzählungszeichen) vorzuschlagen.

Im Kontext der Chat Vervollständigungs-API haben Anweisungen die Form einer Systemnachricht. Es werden Few-Shot-Beispiele angegeben, indem eine Reihe von Beispielinteraktionen zwischen Benutzer und Assistent zur Verfügung gestellt werden, um das Modell zu optimieren.

Anzahl der Hinweise Prompt Completion
0 Leistungsüberprüfungen sind eine Kernkomponente unseres Leistungs- und Entwicklungskonzepts bei Contoso. […]
Fasse die obigen E-Mail-Nachricht zusammen:
Mit dieser E-Mail sollen Mitarbeitende über die jüngsten Änderungen bei der Leistungsüberprüfung informiert werden, die Teil des Leistungs- und Entwicklungskonzepts von Contoso sind. Die Änderungen umfassen eine verbesserte Struktur, ein verbessertes Benutzererlebnis im Tool und gezielte Prompts. Außerdem gibt es jetzt den optionalen Bereich Gesprächsstarter, in dem die Mitarbeiter Themen eintragen können, die sie mit ihren Vorgesetzten besprechen möchten.
1 Leistungsüberprüfungen sind eine Kernkomponente unseres Leistungs- und Entwicklungskonzepts bei Contoso. […]
Fasse die obigen E-Mail-Nachricht zusammen:
Die wichtigste Erkenntnis der Nachricht ist
dass Contoso die Leistungsprüfung verbessert, indem es sich stärker auf die Kernprioritäten, Erwartungen und Auswirkungen konzentriert. Darüber hinaus wurde die Benutzeroberfläche des Tools mit Tipps, Ressourcen und Leitfäden aktualisiert. Schließlich wurden Anleitungen zur Aktivierung unternehmensweiter Kernprioritäten hinzugefügt.
2 Leistungsüberprüfungen sind eine Kernkomponente unseres Leistungs- und Entwicklungskonzepts bei Contoso. […]
Fasse die obigen E-Mail-Nachricht zusammen:
Wichtigste Punkte:
Contoso führt Änderungen an der Leistungsüberprüfung ein, die auf dem Feedback von Mitarbeitern basieren.
• Die Änderungen umfassen einen neuen Schwerpunkt auf den Kernprioritäten, Erwartungen und Auswirkungen; eine verbesserte Benutzererfahrung; und neue Leitlinien zu unternehmensweiten Kernprioritäten.
• Leistungsüberprüfungen sind eine Gelegenheit, um über vergangene Leistungen und Lernerfolge nachzudenken und zukünftige Prioritäten und Wachstumschancen zu planen.
• Mitarbeiter und Vorgesetzte sollten Ihre Kommentare vor der Leistungsüberprüfung verfassen.
• Es sollten mindestens zwei Leistungsüberprüfungen pro Jahr erfolgen.
• Der Zeitaufwand für jede Überprüfung sollte ungefähr gleich bleiben.

Unterstützender Inhalt

Ergänzende Inhalte sind Informationen, die das Modell verwenden kann, um die Ausgabe in irgendeiner Weise zu beeinflussen. Sie unterscheiden sich von Hauptinhalten darin, dass sie nicht das Hauptziel der Aufgabe sind, sondern in der Regel zusammen mit Hauptinhalt verwendet wird. Häufige Beispiele sind Kontextinformationen wie das aktuelle Datum, der Name des Benutzers, Benutzereinstellungen usw. Im folgenden Beispiel werden ergänzende Inhalte verwendet, um eine Reihe von geplanten Workshops für den Benutzer zu organisieren. Ohne die ergänzenden Inhalte (wichtigen Themen) listet das Modell einfach die Workshops (zur Anzeige gekürzt) auf. Wenn es über die Themen, die mir wichtig sind, informiert ist, kann das Modell die Meetings angemessen gruppieren.

Hilfreiche Themen Prompt Completion
Ohne Workshopliste:
Titel Beschreibung
Planung Workshop Kickoff Bitte kommen Sie zur Auftaktveranstaltung unseres Workshops! Erfahren Sie von unseren Führungskräften, welche Prioritäten gruppenübergreifend gelten und was sie für das kommende Jahr gelernt haben. Die Einladung zu dieser Veranstaltung wurde bereits an alle Mitglieder von [...]
Fasse die obigen Workshops gruppiert nach Themen zusammen:
Workshopliste:
Planung Workshop Kickoff
- Planung Abschluss-Workshop
- Core MeetUp
- Kundenorientierte Perspektiven
- Auswirkungs- und Schwerpunktbereiche
- Bewährte Methoden
- Beschleunigung der App-Einführung [...]
With Workshopliste:
Titel Beschreibung
Planung Workshop Kickoff Bitte kommen Sie zur Auftaktveranstaltung unseres Workshops! Erfahren Sie von unseren Führungskräften, welche Prioritäten gruppenübergreifend gelten und was sie für das kommende Jahr gelernt haben. Die Einladung zu dieser Veranstaltung wurde bereits an alle Mitglieder von [...]
Meine wichtigen Themen: Prompt Engineering, Suche, GPT-Modelle
Fasse die obigen Workshops zusammen, gruppiert nach meinen wichtigen Themen:
1. Prompt Engineering:
- Neue Tipps zum Prompt Engineering
- Die Kunst des Prompt Engineering
2. Suche:
- Einführung in die Vektorsuche mit Einbettung
3. GPT-Modelle:
- Einführung in GPT-4
– GPT-35-Turbo – Vertiefung.

Bewährte Methoden

  • Machen Sie genaue Angaben. Lassen Sie so wenig Spielraum für Interpretation, wie möglich. Schränken Sie den Betriebsbereich ein.
  • Seien Sie beschreibend. Verwenden Sie Analogien.
  • Erklären Sie, was Sie meinen. Manchmal müssen Sie dem Modell möglicherweise erneut beschreiben, was Sie erwarten. Geben Sie Anweisungen vor und nach Ihrem Hauptinhalt, verwenden Sie eine Anweisung und einen Hinweis usw.
  • Die Reihenfolge ist wichtig. Die Reihenfolge, in der Sie dem Modell Informationen bereitstellen, kann sich auf die Ausgabe auswirken. Bei der Ausgabe kann es einen Unterschied ausmachen, ob Sie Anweisungen vor Ihren Inhalten („fasse folgendes zusammen…“) oder danach („fasse das vorhergehende zusammen…“) geben. Selbst die Reihenfolge der Few-Shot-Beispiele kann von Bedeutung sein. Dies wird als Recency-Effekt bezeichnet.
  • Geben Sie dem Modell eine Möglichkeit zum Abbruch. Es kann manchmal hilfreich sein, dem Modell einen alternativen Pfad zu geben, wenn es die zugewiesene Aufgabe nicht ausführen kann. Wenn Sie beispielsweise eine Frage zu einem Textabschnitt stellen, können Sie etwas wie „Antworte mit ‚nicht gefunden‘, wenn die Antwort nicht vorhanden ist“ einfügen. Dadurch verhindern Sie, dass das Modell falsche Antworten generiert.

Platzeffizienz

Auch wenn die mögliche Länge der Eingabe mit jeder neuen Generation von GPT-Modellen zunimmt, wird es weiterhin Szenarien geben, die mehr Daten bereitstellen, als das Modell verarbeiten kann. GPT-Modelle unterteilen Wörter in „Token“. Während häufig verwendete mehrsilbige Wörter oft ein einzelnes Token sind, werden weniger häufig verwendete Wörter in Silben aufgeteilt. Token können manchmal kontraintuitiv sein. Im folgenden Beispiel sehen Sie beispielsweise, wie Token-Grenzen für verschiedene Datumsformate aussehen können. In diesem Fall ist das Ausschreiben des Monatsnamens platzsparender als ein vollständig numerisches Datum. Aktuell reicht der Bereich der Tokenunterstützung von 2.000 Token bei frühen GPT-3-Modellen bis zu 32.768 Token bei der 32k-Version des neuesten GPT-4-Modells.

Screenshot einer Textzeichenfolge mit farblich hervorgehobenen Token-Grenzen.

Angesichts dieses begrenzten Platzes ist es wichtig, ihn so effizient wie möglich zu nutzen.

  • Tabellen: Wie in den Beispielen im vorherigen Abschnitt gezeigt, können GPT-Modelle tabellenformatierte Daten problemlos verstehen. Dies kann eine platzsparende Möglichkeit sein, Daten zu verarbeiten, anstatt jedem Feld einen Namen voranzustellen (wie z. B. im JSON-Format).
  • Leerzeichen: Aufeinanderfolgende Leerzeichen werden als separate Token behandelt, was sehr schnell zur Verschwendung von Speicherplatz führen kann. Leerzeichen vor einem Wort werden dagegen in der Regel als Teil desselben Tokens wie das Wort behandelt. Achten Sie sorgfältig auf die Verwendung von Leerzeichen und verwenden Sie keine Interpunktion, wenn ein Leerzeichen alleine ausreicht.

Nächste Schritte

Weitere Informationen zu Azure OpenAI.