So verwenden Sie die kontextuelle Begründungsprüfung, um in Antworten nach Halluzinationen zu filtern - 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.

So verwenden Sie die kontextuelle Begründungsprüfung, um in Antworten nach Halluzinationen zu filtern

Integritätsschutz für Amazon Bedrock unterstützt kontextuelle Begründungsprüfungen, um Halluzinationen in Modellantworten zu erkennen und zu filtern, wenn eine Referenzquelle und eine Benutzerabfrage bereitgestellt werden. Zu den unterstützten Anwendungsfällen gehören Zusammenfassung, Paraphrasierung und Beantwortung von Fragen, wie sie in der Informatikdisziplin definiert sind. (Conversational QA/Chatbot-Anwendungsfälle werden nicht unterstützt.)

Bei kontextuellen Begründungsprüfungen wird die Relevanz jedes verarbeiteten Blocks überprüft. Wenn ein Teil als relevant erachtet wird, gilt die gesamte Antwort als relevant, da sie die Antwort auf die Anfrage des Benutzers enthält. Bei der Streaming-API kann dies zu einem Szenario führen, in dem eine irrelevante Antwort an den Benutzer zurückgegeben wird, die erst als irrelevant markiert wird, nachdem die gesamte Antwort gestreamt wurde.

Contextual Grounding überprüft die folgenden Paradigmen:

  • Begründung – Hier wird anhand der Quelle geprüft, ob die Modellantwort sachlich korrekt und in der Quelle begründet ist. Alle neuen Informationen, die in der Antwort eingeführt werden, gelten als unbegründet.

  • Relevanz – Hier wird geprüft, ob die Modellantwort für die Benutzeranfrage relevant ist.

Stellen Sie sich ein Beispiel vor, in dem die Referenzquelle den Sachverhalt „London ist die Hauptstadt des Vereinigten Königreichs. enthält. Tokio ist die Hauptstadt Japans“ und die Benutzerabfrage lautet „Was ist die Hauptstadt von Japan?“. Eine Antwort wie „Die Hauptstadt Japan ist London“ wird als unbegründet und sachlich inkorrekt angesehen, wohingegen eine Antwort wie „Die Hauptstadt des Vereinigten Königreichs ist London“ als irrelevant angesehen wird, auch wenn sie korrekt und in der Quelle begründet ist.

Anmerkung

Wenn eine Anfrage mehrere grounding_source-Tags enthält, kombiniert und bewertet der Integritätsschutz alle bereitgestellten grounding_source-Werte gemeinsam, anstatt jede grounding_source einzeln zu betrachten. Dieses Verhalten ist beim query-Tag identisch.

Anmerkung

Die Richtlinie zur kontextuellen Begründung unterstützt derzeit maximal 100 000 Zeichen für die Begründungsquelle, 1 000 Zeichen für die Abfrage und 5 000 Zeichen für die Antwort.

Konfidenzwerte und Schwellenwerte

Kontextuelle Begründungsprüfungen erzeugen Vertrauenswerte, die der Begründung und Relevanz jeder verarbeiteten Modellantwort entsprechen – Basierend auf der angegebenen Quelle und der Benutzeranfrage. Sie können Schwellenwerte konfigurieren, um Modellantworten auf Grundlage der generierten Werte zu filtern. Der Filterschwellenwert bestimmt den minimal zulässigen Konfidenzwert, damit die Modellantwort in Ihrer generativen KI-Anwendung als begründet und relevant angesehen werden kann. Wenn Ihr Begründungsschwellenwert und Ihr Relevanzschwellenwert beispielsweise jeweils auf 0,7 festgelegt sind, werden alle Modellantworten mit einem Begründungs- oder Relevanzwert von weniger als 0,7 als Halluzinationen erkannt und in Ihrer Anwendung blockiert. Wenn der Filterschwellenwert erhöht wird, steigt die Wahrscheinlichkeit, dass unbegründete und irrelevante Inhalte blockiert werden, und die Wahrscheinlichkeit, dass halluzinierte Inhalte in Ihrer Anwendung angezeigt werden, sinkt. Sie können Schwellenwerte für Begründung und Relevanz zwischen 0 und 0,99 konfigurieren. Ein Schwellenwert von 1 ist ungültig, da dadurch der gesamte Inhalt blockiert wird.

Für kontextuelle Begründungsprüfungen sind drei Komponenten erforderlich: die Begründungsquelle, die Abfrage und der zu schützende Inhalt (oder die Modellantwort). Diese werden unterschiedlich konfiguriert, je nachdem, ob Sie Invoke,, oder direkt APIs verwenden. Converse APIs ApplyGuardrail

  • Begründungsquelle – Kontextinformationen, die zur Beantwortung von Benutzeranfragen benötigt werden. Zum Beispiel: „London ist die Hauptstadt des Vereinigten Königreichs. Tokio ist die Hauptstadt Japans“.

  • Anfrage – Eine Frage, die ein Benutzer stellen kann. Zum Beispiel „Was ist die Hauptstadt von Japan?“.

  • Zu schützender Inhalt – Der Text, der im Verhältnis zur Begründungsquelle und zur Anfrage geschützt werden soll. Für Invoke und Converse APIs ist dies die Modellantwort. Dies kann beispielsweise „Die Hauptstadt Japans ist Tokio“ sein.

Unbegründet: Beispiel

  • Begründungsquelle – „London ist die Hauptstadt des Vereinigten Königreichs. Tokio ist die Hauptstadt Japans.“

  • Anfrage – „Was ist die Hauptstadt von Japan?“

  • Zu schützender Inhalt – „Die Hauptstadt Japans ist London.“

In diesem Beispiel ist der zu schützende Inhalt für die Abfrage relevant, ist jedoch unbegründet, da er die Begründungsquelle nicht korrekt verwendet. Dies hätte einen niedrigen Begründungswert zur Folge.

Irrelevant: Beispiel

  • Begründungsquelle – „London ist die Hauptstadt des Vereinigten Königreichs. Tokio ist die Hauptstadt Japans.“

  • Anfrage – „Was ist die Hauptstadt von Japan?“

  • Zu schützender Inhalt – „Die Hauptstadt des Vereinigten Königreichs ist London.“

In diesem Beispiel ist der zu schützende Inhalt begründet, aber nicht relevant. Hier werden Informationen aus der Begründungsquelle verwendet, jedoch wird die Anfrage nicht beantwortet. Der Relevanzwert wäre in diesem Fall niedrig.

Unbegründet und irrelevant: Beispiel

  • Begründungsquelle – „London ist die Hauptstadt des Vereinigten Königreichs. Tokio ist die Hauptstadt Japans.“

  • Anfrage – „Was ist die Hauptstadt von Japan?“

  • Zu schützender Inhalt – „Draußen regnet es.“

In diesem Beispiel ist der zu schützende Inhalt unbegründet und irrelevant. Hier werden weder Informationen aus der Begründungsquelle verwendet noch die Anfrage beantwortet. Dadurch wird ein niedriger Wert für Begründung und Relevanz erzielt.

Weitere Beispiele

Stellen Sie sich eine Bankanwendung vor, die dafür konzipiert ist, Fragen zu Gebühren und Kosten zu beantworten.

Quelle:

  • Für die Eröffnung eines Girokontos fallen keine Gebühren an.

  • Die monatliche Gebühr für die Führung eines Girokontos beträgt 10 USD.

  • Für internationale Überweisungen wird eine Transaktionsgebühr von 1 % erhoben.

  • Für Inlandsüberweisungen fallen keine Gebühren an.

  • Die Gebühren im Zusammenhang mit verspäteten Zahlungen von Kreditkartenrechnungen betragen 23,99 %.

Basierend auf der obigen Quelle kann es je nach Benutzeranfrage vier Szenarien geben.

Begründet und relevant

  • F: Welche Gebühren sind mit einem Girokonto verbunden?

  • A: Die monatliche Gebühr für die Führung eines Girokontos beträgt 10 USD. Für Inlandsüberweisungen fallen keine Gebühren an. Für internationale Überweisungen wird jedoch eine Transaktionsgebühr von 1 % erhoben. Für die Eröffnung eines Girokontos fallen keine Gebühren an.

Unbegründet, aber relevant

  • F: Wie hoch ist die mit einer Kreditkarte verbundene Transaktionsgebühr?

  • A: Die mit der Kreditkarte verbundenen Transaktionsgebühren betragen 23,99 %.

Begründet, aber irrelevant

  • F: Was sind die Gebühren für die Nutzung eines Girokontos?

  • A: Den bereitgestellten Informationen zufolge beträgt die Gebühr für verspätete Zahlungen bei einer Kreditkarte 23,99 %.

Unbegründet und irrelevant

  • F: Was sind die Gebühren für die Nutzung eines Girokontos?

  • A: Die Gebühren für das Maklerkonto betragen 0,5 USD pro Handelstransaktion.

So fügen Sie über die Konsole kontexuelle Begründungsprüfungen hinzu

  1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter https://console.aws.amazon.com/bedrock.

  2. Wählen Sie in der linken Navigationsleiste Integritätsschutz und dann Integritätsschutz erstellen aus.

  3. Führen Sie auf der Seite Integritätsschutzdetails bereitstellen die folgenden Schritte aus:

    1. Geben Sie im Abschnitt Integritätsschutzdetails einen Namen und optional eine Beschreibung für den Integritätsschutz an.

    2. Geben Sie unter Nachrichten für blockierte Prompts eine Meldung ein, die angezeigt wird, wenn Ihr Integritätsschutz angewendet wird. Aktivieren Sie das Kontrollkästchen Dieselbe blockierte Nachricht auf Antworten anwenden, um dieselbe Nachricht zu verwenden, wenn Ihr Integritätsschutz auf die Antwort angewendet wird.

    3. (Optional) Um die regionsübergreifende Inferenz für Ihren Integritätsschutz zu aktivieren, erweitern Sie die Option Regionsübergreifende Inferenz und wählen dann Regionsübergreifende Inferenz für Ihren Integritätsschutz aktivieren aus. Wählen Sie ein Guardrail-Profil, das das Ziel definiert, an das AWS-Regionen Guardrail-Inferenzanfragen weitergeleitet werden können.

    4. (Optional) Standardmäßig ist Ihr Integritätsschutz mit einem Von AWS verwalteter Schlüssel verschlüsselt. Wenn Sie Ihren eigenen, kundenseitig verwalteten KMS-Schlüssel verwenden möchten, erweitern Sie die KMS-Schlüsselauswahl und aktivieren das Kontrollkästchen Verschlüsselungseinstellungen anpassen (erweitert).

      Sie können einen vorhandenen AWS KMS Schlüssel auswählen oder Schlüssel erstellen auswählen, um einen neuen AWS KMS Schlüssel zu erstellen.

    5. (Optional) Erweitern Sie den Bereich Tags und wählen Sie dann für jedes von Ihnen definierte Tag die Option Neues Tag hinzufügen aus, um Ihrem Integritätsschutz Tags hinzuzufügen.

      Weitere Informationen finden Sie unter Markieren von Amazon-Bedrock-Ressourcen.

    6. Wählen Sie Weiter aus.

  4. Konfigurieren Sie auf der Seite Kontextuelle Begründungsprüfung hinzufügen Schwellenwerte, um unbegründete oder irrelevante Informationen zu blockieren.

    Anmerkung

    Für jede Art von Prüfung können Sie den Schieberegler bewegen oder einen Schwellenwert zwischen 0 und 0,99 manuell eingeben. Wählen Sie einen geeigneten Schwellenwert für Ihre Zwecke aus. Ein höherer Schwellenwert setzt voraus, dass Antworten begründet oder relevant sind und ein hohes Maß an Vertrauen bieten, um zulässig zu sein. Alle Antworten unter dem Schwellenwert werden ausgefiltert.

    1. Wählen Sie im Feld Begründung die Option Begründungsprüfung aktivieren aus, um zu überprüfen, ob die Antworten des Modells begründet sind.

    2. Wählen Sie im Feld Relevanz die Option Relevanzprüfung aktivieren aus, um zu überprüfen, ob die Modellantworten relevant sind.

    3. Wenn Sie mit der Konfiguration der Filter für sensible Informationen fertig sind, klicken Sie auf Weiter oder wählen Überspringen zum Überprüfen und Erstellen aus.

Kontextuelle Erdungsprüfung mit Invoke aufrufen APIs

Um die Begründungsquelle und die Abfrage innerhalb der Eingabe zu markieren, stellen wir 2 Tags zur Verfügung, die genau wie Eingabe-Tags funktionieren. Diese Tags sind amazon-bedrock-guardrails-groundingSource_xyz und amazon-bedrock-guardrails-query_xyz vorausgesetzt, das Tag-Suffix ist xyz. Beispiel:

{ "text": """ <amazon-bedrock-guardrails-groundingSource_xyz>London is the capital of UK. Tokyo is the capital of Japan. </amazon-bedrock-guardrails-groundingSource_xyz> <amazon-bedrock-guardrails-query_xyz>What is the capital of Japan?</amazon-bedrock-guardrails-query_xyz> """, "amazon-bedrock-guardrailConfig": { "tagSuffix": "xyz", }, }

Beachten Sie, dass die Modellantwort für eine Durchführung der kontextuellen Begründungsprüfungen erforderlich ist. Daher werden die Prüfungen nur bei der Ausgabe und nicht beim Prompt durchgeführt.

Diese Tags können zusammen mit den guardContent-Tags verwendet werden. Wenn keine guardContent-Tags verwendet werden, wendet der Integritätsschutz standardmäßig alle konfigurierten Richtlinien auf die gesamte Eingabe an, einschließlich der Begründungsquelle und der Abfrage. Wenn die guardContent-Tags verwendet werden, untersucht die Richtlinie für die kontextuelle Erdungsprüfung nur die Begründungsquelle, die Abfrage und die Antwort, während die übrigen Richtlinien den Inhalt innerhalb der guardContent-Tags untersuchen.

Kontextuelle Erdungsprüfung aufrufen mit Converse APIs

Um die Erdungsquelle zu markieren und abzufragen Converse APIs, verwenden Sie das Qualifier-Feld in jedem Guard-Inhaltsblock. Beispiel:

[ { "role": "user", "content": [ { "guardContent": { "text": { "text": "London is the capital of UK. Tokyo is the capital of Japan", "qualifiers": ["grounding_source"], } } }, { "guardContent": { "text": { "text": "What is the capital of Japan?", "qualifiers": ["query"], } } }, ], } ]

Beachten Sie, dass die Modellantwort für eine Durchführung der kontextuellen Begründungsprüfungen erforderlich ist. Daher werden die Prüfungen nur bei der Ausgabe und nicht beim Prompt durchgeführt.

Wenn keiner der Inhaltsblöcke mit dem Qualifizierer guard_content gekennzeichnet ist, untersucht die Richtlinie für kontextuelle Begründungsprüfungen nur die Begründungsquelle, die Abfrage und die Antwort. Die übrigen Richtlinien folgen dem standardmäßigen Untersuchungsverhalten: der Systemprompt wird nicht untersucht und Nachrichten werden untersucht. Wenn ein Inhaltsblock jedoch mit dem Qualifizierer guard_content gekennzeichnet ist, untersucht die Richtlinie für kontextuelle Begründungsprüfungen nur die Begründungsquelle, die Anfrage und die Antwort, während die übrigen Richtlinien den Inhalt untersuchen, der mit den guardContent-Tags gekennzeichnet ist.

Kontextuelle Erdungsprüfung mit API aufrufen ApplyGuardrail

Die Verwendung der kontextuellen Erdungsprüfung mit ApplyGuardrail ähnelt der Verwendung mit dem. Converse APIs Verwenden Sie das Qualifiziererfeld in jedem Inhaltsblock, um die Begründungsquelle und die Abfrage für ApplyGuardrail zu markieren. Da jedoch ein Modell nicht mit ApplyGuardrail aufgerufen wird, müssen Sie außerdem einen zusätzlichen Inhaltsblock mit dem zu schützenden Inhalt angeben. Dieser Inhaltsblock kann optional mit guard_content qualifiziert werden und entspricht der Modellantwort in Invoke* oder Converse*. APIs Beispiel:

[ { "text": { "text": "London is the capital of UK. Tokyo is the capital of Japan", "qualifiers": [ "grounding_source" ] } }, { "text": { "text": "What is the capital of Japan?", "qualifiers": [ "query" ] } }, { "text": { "text": "The capital of Japan is Tokyo." } } ]

Beachten Sie, dass die Modellantwort für eine Durchführung der kontextuellen Begründungsprüfungen erforderlich ist. Daher werden die Prüfungen nur bei der Ausgabe und nicht beim Prompt durchgeführt.

Wenn keiner der Inhaltsblöcke mit dem Qualifizierer guard_content gekennzeichnet ist, untersucht die Richtlinie für kontextuelle Begründungsprüfungen nur die Begründungsquelle, die Abfrage und die Antwort. Die übrigen Richtlinien folgen dem standardmäßigen Untersuchungsverhalten: der Systemprompt wird nicht untersucht und Nachrichten werden untersucht. Wenn ein Inhaltsblock jedoch mit dem Qualifizierer guard_content gekennzeichnet ist, untersucht die Richtlinie für kontextuelle Begründungsprüfungen nur die Begründungsquelle, die Anfrage und die Antwort, während die übrigen Richtlinien den Inhalt untersuchen, der mit den guardContent-Tags gekennzeichnet ist.