Amazon Bedrock ガードレールに自動推論チェックを追加して精度を向上させる - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Bedrock ガードレールに自動推論チェックを追加して精度を向上させる

Amazon Bedrock ガードレールの自動推論チェックは、定義されたポリシーに照らして自然言語の内容を数学的に検証し、ガードレールへの厳密な準拠を確保します。このチェックにより、有害または非準拠のコンテンツをユーザーに届く前に体系的にブロックできるようになります。自動推論は、パターンマッチングアプローチとは異なり、特に複雑なポリシー要件に対して誤検出を減らしてより高い精度を実現します。精度を優先する顧客の場合、ポリシールールをカスタマイズして、明確なロジックステートメントを通じてガードレールの有効性を高めることができます。

大規模言語モデル (LLM) の主な課題は、レスポンスの精度を確保することです。検証しないと、LLM はハルシネーションや不正確な情報を生成して信頼を損なう可能性があります。

Amazon Bedrock ガードレールの自動推論チェックは、数学的な手法を使用して次の問題を解決します。

  • LLM レスポンスのハルシネーションを検出する

  • 暗黙の仮定を強調する

  • 正確なステートメントがなぜ正しいのかを説明する

この機能は、以下のような状況で LLM のレスポンスの事実に基づく根拠を示す必要がある場合に特に役立ちます。

  • 医療や人材などの規制対象業界

  • 複雑なルールを持つ用途 (住宅ローンの承認、ゾーニング法など)

  • 監査可能な AI 対応を必要とするコンプライアンスシナリオ

Amazon Bedrock ガードレールの自動推論チェックは、プロンプトインジェクション攻撃からの防御にはなりません。このチェックでは、送信した内容を正確に検証します。悪意のあるコンテンツや操作されたコンテンツを入力として指定した場合、検証はそのコンテンツに対してそのまま実行されます (ガベージイン・ガベージアウト)。プロンプトインジェクション攻撃を検出してブロックするには、コンテンツフィルターを自動推論チェックと組み合わせて使用します。

自動推論は、自動推論ポリシーに関連するテキストのみを分析して検出します。その他のコンテンツは無視され、回答がトピック外であるかどうかをデベロッパーに伝えることはできません。トピック外のレスポンスを検出する必要がある場合は、トピックポリシーなどの他のガードレールコンポーネントを使用します。

注記

Amazon Bedrock ガードレールの自動推論チェックは、米国 (バージニア北部、オレゴン、オハイオ) および欧州 (フランクフルト、パリ、アイルランド) リージョンで一般提供されています。

注記

Amazon Bedrock ガードレールの自動推論チェックは、コンテンツフィルターやトピックポリシーなどの他の Amazon Bedrock ガードレール機能を補完します。詳細については、「ガードレールコンポーネント」を参照してください。

Amazon Bedrock ガードレールの自動推論チェックは現在、英語 (米国) のみをサポートしています。

Amazon Bedrock ガードレールの自動推論チェックはストリーミング API をサポートしていません。

制約事項と考慮事項

自動推論チェックを実装する前に、以下の重要な制限事項に注意してください。

  • ドキュメントの複雑さ: ソースドキュメントは明確で曖昧さのないルールで適切に構造化されている必要があります。ネストされた条件または矛盾するステートメントを持つ非常に複雑なドキュメントは、形式論理にクリーンに抽出されない場合があります。入力ドキュメントのサイズは 5Mb、50,000 文字に制限されています。より大きなドキュメントを分割し、各セクションをポリシーにマージできます。ドキュメント内のイメージとテーブルも入力文字数に影響します。

  • 処理時間: 自動推論検証により、アプリケーションレスポンスにレイテンシーが生じます。特に多くのルールを持つ複雑なポリシーの場合は、追加の処理時間を計画してください。

  • ポリシーの範囲: 各ポリシーは、1 つのポリシーで複数の無関係な領域をカバーするのではなく、特定のドメイン (人事、財務、法務など) に焦点を当てる必要があります。

  • 変数制限: 変数の数が多すぎるポリシーや、ルールのインタラクションが複雑すぎるポリシーは、処理制限に達したり、TOO_COMPLEX の結果を返したりする可能性があります。

  • 自然言語の依存関係: 検証の精度は、ユーザープロンプトとモデルレスポンスの自然言語をポリシーの形式論理変数にどれだけ正確に翻訳できるかどうかに大きく依存します。

  • 非線形算術: 制約に非線形算術 (不合理な数値や指数など) による推論が含まれる場合、自動推論チェックがタイムアウトしたり TOO_COMPLEX を返したりすることがあります。

ベストプラクティス

自動推論ポリシーの効果を最大化するには、以下のベストプラクティスに従います。

  • シンプルに始める: コアルールをカバーするフォーカスポリシーから始めて、徐々に複雑さを追加します。各段階で徹底的にテストします。

  • 包括的な変数の説明を記述する: ソースドキュメントの技術的な定義だけでなく、ユーザーが概念を自然に参照する方法を含めます。

  • エッジケースのテスト: ユーザーが遭遇する可能性のある境界条件、例外、異常なシナリオを特にターゲットとするテストを作成します。

  • 信頼度しきい値のモニタリング: より高い信頼度しきい値 (0.8~0.9) から開始し、偽陽性と偽陰性の許容度に基づいて調整します。

  • 定期的なポリシーメンテナンス: ビジネスルールが変更された場合や、テストと本番稼働での使用を通じてギャップが特定された場合に、ポリシーを確認して更新します。

  • 注釈を文書化する: ポリシーの変更とその背後にある理由を追跡して、今後の参照やチームの知識共有に役立てます。

料金

Amazon Bedrock ガードレールの自動推論チェックは、処理された検証リクエストの数に基づいて課金されます。現在の料金については、「Amazon Bedrock の料金」ページを参照してください。

結果 (VALID、INVALID、TRANSLATION_AMBIGUOUS など) に関係なく、検証リクエストごとに料金が発生します。以下を実行してコストを最適化します。

  • 適切な信頼度しきい値を使用して、精度と処理要件のバランスをとる

  • ユースケースに応じて、同一または類似のクエリの検証結果をキャッシュすることを検討する

  • 使用パターンをモニタリングしてポリシーを調整し、不要な検証リクエストを減らす

ポリシーオペレーションのクロスリージョン推論

自動推論は、クロスリージョン推論を活用して、ポリシーの作成およびテストオペレーションのパフォーマンスと可用性を最適化します。特定の API オペレーションは、信頼性の高いサービス提供を確保するために、地理的境界内の AWS リージョン全体に処理を自動的に分散します。

次の自動推論 API オペレーションでは、クロスリージョン推論を使用します。

  • StartAutomatedReasoningPolicyBuildWorkflow - ポリシーの作成時およびソースドキュメントからのコンパイル時に呼び出される

  • StartAutomatedReasoningPolicyTestWorkflow - ポリシーの検証およびテスト手順中に呼び出される

これらのオペレーションは、大規模言語モデルを呼び出して、ソースドキュメントから形式論理ルールを抽出し、自然言語コンストラクトを構造化された論理表現に翻訳します。最適なパフォーマンスと可用性を確保するために、リクエスト処理は次の地理的ルーティングに従って分散されます。

  • 米国リージョン: 米国東部 (バージニア北部)、米国西部 (オレゴン)、または米国東部 (オハイオ) を起点とする API リクエストは、サポートされている任意の米国リージョンで処理できます。

  • 欧州連合リージョン: EU (フランクフルト)、EU (パリ)、または EU (アイルランド) を起点とする API リクエストは、サポートされている任意の EU リージョンで処理できます。

重要

顧客データは発信元の地理的境界 (米国または欧州連合) 内にとどまり、AWS データレジデンシーのコミットメントに従って処理されます。クロスリージョン推論は、パフォーマンスとサービスの可用性を最適化するために、同じ地理的リージョン内でのみリクエストをルーティングします。

クロスリージョン推論は、顧客設定を必要とせずに透過的に動作します。API 機能は、リクエストを処理する特定のリージョンに関係なく、一貫性を維持します。

Amazon Bedrock ガードレールで自動推論チェックを使用するには、次の手順に従います。

  1. 適用するルールを含むソースドキュメントをアップロードする

  2. 自動的に識別された概念とルールを使用して抽出されたポリシーを確認する

  3. ポリシーをテストして絞り込み、正しく動作することを確認する

  4. ポリシーをデプロイして基盤モデルのレスポンスを検証する

ワークフローは次のように視覚化できます。

Source Document → Extracted Policy → Testing → Deployment → Runtime Validation (rules) (formal logic) (verify) (activate) (check responses)

ポリシー

自動推論ポリシーは、ソースドキュメントから自動的に抽出されるロジックルールと変数を含む、精度検証の基盤です。これらのポリシーはビジネスルールの数学的表現として機能し、基盤モデルのレスポンスが定義された制約に準拠しているかどうかをシステムが体系的に検証できるようにします。アプリケーションで自動推論チェックを実行するには、特定のドメインと検証要件に一致するポリシーを使用するようにガードレールを設定します。

Rules

ルールは、自動推論によってソースドキュメントから抽出されるロジックです。これは if-then ステートメントとして記述される場合があります。ルール形式の例をいくつか示します。

<claim> is true if <premise>

注記

重要: if-then 形式でないルールは、世界に関する公理を示すことで、予期せぬ結果をもたらすことがあります。例えば、ルールが単に accountBalance > 5 と記述している場合、検証の内容に関係なく、口座残高が 5 以下になることは不可能になります。ルールにより、その条件は論理的に存在することが不可能となっています。そのため、コンテンツがルールによって確立された公理と矛盾するために誤って非準拠としてフラグ付けされるという予期しない検証結果が発生する可能性があります。これを回避するには、絶対制約ではなく関係性を記述する条件ステートメント (if-then 形式) としてルールを構築します。

[変数]

変数は、自然言語を形式論理に変換するときに値を割り当てることができる自動推論ポリシーの概念を表します。ポリシールールは、これらの変数の有効な値または無効な値に対する制約を定義します。

変数には、名前、タイプ、説明があります。例えば、従業員の福利厚生に関するポリシーには、「employee_age」という名前、「integer」というタイプ、「従業員の年齢」という説明の変数があるとします。この変数には、アプリケーションへのプロンプトの自然言語に基づいて 25 のような値を割り当てることができます。

例えば、HR ポリシーの is_full_time 変数には、ソースドキュメントから直接引用された「週に 20 時間以上勤務する従業員」という説明が含まれているとします。チャットボットを使用する場合、ユーザーは「週に 20 時間以上働いています」ではなく「フルタイムです」と言うことのほうが多くなります。

自然言語から形式論理への変換の精度は、変数の説明の品質に大きく依存します。変換が完了すると推論プロセスは妥当なものになりますが、明確で包括的な変数の説明によってユーザープロンプトが正しく解釈されます。変数の完全な説明がないと、自動推論は入力された自然言語を形式論理表現に変換できないため、NO_DATA を返す可能性があります。

このようなシナリオを考慮するには、変数の説明が重要です。包括的な変数の説明には、「週に 20 時間以上勤務する従業員はフルタイムです。ユーザーは、この値を true に設定するにはフルタイムと言い、false に設定するにはパートタイムと言います」

定義済みの変数タイプ

次の表に、ポリシーで使用できる定義済みの変数タイプを示します。

説明

BOOL

ブール変数は true または false にすることができます。例えば、休暇ポリシーでは、BOOL 変数を使用して休暇が許可されるかどうかを識別します。

INT

数値 INT 変数は正または負の整数を格納できます。例えば、休暇ポリシーでは、端数日数が許可されていない場合、INT 変数を使用して蓄積された休暇日数を保存します。

NUMBER

NUMBER 変数は、10 進精度を必要とする正または負の数値を保存できます。例えば、休暇ポリシーでは、NUMBER 変数を使用して、未使用の休暇日数に対するドル支払い額を格納します。

enum

列挙変数は、カスタムタイプで定義された固定オプションのセットから選択された単一の値を保存できるユーザー定義タイプです。たとえば、休暇ポリシーでは、列挙変数を使用してLeaveType、 (1) 有料休暇、 (2) 個人時間、 (3) 休暇を保存できます。これらのカスタムタイプを使用すると、ポリシードメインに関連する特定の値のセットを定義できます。列挙型名は、 INTや などのデフォルト型と競合しないでくださいBOOL