引言

像 GPT-4、PaLM 和 Llama-2 这样的大型语言模型 (LLM) 彻底改变了我们与信息交互的方式。它们能够流利地翻译语言、编写代码并回答复杂问题。然而,这种多功能性伴随着一个显著的警告: 安全性。由于这些模型是在互联网的海量数据上训练的,它们不可避免地学会了生成有害内容,包括仇恨言论、虚假信息以及非法行为的指导。

为了应对这一问题,开发者使用了诸如基于人类反馈的强化学习 (RLHF) 等对齐技术,教导模型拒绝有害查询。但这些安全机制十分脆弱。一个今天看起来完美安全的模型,明天就可能被一个巧妙的提示词“越狱”。此外,当用户针对特定任务 (如编程或数学) 对这些模型进行微调,或通过编辑来更新其知识库时,原始的安全对齐往往会退化。

这就产生了一个复杂的问题: 我们如何确保模型在不同的生命周期——无论是基础模型、微调后的专家模型,还是知识编辑后的版本——中都能保持安全,而无需每次都从头开始重新训练?

来自新加坡科技设计大学和印度理工学院卡拉格普尔分校的研究人员提出了一种名为 安全算术 (Safety Arithmetic) 的新颖解决方案。他们的框架不将安全性视为一本规则书,而是视为一种数学运算。通过识别模型参数中的“危害向量”和激活中的“安全向量”,他们可以在数学上减去有害行为并加上安全行为。

图 1: LLM 主要有三种利用方式: 直接使用 (BASE) 、微调 (SFT) 和通过新知识进行编辑 (EDIT) 。所有这些用途通常都容易遭到越狱。我们提出了“安全算术” (SAFETY ARITHMETIC) ,这是一个框架,通过首先移除嵌入在参数中的有害行为,然后引导激活向安全方向发展,从而在这三种主要设置中对 LLM 进行安全对齐。安全算术在不严重干扰其效用的情况下,极大地减少了 LLM 在这些设置中的不安全行为。

如上图所示,无论模型如何使用——无论是基础模型、监督微调 (SFT) 模型还是编辑过的模型,安全算术都被设计为包裹在模型周围。在这篇文章中,我们将探索该框架的机制,拆解那些让我们无需昂贵的再训练就能将模型“引导”向安全的线性代数原理。

背景: 为什么传统的对齐还不够

在深入解决方案之前,我们需要了解当前 LLM 的脆弱性。当一个组织发布一个“安全”模型时,它通常已经经过了大量的监督微调 (SFT) 和 RLHF,以使其与人类价值观保持一致。

然而,“对齐税”是真实存在的。受到严格审查的模型经常会拒绝回答良性问题 (这种现象被称为过度安全) 。更糟糕的是,当用户下载像 Llama-2 这样的开放权重模型并在数学题或医疗记录等数据集上对其进行微调时,模型往往会“忘记”其安全训练。这就是所谓的安全对齐的灾难性遗忘

此外,像模型编辑 (例如 ROME) 这样的技术,虽然允许我们在不重新训练的情况下通过外科手术般的方式向模型注入新事实,但也可能无意中破坏保持模型安全的微妙权重平衡。

安全算术背后的研究人员依靠两个新兴概念来解决这个问题:

  1. 任务算术 (Task Arithmetic) : 这一概念认为神经网络的特定能力 (或任务) 可以作为参数空间中的向量被分离出来。如果你能分离出“有害”的任务向量,理论上你就可以将其减去。
  2. 上下文学习引导 (In-Context Learning Steering) : 这一概念认为,模型在推理过程中的内部状态 (激活) 可以被推向特定方向,以改变其行为。

核心方法: 安全算术

安全算术框架是一种“免训练”的方法。它不需要传统意义上通过梯度下降来更新模型。相反,它分两个不同的阶段运行:

  1. 危害方向移除 (Harm Direction Removal, HDR) : 清理模型的参数 (权重) 以消除固有偏见。
  2. 安全对齐 (Safety Alignment, Safe-Align) : 在推理过程中引导模型的激活 (隐藏状态) 以确保生成的安全性。

图 2: 安全算术框架概览,展示了危害方向移除和安全对齐这两个步骤。在危害方向移除阶段,识别并移除模型行为中的有害倾向,从而产生一个更安全的中间模型。在安全对齐阶段,我们将语言模型的潜在空间与安全响应的生成对齐。

让我们从数学角度拆解这两个阶段。

第一阶段: 危害方向移除 (HDR)

HDR 的目标是识别神经网络中负责生成有害内容的特定权重并将其失效。

第一步: 识别危害向量

为了在神经网络中找到“危害”,研究人员使用了一种涉及任务类比的技术。他们首先获取一个安全的基础模型 (\(\theta_b\)) ,并在一个包含有害问答对的小型数据集上对其进行微调。这就产生了一个故意“变坏”或不安全的模型,记为 \(\theta_H\)。

这个不安全模型与原始基础模型之间的差异代表了参数空间中的危害“方向”。我们使用简单的减法计算 危害向量 (\(\tau_H\)):

公式 1: 危害向量的计算。

第二步: 修剪冗余参数

神经网络十分庞大,根据这个向量修改每一个参数可能会损害模型的通用效用 (例如,它说英语或做数学的能力) 。研究人员发现,“危害”通常集中在变化幅度较大的参数中。

为了保留模型的效用,他们只选择危害向量中绝对值最大的前 \(k\)% 个参数。这由集合 \(S_k\) 定义:

公式 2: 根据幅度选择前 k 个参数。

然后,他们创建一个修剪后的危害向量 (\(\tau'_H\)),其中所有不在前 \(k\) 名的参数都被设为零。这确保了我们只针对那些对有害行为负主要责任的权重。

公式 3: 创建修剪后的危害向量。

第三步: 减去危害

最后,为了创建一个更安全的目标模型版本 (\(\theta_t\)) ,我们从中减去这个修剪后的危害向量。一个缩放因子 \(\lambda\) 控制我们移除危害的力度。

公式 4: 将危害向量应用于目标模型。

结果是一个在数学上已经“遗忘”了参数空间中与生成有毒或有害内容相关方向的模型 (\(\hat{\theta}_t\)) 。

特殊情况: 编辑过的模型

如果目标模型已被编辑 (例如,更新了关于某位总统的事实) ,全局应用危害向量可能会撤销该编辑。在这种情况下,安全算术使用掩码 (Mask) ,在被编辑的层及其紧邻层应用危害向量。

首先,他们识别被修改的层: 公式 11: 识别基础模型和编辑模型之间的变化层。

然后,他们创建一个掩码 (\(\mathcal{E}\)) 来隔离这些层: 公式 12: 创建层掩码。

最后,危害向量仅在掩码允许的地方应用: 公式 13: 仅在编辑区域应用危害向量。

第二阶段: 安全对齐 (Safe-Align)

第二阶段发生在推理过程中 (即模型实际生成文本时) 。即使经过参数引导,某些有害行为仍可能残留在模型的“思维过程” (其潜在空间) 中。

为了解决这个问题,研究人员使用 上下文学习 (ICL) 来计算一个“安全向量”,实时引导模型的隐藏状态趋向安全。

第一步: 收集范例

他们准备了一个包含不安全和安全响应对的提示词数据集。

  • 不安全提示词 (\(p_{usf}\)): 一个有害问题配对一个有害回答。
  • 安全提示词 (\(p_{sf}\)): 同一个问题配对一个安全的、拒绝式的回答。

他们将这些提示词输入模型,并捕获每一层最后一个 token 位置的隐藏状态表示 (\(h\)) 。

公式 5 和 6: 不安全和安全提示词的隐藏表示集。

第二步: 计算上下文安全向量 (ICV)

目标是找到一个向量 (\(h_{ICV}\)),当将其添加到模型状态时,能将表示推向更接近安全示例的位置,并远离不安全示例。

这被公式化为一个优化问题:

公式 7: ICV 的优化目标。

使用 L2 范数作为距离度量,这简化为寻找最大化安全和不安全隐藏状态之间差异的方向。

公式 8: 简化的目标函数。

在实践中,最优解是安全与不安全隐藏状态之差的 第一主方向 (通过 PCA 获得) 。这个向量捕捉了模型安全的本质“精髓”。

第三步: 引导激活

在推理过程中,当模型处理用户的查询时,这个安全向量 (\(ICV\)) 会被添加到每一层 \(l\) 和每个 token 步骤 \(t\) 的隐藏状态 (\(h_l^t\)) 中。超参数 \(\alpha\) 控制这种引导的强度。

公式 9: 将 ICV 添加到隐藏状态。

为了防止这种相加扭曲信号的“能量”或幅度 (这可能导致输出乱码) ,新的隐藏状态会被归一化,以匹配原始隐藏状态的长度。

公式 10: 归一化引导后的隐藏状态。

结果是 \(\theta_{sf}\)——一个完全对齐的模型,它既在参数层面被清理过,又在激活层面被引导过。

实验与结果

研究人员使用 AdvBenchDangerousQAHarmfulQA 等严格的基准测试,在多个模型 (Llama-2、Mistral、WizardMath) 上测试了安全算术。他们将该方法与原始基础模型及其他对齐基线进行了比较。

它真的能减少危害吗?

结果具有统计学意义。使用的指标是 攻击成功率 (ASR) ——即模型未能拒绝有害提示词的百分比。该数值越低越好。

对于监督微调 (SFT) 模型 (这类模型以容易丢失安全护栏而闻名) ,安全算术显著恢复了安全性。

表 2: 微调 (SFT) 模型的攻击成功率 (ASR) 。

观察上表中的 WizardMath (WM) :

  • Original (原始) 模型在 AdvBench 上的 ASR 为 79.62% 。 它几乎 80% 的时间都在生成有害内容。
  • Safety Arithmetic (安全算术) 将其大幅削减至 37.69%
  • DangerousQA 上,ASR 从 76.50% 降至 50.00%

LlamaMath (LM) 也观察到了类似的趋势,其在 DangerousQA 上的 ASR 从 27.00% 惊人地降至 6.00% 。 这证明了该框架可以在无需使用安全数据重新训练的情况下,有效地恢复专用模型的安全性。

关于无意编辑?

研究人员还引入了一个名为 NOINTENTEDIT 的新数据集。该数据集揭示了一个微妙的风险: 有时,用良性事实 (如文化规范或商业策略) 编辑模型,可能会无意中使其更容易生成偏见或有害内容。

表 6: NOINTENTEDIT 数据集中的说明性示例。

当应用于这些被无意编辑过的模型时,安全算术再次证明了其优越性。

表 3: 无意编辑模型的攻击成功率 (ASR) 。

在上表中, Edited Model (编辑后模型) 在 AdvBench 上的 ASR 飙升至 25.19% 。 安全算术将其降至 5.96% , 显著优于其他基线方法。

权衡: 安全性 vs. 效用

对安全技术的一个常见批评是它们会让模型“变笨”。如果你为了消除危害而修剪了太多参数,你可能会破坏模型的推理能力。

研究人员通过改变 \(k\) 百分比 (HDR 阶段修改的参数量) 分析了这种权衡。

图 3: 不同 top k 参数选择下的 ASR 和 MMLU 指标对比。

如图 3 所示,增加被修改参数的数量 (X 轴向右移动) 会降低攻击成功率 (ASR - 红色柱状图) 。然而,最终模型的效用 (MMLU 分数 - 蓝色折线) 开始下降。研究人员发现,修改前 10% 的参数是“最佳平衡点”——它大幅减少了危害,同时保持了与原始模型几乎相同的 MMLU 分数 (常识知识) 。

这一结论在他们的效用表中得到了进一步证实:

表 4: 效用性能对比。

表 4 显示,在 MMLUHellaswagGSM8K (数学) 等基准测试上,经过安全算术处理的模型的性能与基础模型在统计上没有区别。

减少过度安全

最后,对齐模型的一个主要烦恼是“过度安全”——因为问题听起来很危险而拒绝回答无害问题 (例如,“我该如何杀掉……一个 Python 进程?”) 。

表 5: 不同模型的过度安全 (拒绝率) 得分。

使用 XS Test 数据集,研究人员展示了与基础 Llama-2 模型相比,安全算术实际上降低了对良性提示词的拒绝率 (从 17.8% 降至 8.6% )。通过针对特定的危害向量而不是应用一刀切的拒绝过滤器,模型在拦截内容时变得更加细致。

结论与启示

安全算术代表了 AI 对齐领域向前迈出的重要一步。它摆脱了强化学习的“黑箱”方法,转向了一种更具解释性的、基于线性代数的理解方式,即 LLM 如何存储和处理像“危害”这样的概念。

主要收获如下:

  1. 多功能性: 它适用于基础模型、微调专家模型和知识编辑模型。
  2. 高效性: 它是免训练的。你不需要庞大的 GPU 集群来重新对齐模型;你只需要执行一些向量减法和加法。
  3. 精准性: 它以外科手术般的方式移除有害倾向,而不会降低模型的智能或导致其对良性查询反应过度。

随着开源模型的不断激增,像安全算术这样的框架将变得至关重要。它们提供了一个开发者可以在测试时应用的“安全包装器”,确保即使我们对 AI 模型进行专业化和编辑,它们仍然与人类价值观保持一致。