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 (mehreren Dimensionen): 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 sie jeweils angemessen sind, und die Fehlerarten, auf die Sie achten sollten.

Das gilt für alle Branchen — überall dort, wo Ihnen mehr als eine Sache gleichzeitig wichtig ist: Genauigkeit + Ton, Korrektheit beim Tool-Call + Sicherheit, Zuverlässigkeit + Prägnanz, Latenzfreundlichkeit + Vollständigkeit und mehr.

Warum eine Metrik eigentlich mehrere Ziele umfasst

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

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

  • Beide Metrik-Backends aggregieren Teilwerte bereits intern.

    • Die LLM-as-a-Judge Standardvorlage bewertet anhand von drei Dimensionen (Genauigkeit der Antwort, Vollständigkeit der Antwort, Ausdrucksqualität), weist Gewichtungen zu und gibt eine einzige Overall Punktzahl aus, die auf [0, 1] normalisiert ist. Benutzerdefinierte Kriterien werden zu 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 kontrollieren, wie sie berechnet wird — einschließlich aller zusammengesetzten Unterziele.

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

Muster für die Bündelung mehrerer Ziele in einer einzigen Metrik

Wählen Sie eines davon aus, in welchem Verhältnis Ihre Ziele zueinander stehen.

Muster 1 — Gewichtete Summe (am häufigsten)

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

Verwendungszweck: Die Ziele sind in etwa unabhängig voneinander und können nach einer Rangfolge geordnet werden. Trade-offs sind akzeptabel — es ist in Ordnung, eines auf Kosten eines anderen zu verbessern, solange die Summe steigt.

Gewichte wählen:

  • Gewichtung nach Wichtigkeit für den Benutzer, 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 (agentic//tool-use):

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

Muster 2 — Hard-fail Tore (sicherheitskritisch)

Definieren Sie ein oder mehrere Torziele. Wenn ein Tor versagt, ist der Punktestand 0 (oder ein Stockwerk), unabhängig vom Rest. Andernfalls ist die Punktzahl die gewichtete Summe der verbleibenden Ziele.

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 geändert, Ablehnung verbotener Inhalte). Verwenden Sie diese Option immer dann, wenn die Aufforderung „durchschnittlich gut“ nicht akzeptabel ist, wenn sie auch nur gelegentlich die Sicherheitsleiste nicht erfüllt.

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

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

Wählen Sie das wichtigste Ziel als Belohnung aus. Drücken Sie 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 die Führung übernimmt, aber weiche sekundäre Ziele sollten die Aufforderung immer noch prägen. Weniger spröde als harte Gates, weniger zweideutig als gewichtete Summen.

Muster 4 — Lambda außen, LLM-as-a-Judge innen (empfohlen für Fuzzy+-Strukturmischungen)

Eine Lambda-Metrik berechnet deterministische Teilwerte (Regex, JSON-Analyse, Schemavalidierung) und ruft eine LLM-as-a-Judge Unterbewertung für die unscharfen Teile (Ton, Treue, Hilfsbereitschaft) innerhalb der Lambda-Funktion auf. Anschließend werden sie zu einem Skalar zusammengefasst.

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

Einsatzzweck: Ihre Ziele sind eine Mischung aus „einfach im Code zu testen“ (Formate, Namen der Tools, Länge, Vorhandensein von Zitaten) und „braucht ein Modell, das beurteilt werden kann“ (Tonfall, Treue, Hilfsbereitschaft). Das ist oft sauberer, als eine einzige LLM-as-a-Judge Aufforderung zur Erstellung eines einzigen zusammengesetzten Ergebnisses aufzufordern, 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 Dimensionen und Gewichtungen definiert. Der Richter gibt Punktzahlen pro Dimension und einen ausOverall; das System analysiert die Dimensionen Overall (oder berechnet den Durchschnitt, falls sie fehlen) und Overall berechnet daraus einen Skalar [0, 1].

Verwendungszweck: Alle Ihre Ziele sind semantisch/unscharf und es gibt keine deterministischen Unterprüfungen. Am schnellsten zum Verfassen. Achten Sie auf die Beurteilungsvarianz — führen Sie denselben Datensatz zweimal durch 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 unscharfe Ziele, alle semantisch Muster 5 (mehrdimensional) LLM-as-a-Judge
2 2—4 Ziele, die Struktur und Semantik vermischen Muster 4 (Lambda außen + LLM-as-a-Judge innen)
3 Mindestens ein nicht safety/correctness verhandelbares Kriterium Muster 2 (Hard-Fail-Gate) — kombiniere mit 1 oder 4
4 Ein klares primäres Ziel und weiche Präferenzen Muster 3 (Einschränkung + Belohnung)
5 Mehrere in etwa gleiche unabhängige Ziele Muster 1 (gewichtete Summe)

Sie können Muster kombinieren. Eine typische Produktionskennzahl ist „gewichtete Summe plus eine harte Sicherheitslücke“.

Fehlerarten, auf die Sie achten sollten

  • Belohnen Sie das Hacken auf der Oberfläche. Wenn Ihr Teilwert „Hat die Antwort das Wort 'sicher' enthalten“ lautet, schreibt der Optimierer in jeder Ausgabe Eingabeaufforderungen, die das Wort „sicher“ erzwingen. Ziehen Sie ergebnisorientierte Unterbewertungen (Toolname, Slot-Wert, strukturelle Validität) dem Vorhandensein von Keywords vor.

  • Drift der Richter. Eine mehrdimensionale LLM-as-a-Judge Kennzahl, deren Gewichtung je nach Anruf variiert (weil der Richter gebeten wird, sie auszuwählen), gibt ein lautes Optimierungssignal ab. Fixieren Sie die Gewichtungen in Ihren benutzerdefinierten Kriterien oder verschieben Sie die Dimensionsgewichtung in den Lambda-Code.

  • Die Gesamtpunktzahl ist gesättigt. Wenn die Metrik schnell 0,95 erreicht und dort bleibt, sind Ihre Teilwerte zu gering. Verschärfen Sie die Rubriken und ziehen Sie in Erwägung, die maximale Messlatte anzuheben (z. B. wird eine Teilpunktzahl zu 0 statt 1), damit der Optimierer Spielraum hat.

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

Pre-launch Checkliste

  • Berechne die Metrik bei der ersten Eingabeaufforderung für den gesamten Datensatz und überprüfe 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. Stimmt das Urteil der Metrik mit Ihrem Urteil überein? Falls nicht, korrigieren Sie die Metrik, bevor Sie die Eingabeaufforderung optimieren.

Optimierung von Multi-Turn- und Staging-Prompts

Advanced Prompt Optimization optimiert eine einzelne Eingabeaufforderungsvorlage anhand von Bewertungen pro Probe. Es ist nicht systemintern rundenorientiert — es kann also nicht über einen Dialog iterieren oder das Verhalten bei einem bestimmten Zug nativ optimieren. Eine abgestufte Aufforderung ist eine Eingabeaufforderungsvorlage, bei der eine Konversation oder ein Workflow mit mehreren Runden dieselbe Aufforderung abwechselnd 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, fügen Sie die Systemanweisungen, die Sie verfeinern möchten, ein und untersuchen Sie anhand von promptTemplate Referenzantworten pro Stichprobe die Züge, die Ihnen wirklich wichtig sind.

Dieses Muster ist vertikal unabhängig. Es gilt überall dort, wo ein Modell in wachsendem Kontext wiederholt aufgerufen wird — Kundenservice-Abläufe, Abläufe bei der Nutzung von Tools, mehrstufiges Denken, Nachhilfe, Wechsel von Code-Assistenten, dokumentengestützte Qualitätssicherung, Triage-Workflows und mehr.

Was Advanced Prompt Optimization tatsächlich optimiert

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

  • Pro Beispiel: Jede evaluationSamples[i] enthält Werte für diese Variablen und referenceResponse a. Der Optimierer führt Inferenz, Auswertung, Feedback und Umschreibung unabhängig voneinander pro Stichprobe durch und aggregiert dann die Metrik für alle Stichproben.

  • Ausgabe: Eine verfeinerte. promptTemplate 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 Konversationsverlauf, die aktuelle Benutzeranfrage, der abgerufene Kontext), sind{{variables}}. Die Systemanweisungen, die Sie verfeinern möchten, sind Teil der Vorlage — niemals eine Eingabevariable, oder der Dienst muss nichts umschreiben.

Wenn Sie möchten, dass der Service das Verhalten bei Turn N verbessert, geben Sie Turn N als gerenderte Eingabeaufforderung plus Eingabevariablen für ein Beispiel an, wobei referenceResponse es sich dabei 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 steht für einen einzelnen Entscheidungspunkt innerhalb dieser Phase.

Eine „Phase“ ist hier alles, was Sie anhand eines kohärenten Satzes von Erfolgskriterien beschreiben können. Beispiele nach Branchen:

  • Agentur/Einsatz des Tools: Zug zur Erstellung eines Plans, Zug zur Werkzeugauswahl, Zug zur Interpretation der Werkzeugergebnisse, Zug zur endgültigen Antwort.

  • Kundenbetreuung: Aufnahme, Überprüfung, Maßnahme, Bestätigung, Abschluss.

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

  • Fragen und Antworten zum Dokument: begründete Antwort, anschließende Klärung, Zitierweise.

  • Programmierassistent: Klärung der technischen Daten, Codegenerierung, Code, Testschreiben. review/fix

Wann sollte Muster A verwendet werden

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

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

  • Sie wünschen sich eine schnelle Iteration und ein genaues, debugbares Feedback-Signal.

Form der Vorlage

Die stufenspezifischen Systemanweisungen sind in die Vorlage integriert (dies wird vom Service neu geschrieben). Nur der Konversationsverlauf und der aktuelle Spielzug sind Variablen. Die folgende Struktur dient der Veranschaulichung und ist nicht vorgeschrieben. Verwenden Sie die Trennzeichen oder das Layout, mit dem Ihr Modell am besten umgehen kann. Die einzigen Anforderungen sind: (a) Die Systemanweisungen, die Sie optimieren möchten, befinden sich direkt in der Vorlage, und (b) auf die Variablen pro Probe wird verwiesen. {{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: Präzises Feedback-Signal, kleinere Eingabeaufforderungen, schnellere Optimierungsläufe, einfachere Erstellung einer zielgerichteten Metrik.

Nachteile: Erkennt keine catch zwischen den einzelnen Phasen. Sie führen den Service einmal pro Phase aus und benötigen möglicherweise einen abschließenden Integrationstest.

Muster B — Vollständige vereinfachte Konversation (fortgeschritten)

Optimieren Sie eine große monolithische Aufforderung, die für die gesamte mehrstufige Richtlinie zuständig ist. Jedes Beispiel umfasst den gesamten Dialog bis zu einer Testrunde.

Wann sollte Muster B verwendet werden

  • Ihre Produktionsaufforderung ist bereits monolithisch und Sie möchten sie nicht aufteilen.

  • Sie möchten, dass der Optimierer sieht, wie frühere Runden spätere Runden einrichten, sodass bei seinen Umschreibungen der stufenübergreifende Ablauf erhalten bleibt.

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

Form der Vorlage

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 Variablen. Wählen Sie ein beliebiges Layout, mit dem Ihr Modell gut zurechtkommt. Die Anforderungen bestehen lediglich darin, dass die zu optimierenden Anweisungen Teil der Vorlage sind und dass auf die Daten pro Probe 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}}

Probenform (Sonde bei beliebiger Drehung 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 erkennt den Stufenfortschrittconversation_so_far, sodass Optimierungsfeedback phasenübergreifend auf einmal erfolgen kann.

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

Vorbehalte für Muster B

  • Stochastik in früheren Runden. Die Wendungen des Produktionsassistenten stimmen möglicherweise nicht immer genau mit den Dosen überein. conversation_so_far Behandeln Sie die vorgefertigte Historie als den erwarteten Verlauf. In der Produktion kann eine Abweichung in früheren Runden die Optimierung zunichte machen. Verwenden Sie repräsentative, echte Gesprächserfassungen statt synthetisierter Happy Paths.

  • Token-Kosten. Lange Historien treiben die Kosten für Inferenzen pro Versuch in die Höhe. Der Service führt viele Kandidaten × Stichproben × Iterationen durch. Planen Sie entsprechend ein und ziehen Sie eine Kürzung auf die letzten K Runden sowie eine Zusammenfassung in Betracht, falls die Kosten den Engpass darstellen.

  • Bias bei der Referenzantwort. referenceResponsesollte das sein, was ein korrekter Assistent angesichts dieser Vorgeschichte sagen würde. Wenn Ihre Referenzantwort zu eng gefasst ist (nur eine akzeptable Formulierung), passt sich der Optimierer zu stark an sie an. Bevorzugen Sie nach Möglichkeit eine Metrik, bei der die Ergebnisse (Werkzeugname, Slot-Werte, Entscheidung) bewertet werden, gegenüber oberflächlichen Übereinstimmungen.

Tool-call Überprüfung bei einer bestimmten Runde

Der Dienst sieht die Textausgabe des Assistenten. Wählen Sie eine der folgenden Optionen aus, um zu bewerten, ob das Modell bei Turn N Tool X mit den richtigen Argumenten aufgerufen hat:

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

  • LLM-as-a-Judge benutzerdefinierte Kriterien: Geben Sie eine Frage ancustomLLMJPrompt, in der der Richter gefragt wird: „Benennt die Antwort (a) das ToolX, (b) enthält sie Argumentearg, (c) stimmt sie mit dem erforderlichen Wortlaut übereinY?“ Jede Unterprüfung ist +1; aggregiert. Einfach zu verfassen, mehr Varianz.

  • Lambda-Metrik mit Downstream-Simulation: Wenn Sie über einen Harness zur Werkzeugausführung verfügen, führen Sie die Modellausgabe durch diesen und bewerten Sie die beobachteten Nebenwirkungen. Höchste Genauigkeit, beste Konfiguration.

Informationen zu zusammengesetzten Kriterien für viele Umdrehungen oder viele Unterprüfungen (Richtigkeit, Tonalität und Vollständigkeit des Werkzeugs) finden Sie im Multi-objective Optimierung Abschnitt.

  • Beginnen Sie mit Muster A auf der Bühne, die der Qualität am meisten schadet. Holen Sie sich eine funktionierende Metrik, einen Datensatz mit 20 bis 50 Stichproben und einen Optimierungslauf von Anfang bis Ende. Dadurch werden Ihr Datensatz und Ihre Metrik validiert, bevor Sie in den größeren Muster-B-Lauf 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 übersehen kann.

  • Iterieren Sie den Datensatz, bevor Sie die Aufforderung wiederholen. Wenn der Service Ihre Metrik beim Bergsteigen umschreibt, 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

  • Fehler in der Dialogrichtlinie/Zustandsmaschine (falsche Logik für den Phasenübergang): Ein flaches Umschreiben der Eingabeaufforderung kann dieses Problem nicht beheben. Korrigieren Sie zuerst die Orchestrierungsebene.

  • Falsche Werkzeugschemas: Der Service ändert keine Werkzeugdefinitionen. Er kann nur die Aufforderung ändern, mit der das Modell aufgefordert wird, sie zu verwenden.

  • Drift zwischen aufgezeichnetem Verlauf und Live-Verlauf: Wenn echte Konversationen nach ein paar Runden stark von Ihren Testbeispielen abweichen, ist das Optimierungssignal von Muster B schwach. Neben dem Idealzustand kann hier 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. Benutzerkontendaten, die das Modell nur über Tool-Aufrufe lernt): Geben Sie diesen Status explizit in conversation_so_far der Probe an, oder akzeptieren Sie, dass der Service nur das Oberflächenverhalten anpassen kann.

Checkliste für Einsteiger

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

  • Entscheiden Sie sich für Muster A oder B (oder beides — zuerst A, dann B).

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