Refusal in Language Models Is Mediated by a Single Direction
- 开源代码:https://github.com/andyrdt/refusal_direction
Abstract
会话型大语言模型针对指令遵循和安全性进行了微调,从而产生服从良性请求但拒绝有害请求的模型。虽然这种拒绝行为在聊天模型中普遍存在,但其背后的机制仍然知之甚少。在这项工作中,我们展示了拒绝是由一维子空间介导的,涉及 13 个流行的开源聊天模型,参数大小高达 72B。具体来说,对于每个模型,我们找到一个单一方向,这样从模型的残余流激活(residual stream activations)中删除该方向可以防止其拒绝有害指令,而添加该方向会导致拒绝甚至无害的指令。利用这一见解,我们提出了一种新颖的白盒越狱方法,可以通过防止拒绝,同时对其他功能的影响最小。最后,我们分析对抗性后缀如何抑制模型转向拒绝。我们的研究结果强调了当前安全微调方法的脆弱性。更广泛地说,我们的工作展示了如何利用对模型内部结构的理解来开发控制模型行为的实用方法。
1 Introduction
人们普遍假设LLMs将特征或概念表示为激活空间中的线性方向,最近的工作研究了特定特征的线性表示,例如 harmlessness,truth,humor,sentiment,language,topic 和许多其他的工作。这些 feature directions 已被证明是行为的有效因果中介,能够对模型输出进行细粒度控制。
在这项工作中,我们展示了拒绝是由跨 13 个流行的参数大小高达 72B的开源聊天模型的一维子空间调节的。具体来说,我们使用一小组有害和无害指令的对比对来识别单个均值差异方向(single difference-in-means direction),可用来规避对有害提示的拒绝,或诱导对无害提示的拒绝。然后,我们利用这一见解,通过可解释的一级权重编辑(interpretable rank-one weight edit)来设计一个简单的白盒越狱,该编辑可以有效地禁用拒绝,同时对其他功能的影响最小。最后,我们对对抗性后缀(一种流行的基于提示的越狱技术)如何干扰拒绝方向在令牌位置上的传播进行了初步的机理调查。
我们的工作是一个具体的证明,即从解释模型内部得出的见解在实践上是有用的,既可以更好地理解现有模型的漏洞,也可以识别新的漏洞。我们的发现清楚地表明,当前的开放源代码聊天模型是多么的无防备,即使是简单的权重修改也能几乎消除拒绝行为。我们希望我们的发现能为围绕负责任发布开源模型的讨论做出有价值的贡献。
2 Methodology
2.1Background
Chat models
聊天模型经过针对指令遵循和对话的微调。这些模型使用聊天模板来构建用户查询。通常,聊天模板的形式为<user>{instruction}<end_user><assistant>
。我们使用指令后标记(post-instruction token)来指代指令之后的所有模板标记,并将对应这些指令后标记的位置索引集合表示为
I
I
I。我们的分析集中在这一区域的激活上,以了解模型如何构建其响应。
2.2 Datasets and models
Datasets 构建了2个数据集, D h a r m f u l D_{harmful} Dharmful,从 AdvBench、MaliciousInstruct、TDC2023、HarmBench 中抽取的有害指令数据集;以及 D h a r m l e s s D_{harmless} Dharmless,一个从 Alpaca 中采样的无害指令数据集。每个数据集分别包含 128 个训练样本和 32 个验证样本。我们进行了过滤以确保训练和验证样本不与第 3 节和第 4 节中使用的评估数据集重叠。有关数据集的更多详细信息,包括代表性示例,请参阅附录 A 节。
**Models ** 为了评估我们发现的普遍性,我们研究了一组多样化的安全微调模型,其规模从 18 亿到 720 亿参数不等。我们考虑了通过偏好优化(APO)对齐和通过微调(AFT)对齐的模型。本研究中包含的所有模型均在表 1 中指定。
2.3 Extracting a refusal direction
Difference-in-means. 为了在模型的残差流激活中识别“拒绝方向”,我们计算了模型在有害和无害指令上的平均激活之间的差异。这种技术被称为均值差异,正如先前工作所示,有效地隔离了关键特征方向
【下图里计算vector,这里有非常多组,对同一层,同一token序列位置,不同样本做平均,但是有很多层,并且token也是变量,所以候选向量有
I
⋅
L
I\cdot{L}
I⋅L个】
Selecting a single vector. 【下图里选择vector】
2.4 Model interventions
Activation addition. 直接加
Directional ablation. 按公式(4)消除该方向
2.5 Evaluation of refusal and harmfulness
在生成模型补全以进行评估时,我们始终使用贪婪解码和最大生成长度为 512 个标记。然后,我们根据每个模型补全是否构成拒绝以及是否包含有害内容来评估。我们将这些评估分为两个分数:拒绝分数和安全分数。
Refusal score
拒绝通常包含特征短语,例如“很抱歉”或“作为一个 AI”。我们编制了一组这些常见的“拒绝子串”。如果一个模型补全至少包含这样一个子串,它就被分类为拒绝(拒绝得分=1);否则,它被分类为非拒绝(拒绝得分=0)。完整的拒绝子串集合见§D.1。
这种字符串匹配方法存在局限性。虽然能有效检测拒绝,但它并不能评估回答是否连贯或包含有害内容。为了解决这些局限性,我们使用一个互补的指标来评估完成的危害性。
Safety score.
为了衡量模型回答的有害性,我们使用 Meta Llama Guard 2 (一个开源的微调用于检测恶意内容的模型),们提示该模型将每个模型补全分类为安全(safety_score=1)或不安全(safety_score=0)。更多细节请参阅§D.2。
3 Refusal is mediated by a single direction
对于每个模型,我们通过第 2.3 节中描述的方法提取一个单一的差异均值向量 r。然后我们表明这个单一方向对于拒绝既是必要的也是充分的。在第 3.1 节中,我们表明消除这个方向 r ^ \hat{r} r^ 有效地禁用了模型拒绝有害请求的能力。在第 3.2 节中,我们表明将 r 添加到模型的激活中会在无害指令上引起拒绝。
3.1 Bypassing refusal via directional ablation
对拒绝方向进行消融然后在 JailbreakBench 上生成模型输出,这是一个包含 100 条有害指令的数据集。结果显示在图 1 中。在没有干预的情况下,聊天模型几乎拒绝所有有害请求,从而获得高拒绝率和安全分数。从模型的残差流激活中移除 r ^ \hat{r} r^,进行方向消融(directional ablation)可以降低拒绝率并引发不安全输出。
3.2 Inducing refusal via activation addition
把r加到层l中(l是r提取的原始层),在所有token位置都执行这种干预,这样可以诱导拒绝。使用来自 Alpaca 的 100 个随机采样的无害指令生成模型输出。结果显示在图 3 中。在没有干预的情况下,聊天模型通常不会拒绝无害的指令。将 r 添加到模型的残差流激活中,标记为激活添加,导致模型甚至拒绝无害的请求。
4 A white-box jailbreak via weight orthogonalization
本节中,我们通过权重正交化(weight orthogonalization)提出了一种新颖的白盒越狱方法。该技术直接修改模型权重以消除拒绝方向的表示,从而得到一个保留原有能力但不再拒绝有害指令的模型。与涉及微调的先前方法相比,这种新方法为开源模型的越狱提供了一种更简单的方法,因为它不需要基于梯度的优化或任何有害完成的示例。
4.1 Weight orthogonalization
directional ablation 是一种 inference-time intervention 手段。在正向传播过程中,我们将每个中间残差流激活的
r
^
\hat{r}
r^。我们可以通过直接修改组件权重来实现这个操作,使其从一开始就永远不会写入
r
^
\hat{r}
r^ 方向。具体来说,我们可以取每个写入残差流的矩阵
W
o
u
t
∈
R
d
m
o
d
e
l
×
d
i
n
p
u
t
W_{out}\in{R^{d_{model}\times{d_{input}}}}
Wout∈Rdmodel×dinput 并使其列向量相对于
r
^
\hat{r}
r^ 正交化:
在一个 transformer 架构中,写入残差流的矩阵包括:嵌入矩阵、位置嵌入矩阵、注意力输出矩阵和 MLP 输出矩阵。将这些矩阵以及任何输出 bias 与方向
r
^
\hat{r}
r^ 正交化,实际上有效防止了模型向其残差流写入
r
^
\hat{r}
r^。
请注意,这种权重修改与之前描述的推理时间方向消除等效,如 §E 中明确所示。因此,第 3.1 节中提出的绕过拒绝的推理时间干预的性能也恰好表征了直接权重修改的性能。
4.2 Comparison to other jailbreaks
在这一节中,我们使用 HarmBench 的标准评估设置,将我们的方法与其他现有的越狱技术进行比较。具体来说,我们在 HarmBench 测试集的 159 个“标准行为”上生成补全,然后使用他们提供的分类器模型来确定攻击成功率(ASR),即被分类为成功绕过拒绝的补全比例。我们在 HarmBench 研究中包含的模型上评估我们的权重正交化方法,并报告其 ASR 以及替代越狱的 ASR。有关每个替代越狱的简要描述,请参阅 §F.1。
表 2 显示,我们的权重正交化方法,标记为 Ortho,与其他通用越狱技术相比表现良好。在整个 Qwen 模型家族中,我们的通用方法甚至与针对特定提示的越狱技术(如 GCG(Zou 等人,2023b))相当,后者针对每个提示单独优化越狱。
请注意,HarmBench 的评估方法规定,在评估过程中应使用每个模型的默认系统提示。虽然这种方法对于评估黑盒系统的鲁棒性是合理的,但在攻击者可以完全访问模型并轻松排除系统提示的白盒场景中,这种方法不太适用。因此,我们报告了带系统和不带系统提示的 ASR。
我们观察到,在比较带有和不带有系统提示的 Llama-2 模型在 ASR 方面的结果时,存在显著的差异。我们推测,尽管我们的干预措施禁用了模型的自然拒绝机制,但并未妨碍其遵循指令的能力。因此,当包含 Llama-2 系统提示时,该提示明确指示模型避免有害内容,正交化模型生成有害内容的可能性较低。相比之下,Qwen 系统提示要短得多,并且缺乏避免有害内容的明确指导,这可能是这些模型在 ASR 方面差异较小的原因之一。有关我们方法对系统提示敏感性的更详细讨论,请参阅§F.2。
4.3 Measuring model coherence
任何新的越狱技术都存在一个合理的担忧,即除了绕过拒绝之外,它还可能降低模型的总体质量。然而,从定性上看,我们发现模型在经过权重正交化后仍保持其一致性。虽然第 3.1 节和第 4.2 节表明我们的方法有效地绕过了拒绝,但在本小节中,我们定量评估了这种修改如何改变模型的一般能力。
对于每个模型及其正交化版本,我们运行了四种常见的语言模型评估:MMLU(Hendrycks 等,2020 年),ARC(Clark 等,2018 年),GSM8K(Cobbe 等,2021 年)和 TruthfulQA(Lin 等,2021 年)。所有评估均使用 LM 评估工具包(Gao 等,2023 年)进行,设置与 Open LLM排行榜(Beeching 等,2023 年)一致。
表 3 显示,对于 MMLU、ARC 和 GSM8K,正交化模型与基线模型表现相似。在 §G.1 中,我们展示了这一点也适用于我们套件中的其他模型,包括对 WinoGrande(Sakaguchi 等人,2021 年)和 TinyHellaSwag(Polo 等人,2024 年)的额外评估。除了 Qwen 7B 和 Yi 34B 之外,所有正交化模型的评估指标都位于原始性能的 99%置信区间内。
有趣的是,对于正交化模型,在 TruthfulQA 上的准确性始终下降。这一现象与杨等人(2023)的研究一致,他们观察到,移除安全护栏的微调会导致在 TruthfulQA 上的准确性下降。检查 TruthfulQA 中的具体问题表明,数据集接近拒绝的领域,包括“虚假信息”、“刻板印象”和“阴谋论”,因此从这个评估数据集上模型行为有显著差异可能直观上是有意义的。参见§G.2 以进一步讨论 TruthfulQA 的性能。
除了标准语言模型评估之外,我们还评估了 CE 损失在不同标准文本语料库和模型特定生成(§G.3)中的差异。这些损失指标表明,方向性消融比基于激活添加的方法更具有手术性(surgical)(§I.1)。
5 Mechanistic analysis of adversarial suffixes
安全微调的聊天模型容易受到对抗性后缀攻击(Zou 等,2023b):存在精心构造的字符串,将这些字符串附加到有害指令的末尾可以绕过拒绝并引发有害内容。有效的对抗性后缀通常不是人类可解释的,它们工作的机制也不太为人所理解。在本节中,我们从机制上分析了对抗性后缀对 Qwen 1.8B Chat 的影响。
5.1 Adversarial suffixes suppress the refusal-mediating direction
我们首先识别出一个有效的对抗性后缀,该后缀能够绕过 Qwen 1.8B Chat 的拒绝。该后缀在§H 中显示,并附带其生成细节。为了研究这个对抗性后缀的效果,我们从 JailbreakBench 和 HarmBench 测试集中采样了 128 个引起拒绝的有害指令。对于每个指令,我们运行模型三次:第一次是未编辑的指令,第二次是附加了对抗性后缀的指令,第三次是附加了相同长度的全新随机后缀的指令。通过将对抗性后缀与随机后缀进行比较,我们旨在控制添加任何后缀的效果。对于每次运行,我们缓存最后一个标记激活并可视化其与拒绝调节方向的余弦相似度。我们还将其与来自 Alpaca 的 128 个无害指令的基线进行比较,这些指令不会引起拒绝。图 5 显示,有害指令的拒绝方向的表达非常高,当附加随机后缀时仍然很高。附加对抗性后缀后的拒绝方向的表达被严重抑制,并非常接近无害指令的表达。
5.2 Adversarial suffixes hijack the attention of important heads
为了进一步研究拒绝方向的抑制方式,我们考察了单个注意力头和 MLP 组件对拒绝方向的贡献。我们使用直接特征归因(DFA)(Makelov 等,2024;Kissane 等,2024)量化每个组件对此方向的贡献:每个组件的直接贡献可以通过将其输出投影到拒绝方向来衡量。我们选择了在有害指令上 DFA 最高的前八个注意力头,然后研究当添加后缀时它们的行为变化。图 6(a)显示,与无后缀和随机后缀相比,当添加对抗性后缀时,这些头对拒绝方向的直接贡献被显著抑制。
为了理解这些注意力头如何改变输出,我们检查它们的注意力模式。图 6(b)说明,对抗性后缀有效地“劫持”了这些头的注意力。通常,这些头关注提示的指令区域,其中包含有害内容。在添加对抗性后缀后,这些头将注意力转移到后缀区域,并远离有害指令。
图 6:我们分析了八个最重要的注意力头,它们对拒绝方向的写入影响最大。图 6(a)显示,当添加对抗性后缀时,对拒绝方向的输出被严重抑制。图 6(b)揭示,与添加随机后缀相比,添加对抗性后缀将注意力从指令区域的标记转移到后缀区域的标记。
6 Related work
Understanding refusal in language models.
Wei 等人(2024)表明,移除一组安全关键神经元和排名可以降低安全机制,同时保持效用。Zheng 等人(2024)和 Zou 等人(2023a)都使用有害和无害输入的对比对来识别模型的representation of harmfulness,声称这一方向与模型拒绝表示的方向不同。Zheng 等人(2024)通过展示安全提示将激活转移到不同的方向来论证这一点,而 Zou 等人(2023a)则表明表示并未受到对抗后缀的显著改变。请注意,这与我们在第 5.1 节中的发现形成对比,即“拒绝方向”在有对抗后缀的情况下被显著抑制。Rimsky 等人(2023)使用对比多选补全(contrastive multiple-choice completions),发现使用由此产生的向量用于控制,在多选设置中可以有效调节拒绝,但在长篇生成中则不然。
Features as directions.
从输入对比对中提取特征方向是一种已建立的技巧(Burns 等人,2022;Rimsky 等人,2023;Zou 等人,2023a)。众所周知,向残差流中添加特征向量可以改变行为(Turner 等人,2023;Zou 等人,2023a;Tigges 等人,2023;Rimsky 等人,2023;Marks 和 Tegmark,2023;Li 等人,2024),尽管如何以及在哪里干预的细节各不相同(Jorgensen 等人,2023;von Rütte 等人,2024)。
各种研究显示,激活空间中的方向比神经元具有更多“特征性”属性(Elhage 等人,2022;Mikolov 等人,2013;Park 等人,2023b;Li 等人,2021;Geiger 等人,2024;Hernandez 和 Andreas,2021;Nanda 等人,2023;Bolukbasi 等人,2016)。近期的研究使用稀疏自编码器以无监督方式发现特征方向(Bricken 等人,2023;Cunningham 等人,2023;Templeton 等人,2024)。假设特征以线性方式表示,对于从语言模型中消除概念是有效的(Belrose 等人,2024;Belrose,2023;Ravfogel 等人,2020;Guerner 等人,2023;Haghighatkhah 等人,2022;Shao 等人,2022)。
Undoing safety fine-tuning.
众所周知,在恶意示例上进行微调足以取消安全护栏(Lermen 等人,2023 年),即使整体能力略有下降(Yang 等人,2023 年;Zhan 等人,2023 年)。通过微调取消拒绝需要有害指令和完成的示例,而我们的方法只需要有害指令。然而,请注意,即使数据是良性的,微调也可能削弱安全护栏(Qi 等人,2023 年;Pelrine 等人,2023 年)。机制可解释性工作提供了初步证据,表明微调不会显著改变相关内部电路(Lee 等人,2024 年;Prakash 等人,2024 年;Jain 等人,2023 年)。例如,Lee 等人(2024 年)微调一个模型以使其毒性降低,并发现这种行为修改可以通过调整少量 MLP 权重来简单地取消。
**Jailbreaks. **
研究通过修改输入来规避对LLM行为限制的研究领域已经出现了许多不同的研究方向。许多模型容易受到社会工程攻击(Wei 等人,2023;Shah 等人,2023b;Perez 等人,2022)。一个假设是,这样的提示修改了LLM助手的“人格”(Andreas,2022;Shanahan 等人,2023;Park 等人,2023a)。在§L 的初步实验表明,我们的方法不会改变模型的聊天个性和拒绝之外的行为。
优化后的对抗性后缀(Zou 等,2023b;Andriushchenko 等,2024;Liao 和 Sun,2024)可以附加到提示中以绕过拒绝。相比之下,我们的方法不需要对输入提示进行任何修改,但有一个明显的局限性,即我们需要访问模型的权重。然而,请注意,在黑盒模型上优化的开放权重模型上的越狱提示的可迁移性尚不清楚(Meade 等,2024)。越狱提示可能对模型性能有重大影响(Souly 等,2024),而我们的方法则没有(§4.3)。
7 Discussion
在这项工作中,我们证明了拒绝行为在一系列开源聊天模型中始终由单一方向所调节。基于这种理解,我们提出了一种简单而有效的白盒越狱方法,该方法直接修改模型权重以禁用拒绝机制,同时保持模型一致性。我们的工作展示了基于模型内部的可解释性的实际效用:通过从模型内部的角度研究拒绝,我们能够创建一种简单而有效的越狱方法。模型拒绝机制的简单性和在白盒设置中绕过它的容易性,引发了关于当前对齐技术鲁棒性的担忧。
Limitations.
我们的研究有几个局限性。首先,虽然我们评估了广泛的开源模型,但我们的发现可能无法推广到未经测试的模型,尤其是那些规模更大的模型,包括当前最先进的专有模型和未来开发的模型。其次,我们用来提取“拒绝方向”的方法可能不是最优的,并依赖于几个启发式方法。我们认为这篇论文更多的是一个存在证明,表明这样的方向存在,而不是对如何最佳提取它的仔细研究,我们将方法改进留给未来的工作。第三,我们对对抗后缀的分析并没有提供对这一现象的全面机制理解,并且仅限于一个模型和一个对抗示例。第四,衡量聊天模型的连贯性很困难,我们认为每个使用的指标都有各种缺陷。我们使用多个不同的指标来提供一个广泛的连贯性视角,并欢迎未来有更严格的分析。
Ethical considerations.
任何关于越狱LLMs的工作都必须提出一个问题,即它是否会导致新的危害。众所周知,开源模型权重可以通过微调进行越狱。我们的方法,使用不到 5 美元的计算能力就能生成一个 70B 参数模型的越狱版本,比之前的微调方法更简单,不需要基于梯度的优化或有害补全的数据集。虽然我们承认我们的方法略微降低了越狱开源模型权重的门槛,但我们认为它并没有实质性改变开源模型的风险特征。
尽管今天语言模型造成的滥用风险可能相对较低(Anthropic,2024;Mouton 等人,2024),但最先进模型能力的快速进步表明,这种风险可能在不久的将来变得显著。我们的工作为日益增长的文献做出了贡献,强调了当前安全机制的脆弱性,证明了它们很容易被规避,并且不足以防止开源LLMs的滥用。在当前安全技术的局限性上达成科学共识对于指导未来的政策决策和研究努力至关重要。