Schreiben effektiverer Eingabeaufforderungen

Abgeschlossen

Azure OpenAI-Modelle sind in der Lage, Antworten auf Abfragen in natürlicher Sprache mit bemerkenswerter Genauigkeit zu generieren. Die Qualität der Antworten hängt jedoch weitgehend davon ab, wie gut die Eingabeaufforderung geschrieben ist. Entwickler können die Leistung von Azure OpenAI-Modellen optimieren, indem sie verschiedene Techniken in ihren Eingabeaufforderungen verwenden, was zu genaueren und relevanteren Antworten führt.

Bereitstellen klarer Anweisungen

Das Azure OpenAI-Modell eindeutig nach dem gewünschten Ergebnis zu fragen, ist eine Möglichkeit, die gewünschten Ergebnisse zu erzielen. Je genauer die Beschreibung ist, desto besser kann das Modell eine Antwort generieren, die am besten dem entspricht, wonach Sie suchen.

Angenommen, Sie möchten eine Produktbeschreibung für eine neue Wasserflasche erstellen. Betrachten Sie die Antworten, die den einzelnen Eingabeaufforderungen zugeordnet sind:

Eingabeaufforderung

Write a product description for a new water bottle

Antwort

Introducing the latest addition to our product line - the innovative and eco-friendly water bottle.
Made from high-quality, BPA-free materials, this bottle is designed to keep your beverages at the
perfect temperature for hours. Its sleek and stylish design makes it the perfect accessory for any
outdoor activity or workout session. With its convenient carrying handle and leak-proof lid, you 
can take it with you wherever you go, without worrying about spills or leaks. Plus, its easy-to-clean
design ensures that you can use it again and again, making it the perfect choice for anyone looking 
for a reliable and sustainable water bottle.

Im Gegensatz zu einer ähnlichen Eingabeaufforderung mit klaren Anweisungen.

Eingabeaufforderung

Write a product description for a new water bottle that is 100% recycled. Be sure to include that
it comes in natural colors with no dyes, and each purchase removes 10 pounds of plastic from our 
oceans

Antwort

Introducing our newest water bottle, the eco-friendly choice for the conscious consumer. Made from 
100% recycled materials and available in natural colors with no dyes, this bottle is not only 
stylish but also sustainable. Each purchase of this bottle removes 10 pounds of plastic from 
our oceans, making it a responsible choice for those who care about the environment. Its durable 
and leak-proof design makes it perfect for outdoor activities, while its easy-to-carry handle 
makes it convenient to take on the go. Join us in our mission to reduce plastic waste and choose 
this eco-friendly water bottle for your daily hydration needs.

Durch das Einschließen von Besonderheiten, die eingeschlossen werden müssen, weiß das Modell, welche Informationen der Beschreibung hinzugefügt werden sollen, sodass es für das neue Produkt genauer ist.

Diese Methode kann so extrapoliert werden, dass komplexe Anweisungen eingeschlossen werden, z. B. eine Aufzählungsliste der einzuschließenden Details, die Länge der Antwort oder die gewünschten Formate, die in die Ausgabe eingeschlossen werden sollen. Versuchen Sie, genau nach dem zu fragen, was Sie im Ergebnis sehen möchten, und Sie werden überrascht sein, wie gut das Modell Ihre Anforderung erfüllt.

Format der Anweisungen

Die Formatierung von Anweisungen kann sich auf die Interpretation der Eingabeaufforderung durch das Modell auswirken. Der Rezenzeffekt kann sich auf Modelle auswirken, wobei Informationen, die sich am Ende der Eingabeaufforderung befinden, mehr Einfluss auf die Ausgabe haben können als Informationen am Anfang. Möglicherweise erhalten Sie bessere Antworten, indem Sie die Anweisungen am Ende der Eingabeaufforderung wiederholen und bewerten, wie sich dies auf die generierte Antwort auswirkt.

Dieser Rezenzeffekt kann auch bei der Verwendung von ChatCompletion in einem Chatszenario zum Tragen kommen, in dem neuere Nachrichten in der Unterhaltung, die in der Eingabeaufforderung enthalten sind, einen größeren Einfluss auf die Antwort haben. In der nächsten Lerneinheit geht es ausführlicher um die Verwendung von Unterhaltungen, um die Antwortqualität zu verbessern, aber wichtige Informationen näher am Ende der Eingabeaufforderung zu platzieren, kann zu einer besseren Antwort führen.

Verwenden von Abschnittsmarkierungen

Eine spezielle Technik der Formatierung von Anweisungen besteht darin, die Anweisungen am Anfang oder Ende der Eingabeaufforderung aufzuteilen und den enthaltenen Benutzerinhalt in ---- oder ###-Blöcken unterzubringen. Mit diesen Tags kann das Modell klarer zwischen Anweisungen und Inhalten unterscheiden. Beispiel:

Translate the text into French

---
What's the weather going to be like today?
---

Hinweis

Bewährte Methoden für Abschnittsmarker können sich mit zukünftigen Versionen ändern.

Primärer, unterstützender und Basisinhalt

Das Einschließen von Inhalten, die das Modell zum Antworten verwenden soll, ermöglicht ihm, mit höherer Genauigkeit zu antworten. Diese Inhalte lassen sich in zwei Arten unterscheiden: primärer und unterstützender Inhalt.

Primärer Inhalt bezieht sich auf Inhalte, die Gegenstand der Abfrage sind, z. B. einen zu übersetzenden Satz oder zusammenzufassenden Artikel. Dieser Inhalt wird häufig am Anfang oder Ende der Eingabeaufforderung eingeschlossen (als Anweisung und unterschieden nach ----Blöcken), mit Anweisungen, die erklären, was damit zu tun ist.

Angenommen, wir möchten einen langen Artikel zusammenfassen. Wir könnten ihn in der Eingabeaufforderung in einen ----Block einfügen und dann die Anweisung beenden.

---
<insert full article here, as primary content>
---

Summarize this article and identify three takeaways in a bulleted list

Unterstützende Inhalte sind Inhalte, die die Antwort ändern können, aber nicht im Fokus oder Gegenstand der Eingabeaufforderung sind. Beispiele für unterstützende Inhalte sind z. B. Namen, Präferenzen, zukünftige Datumsangaben, die in die Antwort aufgenommen werden sollen, usw. Die Bereitstellung unterstützender Inhalte ermöglicht dem Modell, vollständiger und genauer zu antworten und die gewünschten Informationen mit höherer Wahrscheinlichkeit einzuschließen.

Das Modell kann beispielsweise aus einer sehr langen Werbe-E-Mail wichtige Informationen extrahieren. Wenn Sie dann der Eingabeaufforderung unterstützende Inhalte mit bestimmten Angaben zu dem hinzufügen, nach dem Sie suchen, kann das Modell eine nützlichere Antwort liefern. In diesem Fall ist die E-Mail der primäre Inhalt, und die bestimmten Angaben dessen, woran Sie interessiert sind, sind unterstützender Inhalt.

---
<insert full email here, as primary content>
---
<the next line is the supporting content>
Topics I'm very interested in: AI, webinar dates, submission deadlines

Extract the key points from the above email, and put them in a bulleted list:

Basisinhalt ermöglicht dem Modell, zuverlässige Antworten zu liefern, indem damit Inhalte bereitgestellt werden, aus denen das Modell Antworten extrahieren kann. Basisinhalt können ein Essay oder Artikel sein, zu dem Sie dann Fragen stellen, ein FAQ-Dokument des Unternehmens oder Informationen, die aktueller sind als das Datum, zu dem das Modell trainiert wurde. Wenn Sie zuverlässigere und aktuelle Antworten benötigen oder auf nicht veröffentlichte oder bestimmte Informationen verweisen müssen, wird Basisinhalt dringend empfohlen.

Basisinhalt unterscheidet sich vom primären Inhalt darin, dass er die Informationsquelle für die Beantwortung der Eingabeaufforderungs-Abfrage ist, und nicht der Inhalt, der für Zusammenfassung, Übersetzung oder Ähnliches verwendet wird. Wird beispielsweise eine unveröffentlichte wissenschaftliche Arbeit zur Geschichte der KI bereitgestellt, kann das Modell Fragen mithilfe dieses Basisinhalts beantworten.

---
<insert unpublished paper on the history of AI here, as grounding content>
---

Where and when did the field of AI start?

Diese Basisinhaltdaten ermöglichen dem Modell, genauere und fundiertere Antworten zu geben, die möglicherweise nicht Teil des Datasets sind, mit dem es trainiert wurde.

Hinweise

Hinweise sind Leitwörter, auf denen das Modell aufbauen kann, und helfen oft, die Antwort in die richtige Richtung zu lenken. Sie werden häufig mit Anweisungen verwendet, aber nicht immer. Hinweise sind besonders hilfreich, wenn das Modell zur Codegenerierung aufgefordert wird. Aktuelle Azure OpenAI-Modelle können einige interessante Codeschnipsel generieren, aber die Codegenerierung wird in einem zukünftigen Modul ausführlicher behandelt.

Wenn Sie z. B. Hilfe zum Erstellen einer SQL-Abfrage benötigen, geben Sie zusammen mit dem Anfang der Abfrage Anweisungen zu dem an, was Sie benötigen:

Write a join query to get customer names with purchases in the past 30 days between tables named orders and customer on customer ID. 

SELECT

Die Antwort des Modells macht dort weiter, wo die Eingabeaufforderung aufgehört hat, und zwar in SQL, auch wenn wir nie nach einer bestimmten Sprache gefragt haben. Ein anderes Beispiel wäre die Hilfe bei Python-Code, indem Codekommentare zur gewünschten App angegeben und import als Leitwort am Ende der Eingabeaufforderung eingeschlossen werden, oder Ähnliches in Ihrer gewünschten Sprache.

Ein weiteres Beispiel mit einer großen Sammlung von Kundenbewertungen in einer Eingabeaufforderung und endend mit:

Summarize the reviews above:
Most common complaints:
- 

Das Modell weiß dann, wie die Anweisungen basierend auf dem in den Bewertungen bereitgestellten Kontext zu vervollständigen sind.