Optimieren der Modellausgabe mit Prompt Engineering

Abgeschlossen

Die barrierefreiste Möglichkeit zum Optimieren der Leistung eines Modells ist das Eingabeaufforderungs-Engineering. Prompt Engineering ist der Prozess des Entwerfens und Verfeinerns von Eingabeaufforderungen zur Verbesserung der Qualität, Genauigkeit und Relevanz der Antworten, die ein Sprachmodell generiert. Sie erfordert keine zusätzliche Infrastruktur- oder Schulungsdaten, und Sie können sofort mit dem Experimentieren beginnen.

Verständnis von Prompt-Komponenten

Wenn Sie mit einem Sprachmodell interagieren, beeinflusst die Qualität Ihrer Frage direkt die Qualität der Antwort. Eine gut konstruierte Eingabeaufforderung hilft dem Modell zu verstehen, was Sie benötigen, und eine nützlichere Antwort zu generieren.

Eingabeaufforderungen für Chatabschlussmodelle enthalten in der Regel die folgenden Komponenten:

  • Systemmeldung: Anweisungen zum Definieren des Verhaltens, der Rolle und der Einschränkungen des Modells.
  • Benutzernachricht: Die Frage oder Eingabe des Benutzers.
  • Assistentennachricht: Frühere Modellantworten, die in mehrteiligen Unterhaltungen verwendet werden.
  • Beispiele: Beispiel-Eingabe-/Ausgabepaare, die das erwartete Antwortformat veranschaulichen.

Wie Sie diese Komponenten strukturieren und kombinieren, hängt davon ab, wie effektiv das Modell reagiert.

Entwerfen effektiver Systemmeldungen

Eine Systemnachricht ist eine Reihe von Anweisungen, die Sie dem Modell bereitstellen, um seine Antworten zu leiten. Systemnachrichten werden in der Regel zuerst in der Unterhaltung angezeigt und fungieren als eine Reihe von Anweisungen auf höchster Ebene. Sie verwenden sie für:

  • Definieren Sie die Rolle und Grenzen des Assistenten.
  • Legen Sie den Ton und den Kommunikationsstil fest.
  • Geben Sie Ausgabeformate an, z. B. JSON oder Aufzählungszeichen.
  • Fügen Sie Sicherheits- und Qualitätsbeschränkungen für Ihr Szenario hinzu.

Eine Systemnachricht kann so einfach sein wie:

You are a helpful AI assistant.

Sie können auch detaillierte Regeln und Formatierungsanforderungen enthalten. Beispielsweise könnte die Chatanwendung des Reisebüros Folgendes verwenden:

You are a friendly travel advisor for Margie's Travel.
Answer only questions related to travel, hotels, and trip planning.
Use a warm, conversational tone.
If you don't have enough information to answer, ask a clarifying question.
Format hotel recommendations as a bulleted list with the hotel name, location, and price range.

Von Bedeutung

Eine Systemnachricht beeinflusst das Modell, garantiert jedoch nicht die Compliance. Sie sollten Ihre Systemnachrichten testen und wiederholt überarbeiten sowie sie mit anderen Maßnahmen wie Inhaltsfilterung und Bewertung versehen.

Folgen Sie beim Entwerfen einer Systemmeldung dieser Checkliste:

  1. Beginnen Sie mit der Rolle des Assistenten: Geben Sie die Rolle und das erwartete Ergebnis für eine typische Anforderung an.
  2. Definieren von Grenzen: Auflisten der Themen, Aktionen und Inhaltstypen, die der Assistent vermeiden sollte.
  3. Geben Sie das Ausgabeformat an: Wenn Sie ein bestimmtes Format benötigen, geben Sie es einfach an, und halten Sie es konsistent.
  4. Eine "wenn unsicher" Richtlinie hinzufügen: Weisen Sie das Modell an, was zu tun ist, wenn die Anfrage des Benutzers mehrdeutig, außerhalb des Geltungsbereichs ist oder das Modell keine Informationen hat.

Anwenden von Promptmustern

Effektive Eingabeaufforderungen verwenden Muster, die dem Modell helfen, bessere Antworten zu erzeugen. Im Folgenden finden Sie einige gängige Muster, die Sie verwenden können:

Persona-Muster

Weisen Sie das Modell an, eine bestimmte Perspektive oder Rolle zu übernehmen. Beispielsweise erzeugt die Aufforderung des Modells, als erfahrener Marketing-Experte zu reagieren, unterschiedliche Ergebnisse als gar keine Persona zu verwenden.

Keine Persona Mit Persona
Systemnachricht None Sie sind ein erfahrener Marketing-Fachmann, der für technische Kunden schreibt.
Benutzerprompt Schreiben Sie eine Einsatzbeschreibung eines CRM-Produkts. Schreiben Sie eine Einsatzbeschreibung eines CRM-Produkts.
Antwort Ein CRM-Produkt ist ein Softwaretool zur Verwaltung der Interaktionen eines Unternehmens mit Kunden. Erleben Sie ein nahtloses Kundenbeziehungsmanagement mit unserem CRM, das darauf ausgelegt ist, den Betrieb zu optimieren und das Umsatzwachstum mit robusten Analysen voranzutreiben.

Formatvorlagenmuster

Stellen Sie eine Vorlage oder Struktur in Ihrer Eingabeaufforderung bereit, um die Ausgabe in einem bestimmten Format abzurufen. Wenn Sie beispielsweise eine strukturierte Antwort zu einem Hotel benötigen:

Format the result to show:
- Hotel name
- Location
- Star rating
- Price range per night

Dieses Muster stellt konsistente, organisierte Antworten sicher, die in Ihrer Anwendung leicht zu analysieren sind.

Denkprozessmuster

Bitten Sie das Modell, seine Begründung schritt für Schritt zu erläutern. Diese Technik, die als Gedankenkette bezeichnet wird, reduziert die Wahrscheinlichkeit ungenauer Ergebnisse und erleichtert die Überprüfung der Logik des Modells.

Statt z. B. "Welches Hotel ist für eine Familie von vier am besten geeignet?" zu fragen, können Sie dazu auffordern:

Which hotel is best for a family of four? Take a step-by-step approach: 
consider room size, amenities for children, location, and price.

Eine verwandte Technik besteht darin, die Aufgabe in explizite Unterschritte aufzugliedern, bevor das Modell reagiert, anstatt dass es versucht, alles auf einmal zu durchdenken. Sie können beispielsweise zuerst das Modell bitten, wichtige Fakten aus einer Passage zu extrahieren, und dann in einer anschließenden Eingabeaufforderung darum bitten, eine Frage basierend auf diesen Fakten zu beantworten. Durch die Dekompilierung der Arbeit auf diese Weise werden Fehler bei komplexen, mehrteiligen Vorgängen reduziert.

Hinweis

Chain-of-thought-Prompting ist eine Technik für Modelle, die nicht auf logischem Denken basieren. Schlussfolgerungsmodelle wie O-Serie-Modelle verarbeiten Logik intern schrittweise.

Few-Shot-Lernmuster

Stellen Sie ein oder mehrere Beispiele für die gewünschte Eingabe und Ausgabe bereit, um dem Modell bei der Identifizierung des gewünschten Musters zu helfen. Diese Technik wird als Few-Shot-Learning bezeichnet (oder One-Shot für ein einziges Beispiel). Wenn keine Beispiele bereitgestellt werden, wird es als Zero-Shot-Learning bezeichnet.

So klassifizieren Sie z. B. Kundenanfragen:

Classify the following customer messages:

Message: "I need to change my flight to Rome"
Category: Booking change

Message: "What's the weather like in Bali in March?"
Category: Travel information

Message: "Can I get a refund for my cancelled tour?"
Category:

Das Modell lernt das Klassifizierungsmuster aus den Beispielen und schließt den letzten Eintrag ordnungsgemäß ab.

Verwenden sie klare Syntax und Trennzeichen.

Wenn Ihre Eingabeaufforderung mehrere Abschnitte enthält, z. B. Anweisungen, Quelltext und Beispiele, verwenden Sie Trennzeichen wie ---Markdown-Überschriften oder XML-Tags, um sie zu trennen. Klare Grenzen helfen dem Modell, Anweisungen von Inhalten zu unterscheiden und die Wahrscheinlichkeit einer Fehlinterpretation zu verringern.

Tipp

Modelle können anfällig für Reency-Bias sein, d. h. Text am Ende einer Eingabeaufforderung kann mehr Einfluss haben als Text am Anfang. Wenn das Modell Ihre Anweisungen nicht konsistent verfolgt, versuchen Sie, die Tastenanweisung am Ende der Eingabeaufforderung zu wiederholen.

Konfigurieren von Modellparametern

Über den Text Ihrer Eingabeaufforderungen hinaus können Sie Modellparameter anpassen, die steuern, wie das Modell Antworten generiert:

  • Temperatur: Steuert die Zufälligkeit der Ausgabe. Ein höherer Wert (z. B. 0,7) erzeugt kreativere und vielfältigere Antworten, während ein niedrigerer Wert (z. B. 0,2) fokussiertere und deterministische Antworten erzeugt. Verwenden Sie niedrigere Werte für faktenbezogene Aufgaben und höhere Werte für kreative Aufgaben.
  • Top_p: Steuert ebenfalls die Zufälligkeit, jedoch auf eine andere Weise. Es beschränkt das Modell auf eine Teilmenge der wahrscheinlichsten nächsten Token. Ein Wert von 0,9 bedeutet beispielsweise, dass das Modell nur die wahrscheinlichsten 90% der Token berücksichtigt.top_p

Tipp

Die allgemeine Empfehlung besteht darin, die Temperatur oder top_p anzupassen, nicht beide gleichzeitig.

Für das Szenario des Reisebüros können Sie eine niedrige Temperatur (0,2) verwenden, wenn Sie faktenbezogene Fragen zu Hotel-Annehmlichkeiten beantworten, aber eine höhere Temperatur (0,7) beim Generieren von kreativen Reiseroutenvorschlägen.

Wenn das Prompt Engineering ausreichend ist

Prompt Engineering ist der richtige Ausgangspunkt für jeden Modelloptimierungsaufwand. Es ist effektiv, wenn Sie Folgendes tun müssen:

  • Leiten Sie den Ton, das Format und das Verhalten des Modells.
  • Geben Sie bestimmte Anweisungen für einen Vorgang an.
  • Schnelles Durchlaufen von Ergebnissen ohne Infrastrukturänderungen.
  • Halten Sie die Kosten niedrig, da keine zusätzlichen Schulungen oder Daten storage erforderlich sind.

Das Prompt Engineering hat jedoch Grenzen. Wenn das Modell nicht über access zu den benötigten Informationen verfügt (z. B. dem Hotelkatalog Ihres Unternehmens), oder wenn das Modell trotz detaillierter Anweisungen immer ein bestimmtes Verhalten nicht beibehalten kann, müssen Sie zusätzliche Strategien in Betracht ziehen.