View a markdown version of this page

Fortgeschrittene Themen und Strategien - 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.

Fortgeschrittene Themen und Strategien

Themen auf dieser Seite

Multi-objective Optimierung

Advanced Prompt Optimization akzeptiert eine Metrik pro Lauf — einen einzelnen Skalarwert pro Stichprobe. Es unterstützt jedoch implizit die Optimierung mit mehreren Zielen (mehrdimensional): Sie können mehrere Ziele in einem Skalar (einer zusammengesetzten Metrik) bündeln, und der Service optimiert die Aufforderung anhand dieses Pakets. In diesem Abschnitt werden die von uns empfohlenen Muster behandelt, sofern jedes angemessen ist, und die Fehlerursachen, auf die Sie achten sollten.

Dies gilt für alle Branchen — überall dort, wo Ihnen mehr als eine Sache gleichzeitig wichtig ist: Genauigkeit + Ton, Korrektheit beim Geräteaufruf + Sicherheit, Treue + Prägnanz, Latenzfreundlichkeit + Vollständigkeit und mehr.

Warum eine Metrik eigentlich mehrere Ziele hat

Zwei Fakten über das System sorgen dafür, dass es funktioniert:

  • Die Metrik gibt einen einzelnen Gleitkommawert pro Stichprobe zurück. Die Optimierungsrückkopplungsschleife liest diesen Skalar als Optimierungssignal. Sie können es aus einer beliebigen Anzahl von Unterbewertungen unter der Haube berechnen.

  • Beide Metrik-Backends aggregieren bereits intern Teilwerte.

    • Die LLM-as-a-Judge Standardvorlage benotet nach drei Dimensionen (Genauigkeit der Antwort, Vollständigkeit der Antwort, Ausdrucksqualität), weist Gewichtungen zu und gibt eine einzelne Overall Punktzahl aus, die auf [0, 1] normalisiert ist. Benutzerdefinierte Kriterien werden in demselben Skalar zusammengeführt. Weitere Informationen finden Sie unter Benutzerdefiniert LLM-as-a-judge.

    • Lambda-/Custom-Code-Metriken geben eine Zahl zurück, und Sie steuern, wie sie berechnet wird — einschließlich aller Kombinationen von Unterzielen.

Bei „einer Metrik pro Lauf“ handelt es sich also um einen Vertrag über die Signalform, nicht um eine Begrenzung dessen, wofür Sie optimieren können.

Muster zur Bündelung mehrerer Ziele in einer einzigen Metrik

Wählen Sie eines aus, das darauf basiert, wie Ihre Ziele zueinander in Beziehung stehen.

Muster 1 — Gewichtete Summe (am häufigsten)

final = w₁·s₁ + w₂·s₂ + ... + wₖ·sₖ, wobei sich die Gewichte zu 1 summieren.

Einsatzgebiet: Ziele sind in etwa unabhängig und du kannst sie nach einer Rangfolge ordnen. Trade-offs sind akzeptabel — ein Ziel auf Kosten eines anderen zu verbessern ist in Ordnung, solange die Summe steigt.

Gewichte auswählen:

  • Gewichtung nach Wichtigkeit für den Nutzer, nicht nach Häufigkeit im Datensatz.

  • Fangen Sie grob an: 0.5 / 0.3 / 0.2 ist in Ordnung. Überstimmen Sie die Gewichte nicht — das ist ein separates Optimierungsproblem.

Beispiel (Agenten/ Werkzeugnutzung):

final = 0.5 * tool_correctness + 0.3 * answer_correctness + 0.2 * format_compliance

Muster 2 — Hard-fail Tore (sicherheitskritisch)

Definieren Sie ein oder mehrere Gating-Ziele. Wenn ein Tor fehlschlägt, ist der Punktestand 0 (oder ein Stockwerk), unabhängig vom Rest. Andernfalls ist der Punktestand die gewichtete Summe der verbleibenden Tore.

if not safety_check_passed: return 0.0 if wrong_tool_called_for_destructive_action: return 0.0 return 0.6 * accuracy + 0.4 * tone

Verwendungszweck: Mindestens ein Ziel ist nicht verhandelbar (PII-Leak, falsches Konto wurde geändert, verbotener Inhalt wird abgelehnt). Verwenden Sie diese Option immer dann, wenn eine Meldung mit der Aufschrift „durchschnittlich gut“ inakzeptabel ist, wenn auch nur gelegentlich die Sicherheitsleiste nicht erreicht wird.

Warum das besser ist als bloße Gewichtung: Mit Gewichten allein kann der Optimierer Sicherheit gegen Qualität eintauschen und trotzdem den Punktestand nach oben klettern. Ein Tor macht den Kompromiss durch die Konstruktion unmöglich.

Muster 3 — Einschränkung + Belohnung () Pareto-style

Wähle das wichtigste Ziel als Belohnung. Drücke den Rest als Einschränkungen aus, die, wenn sie verletzt werden, von der Belohnung abziehen (anstatt sie auf Null zu setzen).

reward = task_accuracy penalty = 0.0 if response_too_long: penalty += 0.1 if missed_required_disclosure: penalty += 0.2 return max(0.0, reward - penalty)

Verwendungszweck: Sie möchten, dass ein primäres Ziel den Anfang hat, aber weiche sekundäre Ziele sollten die Aufforderung trotzdem prägen. Weniger spröde als harte Tore, weniger zweideutig als gewichtete Summen.

Muster 4 — Lambda außen, LLM-as-a-Judge innen (empfohlen für unscharfe und strukturelle Mischungen)

Eine Lambda-Metrik berechnet deterministische Teilwerte (Regex, JSON-Parse, Schemavalidierung) und ruft eine LLM-as-a-Judge Unterbewertung für die unscharfen Teile (Ton, Treue, Hilfsbereitschaft) innerhalb der Lambda-Funktion auf. Sie fasst sie dann zu einem Skalar zusammen.

def compute_score(prompt, prediction, gold, ...): structural = grade_format_and_tools(prediction) # 0..1 from regex semantic = call_llm_judge(prediction, gold, criteria) # 0..1 from LLMJ if structural < 1.0 and is_safety_critical(prompt): return 0.0 return 0.6 * semantic + 0.4 * structural

Verwendungszweck: Ihre Ziele sind eine Mischung aus „leicht im Code zu testenden“ (Formate, Toolnamen, Länge, Vorhandensein von Zitaten) und „Es muss ein Modell zur Beurteilung vorliegen“ (Tonfall, Treue, Hilfsbereitschaft). Das ist oft einfacher, als eine einzige LLM-as-a-Judge Aufforderung zu bitten, ein einziges zusammengesetztes Ergebnis zu erstellen, da die deterministischen Teile nicht von Lauf zu Lauf abweichen.

Muster 5 — Multi-dimension LLM-as-a-Judge (kein Lambda)

Verwenden Sie den integrierten LLM-as-a-Judge Flow, optional mit einemcustomLLMJConfig.customLLMJPrompt, der Ihre eigenen Abmessungen und Gewichtungen definiert. Der Richter gibt Punktzahlen pro Dimension und eine ausOverall; das System analysiert Overall (oder berechnet den Durchschnitt der Dimensionen, falls sie Overall fehlen) in einen [0, 1] -Skalar.

Verwendungszweck: Alle Ihre Ziele sind semantisch/unscharf und Sie haben keine deterministischen Unterprüfungen. Am schnellsten zu verfassen. Achten Sie auf Abweichungen bei der Bewertung — lassen Sie denselben Datensatz zweimal erneut laufen und überprüfen Sie die Stabilität der Ergebnisse, bevor Sie ihm als Optimierungssignal vertrauen.

Ein Muster auswählen

# Du hast... Verwenden Sie
1 2—4 Fuzzy-Ziele, alle semantisch Muster 5 (mehrdimensional) LLM-as-a-Judge
2 2—4 Ziele, die Struktur und Semantik vermischen Muster 4 (Lambda außen + innen) LLM-as-a-Judge
3 Mindestens ein nicht safety/correctness verhandelbares Kriterium Muster 2 (Hard-Fail-Gate) — kombiniere es mit 1 oder 4
4 Ein klares primäres Ziel + weiche Präferenzen Muster 3 (Einschränkung + Belohnung)
5 Mehrere in etwa gleich große unabhängige Ziele Muster 1 (gewichtete Summe)

Sie können Muster kombinieren. Eine typische Produktionskennzahl lautet: „Gewichtete Summe plus eine harte Fehlschwelle in Bezug auf die Sicherheit“.

Fehlermodi, auf die Sie achten sollten

  • Belohnen Sie das Hacken auf der Oberfläche. Wenn Ihre Unterbewertung „enthielt die Antwort das Wort ‚sicher'“ lautet, schreibt der Optimierer in jede Ausgabe Eingabeaufforderungen, die „sicher“ erzwingen. Bevorzugen Sie ergebnisorientierte Unterbewertungen (Toolname, Slot-Wert, strukturelle Gültigkeit) gegenüber dem Vorhandensein von Schlüsselwörtern.

  • Richten Sie Ihre Meinung ein. Eine mehrdimensionale LLM-as-a-Judge Metrik, deren Gewichte je nach Anruf variieren (weil der Richter gebeten wird, sie auszuwählen), gibt ein verrauschtes Optimierungssignal aus. Verankern Sie die Gewichtungen in Ihren benutzerdefinierten Kriterien oder übertragen Sie die Gewichtung der Dimensionen in den Lambda-Code.

  • Der zusammengesetzte Wert ist gesättigt. Wenn die Metrik schnell 0,95 erreicht und dort bleibt, sind Ihre Unterpunktzahlen zu nachsichtig. Verschärfen Sie die Rubriken. Ziehen Sie in Betracht, die Messlatte höher zu legen (z. B. wird aus einer Teilpunktzahl 0 statt 1), damit der Optimierer mehr Spielraum hat.

  • Sub-objectives direkter Konflikt. „Prägnanz“ versus „Vollständigkeit“ ist ein echter Kompromiss. Das Muster der gewichteten Summe wählt einen Arbeitspunkt an dieser Grenze; wenn es Ihnen nicht gefällt, ändern Sie die Gewichtungen.

Pre-launch Checkliste

  • Berechnen Sie die Metrik bei der ersten Aufforderung für den gesamten Datensatz und überprüfen Sie die Durchschnittswerte pro Dimension, nicht nur den Skalar. Wenn eine Dimension bereits gesättigt ist, sollten Sie erwägen, sie aus dem Paket zu streichen.

  • Spot-check 5 Proben von Hand. Entspricht das Urteil der Metrik Ihrem Urteil? Wenn nicht, korrigieren Sie die Metrik, bevor Sie die Aufforderung optimieren.

Optimierung von mehrstufigen und abgestuften Eingabeaufforderungen

Advanced Prompt Optimization optimiert eine einzelne Prompt-Vorlage anhand von Auswertungen pro Stichprobe. Sie ist nativ nicht rundenorientiert — sie kann nicht über einen Dialog hinweg iterieren oder das Verhalten bei einem bestimmten Zug nativ optimieren. Eine abgestufte Aufforderung ist eine Vorlage für Eingabeaufforderungen, bei der eine Konversation oder ein Arbeitsablauf, der mehrere Schritte umfasst, dieselbe Aufforderung wiederverwendet, und die Aufforderung selbst enthält Anweisungen für jede Phase, jeden Schritt oder jede Phase des Workflows. Um diese Eingabeaufforderungen zu optimieren, reduzieren Sie den Status des Dialogs auf die Eingabevariablen der Vorlage, integrieren Sie die Systemanweisungen, die Sie verfeinern möchtenpromptTemplate, und untersuchen Sie die Kurven, die Ihnen wirklich wichtig sind, anhand von Referenzantworten pro Stichprobe.

Dieses Muster ist vertikal unabhängig. Es gilt überall dort, wo ein Modell wiederholt und in zunehmendem Kontext aufgerufen wird — Abläufe im Kundenservice, Schleifen bei der Nutzung von Tools durch Agenten, mehrstufiges Denken, Nachhilfe, abwechselnde Codeassistenten, dokumentengestützte Qualitätssicherung, Triage-Workflows und mehr.

Was Advanced Prompt Optimization tatsächlich optimiert

  • Eingabe: Eine promptTemplate Zeichenfolge mit {{placeholder}} Variablen.

  • Pro Stichprobe: Jede evaluationSamples[i] enthält Werte für diese Variablen und referenceResponse a. Der Optimierer führt Inferenz-, Evaluierungs-, Feedback- und Neuschreibvorgänge für jede Stichprobe unabhängig voneinander durch und aggregiert dann die Metrik stichprobenübergreifend.

  • Leistung: Ein raffinierterpromptTemplate. Die Variablen, der Datensatz und die Metrik sind feste Eingaben; nur die Vorlage ändert sich.

Alles, was Sie optimieren möchten, muss in sich promptTemplate selbst enthalten sein. Dinge, die je nach Beispiel variieren (der Gesprächsverlauf, die aktuelle Benutzerabfrage, der abgerufene Kontext), sind {{variables}} Die Systemanweisungen, die Sie verfeinern möchten, sind Teil der Vorlage — niemals eine Eingabevariable, sonst muss der Service nichts umschreiben.

Wenn Sie möchten, dass der Service das Verhalten bei Kurve N verbessert, drücken Sie Turn N als gerenderte Eingabeaufforderung plus Eingabevariablen für ein Sample aus, wobei referenceResponse es sich um die gewünschte Turn-N-Modellausgabe handelt.

Muster A — (empfohlener Starter) Stage-at-a-time

Optimieren Sie jeweils eine Phase des Dialogs. Jede Bewertungsprobe stellt einen einzelnen Entscheidungspunkt innerhalb dieser Phase dar.

Eine „Phase“ ist hier alles, was Sie anhand einer Reihe kohärenter Erfolgskriterien beschreiben können. Beispiele von vertical:

  • Agenten/ Werkzeugnutzung: Runde Planerstellung, Runde Werkzeugauswahl, Abfolge Interpretation der Werkzeugergebnisse, Runde abschließende Antwort.

  • Kundenbetreuung: Empfang, Überprüfung, Bearbeitung, Bestätigung, Abschluss.

  • Nachhilfe/Bildung: Wissen einschätzen, Konzept erklären, Verständnis prüfen, zusammenfassen.

  • QA und QA der Dokumente: Beantwortung anhand des Abrufs, anschließende Klärung, Reihenfolge beim Zitieren.

  • Codierungsassistent: Präzisierung der Spezifikationen, Codegenerierung, Code- und Testschreiben. review/fix

Wann sollte Muster A verwendet werden

  • Sie können verschiedene Phasen mit unterschiedlichen Erfolgskriterien benennen.

  • In einer Phase wird die Qualität beeinträchtigt, und Sie möchten das Problem beheben, ohne andere zu stören.

  • Sie möchten eine schnelle Iteration und ein straffes, debugbares Feedbacksignal.

Form einer Schablone

Die stufenspezifischen Systemanweisungen sind in die Vorlage integriert (das wird vom Service neu geschrieben). Nur der Gesprächsverlauf und der aktuelle Spielzug sind Variablen. Die folgende Struktur dient der Veranschaulichung und ist nicht vorgeschrieben. Verwenden Sie die Trennzeichen oder das Layout, das Ihr Modell am besten verarbeitet. Die einzigen Anforderungen sind: (a) Die Systemanweisungen, die Sie optimieren möchten, befinden sich direkt in der Vorlage, und (b) die Variablen pro Stichprobe werden als referenziert. {{variablename}}

You are an assistant in the {STAGE_NAME} phase of a multi-turn task. - ...the policy / goals / format / tool-use rules for this phase... - ...constraints the model must satisfy at this point in the conversation... Conversation so far: {{conversation_so_far}} User's current message: {{user_query}}

Form der Probe

{ "inputVariables": [ {"conversation_so_far": "user: ...\nassistant: ...\n... (turns 1..N-1)"}, {"user_query": "...the user input that triggers this stage..."} ], "referenceResponse": "...the assistant output that satisfies the stage's success criteria..." }

Vor- und Nachteile

Vorteile: Enges Feedbacksignal, kleinere Eingabeaufforderungen, schnellere Optimierungsläufe, einfachere Erstellung einer fokussierten Metrik.

Nachteile: Erkennt keine stufenübergreifenden Abweichungen; Sie führen den Service einmal pro Stufe aus und benötigen möglicherweise einen abschließenden Integrationstest.

Muster B — Vollständig abgeflachte Konversation (fortgeschritten)

Optimieren Sie eine große monolithische Aufforderung, die für die gesamte mehrstufige Richtlinie zuständig ist. Bei jedem Sample handelt es sich um den vollständigen Dialog bis hin zu einer Sondenumdrehung.

Wann sollte Muster B verwendet werden

  • Ihr Produktionsprompt ist bereits monolithisch und Sie möchten ihn nicht aufteilen.

  • Sie möchten, dass der Optimierer sieht, wie frühere Kantenübergänge die späteren Kantenübergänge einrichten, damit bei seinen Neuschreibungen der stufenübergreifende Ablauf erhalten bleibt.

  • Die Richtigkeit beim Testen hängt vom Kontext ab, der sich über die Stufen hinweg aufgebaut hat (z. B. „In Kurve N müssen die richtigen Fakten bereits referenziert worden sein“ oder „das richtige Tool muss bereits aufgerufen worden sein“).

Form einer Schablone

Die vollständige monolithische, mehrphasige Systemaufforderung befindet sich buchstäblich in der Vorlage. Der Dienst schreibt diesen Text während der Optimierung neu. Die Historie und der aktuelle Spielzug bleiben variabel. Wählen Sie ein beliebiges Layout, das Ihr Modell gut verarbeiten kann. Die Anforderungen bestehen lediglich darin, dass die zu optimierenden Anweisungen Teil der Vorlage sind und dass auf die Daten pro Stichprobe verwiesen wird. {{name}}

You are an assistant for {TASK}. The conversation may proceed through phases: 1. {PHASE_1} — ... 2. {PHASE_2} — ... 3. {PHASE_3} — ... (...the entire multi-phase policy, tool-use rules, tone, formatting, refusal rules...) Conversation so far (turns 1..N-1, with role tags): {{conversation_so_far}} User's current message: {{user_query}}

Form der Probe (Sonde an einer beliebigen Kurve N)

{ "inputVariables": [ {"conversation_so_far": "user: ...\nassistant: ...\n[tool_call: X(...)]\n... (turns 1..N-1)"}, {"user_query": "...the user input at turn N..."} ], "referenceResponse": "...desired assistant output at turn N..." }

Warum Muster B besser funktionieren kann als Muster A

  • Der Optimierer sieht den Stufenfortschrittconversation_so_far, sodass das Optimierungsfeedback stufenübergreifend auf einmal nachdenken kann.

  • Ein einziger optimierter Prompt wird bereitgestellt, ohne dass mehrere optimierte, schrittweise Eingabeaufforderungen zusammengefügt werden müssen, was die Nachbearbeitung für Sie reduziert.

Vorbehalte für Muster B

  • Stochastik in früheren Kurven. Die Drehungen des Produktionsassistenten stimmen möglicherweise nicht immer conversation_so_far exakt mit den Dosen überein. Behandeln Sie den gespeicherten Verlauf als den erwarteten Verlauf. In der Produktion kann eine Abweichung in früheren Zügen die Optimierung ungültig machen. Verwenden Sie repräsentative, reale Gesprächsaufzeichnungen statt synthetisierter glücklicher Pfade.

  • Kosten des Tokens. Lange Historien steigen die Inferenzkosten pro Versuch in die Höhe. Der Service führt viele Kandidaten × Stichproben × Iterationen durch. Budgetieren Sie entsprechend und ziehen Sie in Betracht, die Kürzung auf die letzten K Turns plus eine Zusammenfassung zu erwägen, falls die Kosten der Engpass sind.

  • Verzerrung der Referenzantwort. referenceResponsesollte das sein, was ein korrekter Assistent angesichts dieser Vorgeschichte sagen würde. Wenn Ihre Referenzantwort zu eng ist (nur eine akzeptable Formulierung), passt der Optimierer zu stark an sie an. Bevorzugen Sie nach Möglichkeit eine Metrik, die Ergebnisse (Werkzeugname, Slot-Werte, Entscheidung) bewertet, einer Übereinstimmung mit der Oberflächenform.

Tool-call Überprüfung an einer bestimmten Stelle

Der Dienst sieht die Textausgabe des Assistenten. Um zu bewerten, „Hat das Modell in Kurve N das Tool X mit den richtigen Argumenten aufgerufen“, wählen Sie eines aus:

  • Konvention bei der Ausgabe: Lassen Sie den Assistenten ein strukturiertes Token ausgeben <tool>X(arg=...)</tool> und es mit regex/JSON Parse in einer Lambda-Metrik bewerten. Am günstigsten, am zuverlässigsten.

  • LLM-as-a-Judge benutzerdefinierte Kriterien: Geben Sie ein Kriterium ancustomLLMJPrompt, das den Richter fragt: „Entspricht die Antwort (a) dem ToolX, (b) einem Argument arg und (c) der erforderlichen FormulierungY?“ Jede Unterprüfung ist +1; aggregiert. Einfach zu verfassen, mehr Varianz.

  • Lambda-Metrik mit nachgeschalteter Simulation: Wenn Sie über ein System zur Werkzeugausführung verfügen, lassen Sie die Modellausgabe durch das System laufen und bewerten Sie anhand der beobachteten Nebenwirkungen. Höchste Wiedergabetreue, die meisten Einstellungen.

Informationen zu zusammengesetzten Kriterien, die sich über viele Spielzüge oder viele Unterprüfungen erstrecken (Korrektheit des Werkzeugs, Ton und Vollständigkeit), finden Sie im Multi-objective Optimierung Abschnitt.

  • Beginne mit Muster A auf der Bühne, die der Qualität am meisten schadet. Holen Sie sich eine funktionierende Metrik, einen Datensatz mit 20—50 Stichproben und einen durchgehenden Optimierungslauf. Dadurch werden Ihr Datensatz und Ihre Metrik validiert, bevor Sie in den größeren Muster-B-Durchlauf investieren.

  • Führen Sie dann Muster B einmal mit der vollständigen monolithischen Eingabeaufforderung und einer zusammengesetzten Metrik mit mehreren Zielen aus, um stufenübergreifende Regressionen abzufangen, die Muster A möglicherweise übersehen.

  • Iterieren Sie den Datensatz, bevor Sie die Eingabeaufforderung wiederholen. Wenn der Service Ihre Metrik umschreibt und überwindet, sich das Produktionsverhalten jedoch nicht verbessert, kann die Metrik oder der Datensatz häufig das Problem sein.

Wann sollte Advanced Prompt Optimization nicht für Multi-Turn verwendet werden

  • Dialogrichtlinie/ State-Machine-Bugs (falsche Phasenübergangslogik): Ein flaches Rewrite der Eingabeaufforderung kann das nicht beheben. Korrigieren Sie zuerst die Orchestrierungsebene.

  • Falsche Werkzeugschemas: Der Service ändert die Werkzeugdefinitionen nicht. Er kann nur die Aufforderung ändern, die das Modell auffordert, sie zu verwenden.

  • Drift zwischen festgelegtem Verlauf und Live-Verlauf: Wenn echte Konversationen nach ein paar Runden stark von Ihren Bewertungsmustern abweichen, ist das Optimierungssignal von Muster B schwach. Hier kann neben dem Idealzustand auch die Erfassung von echten, akzeptablen Produktionsspuren für Optimierungsläufe hilfreich sein.

  • Das erforderliche Verhalten hängt vom privaten Zustand ab, den der Optimierer nie sieht (z. B. Benutzerkontodaten, die das Modell nur durch Tool-Aufrufe lernt): Machen Sie diesen Zustand explizit conversation_so_far für die Probe, oder akzeptieren Sie, dass der Service nur das Verhalten der Oberfläche optimieren kann.

Checkliste für Einsteiger

  • Wählen Sie die Sondendrehungen aus, die Ihnen wichtig sind. Jede Probe wird zu einer oder mehreren Proben.

  • Entscheide dich für Muster A oder B (oder beides — A zuerst, dann B).

  • Erstellen Sie mehr als 20 repräsentative Stichproben mit realistischen conversation_so_far und sauberen referenceResponse Werten.