通过在 Amazon Bedrock Guardrails 中添加自动推理检查来提高准确性 - Amazon Bedrock

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

通过在 Amazon Bedrock Guardrails 中添加自动推理检查来提高准确性

Amazon Bedrock Guardrails 中的自动推理检查根据您定义的政策以数学方式验证自然语言内容,确保严格遵守您的护栏。这些检查可以帮助在有害或不合规的内容到达用户之前系统地将其屏蔽。与模式匹配方法不同,Automated Reasoning 可提供更高的准确性和更少的误报,尤其是在复杂的策略要求下。对于优先考虑精度的客户,可以定制策略规则,通过清晰的逻辑陈述来提高护栏的有效性。

大型语言模型 (LLMs) 面临的一个关键挑战是确保其响应的准确性。未经验证,有时 LLMs 会产生幻觉或不准确的信息,从而破坏信任。

Amazon Bedrock Guardrails 中的自动推理检查通过使用数学技术来解决这个问题:

  • 检测法学硕士反应中的幻觉

  • 突出显示未陈述的假设

  • 解释为什么准确的陈述是正确的

当您需要在以下方面证明法学硕士回应的事实依据时,此功能特别有价值:

  • 医疗保健和人力资源等受监管行业

  • 规则复杂的申请(抵押贷款审批、分区法)

  • 需要可审计的 AI 响应的合规场景

Amazon Bedrock Guardrails 中的自动推理检查无法抵御即时注入攻击。这些检查会准确验证您发送给它们的内容——如果提供恶意或被操纵的内容作为输入,则将按原样对该内容进行验证(垃圾输入、垃圾输出)。要检测和阻止提示注入攻击,请将内容过滤器与自动推理检查结合使用。

自动推理仅分析和检测与自动推理策略相关的文本。它将忽略其余内容,也无法告诉开发者答案是否偏离主题。如果您需要检测题外响应,请使用其他防护组件,例如主题策略。

注意

Amazon Bedrock Guardrails 中的自动推理检查通常适用于美国(弗吉尼亚北部、俄勒冈和俄亥俄州)和欧洲(法兰克福、巴黎、爱尔兰)地区。

注意

Amazon Bedrock Guardrails 中的自动推理检查补充了 Amazon Bedrock Guardrails 的其他功能,例如内容筛选器和主题政策。有关更多信息,请参阅护栏组件

CloudFormation 目前不支持。 CloudFormation 支持将很快到来。

Amazon Bedrock Guardrails 中的自动推理检查目前仅支持英语(美国)。

Amazon Bedrock Guardrails 中的自动推理检查不支持直播。 APIs

限制和注意事项

在实施自动推理检查之前,请注意以下重要限制:

  • 文档复杂性:源文档应结构合理,规则清晰明确。带有嵌套条件或矛盾语句的高度复杂文档可能无法干净地提取到形式逻辑中。

  • 处理时间:自动推理验证会增加应用程序响应的延迟。计划额外的处理时间,特别是对于具有许多规则的复杂策略。

  • 政策范围:每项政策都应侧重于特定的领域(例如,人力资源、财务、法律),而不是试图在单一政策中涵盖多个不相关的领域。

  • 变量限制:变量过多或规则交互过于复杂的策略可能会达到处理限制或返回 TOO_COMPLEX 结果。

  • 自然语言依赖性:验证的准确性在很大程度上取决于用户提示和模型响应中的自然语言能否很好地转换为策略的形式逻辑变量。

最佳实践

请遵循以下最佳实践,最大限度地提高自动推理策略的有效性:

  • 从简单开始:从涵盖核心规则的重点策略开始,然后逐渐增加复杂性。在每个阶段进行彻底测试。

  • 撰写全面的变量描述:包括用户如何自然地引用概念,而不仅仅是源文档中的技术定义。

  • 测试边缘案例:创建专门针对边界条件、异常和用户可能遇到的异常场景的测试。

  • 监控可信度阈值:从更高的置信度阈值 (0.8-0.9) 开始,然后根据您对误报与误报的容忍度进行调整。

  • 定期政策维护:随着业务规则的变化或通过测试和生产使用发现差距,审查和更新您的政策。

  • 记录您的注释:跟踪政策修改及其背后的原因,以备将来参考和团队知识共享。

定价

Amazon Bedrock Guardrails 中的自动推理检查是根据处理的验证请求数量收取的。有关当前定价信息,请参阅 Amazon Bedrock 定价页面

无论结果如何(例如,VALID、INVALID、TRANSLATION_MIBLITY),每个验证请求都会产生费用。要优化成本,请执行以下操作:

  • 使用适当的置信度阈值来平衡精度和处理要求

  • 在适合您的用例时,可以考虑缓存相同或相似查询的验证结果

  • 监控使用模式并调整策略以减少不必要的验证请求

策略操作的跨区域推理

自动推理利用跨区域推理来优化策略创建和测试操作的性能和可用性。特定的 API 操作会自动将处理分散到您的地理边界内的 AWS 区域,以确保可靠的服务交付。

以下自动推理 API 操作采用跨区域推理:

  • StartAutomatedReasoningPolicyBuildWorkflow-在从源文档创建和编译策略时调用

  • StartAutomatedReasoningPolicyTestWorkflow-在策略验证和测试过程中调用

这些操作调用大型语言模型从源文档中提取形式逻辑规则,并将自然语言结构转换为结构化逻辑表示形式。为确保最佳性能和可用性,请求处理根据以下地理路由进行分配:

  • 美国区域:来自美国东部(弗吉尼亚北部)、美国西部(俄勒冈)或美国东部(俄亥俄州)的 API 请求可在任何受支持的美国地区处理。

  • 欧盟区域:来自欧洲(法兰克福)、欧洲(巴黎)或欧洲(爱尔兰)的 API 请求可在任何支持的欧盟地区处理。

重要

客户数据保留在原始地理边界(美国或欧盟)内,并按照 AWS 数据驻留承诺进行处理。跨区域推理仅在同一地理区域内路由请求,以优化性能和服务可用性。

跨区域推理可以透明地运行,无需客户配置。无论处理请求的特定区域在哪里,API 功能都保持一致。

要在 Amazon Bedrock Guardrails 中使用自动推理检查,请按照以下步骤操作:

  1. 上传包含您要强制执行的规则的源文档

  2. 使用自动识别@@ 的概念和规则查看提取的政策

  3. 测试和完善政策以确保其正常运行

  4. 部署策略以验证基础模型的响应

工作流程可以可视化为:

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

策略

自动推理策略是准确性验证的基础,它包含从源文档中自动提取的逻辑规则和变量。这些策略可作为业务规则的数学表示,使系统能够系统地验证基础模型响应是否符合您定义的约束。要在应用程序中执行自动推理检查,您需要将护栏配置为使用与您的特定域和验证要求相匹配的策略。

规则

规则是自动推理从您的源文档中提取的逻辑。这些语句可能写成 if-then 语句。以下是规则格式的一些示例:

if <premise>, then <claim>

<premise> is true

注意

重要:不是 if-then 格式的规则可能会通过阐述关于世界的公理而产生意想不到的后果。例如,如果规则简单地规定accountBalance > 5,那么无论验证内容怎么说,账户余额都不可能等于或小于 5。该规则使这种情况在逻辑上不可能存在。这可能会导致意想不到的验证结果,因为内容与规则建立的公理相矛盾,因此被错误地标记为不合规。为了避免这种情况,将规则结构化为描述关系而不是绝对约束的条件语句(if-then 格式)。

变量

变量代表自动推理策略中的概念,在将自然语言转换为形式逻辑时,可以为其分配值。您的策略规则定义了对这些变量的有效值或无效值的限制。

变量有名称、类型和描述。例如,关于雇员福利的政策可能有一个名为 “employe_age”、类型为 “整数” 和描述为 “雇员年龄” 的变量。在应用程序的提示中,可以根据自然语言为该变量分配一个像 25 这样的值。

例如,人力资源政策中的is_full_time变量可能有一个描述,上面写着 “每周工作超过20小时的员工”,这是源文档的直接引用。使用聊天机器人时,用户更有可能说 “我是全职的”,而不是 “我每周工作超过20个小时”。

从自然语言到形式逻辑的翻译的准确性在很大程度上取决于变量描述的质量。虽然翻译完成后推理过程是合理的,但清晰而全面的变量描述可确保正确解释用户提示。如果没有完整的变量描述,Automated Reasoning 可能会返回,NO_DATA因为它无法将输入的自然语言转换为其形式逻辑表示形式。

变量描述要考虑到这样的场景,这一点很重要。全面的变量描述可能会指出:“每周工作超过20小时的员工是全职员工。用户会说全职将此值设置为 true,或者说兼职将其设置为 false。”

预定义的变量类型

下表描述了您的策略可以具有的预定义变量类型。

类型 描述

布尔

布尔变量可以是真或假。例如,在请假政策中,您可以使用bool变量来确定是否允许请假。

整数

数值int变量可以存储正整数或负整数。例如,在请假政策中,如果不允许使用小数天数,则可以使用int变量来存储应计休假天数。

real

数值real变量可以存储需要十进制精度的正数或负数。例如,在请假政策中,您可以使用real变量来存储未使用休假日的美元付款金额。

enum

枚举变量可以存储从一组固定选项中选择的单个值。例如,在请假政策中,您可以使用枚举变量来存储休假类型:(1) 带薪休假;(2) 个人时间;(3) 请假

您还可以创建自定义的、用户定义的枚举类型,这些枚举类型除了预定义的变量类型之外还提供其他上下文。这些自定义类型允许您定义与您的策略域相关的特定值集。