测试自动推理策略 - Amazon Bedrock

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

测试自动推理策略

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

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

注意

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

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

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

提示

最佳实践:创建涵盖有效和无效场景的测试。例如,如果您的政策规定 “员工需要工作1年的育儿假”,请为正确说明此规则的回复创建测试,并测试错误地陈述不同要求的回复。

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

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

注意

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

在控制台中手动创建测试

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

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

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

    1. 包括输入(可选)和输出。它们代表了用户可能提出的问题以及您的基础模型可能提供的答案,它们共同构成了一对 QnA,用于测试您的策略如何验证真实的用户互动。

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

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

  4. 选择 “保存” 以创建测试。

注意

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

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

  • 如果有一个或多个翻译结果没有得到足够比例的法学硕士翻译支持,则自动推理检查将显示额外的 “TRANSLATION_MIGLITY” 结果。该发现将包含一些信息,以突出不同意的法学硕士翻译之间的区别。

在控制台中自动生成测试

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

  2. 选择 “查看测试”,然后选择 “生成”。

  3. 在 “生成方案” 对话框中,查看生成的场景和相关规则。然后,执行以下操作之一:

    • 如果您认为该场景可能发生(也称为可满足的场景),请选择竖起大拇指(是)。

    • 如果不是,请选择大拇指向下(否)。你也可以提供注释来解释为什么你认为这种场景是不可能的。这与在文档中留下评论类似。

    • 如果要测试其他方案,请选择 “重新生成场景”。

    提示

    如果要检查场景的形式逻辑版本,请启用 Show SMT- LIB。

  4. 选择 “保存并关闭” 以保存测试,或者选择 “保存并关闭” 以添加其他测试。

  5. 如果您为任何测试提供了注释,请选择应用注释。自动推理将根据您的反馈对您的政策进行更改。

  6. 查看策略更改屏幕上,查看对策略规则、变量和变量类型的更改。然后选择 “接受更改”。

在控制台中运行测试

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

  2. 选择 “查看测试”。

  3. 请执行以下操作之一:

    • 要运行策略的所有测试,请选择验证所有测试

    • 要单独运行测试,请选择要运行的测试旁边的 “操作” 按钮,然后选择 “验证”。

使用 API 手动创建测试

您可以使用 CreateAutomatedReasoningPolicyTestCase API 操作以编程方式为您的自动推理策略创建测试。

请求参数

创建测试时,以下参数为必填参数或可选参数:

policyArn(必需)

要为其创建测试的自动推理策略的 Amazon 资源名称 (ARN)。

guardContent(必需)

由自动推理策略验证的输出内容。这表示将要检查其准确性的基础模型响应。

query(可选)

生成内容的输入查询或提示。这为验证提供了上下文。

expectedAggregatedFindingsResult(可选)

测试的预期验证结果(例如,VALIDINVALID)。

confidenceThreshold(可选)

逻辑验证的最低置信度。符合阈值的内容被视为可以验证的高可信度发现。

示例

以下示例说明如何使用以下方法为自动推理策略创建测试 AWS CLI:

aws bedrock create-automated-reasoning-policy-test-case \ --policy-arn "arn:aws:bedrock:us-west-2:123456789012:automated-reasoning-policy/k8m9n2p4q7r5" \ --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-west-2:123456789012:automated-reasoning-policy/k8m9n2p4q7r5" }

使用 API 自动生成测试

您可以使用 GenerateAutomatedReasoningPolicyTestScenarios API 操作根据您的策略规则自动生成测试场景。

请求参数

生成测试场景时,以下参数为必填参数或可选参数:

policyArn(必需)

用于生成测试场景的自动推理策略的 Amazon 资源名称 (ARN)。

maxResults(可选)

要生成的测试场景的最大数量。

示例

以下示例说明如何使用以下方法为自动推理策略生成测试场景 AWS CLI:

aws bedrock generate-automated-reasoning-policy-test-scenarios \ --policy-arn "arn:aws:bedrock:us-west-2:123456789012:automated-reasoning-policy/k8m9n2p4q7r5" \ --max-results 3

响应将包括生成的测试场景,您可以查看这些场景并使用这些场景来创建测试。

使用 API 运行测试

您可以使用 ValidateAutomatedReasoningPolicyTest API 操作对自动推理策略运行测试,并使用该GetAutomatedReasoningPolicyTestResult操作来检索结果。

请求参数

运行测试时需要以下参数:

policyArn(必需)

自动推理策略的亚马逊资源名称 (ARN)。

testCaseId(必需)

要运行的测试的唯一标识符。

获取测试结果

要检索测试结果,请使用以下参数:

policyArn(必需)

自动推理策略的亚马逊资源名称 (ARN)。

buildWorkflowId(必需)

构建工作流程标识符。生成工作流程必须显示COMPLETED状态才能获得结果。

testCaseId(必需)

要检索结果的测试的唯一标识符。

示例

以下示例说明如何使用运行测试和检索结果 AWS CLI:

# Run the test aws bedrock validate-automated-reasoning-policy-test \ --policy-arn "arn:aws:bedrock:us-west-2:123456789012:automated-reasoning-policy/k8m9n2p4q7r5" \ --test-case-id "test-12345abcde" # Get the test results aws bedrock get-automated-reasoning-policy-test-result \ --policy-arn "arn:aws:bedrock:us-west-2:123456789012:automated-reasoning-policy/k8m9n2p4q7r5" \ --build-workflow-id "workflow-67890fghij" \ --test-case-id "test-12345abcde"

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