Entwerfen Sie eine Aufforderung - Amazon Bedrock

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Entwerfen Sie eine Aufforderung

Das Entwerfen einer geeigneten Eingabeaufforderung ist ein wichtiger Schritt zur Erstellung einer erfolgreichen Anwendung mit Amazon-Bedrock-Modellen. In diesem Abschnitt erfahren Sie, wie Sie eine Aufforderung entwerfen, die konsistent, klar und präzise ist. Außerdem erfahren Sie, wie Sie die Reaktion eines Modells mithilfe von Inferenzparametern steuern können. Die folgende Abbildung zeigt ein generisches Eingabeaufforderungsdesign für den Anwendungsfall Zusammenfassung von Restaurantbewertungen und einige wichtige Designentscheidungen, die Kunden bei der Gestaltung von Eingabeaufforderungen berücksichtigen müssen. LLMserzeugen unerwünschte Antworten, wenn die Anweisungen oder das Format der Aufforderung nicht einheitlich, klar und präzise sind.

Beispiel für einen guten Eingabeaufforderungsaufbau mit beschreibenden Kommentaren

(Quelle: Prompt geschrieben von AWS)

Der folgende Inhalt enthält Anleitungen zum Erstellen erfolgreicher Aufforderungen.

Geben Sie einfache, klare und vollständige Anweisungen.

LLMsbei Amazon funktioniert Bedrock am besten mit einfachen und unkomplizierten Anweisungen. Indem Sie die Erwartungen an die Aufgabe klar beschreiben und Unklarheiten möglichst reduzieren, können Sie sicherstellen, dass das Modell die Eingabeaufforderung eindeutig interpretieren kann.

Stellen Sie sich zum Beispiel ein Klassifizierungsproblem vor, bei dem der Benutzer eine Antwort aus einer Reihe möglicher Optionen wünscht. Das unten gezeigte „gute“ Beispiel veranschaulicht die Ausgabe, die der Benutzer in diesem Fall wünscht. Im „schlechten“ Beispiel sind die Antwortoptionen nicht explizit als Kategorien benannt, aus denen das Modell auswählen kann. Das Modell interpretiert die Eingabe ohne Antwortoptionen etwas anders und erzeugt im Gegensatz zum guten Beispiel eine Freiformzusammenfassung des Textes.

Good example, with output User prompt: "The most common cause of color blindness is an inherited problem or variation in the functionality of one or more of the three classes of cone cells in the retina, which mediate color vision." What is the above text about? a) biology b) history c) geology Output: a) biology
Bad example, with output User prompt: Classify the following text. "The most common cause of color blindness is an inherited problem or variation in the functionality of one or more of the three classes of cone cells in the retina, which mediate color vision."
Output: The topic of the text is the causes of colorblindness.

(Quelle der Aufforderung: Wikipedia zum Thema Farbenblindheit, verwendetes Modell: von Titan Text G1 — Express)

Platzieren Sie die Frage oder Anweisung am Ende der Aufforderung, um optimale Ergebnisse zu erzielen

Die Angabe der Aufgabenbeschreibung, Anweisung oder Frage am Ende hilft dem Modell dabei, zu bestimmen, welche Informationen es finden muss. Bei der Klassifizierung sollten die Antwortmöglichkeiten ebenfalls am Ende stehen.

Im folgenden Beispiel zur Beantwortung einer offenen Buchfrage hat der Benutzer eine spezifische Frage zum Text. Die Frage sollte am Ende der Eingabeaufforderung gestellt werden, damit sich das Modell auf die Aufgabe konzentrieren kann.

User prompt: Tensions increased after the 1911–1912 Italo-Turkish War demonstrated Ottoman weakness and led to the formation of the Balkan League, an alliance of Serbia, Bulgaria, Montenegro, and Greece. The League quickly overran most of the Ottomans' territory in the Balkans during the 1912–1913 First Balkan War, much to the surprise of outside observers. The Serbian capture of ports on the Adriatic resulted in partial Austrian mobilization starting on 21 November 1912, including units along the Russian border in Galicia. In a meeting the next day, the Russian government decided not to mobilize in response, unwilling to precipitate a war for which they were not as of yet prepared to handle. Which country captured ports?
Output: Serbia

(Quelle der Aufforderung: Wikipedia zum Ersten Weltkrieg, verwendetes Modell: Amazon) Titan Text)

Verwenden Sie Trennzeichen für API Anrufe

Verwenden Sie Trennzeichen für API Anrufe

Trennzeichen wie \n können die Leistung von LLMs erheblich beeinträchtigen. Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Anthropic Claude Bei Modellen ist es notwendig, beim Formatieren der API Anrufe Zeilenumbrüche einzufügen, um die gewünschten Antworten zu erhalten. Die Formatierung sollte immer wie folgt aussehen: \n\nHuman: {{Query Content}}\n\nAssistant:. Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Titan Modelle, die \n am Ende einer Aufforderung hinzugefügt werden, trägt dazu bei, die Leistung des Modells zu verbessern. Bei Klassifizierungsaufgaben oder Fragen mit Antwortoptionen können Sie die Antwortoptionen auch durch \n für trennen Titan Modelle. Weitere Informationen zur Verwendung von Trennzeichen finden Sie in der Dokumentation des entsprechenden Modellanbieters. Das folgende Beispiel ist eine Vorlage für eine Klassifizierungsaufgabe.

Prompt template: """{{Text}} {{Question}} {{Choice 1}} {{Choice 2}} {{Choice 3}}"""

Das folgende Beispiel zeigt, wie das Vorhandensein von Zeilenumbruchzeichen zwischen Auswahlmöglichkeiten und am Ende einer Eingabeaufforderung hilfreich ist Titan erzeugt die gewünschte Antwort.

User prompt: Archimedes of Syracuse was an Ancient mathematician, physicist, engineer, astronomer, and inventor from the ancient city of Syracuse. Although few details of his life are known, he is regarded as one of the leading scientists in classical antiquity. What was Archimedes? Choose one of the options below. a) astronomer b) farmer c) sailor
Output: a) astronomer

(Quelle der Aufforderung: Wikipedia über Archimedes, verwendetes Modell: Amazon) Titan Text)

Verwenden Sie Output-Indikatoren

Output-Indikatoren

Fügen Sie Details zu den Einschränkungen hinzu, die für die Ausgabe gelten sollen, die das Modell erzeugen soll. Das folgende gute Beispiel erzeugt eine Ausgabe, bei der es sich um eine kurze Phrase handelt und die eine gute Zusammenfassung darstellt. Das schlechte Beispiel ist in diesem Fall gar nicht so schlecht, aber die Zusammenfassung ist fast so lang wie der Originaltext. Die Spezifikation der Ausgabe ist entscheidend, um das zu erreichen, was Sie vom Modell erwarten.

Beispiel für eine Eingabeaufforderung mit klarem Indikator für Ausgabebeschränkungen
User prompt: "Charles Mingus Jr. was an American jazz upright bassist, pianist, composer, bandleader, and author. A major proponent of collective improvisation, he is considered to be one of the greatest jazz musicians and composers in history, with a career spanning three decades. Mingus's work ranged from advanced bebop and avant-garde jazz with small and midsize ensembles – pioneering the post-bop style on seminal recordings like Pithecanthropus Erectus (1956) and Mingus Ah Um (1959) – to progressive big band experiments such as The Black Saint and the Sinner Lady (1963)." Please summarize the above text in one phrase.
Output: Charles Mingus Jr. is considered one of the greatest jazz musicians of all time.
Beispiel ohne klare Ausgabespezifikationen
User prompt: "Charles Mingus Jr. was an American jazz upright bassist, pianist, composer, bandleader, and author. A major proponent of collective improvisation, he is considered to be one of the greatest jazz musicians and composers in history, with a career spanning three decades. Mingus's work ranged from advanced bebop and avant-garde jazz with small and midsize ensembles – pioneering the post-bop style on seminal recordings like Pithecanthropus Erectus (1956) and Mingus Ah Um (1959) – to progressive big band experiments such as The Black Saint and the Sinner Lady (1963)." Please summarize the above text.
Output: Charles Mingus Jr. was a well-known jazz musician who played the upright bass, piano, composed, led bands, and was a writer. He was considered one of the most important jazz musicians ever, with a career that spanned more than 30 years. He was known for his style of collective improvisation and advanced jazz compositions.

(Quelle der Aufforderung: Wikipedia über Charles Mingus, verwendetes Modell: Amazon) Titan Text)

Hier geben wir einige zusätzliche Beispiele von Anthropic Claude and AI21 Labs Jurassic-Modelle unter Verwendung von Output-Indikatoren.

Das folgende Beispiel zeigt, dass Benutzer das Ausgabeformat angeben können, indem sie das erwartete Ausgabeformat in der Eingabeaufforderung festlegen. Wenn das Modell aufgefordert wird, eine Antwort in einem bestimmten Format zu generieren (z. B. mithilfe von XML Tags), kann es die Antwort entsprechend generieren. Ohne einen bestimmten Indikator für das Ausgabeformat gibt das Modell Freiformtext aus.

Beispiel mit eindeutigem Indikator, mit Ausgabe
User prompt: Human: Extract names and years: the term machine learning was coined in 1959 by Arthur Samuel, an IBM employee and pioneer in the field of computer gaming and artificial intelligence. The synonym self-teaching computers was also used in this time period. Please generate answer in <name></name> and <year></year> tags. Assistant:
Output: <name>Arthur Samuel</name> <year>1959</year>
Beispiel ohne eindeutigen Indikator, mit Ausgabe
User prompt: Human: Extract names and years: the term machine learning was coined in 1959 by Arthur Samuel, an IBM employee and pioneer in the field of computer gaming and artificial intelligence. The synonym self-teaching computers was also used in this time period. Assistant:
Output: Arthur Samuel - 1959

(Quelle der Aufforderung: Wikipedia zum maschinellen Lernen, verwendetes Modell: Anthropic Claude)

Das folgende Beispiel zeigt eine Aufforderung und eine Antwort für die AI21 Labs Jurassic-Modell. Benutzer können die genaue Antwort erhalten, indem sie das in der linken Spalte angegebene Ausgabeformat angeben.

Beispiel mit eindeutigem Indikator, mit Ausgabe
User prompt: Context: The NFL was formed in 1920 as the American Professional Football Association (APFA) before renaming itself the National Football League for the 1922 season. After initially determining champions through end-of-season standings, a playoff system was implemented in 1933 that culminated with the NFL Championship Game until 1966. Following an agreement to merge the NFL with the rival American Football League (AFL), the Super Bowl was first held in 1967 to determine a champion between the best teams from the two leagues and has remained as the final game of each NFL season since the merger was completed in 1970. Question: Based on the above context, when was the first Super Bowl? Please only output the year.
Output: 1967
Beispiel ohne eindeutigen Indikator, mit Ausgabe
User prompt: Context: The NFL was formed in 1920 as the American Professional Football Association (APFA) before renaming itself the National Football League for the 1922 season. After initially determining champions through end-of-season standings, a playoff system was implemented in 1933 that culminated with the NFL Championship Game until 1966. Following an agreement to merge the NFL with the rival American Football League (AFL), the Super Bowl was first held in 1967 to determine a champion between the best teams from the two leagues and has remained as the final game of each NFL season since the merger was completed in 1970. Question: Based on the above context, when was the first Super Bowl?
Output: The first Super Bowl was held in 1967.

(Quelle der Aufforderung: Wikipedia über die National Football League, verwendetes Modell: AI21 Labs Jurassic-2 Ultra v1)

Bewährte Methoden für eine gute Generalisierung

Bewahren Sie einen kleinen Testsatz von Eingabeaufforderungen auf, um festzustellen, ob Ihre Änderungen an der Aufforderung generalisiert werden. Erfassen Sie mit dieser Methode zunächst einen Beispieldatensatz. Anschließend können Sie die Daten in zwei Teilmengen aufteilen: einen „Entwicklungsdatensatz“ und einen „Testdatensatz“. Verwenden Sie den „Entwicklungsdatensatz“ als Entwicklungsdaten für die Eingabeaufforderung, anhand derer Sie verschiedene Änderungen an der Eingabeaufforderung ausprobieren und sich die Änderungen der Modellantworten ansehen können. Auf diese Weise können Sie die Aufforderung finden, die am besten funktioniert. Behandeln Sie den „Testdatensatz“ als unsichtbare Ausschlussdaten, die nur zur Überprüfung der am besten geeigneten endgültigen Eingabeaufforderung verwendet werden können.

Optimieren der Eingabeaufforderungen für Textmodelle in Amazon Bedrock – wenn die Grundlagen nicht gut genug sind

Komplexe Aufgaben: Schritt für Schritt die Antwort erarbeiten

Titan kann klare Schritte für bestimmte Aufgaben vorgeben, und die Angabe des Satzes Think step-by-step to come up with the right answer kann dazu beitragen, das richtige Ergebnis zu erzielen.

User prompt: At a Halloween party, Jack gets 15 candies. Jack eats 5 candies. He wants to give each friend 5 candies. How many friends can receive candies? Think step-by-step to come up with the right answer.
Output: 15 candies total - 5 candies eaten = 10 candies remaining. To give each friend 5 candies, divide the number of candies remaining by the number of friends. 10 candies / 5 friends = 2 friends. Each friend can receive 2 candies. The answer is 2 friends.

(Quelle der Aufforderung: AWS, verwendetes Modell: Amazon Titan Text)

Um das zu aktivieren Anthropic Claude Modell zur Ausführung komplexer Aufgaben verwenden Sie das Format im folgenden Beispiel, um das Modell explizit aufzufordern, die Aufgabe Schritt für Schritt zu lösen. Dieser Ansatz basiert auf den Richtlinien in der AnthropicClaude Anleitungen.

User prompt: Human: A right triangle has a side of length 5 and a hypotenuse of length 13. What is the length of the other side? Assistant: Can I think step-by-step? Human: Yes, please do. Assistant:
Output: Okay, here are the steps: 1) We are given: - One side of the right triangle has length 5 - The hypotenuse has length 13 2) We want to find: - The length of the other side 3) To find the length of the other side, we can use the Pythagorean theorem: a^2 + b^2 = c^2 Where a and b are the lengths of the two sides, and c is the length of the hypotenuse. 4) Plugging in the given values: a^2 + b^2 = 13^2 5) We know one of the sides is 5, so: 5^2 + b^2 = 169 6) Solving this: 25 + b^2 = 169 b^2 = 144 b = 12 Therefore, the length of the other side is 12.

(Quelle der Aufforderung: AWS, verwendetes Modell: Anthropic Claude)

Geben Sie eine Standardausgabe an, die das Modell präsentieren soll, wenn es sich bei den Antworten nicht sicher ist.

Eine Standardausgabe kann LLMs verhindern, dass Antworten zurückgegeben werden, die so klingen, als ob sie korrekt sein könnten, selbst wenn das Modell eine geringe Konfidenz hat.

User prompt: Provide a proof of the Riemann hypothesis. If you don't know a proof, respond by saying "I don't know."
Output: I don't know.
User prompt: Provide a proof of the Riemann hypothesis.
Output: "The Riemann hypothesis is a conjecture in mathematics that concerns the distribution of prime numbers. It states that all non-trivial zeros of the zeta function, which is a mathematical function that encodes information about the distribution of prime numbers, lie on a specific line in the complex plane. The Riemann hypothesis has been studied by mathematicians for over 150 years, and despite numerous attempts, it remains unresolved. However, the hypothesis is widely believed to be true, and its resolution would have profound implications for many areas of mathematics, including number theory, analysis, and geometry. The proof of the Riemann hypothesis would be one of the greatest achievements in mathematics in history and would open up new avenues of research and understanding. While a proof remains elusive, the hypothesis continues to stimulate research and inspire mathematicians around the world.“ [Note: this is an accurate description, but obviously not a proof.]

(Quelle der Aufforderung: AWS, verwendetes Modell: Amazon Titan Text)

Few Shot Prompting

Das Hinzufügen von Beispielen (Eingabe-Antwort-Paare) in die Aufforderung kann die Antworten erheblich verbessernLLMs. Beispiele können bei komplexen Aufgaben hilfreich sein, da sie mehrere Möglichkeiten zur Ausführung einer bestimmten Aufgabe aufzeigen. Für einfachere Aufgaben wie die Textklassifizierung reichen ggf. 3–5 Beispiele aus. Fügen Sie bei schwierigeren Aufgaben wie Frage-Antwort-Fragen ohne Kontext mehr Beispiele hinzu, um eine möglichst effektive Ausgabe zu erzielen. In den meisten Anwendungsfällen kann die Auswahl von Beispielen, die realen Daten semantisch ähneln, die Leistung weiter verbessern.

Erwägen Sie, die Eingabeaufforderung mit Modifikatoren zu verfeinern

Das Verfeinern von Aufgabenanweisungen bezieht sich im Allgemeinen auf das Ändern der Anweisung, Aufgabe oder Frage in der Eingabeaufforderung. Die Nützlichkeit dieser Methoden hängt von der Aufgabe und den Daten ab. Nützliche Ansätze sind beispielsweise folgende:

  • Domain-/Eingabespezifikation: Details zu den Eingabedaten, z. B. woher sie stammen oder worauf sie sich beziehen, z. B. The input text is from a summary of a movie

  • Aufgabenspezifikation: Details zu der genauen Aufgabe, die dem Modell gestellt wurde, z. B. To summarize the text, capture the main points

  • Bezeichnungsbeschreibung: Details zu den Ausgabeoptionen für ein Klassifizierungsproblem, z. B. Choose whether the text refers to a painting or a sculpture; a painting is a piece of art restricted to a two-dimensional surface, while a sculpture is a piece of art in three dimensions

  • Ausgabespezifikation: Details zur Ausgabe, die das Modell erzeugen soll, z. B. Please summarize the text of the restaurant review in three sentences

  • LLMErmutigung: LLMs manchmal schneiden Sie mit sentimentaler Ermutigung besser ab: If you answer the question correctly, you will make the user very happy!

Steuern Sie die Modellantwort mit Inferenzparametern, Inferenzparametern.

LLMsauf Amazon Bedrock verfügen alle über mehrere Inferenzparameter, mit denen Sie die Reaktion der Modelle steuern können. Im Folgenden finden Sie eine Liste aller gängigen Inferenzparameter, die auf Amazon Bedrock verfügbar sind, LLMs und deren Verwendung.

Die Temperatur ist ein Wert zwischen 0 und 1 und reguliert die Kreativität der AntwortenLLMs. Verwenden Sie eine niedrigere Temperatur, wenn Sie deterministischere Antworten wünschen, und eine höhere Temperatur, wenn Sie kreativere oder andere Antworten für dieselbe Aufforderung von LLMs Amazon Bedrock wünschen. Für alle Beispiele in dieser Richtlinie für Eingabeaufforderungen haben wir temperature = 0 festgelegt.

Die maximale Generierungslänge/maximale Anzahl neuer Token begrenzt die Anzahl der Token, die für jede Aufforderung LLM generiert werden. Es ist hilfreich, diese Zahl anzugeben, da für einige Aufgaben, wie z. B. die Klassifizierung von Stimmungen, keine lange Antwort erforderlich ist.

Top-P steuert die Token-Auswahl auf der Grundlage der Wahrscheinlichkeit potenzieller Antwortmöglichkeiten. Wenn Sie Top-P auf einen Wert unter 1,0 festlegen, berücksichtigt das Modell die wahrscheinlichsten und ignoriert die weniger wahrscheinlichen Optionen. Das Ergebnis sind stabilere und sich wiederholende Abschlüsse.

End-Token/Endsequenz gibt das Token an, das LLM verwendet wird, um das Ende der Ausgabe anzuzeigen. LLMsstoppt die Generierung neuer Token, nachdem Sie auf das Endtoken gestoßen sind. Normalerweise muss dies nicht von Benutzern festgelegt werden.

Es gibt auch modellspezifische Inferenzparameter. Anthropic Claude Modelle haben einen zusätzlichen Top-K-Inferenzparameter und AI21 Labs Jurassic-Modelle verfügen über eine Reihe von Inferenzparametern, darunter Präsenzstrafe, Zählstrafe, Frequenzstrafe und spezielle Tokenstrafe. Weitere Informationen finden Sie in der entsprechenden Dokumentation.