Entwerfen des Prompts - 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 des Prompts

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

Beispiel für einen guten Aufbau des Prompts mit beschreibenden Kommentaren

(Quelle: Prompt geschrieben von AWS)

Nachfolgend finden Sie Anleitungen zum Erstellen erfolgreicher Prompts.

Geben Sie einfache, klare und vollständige Anweisungen.

LLMs bei 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 den Prompt 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 des Prompts: Wikipedia zum Thema Farbenblindheit, verwendetes Modell: Titan Text G1 – Express)

Platzieren der Frage oder Anweisung am Ende des Prompts für optimale Ergebnisse

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 des Prompts 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 des Prompts: Wikipedia zum Thema 1. Weltkrieg, verwendetes Modell: Amazon Titan Text)

Verwenden von Trennzeichen für API-Aufrufe

Verwenden Sie Trennzeichen für API-Aufrufe.

Trennzeichen wie \n können die Leistung von LLMs erheblich beeinträchtigen. Bei Anthropic-Claude-Modellen ist es notwendig, bei der Formatierung der API-Aufrufe Zeilenumbrüche einzufügen, um die gewünschten Antworten zu erhalten. Die Formatierung sollte immer wie folgt aussehen: \n\nHuman: {{Query Content}}\n\nAssistant:. Bei Titan-Modellen trägt das Hinzufügen von \n am Ende eines Prompts zur Verbesserung der Modellleistung bei. Für Klassifizierungsaufgaben oder Fragen mit Antwortoptionen können Sie die Antwortoptionen bei Titan-Modellen auch durch \n trennen. 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 Beispiel zeigt, wie das Vorhandensein von Zeilenumbruchzeichen zwischen Antwortmöglichkeiten und am Ende eines Prompts Titan dabei hilft, die gewünschte Antwort zu geben.

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 des Prompts: Wikipedia zum Thema Archimedes, verwendetes Modell: Amazon Titan Text)

Verwenden von 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 einen Prompt 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 des Prompts: Wikipedia zum Thema Charles Mingus, verwendetes Modell: Amazon Titan Text)

Hier finden Sie einige zusätzliche Beispiele aus den Anthropic-Claude- und AI21 Labs-Jurassic-Modellen, die Output-Indikatoren verwenden.

Das folgende Beispiel zeigt, dass Benutzer das Ausgabeformat angeben können, indem sie das erwartete Ausgabeformat im Prompt festlegen. Wenn das Modell aufgefordert wird, eine Antwort in einem bestimmten Format zu erstellen (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 des Prompts: Wikipedia zum Thema Machine Learning, verwendetes Modell: Anthropic Claude)

Das folgende Beispiel zeigt einen Prompt und eine Antwort für das 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 des Prompts: Wikipedia zum Thema National Football League, verwendetes Modell: AI21 Labs Jurassic-2 Ultra v1)

Best Practices für eine gute Generalisierung

Bewahren Sie einen kleinen Testsatz von Prompts 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 den Prompt, anhand derer Sie verschiedene Änderungen am Prompt ausprobieren und sich die Änderungen der Modellantworten ansehen können. Auf diese Weise können Sie den Prompt finden, der am besten funktioniert. Behandeln Sie den „Testdatensatz“ als unsichtbare Ausschlussdaten, die nur zur Überprüfung des am besten geeigneten endgültigen Prompts verwendet werden können.

Optimieren der Prompts 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, die entsprechende Ausgabe 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)

Damit das Anthropic-Claude-Modell komplexe Aufgaben ausführen kann, 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 den Anthropic-Claude-Leitfäden.

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: AnthropicClaude)

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 Zuverlässigkeit aufweist.

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

Wenn Sie Beispiele (Eingabe-Antwort-Paare) in die Aufforderung aufnehmen, können Sie 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, den Prompt mit Modifikatoren zu verfeinern

Das Verfeinern von Aufgabenanweisungen bezieht sich im Allgemeinen auf das Ändern der Anweisung, Aufgabe oder Frage im Prompt. 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

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

Steuern der Modellantwort mit Inferenzparametern

LLMs auf Amazon Bedrock verfügen alle über mehrere Inferenzparameter, die Sie festlegen können, um die Reaktion der Modelle zu steuern. 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 Antworten LLMs. 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 Prompts haben wir temperature = 0 festgelegt.

Die maximale Generierung length/maximum neuer Token begrenzt die Anzahl der Token, die das LLM für jede Aufforderung generiert. 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.

Die token/end Endsequenz gibt das Token an, das das LLM verwendet, 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 verfügen über einen zusätzlichen Top-K-Inferenzparameter und AI21 Labs-Jurassic-Modelle über eine Reihe von Hyperparametern, darunter Präsenzstrafe, Zählerstrafe, Frequenzstrafe und Strafe für spezielle Token. Weitere Informationen finden Sie in der entsprechenden Dokumentation.