动机
随着大型语言模型(LLMs)在代码生成、问答和任务规划等应用中的广泛使用,这些模型的安全性和可靠性问题愈发引起关注。近年来出现的各种攻击方法,如对抗性攻击和越狱攻击,能够绕过模型的安全对齐,导致模型产生有害回答。
为了解决这一问题,之前的研究主要集中在训练模型以增强其鲁棒性。通过强化学习(RLHF)等方法,研究人员试图通过人类反馈来训练更安全的模型。然而,这些训练时的防御方法在应对未知攻击时常常面临困难,并且需要大量资源来收集对抗样本。
在这样的背景下,本文提出了一种新的防御方法:自我监督提示注入(Self-supervised Prompt INjection,SPIN),旨在在线检测和逆转这些攻击。SPIN的关键创新在于,通过在推理时注入适应性防御提示,能够有效识别并修复攻击输入。同时,该方法与现有的安全对齐模型相容,不需要额外的训练。研究表明,SPIN能够将攻击成功率降低多达87.9%,同时在处理良性用户请求时保持模型性能。
通过使用自我监督的语言任务来检测攻击,SPIN的应用提高了对抗性输入的识别能力,并能够逆转那些成功越狱的输入。这使得模型在面对适应性攻击时仍具备鲁棒性,并且不再依赖于明确的良性或有害标签,使得每次推理时都能灵活应对新的攻击形式。
通过这种方式,SPIN不仅能有效防范特定类型的攻击,还能在模型响应中动态适应,进而提升大语言模型的安全性。
方法
该部分介绍了自我监督方法在抗击对抗性攻击和优化型攻击中的应用。研究提出了两个相辅相成的防御层:检测层和逆转层,这两种方法均依赖于自我监督信号,这些信号是针对语言任务构造的。
被劫持的语言模型
在用户交互中,用户输入请求 ,聊天机器人生成响应 。此时,LLM通过预测下一个Token来生成文本输出,即 。然而,攻击者的目标是通过添加一系列Token 来使LLM生成恶意响应,从而最小化其目标与实际响应之间的差异。该目标可以用以下优化公式表示:
通过自我监督检测劫持
攻击者的输入通常在结构上与无害的输入显著不同,因此该研究提出了一系列自我监督任务来检测这些攻击输入。这些任务利用已知的正确答案或预期行为,评估输入是否符合这些行为,从而检测出劫持的存在。
重复检测任务
该任务要求LLM重复输入的语句。在正常情况下,重复没有问题,但当输入受到攻击时,LLM将难以完成此任务。利用Levenshtein距离衡量生成文本与原始输入之间的相似度,从而构造以下损失函数:
插入检测任务
在用户请求的末尾插入另一个已知答案的问题,以此测试LLM是否能够流利地回答。例如,插入的问题为“法国的首都是什么?”利用Softmax计算对’巴黎’作为下一个Token的预测分数,构造损失函数:
利用这些损失函数,可以对输入进行分类,识别出恶意和良性请求。通过设置阈值 ,可以检测到输入是否经过了攻击。
逆转防御
对于那些未被检测到的攻击,研究提出了通过在用户请求前添加额外Token来逆转这些攻击。目的是找到一系列Token,以恢复LLM的自然对齐状态。定义目标为输入的困惑度,即:
完成优化后,记录生成的响应是否包含常见的对拒绝的开头。最终输出为:
总体系统
为了确保攻击成功,它必须通过所有检测阶段,并且生成的响应将在防御Token之前。因此,分层的方法增强了每个防御系统之间的互补性,增加了攻击者需要考虑的变量。用户可以轻松移除某些任务来加速系统的响应速度。
自适应攻击者
该研究还考虑了自适应攻击者的情况。如果攻击者忽略防御策略,系统将继续有效。但是,如果攻击者考虑到防御策略并进行针对性攻击,他们需要在优化中增加额外的约束,导致他们的攻击效率降低。自适应攻击通过交替进行攻击和防御,形成计算上复杂的优化问题。
同样,自我监督的约束将导致攻击者面临“选一失一”的境地,系统的安全性将得到进一步提升。
实验
数据集
Advbench 数据集包含520个恶意请求,研究者们通过遵循Zou等人(2023)的方法对其添加了对抗性触发器。TriviaQA 数据集则包含一系列由人类构建的问答,研究者对维基百科验证集进行了评估,以实现单次学习和在反转后的闭卷表现。
模型
研究中使用的模型包括Llama 2-chat和Vicuna。Llama 2-chat是Meta发布的对话机器人,经过人类反馈微调,旨在对话场景中表现良好。Vicuna则是基于Llama 2,结合来自ShareGPT的对话数据进行微调的开源聊天机器人。
攻击
为测试防御机制,研究者执行了多种类型的攻击:
-
通用对抗触发器:使用贪婪坐标梯度搜索(GCG)实现对抗性触发器,使每个恶意请求添加一个后缀,该后缀经过多达500次迭代进行优化,直到突破对齐。Vicuna的后缀注入攻击成功率达到100%。
-
自然语言越狱:利用一个共享平台,收集到五个人气最高的越狱提示,并将其与Advbench中的30个随机选择的请求配对,总共150个提示。
-
对抗指令:这些攻击通过绕过LLM的优先级限制以实现对齐的突破,测试了论文中提出的最强组合,包括前缀注入和拒绝抑制。
-
多角色扮演:模拟角色扮演的对话,指示LLM扮演某种角色以绕过安全防护,研究者将劫持规格v2的攻击与150个恶意请求配对。
-
自动化越狱:使用Code Chameleon、AutoDAN和ICA等方法生成自然语言越狱提示,这些攻击通常带有初始模板,然后逐渐修改以突破防御。
检测与反转
研究者在检测层中通过注入字符串“只准确重复以下句子:”来测试模型在处理恶意请求时的反应。对于反转功能,研究者在用户消息的开头添加5个Token“! ! ! ! ! ”,经过25轮优化,通过计算排除效果来寻找最佳响应。
以下是多种攻击类型下的攻击成功率(ASR)的比较结果:
多基准攻击成功率(ASR)
该图展示了在多种类型攻击下,SPIN防御的表现,显示出显著降低了攻击成功率。
攻击成功率与自适应攻击成功率
在自适应攻击的情况下,纵向标记展示了攻击成功率如何随着攻击优化 (Lagrangian penalty) 的变化而变化。尽管自适应攻击提升了特定层的性能,但反而使得其他层的检测容易,这进一步证明了防御的有效性。
再者,通过评估反转层时的优化步骤,研究者发现虚假请求的检测和反转并行作用,整体提升了对抗恶意输入的能力。若无良好的检测效果,反转层的提升则显得尤为重要。
各种防御方法的延迟
从表中可以看出,不同防御方法的计算延迟时间,尤其是反转时的延迟显著高于直接推断。通过对比,会发现使用反转机制的平均性能开销是其他防御方法的多倍,但只占GCG攻击成本的1%,表明此防御的效益较高。
结论
在这篇论文中,研究者们展示了自监督度量在检测对抗性攻击中的有效性,同时证明了这些攻击是可以通过目标困惑度来修复的。他们提出了一种推断时防御系统,通过Prompt Injection实现对输入生成的检测与修复。该防御方法可以与现有模型和对齐机制配合使用,而不需要额外的训练或微调。这确保了防御系统能够响应那些在对齐训练集中未出现的新类型攻击。
本研究中构建的自监督防御措施具有多样性,能够检测不同类型的攻击。此外,论文还表明,这种分层的防御方法能够抵抗适应性攻击者的攻击。通过这些研究成果,作者们为提升大型语言模型的安全性提供了一种新的实用手段。