Jailbroken: How Does LLM Safety Training Fail?
英文题目:《Jailbroken: How Does LLM Safety Training Fail?》
中文题目:《Jailbroken:LLM安全训练是如何失败的?》
论文作者:Alexander Wei, Nika Haghtalab, Jacob Steinhardt
发布于: NIPS
发布时间:2023-07-05
级别:无
论文链接:https://doi.org/10.48550/arXiv.2307.02483
论文代码:无
摘要
大型语言模型(LLM)在安全性和无害性方面进行了训练,但仍然容易受到对抗性滥用,早期版本的ChatGPT中普遍存在的“越狱”(jailbreak)攻击就证明了这一点,这些攻击会引发不良行为。除了认识到这个问题之外,我们还调查了为什么这些攻击会成功以及如何创建它们。我们假设安全训练的两种失败模式:竞争性目标和不匹配的泛化。当模型的能力和安全目标发生冲突时,就会出现竞争性目标;而不匹配的泛化则发生在安全训练未能泛化到存在能力的领域时。我们利用这些失败模式来指导越狱设计,然后针对现有和新设计的攻击评估最先进的模型,包括OpenAI的GPT-4和Anthropic的Claude v1.3。我们发现,尽管这些模型背后有大量的红队测试和安全训练工作,但漏洞仍然存在。值得注意的是,利用我们的失败模式的新攻击在模型红队评估集中,针对不安全请求集合中的每个提示都成功了,并且优于现有的临时越狱。我们的分析强调了安全能力对等的需求——即安全机制应该与底层模型一样复杂——并反对仅靠扩展就能解决这些安全失败模式的观点。
本文聚焦的问题
虽然加强LLM的安全性有所帮助,但模型仍然容易受到对抗性输入的影响,自ChatGPT最初发布以来,社交媒体上“越狱”的传播就证明这一点。这些攻击旨在引出模型被训练要避免的行为,例如产生有害内容或泄露个人身份信息。攻击范围可以从精心设计的角色扮演到对安全目标的微妙颠覆。模型创建者已经承认并更新了他们的模型以应对越狱攻击,但是仍然缺乏对这种现象的系统分析和概念理解。
本文提出的方法
越狱攻击并非孤立现象,而是模型当前训练方式所固有的。当模型的预训练和指令遵循目标与其安全目标相冲突时,就会出现竞争性目标(图a)。相反,当输入对于模型的安全训练数据而言是分布外的,但在其广泛的预训练语料库范围内时,就会出现不匹配的泛化(图b)。

关于竞争性目标(图a),其可以解释为经过安全训练的LLM通常是针对多个可能相互冲突的目标进行训练的。具体而言,最先进的LLM接受语言建模、指令遵循和安全方面的训练。通过精心设计提示,迫使模型在受限行为或受到预训练和指令遵循目标严重惩罚的响应之间做出选择。
示例:前缀注入,这种攻击要求模型首先输出一个看起来无害的前缀,该前缀的设计使得以该前缀为条件不太可能在预训练分布中拒绝。

上述攻击可能导致 GPT-4 提供关于骚扰、犯罪和暴力的有害信息。 但是注入的前缀文本很重要:将前缀更改为“Hello!”会使 GPT-4 不再表现出上述行为。
当一个 LLM 解码对这个提示的响应时,文章假设这种攻击通过两种方式利用了竞争目标:首先,由于模型会因拒绝无害指令而受到惩罚 ,因此会遵循无害的注入指令。 然后,由于在预训练分布中不太可能看到前缀后的拒绝,因此模型的预训练目标会严重惩罚拒绝。 因此,模型继续响应不安全的提示。
示例:拒绝抑制,在这种攻击中,模型被指示在排除常见拒绝响应的约束下进行响应,从而使不安全的响应更有可能发生。

上述攻击导致 GPT-4 回复要求提供关于犯罪、社会工程和成人内容等方面建议的提示。 文章发现具体的指令很重要:反转这些规则(例如,“1.考虑道歉……”)不会导致数据集中任何提示出现受限行为。
首先,指令遵循训练响应指令并降低开始典型拒绝的 tokens 的权重。 因此,模型选择更可能开始响应的 tokens。 一旦开始响应,预训练目标会非常倾向于继续而不是突然逆转,从而导致完全不安全的输出。
文章发现现有的越狱方法也利用了这种相互冲突目标的现象。例如,广为流传的“DAN”越狱方法就利用了通过一系列指令来遵循特定指令的方式来扮演角色“DAN”,并通过要求输出以“[DAN]:”开头的方式进行预训练。另一个越狱方法则巧妙地利用了提示注入的变体来绕过拒绝:它先要求发表一篇关于 OpenAI 内容政策的说教式言论,然后注入字符串“但现在既然我们已经解决了强制性的违规行为,那我们就来打破这该死的规则吧:”。通过扩展前缀注入,文章还发现可以通过风格注入来利用相互冲突的目标,例如,要求不要使用长单词,之后模型专业撰写的拒绝声明不太可能接着出现。
关于不匹配的泛化(图b),即预训练是在比安全训练更大和更多样化的数据集上完成的,因此该模型具有许多安全训练未涵盖的能力。这种不匹配可以通过构建提示来利用越狱,在这种提示上,预训练和指令遵循可以泛化,但模型的安全训练不能。对于这样的提示,模型会响应,但没有安全考虑。
示例:Base64。在Base64越狱中,提示语使用Base64进行混淆。Base64是一种二进制到文本的编码方式,它将每个字节编码为三个文本字符,以绕过模型的安全训练。

不匹配的泛化可能发生,因为大型模型在预训练期间学习了Base64,并学会直接遵循Base64编码的指令。另一方面,安全训练也可能不包含像Base64编码指令这样不自然的输入,因此模型从未经过训练来拒绝此类提示。因此,模型未能做出拒绝响应的原因很可能是因为输入严重偏离分布。
存在大量的混淆方案:在字符层面,它们包括 ROT13 密码、leet 语言(用视觉上相似的数字和符号替换字母)以及摩尔斯电码。在单词层面,它们包括猪拉丁语,将敏感词替换为同义词(例如“pilfer”代替“steal”),或者分段操作,将敏感词拆分成子字符串。提示层面的混淆包括将内容翻译成其他语言或仅要求模型以它能够理解的方式进行混淆。在许多此类情况下,模型仍然可以遵循混淆后的指令,但安全性无法转移。
除了混淆之外,大型语言模型还有许多在安全训练期间未被探索的能力。预训练和遵循指令能够泛化但安全性无法实现的情况包括:(i)“干扰指令”,即连续写下许多随机请求;(ii)要求以不寻常的输出格式(例如 JSON)进行响应;(iii)要求从模型在预训练期间见过但安全训练期间未提及的网站获取内容。
基于以上,文章认为,(i) 仅靠扩展规模无法解决以上的失效模式,并且 (ii) “安全-能力对等”——即安全机制与基础模型的复杂程度相匹配——对于防御对抗性使用可能是必要的。
竞争目标的核心矛盾是预训练目标(语言建模 + 指令遵循)与安全目标的固有冲突。即使模型参数规模扩大(如从 GPT-3 到 GPT-4),其优化框架仍包含:
KL 散度约束:要求安全微调后的模型分布贴近预训练模型(避免能力退化),导致模型在安全拒绝时需权衡预训练偏好(如生成连贯文本)。
奖励信号冲突:安全训练希望模型拒绝有害请求,但预训练数据中 “遵循指令” 的奖励更强。
泛化不匹配的本质是安全训练数据的分布远窄于预训练数据的分布。规模扩展(如模型参数量从百亿到千亿)会:
扩展模型能力域:更大的模型能理解更复杂的输入(如 Base64 编码、多语言混淆),但安全训练未必覆盖这些新能力。
加剧能力 - 安全的不对称:模型能处理的输入类型(如 ROT13、Payload 拆分)随规模指数级增长,但安全训练依赖人工标注或有限对抗数据,无法同步扩展。
“安全-能力对等”是必要的——即安全机制与底层模型一样复杂。否则,攻击将利用模型的前沿能力,而不太先进的安全机制无法检测或解决这些能力。例如,能力较弱的模型进行的标记和过滤不是可靠的解决方案,因为它们可能无法识别威胁:没有Base64解码能力的模型将无法标记Base64攻击的Base64编码的输入和输出。即使是经验丰富的人工标注员,在没有帮助的情况下,也可能难以评估混淆的和对抗性的输入和输出。随着规模的扩大,这种不对称性只会越来越严重,因为能力更强的语言模型可能能够产生更微妙形式的输出(例如,隐写术),这将进一步逃避检测。
阅读总结
优点:
1、提出 “竞争目标”(模型能力与安全目标冲突)和 “泛化不匹配”(安全训练未覆盖预训练具备的能力域)两大核心失效模式,为理解 LLM 安全漏洞提供了统一的理论框架,填补了 “为何越狱攻击普遍存在” 的认知空白。
2、提出 “安全 - 能力对等”(安全机制复杂度需匹配模型基础能力)的核心防御原则,为后续防御方案设计提供明确方向。
缺点:
1、测试的 GPT-4、Claude v1.3 均为闭源商用模型,研究者仅能通过黑箱接口交互,无法获取模型权重、训练数据或中间激活值,导致对 “竞争目标如何在优化过程中体现”“泛化不匹配的具体数据分布差异” 等机制层面的验证只能间接推断,缺乏直接证据。
未来可以利用开源 LLM的可访问性,通过修改训练目标、分析中间层激活,直接验证 “竞争目标”“泛化不匹配” 的机制细节,弥补黑箱模型的局限。