LLM 安全与护栏
基于 LLM 的应用涉及大量潜在的安全风险。这些包括提示词注入、个人身份信息(PII)泄露,或有害提示词。Langfuse 可用于监控和防范这些安全风险,并在事件发生时进行调查。
什么是 LLM 安全?
LLM 安全涉及实施保护措施,以 safeguard LLM 及其基础设施免受未经授权的访问、滥用和对抗性攻击,确保模型和数据的完整性和机密性。这在 AI/ML 系统中至关重要,以维持道德使用、防止提示词注入等安全风险,并确保在安全条件下可靠运行。
LLM 安全如何工作?
LLM 安全可以通过以下组合来解决
- 用于运行时安全措施的 LLM 安全库
- 用于对这些措施有效性进行事后评估的 Langfuse
1. 运行时安全措施
有几个流行的安全库可用于缓解基于 LLM 的应用中的安全风险。这些包括:LLM Guard、Prompt Armor、NeMo Guardrails、Microsoft Azure AI Content Safety、Lakera。这些库通过以下方式帮助实施安全措施:
- 在发送到模型之前捕获并阻止潜在有害或不适当的提示词
- 在发送到模型之前编辑敏感 PII,然后在响应中取消编辑
- 在运行时评估提示词和补全的毒性、相关性或敏感材料,并在必要时阻止响应
2. 用 Langfuse 监控和评估安全措施
使用 Langfuse 追踪获得对安全机制每一步的可见性和信心。这些是常见工作流:
- 手动检查 traces 以调查安全问题。
- 在 Langfuse 仪表盘中随时间监控安全分数。
- 验证安全检查。你可以使用 Langfuse 分数评估安全工具的有效性。将 Langfuse 集成到你团队的工作流中,可以帮助团队识别哪些安全风险最普遍,并围绕这些特定问题构建更强大的工具。有两个主要工作流需要考虑:
- 标注(在 UI 中)。如果你通过标注一部分生产 traces 建立基线,你可以将安全工具返回的安全分数与这些标注进行对比。
- 自动评估。Langfuse 基于模型的评估将异步运行,可以扫描 traces 的毒性或敏感性等内容,以标记潜在风险并识别你 LLM 安全设置中的任何缺口。查看文档以了解如何设置这些评估。
- 追踪延迟。某些 LLM 安全检查需要在调用模型之前等待,其他检查会阻止对用户的响应。因此它们很快成为 LLM 应用整体延迟的重要驱动因素。Langfuse 可以帮助剖析 trace 中这些检查的延迟,以理解这些检查是否值得等待。
开始使用
示例:匿名化个人身份信息(PII)
将 PII 暴露给 LLM 可能带来严重的安全和隐私风险,例如违反合同义务或监管合规要求,或缓解数据泄露或数据违规的风险。
个人身份信息(PII)包括:
- 信用卡号
- 全名
- 电话号码
- 电子邮件地址
- 社会安全号码
- IP 地址
下面的示例展示了一个简单的应用,它总结给定的法庭记录。出于隐私原因,该应用想在信息送入模型之前匿名化 PII,然后取消编辑响应以产生连贯的总结。
要阅读关于其他安全风险(包括提示词注入、禁止主题或恶意 URL)的更多内容,请查看各个库的文档,或阅读我们的 security cookbook,其中包含更多示例。
更多示例
在我们的 cookbook 中查找更多 LLM 安全监控的示例。
常见问题
什么是 LLM Guard?
LLM Guard 是 Protect AI 的一个开源库,为 LLM 应用提供安全护栏。它包括输入扫描器(提示词注入检测、PII 匿名化、毒性检测、主题禁止)和输出扫描器(内容审核、偏见检测、恶意 URL 检测、去匿名化)。LLM Guard 可以与 Langfuse 集成,以追踪和监控每个安全检查的有效性。
什么是 LLM 的安全护栏?
安全护栏是拦截和过滤 LLM 应用输入和输出的保护措施,以防止滥用和伤害。它们包括输入护栏(阻止提示词注入和恶意输入)、输出护栏(过滤有毒或有害响应)、PII 检测和编辑、内容过滤和主题限制。护栏在应用层运行,与模型级安全训练互补。
如何在我的 LLM 应用中防止提示词注入?
提示词注入可以通过多层缓解:(1) 使用像 LLM Guard 或 Lakera 这样的护栏库,在注入尝试到达模型之前检测并阻止它们。(2) 在系统指令和用户输入之间实现清晰分离。(3) 使用 Langfuse 追踪监控生产中的注入尝试。(4) 设置自动评估以标记可疑模式。没有单一方法是 100% 有效的,因此推荐带监控的纵深防御策略。
如何在生产中监控 LLM 安全?
使用 Langfuse 监控你的 LLM 安全态势:(1) 追踪每个请求通过你的护栏流水线,以查看哪些检查被触发。(2) 使用 LLM-as-a-Judge 评估器自动为 traces 的毒性、PII 泄露和提示词注入打分。(3) 设置自定义仪表盘随时间追踪安全分数。(4) 使用标注队列对被标记的对话进行人工审阅。(5) 追踪安全检查的延迟影响,以在保护和用户体验之间取得平衡。