无论您是在管理敏感的用户数据、避免有害的输出,还是确保遵守监管标准,制定正确的 LLM 护栏对于安全、可扩展的大型语言模型 (LLM) 应用程序都至关重要。
护栏是主动的和规范的 – 旨在处理极端情况、限制故障并保持对实时系统的信任。
构建坚实的护栏基础可确保您的 LLM 不仅在纸面上表现良好,而且在用户手中安全有效地蓬勃发展。
虽然 LLM 评估侧重于提高准确性、相关性和整体功能,但实施有效的LLM 护栏是为了在实时生产环境中积极降低风险(PS。根据OWASP Top 10 2025等准则,护栏是保持合规的好方法)。

在 Ramendeus,我们专门评估 LLM 绩效,以确保它们在不同指标上表现出色并获得高基准分数。凭借通过监督微调和 RLHF 为基础 LLM 公司改进模型的丰富经验,我们拥有帮助您取得卓越成果的专业知识。
相关配图由微信小程序【字形绘梦】免费生成

本文将教您有关 LLM 护栏的所有知识,并附有代码示例。我们将深入探讨:
LLM 护栏是什么?
LLM 护栏是预定义的规则和过滤器,旨在保护 LLM 应用程序免受数据泄露、偏见和幻觉等漏洞的影响。
它们还可以抵御恶意输入,例如即时注入和越狱尝试。
护栏由输入或输出安全防护组成,每个都代表一个独特的安全标准,以保护您的 LLM 免受其害。对于那些不知道的人来说,红队测试是一种很好的方法来检测您的 LLM 需要护栏来应对哪些漏洞,但这是另一个故事了。
LLM 应用程序中的输入和输出保护
输入护栏在您的 LLM 应用程序处理请求之前应用。它们拦截传入的输入以确定它们是否可以安全继续,并且通常仅在您的 LLM 应用程序面向用户时才需要。如果输入被视为不安全,您通常会返回默认消息或响应,以避免在生成输出时浪费令牌。另一方面,输出护栏会评估生成的输出是否存在漏洞。如果检测到问题,LLM 系统通常会重试生成一定次数以产生更安全的输出。没有护栏,LLM 安全性将成为一场噩梦。
以下是 LLM 警卫检查的最常见漏洞:
数据泄露:输出是否意外暴露个人身份信息。
提示注入:检测并阻止旨在操纵提示的恶意输入。
越狱:为绕过安全限制而精心设计的输入,可能导致您的 LLM 产生有害、攻击性或未经授权的输出。
偏见:包含性别、种族或政治偏见的输出。
毒性:输出带有亵渎、有害语言或仇恨言论的内容。
隐私:防止输入包含您不想存储的敏感个人信息。
幻觉:生成的响应中包含不准确或虚构的细节的输出。
(漏洞和防护是一一对应的,因此您可以简单地说“数据泄漏防护”、“及时注入防护”等)
LLM Guard 和 Metrics 有何不同?
需要注意的一点是,虽然防护和指标看起来相似,但实际上并非如此。LLM 评估指标专门用于评估 LLM 系统的功能,侧重于指标分数的质量和准确性,而另一方面,LLM 安全防护旨在实时解决潜在问题,包括处理不安全的输出和防范系统未明确设计用于管理的恶意输入。
优秀的 LLM 护栏包括:
- 快速
这一点很明显,并且仅适用于面向用户的 LLM 应用程序——护栏应该具有超低延迟的极快速度,否则您的用户最终将需要等待 5-10 秒才能在屏幕上看到任何内容。
- 准确
使用 LLM 护栏,您通常会应用 5 个以上的防护来保护输入和输出。这意味着,如果您的应用程序逻辑被编写为即使只有一个防护失败也会重新生成 LLM 输出,那么您最终会陷入不必要的再生境地 (NRL)。这意味着,即使您的 LLM 防护平均准确率为 90%,通过应用 5 个防护,您 40% 的时间也会出现误报。
- 可靠
准确的护栏只有在重复的输入/输出产生相同的护栏分数时才有用。您在 LLM 护栏中实施的护栏应尽可能一致(我们说的是 10 次中有 9 次是一致的),以确保令牌不会浪费在不必要的再生土地上,同时用户输入不会因纯粹的机会而被随机标记。
所以问题是,LLM 护栏如何才能在不影响准确性和可靠性的情况下提供极快的护栏分数?
使用 LLM-as-a-Judge 来制定 LLM 护栏
当然,有些护栏可以基于规则,例如正则表达式匹配、精确匹配等。
当您优化延迟时,您就会牺牲准确性。以DeepEval 的 LLM 评估指标为例,它使用 LLM-as-a-judge 和问答生成 (QAG) 技术来评估其所有 RAG 指标,例如答案相关性和上下文精度。我们能够以极高的准确性和可重复性计算指标,因为我们首先将包含输入、生成的输出、调用的工具等的 LLM 测试用例分解为原子部分,然后再单独使用它进行评估,这降低了 LLM 判断者产生幻觉的可能性。
例如,对于答案相关性,在 DeepEval 的指标中,我们不会要求大语言模型 (LLM) 根据一些模糊的标准来想出一个分数,而是:
将生成的输出分解为不同的“语句”。
对于每个陈述,根据明确的相关性标准确定它是否与输入相关。
计算相关语句的比例作为最终的相关性得分。
那么这与护栏有什么关系呢?通过每周提供超过 200 万次评估,我们发现,尽管这种计算指标的方法在准确性和可靠性方面非常出色,并且允许分数为 0-1 范围内的连续范围,但它并不是 LLM 护栏的最佳选择。原因是什么?它的速度像蜗牛一样慢。
它之所以很慢是因为它需要多次往返于你的 LLM 判断器,这会带来很大的延迟。在答案相关性示例中,第一次往返涉及提取“语句”列表,而第二次往返则确定每个语句是否相关。因此,问题变成了,我们如何才能仅通过一次往返于你的 LLM 提供者来生成准确的护栏分数?
我们可以这样做的方法是将输出限制为二进制。我们不需要要求连续的分数来反映 LLM 应用程序在特定标准下的真实表现,我们只需要为 LLM 护栏提供一个 0 或 1 标志来确定输入/输出对于某个漏洞是否安全。在 LLM 护栏中,0 == 安全,1 == 不安全。

调整 LLM 护栏
这并不是说 LLM 护栏的二进制输出是确保准确性和可靠性的万能解决方案。您仍然需要一种方法来在 LLM 判断提示中提供示例以进行上下文学习,因为这将指导它输出更一致、更准确的结果,以满足人类的期望。
对于那些想要更好地控制边缘情况(LLM 法官认为无法做出明确裁决的情况)的人,您可以选择输出三个分数:0、0.5 或 1。虽然 0 和 1 代表明确的决定,但 0.5 分是为不确定的边缘情况保留的。您可以将 0.5 视为严格性缓冲区;如果您希望使 LLM 保护更加严格,您可以对其进行配置,以便 0.5 分也被归类为不安全。
最后,您需要一个监控基础设施,以根据护栏返回的结果确定应应用的正确严格程度。
选择你的大语言模型保卫者
在实施护栏时要确定的一件事是,您的主要目标应该是选择防护装置,以防止您永远不希望到达您的 LLM 应用程序的输入和您永远不希望到达您的用户的输出。
这是什么意思?你不应该保护诸如答案相关性之类的东西,因为这不是最坏的情况。老实说,根据功能而不是安全性来保护某些东西是灾难的根源。
那么,您应该使用哪些防护措施来保护您的 LLM 系统呢?
您应该首先对您的 LLM 应用程序进行红队测试,以检测它容易受到哪些漏洞的影响,或者从以下潜在漏洞输入列表中选择您永远不希望进入您的 LLM 系统的输入:
- 提示注入:旨在覆盖 LLM 系统提示指令的恶意输入可能会使您的 LLM 行为变得不可预测,可能泄露敏感数据或暴露专有逻辑。
- 个人数据:包含敏感用户信息的输入可能会无意中暴露 PII,导致隐私泄露、不遵守法规以及用户信任度下降。
- 越狱:为绕过安全限制而精心设计的输入可能会导致您的 LLM 产生有害、攻击性或未经授权的输出,从而严重损害您的声誉。
- 主题性:与有争议或敏感话题相关的内容可能会引起偏见或煽动性反应,从而加剧冲突或冒犯用户。
- 有毒内容:带有攻击性或有害语言的输入可能会导致您的 LLM 传播毒性,从而引起用户投诉、强烈反对或监管审查。
- 代码注入:试图执行有害脚本的技术输入可以利用漏洞,可能危及您的后端或暴露用户数据。
以下是您绝不希望生成的 LLM 输出到达最终用户的漏洞列表:
- 数据泄露:无意中泄露敏感或私人信息(例如用户 PII 或内部系统详细信息)的输出可能会导致严重的隐私侵犯、监管处罚和信任丧失。
- 有毒语言:包含攻击性、有害或歧视性语言的生成输出可能会导致用户强烈反对、声誉损害和法律后果。
- 偏见:反映不公平、偏见或片面观点的输出可能会疏远用户、延续社会不公平现象并损害系统的可信度和包容性。
- 幻觉:当 LLM 自信地生成虚假、误导或荒谬的信息时,它可能会削弱用户信任、传播错误信息并在高风险环境中造成重大伤害。
- 语法错误:语法错误或响应格式错误的输出可能会导致应用程序无法使用、让最终用户感到沮丧并损害系统的可靠性。
- 非法活动:促进或协助非法行为(如欺诈、暴力或侵犯版权)的输出可能会使您承担法律责任和严重的监管行动。
需要注意的一点是,防护装置可以同时保护输入和输出,考虑到这一点,在最后一节中,我们将介绍您绝对需要了解的 LLM 防护装置,以确保您的 LLM 安全。
总结
LLM 防护的主要目的是根据越狱、即时注入、毒性和偏见等标准判断特定输入/输出是否安全,为此,我们利用 LLM 作为判断,并将其限制为二进制输出,以提高速度、准确性和可靠性。我们了解到速度和准确性有多么重要,因为将同时应用许多防护来保护您的 LLM 系统,以及如何将 0.5 的中间缓冲区分数添加到二进制 0 或 1 输出可以大大提高 LLM 护栏的性能。
归根结底,护栏的选择取决于您的使用情况以及您最担心的安全漏洞,并且如果您的应用程序不面向用户,则通常不需要输入防护。但不面向用户的应用程序存在的价值是什么?意义是什么?
有任何问题,请二维码添加技术交流群。探讨更多AIGC能力
海量AI知识文库,大家一起飞。 技术交流群

AIGC训练营 公众号

RA/SD 衍生者AI训练营。发布者:稻草人,转载请注明出处:https://www.shxcj.com/archives/9048