Amazon Bedrock Guardrails:检测模型幻觉并保护应用程序
关键要点
Amazon Bedrock Guardrails 现在能够检测模型的幻觉,帮助应用程序防止不良内容和保护隐私。新增加的背景基础检查政策及 ApplyGuardrail API 功能,可用于所有基础模型,不仅限于 Amazon Bedrock。通过这些功能,用户可以在所有生成型 AI 应用中实施一致的安全防护。2024年7月10日: 此文包含了更新版本的 ApplyGuardrail API 代码示例。
Amazon Bedrock Guardrails 使客户能够根据应用需求和公司责任人工智能AI政策实施安全措施。它能帮助防止不良内容,阻止数据注入和监狱突破,同时删除敏感信息以保护隐私。用户可以结合多个策略类型,为不同场景配置这些保护措施,并适用于 Amazon Bedrock 上的基础模型FMs,以及 Amazon Bedrock 以外的自定义和第三方FMs。Guardrails 还可以与 Amazon Bedrock 代理 和 知识库 进行集成。
Amazon Bedrock Guardrails 在原生模型提供的保护基础上提供了额外的可定制保护措施,确保行业领先的安全性:
安全特性说明阻止高达85的有害内容有效地应对不当内容。允许客户定制和应用安全、隐私和真实性保护统一管理不同类型的安全措施。为RAG和摘要工作负载过滤超过75的幻觉响应显著提高了响应质量。Amazon Bedrock Guardrails 首次在 reInvent 2023 中发布预览,最初支持内容过滤和拒绝主题等策略。在 2024年4月的 正式发布 中,Guardrails 支持四项保护措施:拒绝主题、内容过滤、敏感信息过滤和词语过滤。
MAPFRE 是西班牙最大的保险公司,在全球40个国家运营。MAPFRE 副建筑主任 Andrs Hevia Vega 表示:“MAPFRE 实施了 Amazon Bedrock Guardrails,以确保基于 RAG 的聊天机器人 MarkIA 符合我们的企业安全政策和责任 AI 实践。Guardrails 帮助我们对有害内容进行内容过滤,拒绝未经授权的主题,标准化企业安全政策,以及匿名化个人数据,以保持最高级别的隐私保护。”
今天,我们宣布新增两项功能:
上下文基础检查:根据参考信息和用户查询检测模型响应中的幻觉。ApplyGuardrail API:评估所有基础模型包括 Amazon Bedrock 上的 FMs、自定义和第三方 FMs的输入提示和模型响应,实现集中管理。上下文基础检查 新的幻觉检测策略
客户通常依赖 FMs 生成基于公司来源数据的可信有根据响应。然而,FMs 可能会混淆多个信息片段,产生不正确或新信息,从而影响应用程序的可靠性。上下文基础检查是第五项保护措施,它能够检测模型响应中不基于企业数据的幻觉数据或与用户查询无关的数据。这可以用于提高 RAG、摘要或信息提取等用例中的响应质量。例如,您可以将上下文基础检查与 Amazon Bedrock 知识库结合使用,通过过滤不准确的响应来实施可信的 RAG 应用程序。
上下文基础检查有两个过滤参数:
基础:通过提供代表最低置信分数的 基础阈值 开启。模型响应的置信分数低于定义的阈值时被阻止,并返回配置的阻止消息。相关性:基于 相关性阈值 的参数,表示模型响应与用户查询相关的最低置信分数。低于定义的阈值的模型响应同样被阻止,并返回配置的阻止消息。针对特定用例的准确性容忍度,请确保根据需要调整基础和相关性的阈值。比如,金融领域的面向客户的应用可能需要设置较高的阈值以应对较低的内容不准确容忍度。
上下文基础检查的操作示例
以下是使用上下文基础检查的几个示例。
小熊加速器最新版本我在 AWS 管理控制台 中选择 Guardrails,然后点击 Create guardrail 创建一个包含上下文基础检查策略的保护措施。
配置保护措施后,我可以在 Guardrail Overview 页面选择模型并进行测试,验证响应的基础和相关性。
通过这些步骤,您可以在生成型 AI 应用程序中全面实施保护措施。通过输入内容示例进行测试,我发现一些模型响应是准确或相关的,而一些可能会被阻止。
ApplyGuardrail 为自定义模型保护应用程序
至今为止,Amazon Bedrock Guardrails 主要用于评估 Amazon Bedrock 中基础模型的输入提示和响应。而现在,Guardrails 对 ApplyGuardrail API 的支持使得可以评估所有用户输入和模型响应,实现对所有生成型 AI 应用程序的统一标准化保护。这使确保您可以在 Amazon Bedrock 中的输入提示和响应、以及其他服务如 Amazon SageMaker上实施一致的保护策略。
以下是如何在应用程序中使用 ApplyGuardrail API 的示例:
pythonimport boto3
bedrockRuntimeClient = boto3client(bedrockruntime regionname=useast1)bedrockClient = boto3client(bedrock regionname=useast1)guardrailname = fiduciaryadvice
def createguardrail()
createresponse = bedrockClientcreateguardrail( name=guardrailname description=防止模型提供信托顾问建议。 topicPolicyConfig={ topicsConfig [ { name Fiduciary Advice definition 提供有关财务资产管理的个性化建议或推荐。 examples [ 我退休时应该投资哪些股票? 把钱放入共同基金是个好主意吗? 我该如何分配我的401(k)投资? ] type DENY } ] } blockedInputMessaging=抱歉,我无法提供个性化财务顾问建议。 blockedOutputsMessaging=抱歉,我无法提供个性化财务顾问建议。)versionresponse = bedrockClientcreateguardrailversion( guardrailIdentifier=createresponse[guardrailId] description=阻止信托顾问建议的保护措施版本)return createresponse[guardrailId] versionresponse[version]一旦创建了保护措施,您就可以应用 applyguardrail 函数对输入文本进行评估。通过设置源为 INPUT ,阻止相关的输入并返回预定义的响应。
现在可以使用上下文基础检查和 ApplyGuardrail API 现已在所有支持 Guardrails 的 AWS 区域 中可用。您可以在 Amazon Bedrock 控制台 中试用这些功能,并通过 AWS rePost for Amazon Bedrock 提交反馈。
更多关于 Guardrails 的信息,请访问 Guardrails for Amazon Bedrock 产品页面,以及 Amazon Bedrock 定价 页面以了解与保护政策相关的成本。
别忘了访问 communityaws 网站,找到更深入的技术内容及了解开发社区如何利用 Amazon Bedrock。

Abhishek
Abhishek Gupta
Abhishek 在其职业生涯中曾在工程、产品管理和开发者倡导等领域工作。他对分布式数据系统和云原生平台感兴趣。是开源贡献者,热爱技术写作,并自2016年起对 Go 编程语言情有独钟。您可以在 LinkedIn 或 Twitter @abhitweeter 上与他联系。