测试自动推理策略 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

测试自动推理策略

您可以通过发送自然语言语句或 QnAs 进行验证来测试策略,然后检查 Automated Reasoning 会检查反馈,以确保它使用正确的变量翻译输入文本,并且验证所依据的规则是正确的。

您可以通过两种方式创建测试:手动定义 question-and-answer (qnA) 对或自动生成测试场景。 QnAs 是特定的用户问题,以及您为测试特定用例而编写的相应模型答案,而测试场景是根据您的策略规则自动生成的逻辑情况,在您的应用程序环境中可能现实,也可能不现实。

注意

教程视频:有关测试自动推理策略的 step-by-step演练,请观看以下教程:

教程演示 2 – 测试自动推理策略

测试应模仿您的应用程序用户可能提出的问题,以及他们可能从基础模型中得到的响应。自动推理会根据您的自动推理策略中的规则,评测提示和响应的准确性。自动推理通过以下步骤执行此验证:

提示

最佳实践:创建涵盖有效场景和无效场景的测试。例如,如果您的策略规定“员工需要工作满 1 年才能休育儿假”,则需要对能够正确说明此规则的响应创建测试,以及对不能正确地说明不同要求的响应创建测试。

  1. 使用测试的问题和回答以及策略的变量及其描述,将自然语言输入转换为形式逻辑。

  2. 使用合理的数学技巧,根据策略验证翻译后的逻辑。

注意

自动推理使用人工智能技术将自然语言翻译为逻辑,但这种技术无法保证完美准确性。但是,良好的测试有助于检测和修复自动推理策略中可能存在的不准确之处。

在控制台中手动创建测试

  1. 转到您要测试的自动推理策略(例如,MyHrPolicy)。

  2. 选择查看测试,然后选择添加

  3. 添加测试对话框中,执行以下操作:

    1. 包含输入(可选)和输出。这些内容代表用户可能提出的问题,以及您的基础模型可能给出的响应,它们共同构成了问答对,用于测试您的策略如何验证真实的用户互动。

    2. 选择您期望从测试中获得的结果(例如有效无效)。

    3. 选择置信度阈值,这是逻辑验证的最低置信水平。

  4. 选择保存来创建测试。

注意

创建测试时,置信度阈值是可选的。

  • 自动推理检查使用多个大型语言模型 (LLMs) 将自然语言测试转化为结果。它只返回有很大一部分 LLM 翻译支持的“可信”调查发现。置信度阈值定义对于将翻译视为具有有效结果的调查发现,所需的最低支持百分比。

  • 如果有一个或多个翻译后的调查发现没有得到足够百分比的 LLM 翻译支持,则自动推理检查功能将显示额外的“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(可选)

测试的预期验证结果(例如,VALIDINVALID)。测试的实际结果是通过按重要性顺序对结果进行排序并选择最差的结果来选择的。排序顺序为:模棱两可、不可能、无效、可满足和有效。例如,一项检验得出两个有效结果和一个不可能的结果,其汇总结果将是不可能的。

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

响应将包括详细的测试结果以及验证调查发现和执行状态。