翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
コンテキストグラウンディングチェックを使用して、レスポンスのハルシネーションをフィルタリングする
Amazon Bedrock のガードレールは、リファレンスソースとユーザークエリが提供されたとき、モデルレスポンスのハルシネーションを検出してフィルタリングするためのコンテキストグラウンディングチェックに対応しています。サポートされているユースケースは、取得拡張世代 (RAG)、要約、言い換え、またはエージェントが会話をグラウンドするために取得されたパスRAGインや会話履歴などのリファレンスソースに依存する会話エージェントに及びます。
コンテキストグラウンディングチェックでは、処理された各チャンクの関連性をチェックします。1 つのチャンクが関連していると見なされる場合、ユーザーのクエリに対する回答があると、レスポンス全体が関連していると見なされます。ストリーミングの場合API、無関係なレスポンスがユーザーに返され、レスポンス全体がストリーミングされた後にのみ無関係としてマークされるシナリオが発生する可能性があります。
コンテキストグラウンディングチェックでは、次の 2 つのパラダイム全体でハルシネーションを評価します。
-
グラウンディング – これにより、モデルレスポンスがソースに基づいて事実上正確であり、ソースに基づいているかどうかが確認されます。レスポンスに追加された新しい情報は、根拠がないと見なされます。
-
関連性 – これにより、モデルレスポンスがユーザークエリに関連しているかどうかが確認されます。
リファレンスソースに「ロンドンは英国の首都である。東京は日本の首都である。」が含まれ、ユーザークエリが「日本の首都は何ですか?」である例について考えてみましょう。「日本の首都はロンドンである」などのレスポンスは根拠がなく、事実上正しくないと見なされ、「英国の首都はロンドンである」などのレスポンスは、正しく、ソースに基づいていても無関係と見なされます。
注記
リクエストに複数の grounding_source
タグが含まれている場合、ガードレールは、各 grounding_source
を個別に考慮するのではなく、提供されたすべての grounding_source
値を結合して評価します。この動作は query
タグの場合と同じです。
注記
コンテキストグラウンディングポリシーは現在、グラウンディングソースでは最大 100,000 文字、クエリでは 1,000 文字、レスポンスでは 5,000 文字をサポートしています。
信頼スコアとしきい値
コンテキストグラウンディングチェックでは、提供されたソースとユーザークエリに基づいて処理された各モデルレスポンスのグラウンディングと関連性に対応する信頼スコアを生成します。しきい値を設定すると、生成されたスコアに基づいてモデルレスポンスをフィルタリングできます。フィルタリングしきい値により、生成 AI アプリケーションで根拠に基づき、関連性があると見なすことができるモデルレスポンスの最小許容信頼スコアを決定できます。例えば、グラウンディングしきい値と関連性しきい値がそれぞれ 0.7 に設定されている場合、グラウンディングスコアまたは関連性スコアが 0.7 未満のすべてのモデルレスポンスはハルシネーションとして検出され、アプリケーションでブロックされます。フィルタリングのしきい値が増加するにつれて、根拠のないコンテンツや無関係なコンテンツをブロックする可能性が高くなり、ハルシネーションであるコンテンツがアプリケーションで表示される可能性は低下します。グラウンディングと関連性の各しきい値は、0~0.99 の範囲で設定できます。しきい値 1 は、すべてのコンテンツがブロックされるため、無効です。
コンテキストグラウンディングチェックでは、グラウンディングソース、クエリ、保護するコンテンツ (またはモデルレスポンス) の 3 つのコンポーネントでチェックを実行する必要があります。これらは、 の呼び出し を使用しているかどうかによって設定が異なりますAPIs。Converse APIs、または ApplyGuardrail 直接。
-
グラウンドソース – ユーザークエリに対する回答に必要なコンテキスト情報。例えば、「ロンドンは英国の首都です。東京は日本の首都です。」です。
-
クエリ – ユーザーが尋ねる可能性のある質問。例えば、「日本の首都はどこですか?」です。
-
保護するコンテンツ – グラウンディングソースとクエリに関連して保護する必要があるテキスト。呼び出し および の場合 Converse APIs、これはモデルレスポンスです。例えば、「日本の首都は東京です。」は、保護するコンテンツとなる場合があります。
根拠のない例
-
グラウンディングソース - 「ロンドンは英国の首都です。東京は日本の首都です。」
-
クエリ - 「日本の首都はどこですか?」
-
保護するコンテンツ - 「日本の首都はロンドンです。」
この例では、保護するコンテンツはクエリに関連していますが、グラウンディングソースを正しく使用していないため、根拠づけされていません。これにより、グラウンディングスコアが低くなります。
無関係な例
-
グラウンディングソース - 「ロンドンは英国の首都です。東京は日本の首都です。」
-
クエリ - 「日本の首都はどこですか?」
-
保護するコンテンツ - 「英国の首都はロンドンです」。
この例では、保護するコンテンツは根拠づけされていますが、関連性はありません。このコンテンツはグラウンディングソースからの情報を使用しますが、クエリには応答しません。これにより、関連性スコアが低くなります。
根拠がなく無関係な例
-
グラウンディングソース - 「ロンドンは英国の首都です。東京は日本の首都です。」
-
クエリ - 「日本の首都はどこですか?」
-
保護するコンテンツ - 「外では雨が降っています。」
この例では、保護するコンテンツは根拠づけされておらず、関連性もありません。このコンテンツはグラウンディングソースからの情報もクエリへの回答も使用しません。これにより、グラウンディングスコアと関連性スコアが低くなります。
その他の例
料金や請求金額に関連する質問に答えるように設計された銀行アプリケーションについて検討します。
ソース:
-
当座預金口座の開設に伴う料金は発生しません。
-
当座預金口座の維持にかかる月額料金は 10 ドルです。
-
国際送金には 1% の取引手数料がかかります。
-
国内送金には料金はかかりません。
-
クレジットカード請求の遅延支払いに関連する料金は 23.99% です。
上記のソースに基づくと、ユーザーのクエリに応じて 4 つのシナリオが考えられます。
グラウンディングおよび関連性
-
Q: 当座預金口座に関連する料金はいくらですか?
-
A: 当座預金口座の維持にかかる月額料金は 10 ドルです。国内送金には料金はかかりません。ただし、国際送金には 1% の取引手数料がかかります。当座預金口座の開設に伴う料金は発生しません。
根拠はないが関連性がある
-
Q: クレジットカードに関連する取引手数料はいくらですか?
-
A: クレジットカードに関連する取引手数料は 23.99% です。
根拠はあるが、関連性がない
-
Q: 当座預金口座の使用料金はいくらですか?
-
A: 提供された情報に基づくと、クレジットカードの遅延支払い料金は 23.99% です。
根拠がなく、関連性もない
-
Q: 当座預金口座の使用料金はいくらですか?
-
A: 証券口座の料金は、通常売買取引ごとに 0.5 ドルです。
トピック
Invoke を使用したコンテキストに基づくグラウンドチェックの呼び出し APIs
入力内のグラウンディングソースとクエリをマークするには、入力タグと同じ方法で機能する 2 つのタグを指定します。これらのタグは amazon-bedrock-guardrails-groundingSource_xyz
と amazon-bedrock-guardrails-query_xyz
であり、タグのサフィックスが xyz であることを前提としています。以下に例を示します。
{ "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", }, }
コンテキストグラウンディングチェックを実行するにはモデルレスポンスが必要であるため、チェックは、プロンプトではなく出力に対してのみ実行されます。
これらのタグはタグと一緒に使用できます guardContent 。 guardContent タグを使用しない場合、ガードレールはデフォルトで、グラウンドソースとクエリを含むすべての設定済みポリシーを入力全体に適用します。 guardContent タグが使用されている場合、コンテキストに基づくグラウンドチェックポリシーは、グラウンドソース、クエリ、およびレスポンスのみを調査し、残りのポリシーは guardContent タグ内のコンテンツを調査します。
を使用してコンテキストに基づくグラウンドチェックを呼び出す Converse APIs
のグラウンドソースとクエリをマークするには Converse APIs、各ガードコンテンツブロックの修飾子フィールドを使用します。以下に例を示します。
[ { "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"], } } }, ], } ]
コンテキストグラウンディングチェックを実行するにはモデルレスポンスが必要であるため、チェックは、プロンプトではなく出力に対してのみ実行されます。
どのコンテンツブロックにも guard_content 修飾子が付いていない場合は、コンテキストグラウンディングチェックポリシーにより、グラウンディングソース、クエリ、およびレスポンスのみが調査されます。残りのポリシーは、デフォルトの調査動作に従います。デフォルトで、システムプロンプトは調査されず、メッセージが調査されます。ただし、コンテンツブロックが guard_content 修飾子でマークされている場合、コンテキストのグラウンドチェックポリシーはグラウンドソース、クエリ、およびレスポンスのみを調査し、残りのポリシーは guardContent タグでマークされたコンテンツを調査します。
を使用してコンテキストに基づくグラウンドチェックを呼び出す ApplyGuardrail API
でコンテキストに基づくグラウンドチェックを使用すること ApplyGuardrail は、 で使用する場合と似ています。Converse APIs。 グラウンドソースとクエリをマークするには ApplyGuardrail、各コンテンツブロックの修飾子フィールドを使用します。ただし、モデルは で呼び出されないため ApplyGuardrail、コンテンツを保護する追加のコンテンツブロックも指定する必要があります。このコンテンツブロックはオプションで guard_content で修飾でき、Invoke* または Converse* のモデルレスポンスと同等ですAPIs。以下に例を示します。
[ { "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." } } ]
コンテキストグラウンディングチェックを実行するにはモデルレスポンスが必要であるため、チェックは、プロンプトではなく出力に対してのみ実行されます。
どのコンテンツブロックにも guard_content 修飾子が付いていない場合は、コンテキストグラウンディングチェックポリシーにより、グラウンディングソース、クエリ、およびレスポンスのみが調査されます。残りのポリシーは、デフォルトの調査動作に従います。デフォルトで、システムプロンプトは調査されず、メッセージが調査されます。ただし、コンテンツブロックが guard_content 修飾子でマークされている場合、コンテキストのグラウンドチェックポリシーはグラウンドソース、クエリ、およびレスポンスのみを調査し、残りのポリシーは guardContent タグでマークされたコンテンツを調査します。
コンテキストグラウンディングチェックの詳細については、「コンテキストグラウンディングチェックを使用する」を参照してください。