[论文日读]小模型指导,大模型破防!揭秘大语言模型的安全漏洞

论文提出了一种新的针对于大语言模型的越狱策略,相对于已有的策略减小了计算代价,使得可以快速攻击更加巨大的模型。

引言:大型语言模型的安全性挑战与新的攻击策略

在人工智能的迅猛发展中,大型语言模型(LLMs)如ChatGPT、Claude和Llama等,已经展现出了巨大的应用价值。为了降低模型输出所带来的风险的风险,模型创建者通过模型对齐(alignment)来确保每次发布的模型合规。

然而,最近的研究表明,可以通过的人工编写提示(prompts)来"越狱"(jailbreak)看似合规的模型。这些越狱攻击通常利用四个关键点的漏洞:

  1. 使用另一个LLM生成对抗性提示
  2. 通过反向传播进行对抗性提示搜索以触发不安全输出
  3. 对抗性微调以永久改变核心模型行为
  4. 以及对抗性解码以引导文本生成走向危险路径。

然而,通过上述方式对更大型模型(例如70B参数的模型)进行攻击很难,原因在于计算成本

本文首先分析了为何安全对齐的LLMs在面对对抗性攻击策略时仍然脆弱。论文中比较了安全LLMs与其越狱变体的token分布,发现大部分分布偏移发生在初始生成的token上,而不是后续生成的token上 。并由此提出弱到强的越狱攻击策略:即攻击者可以利用较小的不安全/对齐的LLMs(例如7B)来指导针对显著更大的对齐LLMs(例如70B)的越狱

为了实施越狱,攻击者只需要额外解码两个较小的LLMs一次(解码即指计算模型的前向输出),这与解码更大的LLMs相比,涉及的计算和延迟都非常小。

通过对五个不同的LLM进行的实验证明了攻击的有效性。文中还提出了一种初步的防御策略来抵御此类攻击。

1. 论文标题、机构、论文链接和项目地址(如有)

背景知识

1. 什么是安全对齐?

安全对齐是指:采取技术手段,使大型语言模型(LLMs)的行为符合预期的人类价值观或法定的人工智能原则。

安全对齐技术包括:

  • 利用人类和AI反馈区分不安全输出
  • 通过强化学习优化模型以提高安全性等。

2. 安全对齐的目的

安全对齐的目的是为了减少风险,确保每次发布的模型其输出可用的同时一定合规。例如,Llama2-Chat模型就是通过强化学习、安全训练和红队测试来平衡安全性和功能性。

3. 破解对齐模型的传统攻击手段

传统的攻击手段包括:

  • 利用另一个LLM自动生成绕过安全协议的提示(prompt)
  • 通过优化搜索通用和可转移的对抗性prompt
  • 通过修改模型权重直接进行对抗性微调
  • 对抗性解码可以操纵模型生成的令牌概率分布,以在特定位置强制选择特定输出
  • 通过改变解码策略生成有害输出。

4.什么是越狱?

这里举个例子来说明: 假设我问chatgpt如何制作一个炸弹并引爆,chatgpt会拒绝回答,但如果我询问一个越狱的chatgpt,他就会详细的告诉我炸弹的制作步骤。因此,所谓的越狱就是指大模型会准确回答违反人类道德/法律法规的问题。

这里需要注意一个小点,即越狱是和带毒查询相关的,先有一个违反法律的问题(即带毒查询),才会有越狱的定义。

弱到强破解攻击的产生基础

弱模型和强模型的相同前缀下的输出分布逐渐相近

在分析安全对齐的LLMs的脆弱性时,研究人员发现,被破解和对齐模型的解码分布仅在初始生成中存在差异。

用人话来说: 假设有两个模型,安全大参数模型 <math xmlns="http://www.w3.org/1998/Math/MathML"> M M </math>M,越狱小参数模型 <math xmlns="http://www.w3.org/1998/Math/MathML"> M ^ \hat M </math>M^,我们已经输出了 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t个词语(token),并且前 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t个输出的token相同 ,我们准备生成第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t + 1 t+1 </math>t+1个token,当 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t比较小的时候, <math xmlns="http://www.w3.org/1998/Math/MathML"> M M </math>M和 <math xmlns="http://www.w3.org/1998/Math/MathML"> M ^ \hat M </math>M^的输出分布的差异非常大,但当 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t比较大时,即已经输出了很多相同token, <math xmlns="http://www.w3.org/1998/Math/MathML"> M M </math>M和 <math xmlns="http://www.w3.org/1998/Math/MathML"> M ^ \hat M </math>M^的输出分布的差异就非常小,如下图所示:

上图给出的就是两个模型输出的KL散度大小,KL散度用于衡量两个分布的相似程度,公式为:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> D K L ( P t ∥ Q t ) = ∑ y t ∈ V P ( y t ∣ q , y < t ) log ⁡ ( P ( y t ∣ q , y < t ) Q ( y t ′ ∣ q , y < t ) ) D_{\mathrm{KL}}\left(P_t \| Q_t\right)=\sum_{y_t \in \mathcal{V}} P\left(y_t \mid q, y_{<t}\right) \log \left(\frac{P\left(y_t \mid q, y_{<t}\right)}{Q\left(y_t^{\prime} \mid q, y_{<t}\right)}\right) </math>DKL(Pt∥Qt)=yt∈V∑P(yt∣q,y<t)log(Q(yt′∣q,y<t)P(yt∣q,y<t))

可以看到,随着token index的增大,即 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t的增大,KL散度逐渐减小,说明当输出的前缀相同时,安全模型和越狱模型的输出分布逐渐相近。

而相近的输出分布带来的就是相近的输出token,如下图所示:

可以看到,随着token index的增大,即 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t的增大,安全模型与越狱模型概率上最大的前10个token的重合度不断增加。

弱到强破解攻击的方法详解

1. 攻击流程的总体描述

由于越狱小模型的输出和安全大模型的输出在一定程度上具有相似性。且在相同前缀下相似性不断增加,由此引出了弱到强越狱攻击(Weak-to-Strong Jailbreaking),弱到强越狱攻击是一种新型的攻击策略,它利用较小的不安全模型(例如7B大小的模型)引导 更大的安全模型(例如70B大小的模型)产生不良输出。这种攻击策略不需要对大型模型进行直接的参数操作,而是通过小型模型的输出来影响大型模型在输出过程中的下一个token的预测。

2. 攻击原理与数学表达

简单地说,此种攻击的原理就是利用相同前缀下越狱小模型的输出分布来调整安全大模型的输出分布,从而改变大模型的输出,因为LLM和循环神经网络相同,每个输出都是下一阶段的输入,这就使得原本安全的LLM的输出逐渐类似于有毒输出,有毒的输出变为有毒的输入,扩散性的影响到了后续的输出。

形式化的说,就是利用小型不安全模型 <math xmlns="http://www.w3.org/1998/Math/MathML"> M ~ − \tilde{\mathcal{M}}^{-} </math>M~−和小型安全模型 <math xmlns="http://www.w3.org/1998/Math/MathML"> M − {M}^{-} </math>M−之间不匹配的输出概率,调整大安全模型 <math xmlns="http://www.w3.org/1998/Math/MathML"> M ~ + \tilde{\mathcal{M}}^{+} </math>M~+的输出分布。具体来说,对于潜在有害的查询 <math xmlns="http://www.w3.org/1998/Math/MathML"> q q </math>q,在输出过程中, <math xmlns="http://www.w3.org/1998/Math/MathML"> M ~ + \tilde{\mathcal{M}}^{+} </math>M~+的令牌分布按以下方式转换:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> M ~ + ( y t ∣ q , y < t ) = 1 Z q , y < t M + ( y t ∣ q , y < t ) ( M ^ − ( y t ∣ q , y < t ) M − ( y t ∣ q , y < t ) ) α , \begin{aligned} & \tilde{\mathcal{M}}^{+}\left(y_t \mid q, y_{<t}\right)= \\ & \quad \frac{1}{Z_{q, y<t}} \mathcal{M}^{+}\left(y_t \mid q, y_{<t}\right)\left(\frac{\hat{\mathcal{M}}^{-}\left(y_t \mid q, y_{<t}\right)}{\mathcal{M}^{-}\left(y_t \mid q, y_{<t}\right)}\right)^\alpha, \end{aligned} </math>M~+(yt∣q,y<t)=Zq,y<t1M+(yt∣q,y<t)(M−(yt∣q,y<t)M^−(yt∣q,y<t))α,

其中, <math xmlns="http://www.w3.org/1998/Math/MathML"> Z q , y < t = ∑ y t M + ( y t ∣ q , y < t ) ( M ^ − ( y t ∣ q , y < t ) M − ( y t ∣ q , y < t ) ) α Z_{q, y_{<t}}=\sum_{y_t} \mathcal{M}^{+}\left(y_t \mid q, y_{<t}\right)\left(\frac{\hat{\mathcal{M}}^{-}\left(y_t \mid q, y_{<t}\right)}{\mathcal{M}^{-}\left(y_t \mid q, y_{<t}\right)}\right)^\alpha </math>Zq,y<t=∑ytM+(yt∣q,y<t)(M−(yt∣q,y<t)M^−(yt∣q,y<t))α是归一化因子, <math xmlns="http://www.w3.org/1998/Math/MathML"> α α </math>α是放大因子。这个方程实质上是将弱模型的输出概率的差异放大,以此来影响强模型的生成过程。

3. 获取弱不安全模型的方法

弱不安全模型可以通过对小型模型进行对抗性微调来获得。例如,通过在有毒示例上微调Llama2-7B模型,可以几乎完全破坏其安全性保护,同时保持模型的实用性。这种方法的创新之处在于,它避免了直接对大型模型如Llama2-70B进行代价高昂的微调,而是专注于使用小型模型来引导破解攻击。

4. 攻击的计算成本分析

这种攻击策略不仅适用于开源模型,也适用于闭源模型。攻击的计算成本非常低,因为在每次生成时,我们只需要加载两个小型模型(一个安全的和一个不安全的)以及一个大型模型。例如,7B破解模型的参数只有70B安全模型的10%,因此每个带毒查询的总额外计算只增加了20%。

实验设置:数据集、模型与评价指标

1. 使用的数据集与模型简介

实验中使用了两个基准数据集:AdvBench和MaliciousInstruct。

  1. AdvBench:包含520个通过明确指令呈现的有害行为示例
  2. MaliciousInstruct包含100个问题,涵盖了十种不同的恶意意图。

为了全面验证破解攻击的有效性,选择了多个不同的开源大型语言模型(LLMs),包括Llama2-13B、Vicuna-13B、Baichuan2-13B、InternLM-20B和Llama2-70B等。

2. 攻击成功率与有害性评分

攻击成功率(ASR)衡量模型是否遵循恶意指令生成有害输出 。除了ASR,还使用奖励模型和GPT-4模型来评估生成内容的有害程度,分别表示为Harm Score和GPT-4 Score 。这些评分越高,表明生成的内容潜在的有害性越大。

3. 对比不同攻击方法的实验设置

实验中对比了不同的攻击方法,包括贪婪坐标梯度(GCG)攻击、生成利用攻击和对抗性微调。GCG攻击通过自动提示优化搜索对抗性后缀;生成利用攻击通过操纵解码方法而无需优化来实现;对抗性微调则通过在少量有害示例上微调模型来移除安全保护。此外,还进行了人类评估,通过人工评估模型输出的有害性。

实验结果与分析

1. 弱到强破解攻击的效果

实验结果表明,弱到强破解攻击(weak-to-strong jailbreaking attack)能够有效地利用较小的不安全模型(例如7B)来引导较大的安全对齐模型(例如70B)产生不良输出。这种攻击方法仅需对两个较小的模型进行一次额外的解码,即可实现对大型模型的操控,而无需直接修改其参数。在AdvBench和MaliciousInstruct数据集上的实验显示,该攻击方法能将不对齐率提高至超过99%,并且从强大模型中攻击出的输出比弱模型本身生成的内容更具危害性,暴露了一个迫切需要解决的安全问题。

2. 不同模型上的攻击结果

实验涵盖了来自三个不同组织的五个模型,结果显示弱到强破解攻击在不同模型上均表现出强大的攻击效力。无论是13B、20B还是70B规模的模型,该攻击方法均能实现超过99%的攻击成功率(ASR),并在所有测试的开源模型上产生了更具危害性的输出。

3. 多语言环境下的攻击效果

进一步的实验还考察了弱到强破解攻击在不同语言环境下的效果。通过将200个英文问题翻译成中文和法文,并在Llama2-13B模型上进行攻击,结果表明该攻击方法在不同语言中同样有效,能够提高攻击成功率和危害分数,进一步强调了大型语言模型面临的普遍脆弱性。

4. 使用极端弱模型进行攻击的结果

为了测试极端条件下的攻击效果,研究者们使用了一个经过剪枝的极小模型(Sheared-LLaMa-1.3B)来进行弱到强破解攻击。即便是这样一个小模型,也能在AdvBench数据集上对70B强大模型实现66.5%和74.0%的攻击成功率,表明即使是极小的模型也能对大型模型构成威胁。

防御策略:梯度上升防御方法

1. 防御策略的提出与实验设置

针对LLMs易受弱到强破解攻击的脆弱性,提出了一种简单的梯度上升防御策略。该策略基于对安全对齐模型令牌(token)分布的分析,通过在Llama2-7B和Llama2-13B模型上使用200个有害指令-回答对进行100步梯度上升,以增强模型的防御能力。

2. 防御效果与对模型对齐的影响

在AdvBench和MaliciousInstruct数据集上的测试结果显示,采用梯度上升防御策略后,所有四种攻击方法的攻击成功率(ASR)都有显著下降。这表明梯度上升防御策略能够有效降低攻击成功率,为保护LLMs免受此类攻击提供了一种可行的方法。然而,创建更先进的防御策略仍然是一个挑战。

总结

弱到强破解攻击的发现对于理解和提高大型语言模型的安全性具有重要意义。这种攻击方法展示了即使是小型的不安全模型也能够有效地引导大型安全模型生成有害内容,从而揭示了现有安全措施的不足。虽然提出了初步的防御策略,但要设计出更有效的防御措施仍然是一个挑战。本研究的结果强调了社区在改进开源LLMs的对齐和减少其滥用潜力方面的努力的重要性。未来的研究需要继续探索更为强大和可靠的安全协议,以确保我们最强大的语言技术能够带来更多的益处而非危害。

相关推荐
SpikeKing13 分钟前
Server - 使用 Docker 配置 PyTorch 研发环境
pytorch·docker·llm
丁先生qaq34 分钟前
热成像实例分割电力设备数据集(3类,838张)
人工智能·计算机视觉·目标跟踪·数据集
红衣小蛇妖1 小时前
神经网络-Day45
人工智能·深度学习·神经网络
KKKlucifer1 小时前
当AI遇上防火墙:新一代智能安全解决方案全景解析
人工智能
DisonTangor2 小时前
【小红书拥抱开源】小红书开源大规模混合专家模型——dots.llm1
人工智能·计算机视觉·开源·aigc
浠寒AI3 小时前
智能体模式篇(上)- 深入 ReAct:LangGraph构建能自主思考与行动的 AI
人工智能·python
weixin_505154464 小时前
数字孪生在建设智慧城市中可以起到哪些作用或帮助?
大数据·人工智能·智慧城市·数字孪生·数据可视化
Best_Me074 小时前
深度学习模块缝合
人工智能·深度学习
YuTaoShao4 小时前
【论文阅读】YOLOv8在单目下视多车目标检测中的应用
人工智能·yolo·目标检测
算家计算5 小时前
字节开源代码模型——Seed-Coder 本地部署教程,模型自驱动数据筛选,让每行代码都精准落位!
人工智能·开源