使用 Amazon Bedrock Guardrails 检测和过滤有害内容
Source: Dev.to
请提供您希望翻译的正文内容,我将为您翻译成简体中文并保留原始的格式、Markdown 语法以及技术术语。谢谢!
技术概览
Amazon Bedrock Guardrails 提供了一个位于您的应用程序与用于生成响应的基础模型(FMs)之间的集中控制层。Guardrails 允许您定义可强制执行的安全、隐私和合规规则,这些规则会始终如一地应用——无论底层使用的是哪种模型。
从架构角度来看,Guardrails 会对输入提示和输出响应进行评估,确保不安全的内容在到达模型或最终用户之前被阻止或转换。
高级架构流程
-
用户请求进入应用程序
- 用户与应用程序交互(例如聊天机器人、银行门户或呼叫中心系统)。
- 请求通过 API 或 UI 层传递给应用后端。
-
通过 Bedrock Guardrails 进行提示评估
- 在请求发送到基础模型之前,应用程序调用带有相应 Guardrail 配置的 Amazon Bedrock。
- Guardrails 检查用户提示是否包含:
- 有害或有毒语言
- 不允许的主题(例如金融或法律建议)
- 敏感数据模式(PII,取决于配置)
- 如果提示违反已定义的策略,Bedrock 可以:
- 阻止请求
- 返回预定义的安全响应
- 记录事件以供审计和监控
-
模型调用(如果提示被允许)
- 只有通过 Guardrail 评估的提示才会转发给选定的基础模型(例如 Claude、Titan 或其他受 Bedrock 支持的模型)。
- 这将安全逻辑与模型本身解耦,并确保即使模型被替换或升级,也能保持一致的行为。
-
通过 Guardrails 对响应进行评估
- 基础模型生成响应后,再次对模型输出应用 Guardrails。
- Guardrails 可以:
- 检测并阻止有毒或不安全的响应
- 防止不允许的建议或政策违规
- 对个人身份信息(PII)进行编辑或遮蔽
-
最终响应返回给用户
- 只有符合 Guardrail 规则的响应才会返回给应用程序并显示给用户。
- 如果响应违反政策,则返回受控的回退消息。
示例架构使用案例
| 用例 | 防护角色 |
|---|---|
| 聊天机器人架构 | 在推理前验证用户输入,并在推理后扫描模型输出,以确保不会向用户展示任何滥用或有害内容。 |
| 金融服务架构 | 充当政策执行层,阻止与投资建议相关的提示或响应,降低监管风险,同时仍允许提供一般金融信息。 |
| 联络中心摘要流水线 | 对话记录通过 Bedrock 传输,配置了防护栏以检测并删除个人身份信息(PII),随后将摘要存储在下游系统,如 S3、OpenSearch 或 CRM 平台。 |
为什么这种架构重要
通过将安全控制与应用逻辑和模型选择分离,Amazon Bedrock Guardrails 实现了:
- 集中治理,跨多个 AI 工作负载
- 模型无关的安全执行
- 更轻松的审计、合规和政策更新,无需更改代码
这种方法使团队能够在扩展生成式 AI 应用的同时,保持可预测、受控且合规的行为,适用于各种环境。
Amazon Bedrock Guardrails 策略与执行能力
Amazon Bedrock Guardrails 提供一套可配置的安全防护(策略),在提示处理和模型推理期间进行评估。每种策略类型可以独立启用,并根据应用的风险容忍度进行调优。
内容过滤
- 检测并阻止用户提示和模型响应中的有害文本或图像内容。
- 类别: 仇恨、侮辱、性内容、暴力、违规行为、提示攻击(越狱尝试)
- 可针对每个类别配置过滤强度(例如宽松 vs. 严格)。
- Classic 与 Standard 两个层级均支持这些类别。
- Standard 层级 将检测扩展到代码层面的元素(注释、变量/函数名、字符串字面量),这对开发者工具、代码助手和 AI 生成的脚本尤为关键。
禁止主题
- 明确定义超出范围或不允许的主题。
- 若用户查询 或 模型的响应中出现禁止主题,可阻止请求或用安全的回退内容替代。
- 在 Standard 层级,检测同样适用于代码元素(注释、变量、函数名、字符串),以防止隐藏的策略违规。
- 常用于受监管的环境(例如阻止医疗或投资建议)。
词语过滤
- 对特定词汇、短语或脏话进行精确匹配阻断。
- 有助于执行业务特定的限制,例如:
- 冒犯性语言
- 竞争对手名称
- 品牌误用
敏感信息过滤
- 检测并阻止或掩码提示和响应中的个人身份信息(PII)。
- 检测具有概率性,并支持以下实体的标准格式:
- 社会安全号码
- 出生日期
- 地址
- 除了内置的 PII 检测外,您还可以根据需要使用自定义正则表达式模式或实体类型扩展过滤器。
上述所有策略均可组合、优先级排序并自定义,以满足贵组织独特的合规性和安全性要求。
组织特定标识符的自定义正则表达式
您可以配置自定义正则表达式,以识别组织特定的标识符,例如客户 ID 或内部参考编号。
此策略对将输出存储在下游系统(如 S3、OpenSearch、CRM 或分析平台)中的应用程序至关重要。
策略违规处理
除了定义策略之外,您还可以配置自定义的面向用户的消息,以在以下情况下返回:
- 用户输入违反了策略,或
- 模型响应未通过防护栏评估
这使得应用程序能够安全且一致地失败,而不是返回通用错误或静默失败。
Architecture 中的集成选项
Guardrails 可以通过两种主要方式使用:
-
模型推理期间
- 在调用 Bedrock 推理 API 时,通过指定 guardrail ID 和版本来应用 Guardrails。
- 在此模式下,Guardrails 会评估:
- 输入提示
- 模型完成结果
-
独立的 Guardrail 评估
- 使用
ApplyGuardrailAPI,Guardrails 可以在不调用基础模型的情况下应用。 - 适用于:
- 预先验证用户输入
- 对外部系统输出进行后处理
- 在推理前的 RAG 流水线中强制执行策略
- 使用
用于 RAG 和对话式应用
在 RAG 或多轮对话架构中,您可能只想评估用户当前的输入,而排除以下内容:
- 系统指令
- 检索到的搜索结果
- 对话历史
- 少量示例
这种做法可确保防护栏聚焦于用户意图,而不会错误地标记内部上下文或系统生成的内容。