自動推論ポリシーをテストする - Amazon Bedrock

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

自動推論ポリシーをテストする

自然言語ステートメントまたは QnAs を検証用に送信してポリシーをテストし、自動推論チェックのフィードバックを調べて、適切な変数を使用して入力テキストが変換されていて、検証対象のルールが正しいことを確認します。

質問と回答 (QnA) のペアを手動で定義するか、テストシナリオを自動的に生成するかの 2 つの方法でテストを作成できます。QnA は、特定のユースケースをテストするために記述する、対応するモデルレスポンスを含む特定のユーザーの質問です。一方、テストシナリオは、ポリシールールから自動的に生成される論理的な状況であり、アプリケーションコンテキストで現実的な場合とそうでない場合があります。

注記

チュートリアルビデオ: 自動推論ポリシーをテストするステップバイステップのウォークスルーについては、次のチュートリアルを参照してください。

チュートリアルデモ 2 - 自動推論ポリシーのテスト

テストは、アプリケーションのユーザーが尋ねる質問と、基盤モデルから得られる可能性のあるレスポンスを模倣する必要があります。自動推論は、自動推論ポリシーのルールに関してプロンプトとレスポンスの精度を評価します。自動推論は、以下の手順でこの検証を実行します。

ヒント

ベストプラクティス: 有効なシナリオと無効なシナリオの両方をカバーするテストを作成します。例えば、ポリシーに「従業員は育児休暇に 1 年間のサービスを必要とする」と記載されている場合、このルールを正しく記載するレスポンスのテストと、別の要件を誤って記載するレスポンスのテストを作成します。

  1. テストの質問と回答をポリシーの変数とその説明とともに使用して、自然言語入力を正式なロジックに変換します。

  2. 正当な数学手法を使用して、変換されたロジックをポリシーに対して検証します。

注記

自動推論は、完全な精度を保証できない AI 技術を使用して自然言語をロジックに変換します。ただし、適切なテストは、自動推論ポリシーの潜在的な不正確さを検出して修正するのに役立ちます。

コンソールでテストを手動で作成する

  1. テストする自動推論ポリシー (MyHrPolicy など) に移動します。

  2. [テストを表示] を選択し、[追加] を選択します。

  3. [テストを追加] ダイアログで、次の操作を行います。

    1. 入力 (オプション) と出力を含めます。これらは、ユーザーが尋ねる可能性がある質問と基盤モデルが提供する可能性があるレスポンスを表し、ポリシーが実際のユーザー関与を検証する方法をテストする QnA ペアを形成します。

    2. テストで予期される結果 (有効無効など) を選択します。

    3. ロジック検証の最小信頼度レベルである信頼度しきい値を選択します。

  4. [保存] を選択してテストを作成します。

注記

テストを作成するとき、信頼度しきい値はオプションです。

  • 自動推論チェックでは、複数の大規模言語モデル (LLM) を使用して自然言語テストを検出結果に変換します。LLM 変換のかなりの割合でサポートされている「信頼できる」検出結果のみが返されます。信頼度しきい値は、変換が有効な結果のある検出結果になるために必要なサポートの最小パーセンテージを定義します。

  • LLM 変換の十分な割合でサポートされていない変換された検出結果が 1 つ以上ある場合、自動推論チェックは追加の「TRANSLATION_AMBIGUOUS」検出結果を表示します。この検出結果には、一致しない LLM 変換間の違いを強調するための情報が含まれます。

コンソールでテストを自動的に生成する

  1. テストする自動推論ポリシー (MyHrPolicy など) に移動します。

  2. [テストを表示] を選択し、[生成] を選択します。

  3. [シナリオを生成] ダイアログで、生成されたシナリオと関連するルールを確認します。次に、以下のいずれかを行ってください。

    • シナリオが発生する可能性があると思われる場合 (満足できるシナリオとも呼ばれます)、親指を立てたアイコン (はい) を選択します。

    • そうでない場合は、親指を下げたアイコン (いいえ) を選択します。また、シナリオが不可能であると考える理由を説明する注釈を指定することもできます。これは、ドキュメントにコメントを残すことに似ています。

    • 別のシナリオをテストする場合は、[シナリオを再生成] を選択します。

    ヒント

    シナリオの正式なロジックバージョンを調べる場合は、[SMT-LIB の表示] を有効にします。

  4. [保存して閉じる] を選択してテストを保存するか、保存して別のテストを追加します

  5. いずれかのテストに注釈を指定した場合は、[注釈を適用] を選択します。自動推論は、フィードバックに基づいてポリシーを変更します。

  6. [ポリシー変更の確認] 画面で、ポリシーのルール、変数、変数タイプに対する変更を確認します。次に、[変更を受け入れる] を選択します。

コンソールでテストを実行する

  1. 検証する自動推論ポリシー (MyHrPolicy など) に移動します。

  2. [テスト項目を表示] を選択します。

  3. 次のいずれかを行います。

    • ポリシーのすべてのテストを実行するには、[すべてのテストを検証] を選択します。

    • テストを個別に実行するには、実行するテストの横にある [アクション] ボタンを選択し、[検証] を選択します。

API を使用してテストを手動で作成する

CreateAutomatedReasoningPolicyTestCase API オペレーションを使用して、自動推論ポリシーのテストをプログラムで作成できます。

リクエストパラメータ

テストを作成するときは、次のパラメータが必要です。

policyArn (必須)

テストを作成する自動推論ポリシーの Amazon リソースネーム (ARN)。

queryContent (オプション)

ユーザーの質問など、コンテンツを生成した入力クエリまたはプロンプト。これにより、検証のコンテキストが提供されます。

guardContent (必須)

自動推論ポリシーによって検証される出力コンテンツ。これは、精度をチェックする基盤モデルのレスポンスを表します。

expectedAggregatedFindingsResult (オプション)

テストで予想される検証結果 (例: VALID または INVALID)。テストの実際の結果は、検出結果を重要度順にソートし、最悪の結果を選択することによって選択されます。ソート順序は、あいまい、不可能、無効、満足可能、有効です。例えば、2 つの有効な検出結果と 1 つの不可能な検出結果が得られるテストでは、集計結果が不可能になります。

confidenceThreshold (オプション)

ロジック検証の最小信頼レベル。しきい値を満たすコンテンツは、検証できる信頼度の高い検出結果と見なされます。

次の例は、AWS CLI を使用して自動推論ポリシーのテストを作成する方法を示しています。

aws bedrock create-automated-reasoning-policy-test-case \ --policy-arn "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk" \ --query-content "Can I take a leave of absence if I'm a part-time employee?" \ --guard-content "No, only full-time employees are eligible for leave of absence." \ --expected-aggregated-findings-result "VALID" \ --confidence-threshold 0.8

レスポンスの例:

{ "testCaseId": "test-12345abcde", "policyArn": "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk" }

API を使用してテストを自動的に生成する

GetAutomatedReasoningPolicyNextScenario API オペレーションを使用して、ポリシーのルールに基づいて次に生成されたテストシナリオを取得できます。

リクエストパラメータ

テストシナリオを生成する場合、以下のパラメータは必須またはオプションです。

policyArn (必須)

テストシナリオを生成する自動推論ポリシーの Amazon リソースネーム (ARN)。

buildWorkdflowId (必須)

生成されたシナリオのビルドワークフローの一意の識別子。ListAutomatedReasoningPolicyBuildWorkflows API アクションを使用して、最新のビルドワークフローを取得できます。

次の例は、 を使用して自動推論ポリシーに対して次に生成されたテストシナリオを取得する方法を示していますAWS CLI。

aws bedrock get-automated-reasoning-policy-next-scenario \ --policy-arn "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk" \ --build-worflow-id d40fa7fc-351e-47d8-a338-53e4b3b1c690

レスポンスには、テストを作成するために確認して使用できる、生成されたテストシナリオが含まれます。

API を使用してテストを実行する

StartAutomatedReasoningPolicyTestWorkflow API オペレーションを使用して自動推論ポリシーテストを実行し、 GetAutomatedReasoningPolicyTestResultオペレーションを使用して結果を取得できます。

リクエストパラメータ

テストを実行するときは、次のパラメータが必要です。

policyArn (必須)

自動推論ポリシーの Amazon リソースネーム (ARN)。

buildWorkdflowId (必須)

テストを実行するビルドワークフローの一意の識別子。ListAutomatedReasoningPolicyBuildWorkflows API アクションを使用して、最新のビルドワークフローを取得できます。

testCaseIds (オプション)

実行するテスト識別子のリスト。指定しない場合、ポリシーのすべてのテストが実行されます。

テスト結果を取得する

テストの結果を取得するには、 GetAutomatedReasoningPolicyTestResult API アクションで次のパラメータを使用します。

policyArn (必須)

自動推論ポリシーの Amazon リソースネーム (ARN)。

buildWorkflowId (必須)

ビルドワークフローの識別子。結果を取得するには、ビルドワークフローで COMPLETED ステータスを表示する必要があります。

testCaseId (必須)

結果を取得するテストの一意の識別子。

次の例は、AWS CLI を使用してテストを実行し、結果を取得する方法を示しています。

# Run the test aws bedrock start-automated-reasoning-policy-test-workflow \ --policy-arn "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk" \ --build-worflow-id d40fa7fc-351e-47d8-a338-53e4b3b1c690 # Get the test results aws bedrock get-automated-reasoning-policy-test-result \ --policy-arn "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk" \ --build-worflow-id d40fa7fc-351e-47d8-a338-53e4b3b1c690 \ --test-case-id test-12345abcde

レスポンスには、検証の検出結果と実行ステータスを含む詳細なテスト結果が含まれます。