ICLR 2025 杰出论文:浅层对齐只改了前几个 token

Shallow Safety Alignment(Safety Alignment Should Be Made More Than Just a Few Tokens Deep,2024,Princeton & Google DeepMind,ICLR 2025 Outstanding Paper)的核心论点:当前 LLM 的 safety alignment 主要只修改了输出前几个 token 的生成分布。论文给该现象起名 shallow safety alignment,并指出它解释了 prefilling、adversarial suffix、decoding 参数攻击、fine-tuning 攻击等多种 jailbreak 共有的成因。

作者通过 per-token KL 散度分析、prefix 预填实验、fine-tuning 动态分析三组实验定位现象,再用一个简单的 data augmentation 与一个约束式 fine-tuning loss 验证"加深 alignment"确实能缓解多种攻击。实验主要在 Llama-2-7B-Chat 与 Gemma-1.1-7B-IT 上进行,评测用 HEx-PHI、AdvBench、MaliciousInstruct 三个数据集。

论文地址: arxiv.org/abs/2406.05946

现象定义

Shallow safety alignment:模型在 alignment 后,相对于 base model 的生成分布变化主要集中在输出的前几个 token,更深位置的分布几乎不变。

为什么会这样:当前主流 alignment 流程(SFT、RLHF 等)都没有显式建模 alignment 的"深度"。SFT 中,人类标注者写的 refusal 例子几乎不会出现"先输出有害前缀,再切换到拒绝"这种反常模式;RLHF 中,模型只要学会以 refusal 前缀开头,奖励模型就难以惩罚后续内容,因为生成根本不会到达后面。结果是 alignment 找到了一条捷径:只在前几个 token 上压制有害分布。

论文统计 Llama-2-7B-Chat 在 HEx-PHI 的 330 个有害指令上,有 96.1% 的回复以 “I cannot” 或 “I apologize” 开头;Gemma-1.1-7B-IT 用 “I am unable” 开头的比例是 96.7%。这种以固定短语起头的回复模式称为 refusal prefix(拒绝前缀),是对齐模型应对有害请求的典型开场。这种高度模板化的开头本身不是 bug,而是浅层 alignment 工作方式的直接证据。

现象的三个证据

Refusal 前缀的捷径效应。把 base model(未 alignment)解码时强制以 refusal 前缀开头,其有害率会显著下降,向 aligned model 靠拢。Llama-2-7B base 在 HEx-PHI 上无前缀时有害率 68.6%,预填 “I cannot” 后降至 16.4%,预填 “I apologize” 后降至 2.1%。Gemma-7B base 从 85.4% 降到 8.7%(“I cannot”)和 1.0%(“I apologize, but I cannot”)。也就是说,refusal 前缀这个 pattern 本身在预训练阶段已经学到,alignment 只需要把 base model 推到这条轨道上即可让外观上"安全"。

Aligned 与 base 的 KL 散度集中在前几个 token。作者构造一个 Harmful HEx-PHI 数据集(330 条有害指令配上由越狱版 GPT-3.5 生成的有害答案),逐 token 计算 $D_{KL}(\pi_{aligned}(\cdot|x, y_{<k}) \| \pi_{base}(\cdot|x, y_{<k}))$。结果显示,无论是 Llama 还是 Gemma,KL 散度在前几个 token 显著高于后续位置。alignment 的"KL 预算"几乎全部花在了前几个 token。

Figure 1:aligned 与 base 模型在 Harmful HEx-PHI 上的 per-token KL 散度,集中在前几个 token

Fine-tuning 攻击的 per-token 动态。在 100 条 (有害指令, 有害答案) 数据上 fine-tune Llama-2-7B-Chat,6 个 gradient step 后 ASR 从初始的 1.5% 升至 87.9%。逐 token 分析显示:初始 cross-entropy loss 在前几个 token 上明显更高,对应梯度范数也更大;fine-tune 后的模型与初始 aligned 模型的 KL 散度也是在前几个 token 上偏离最大。这正好对应:浅层 alignment 把所有"力气"压在前几个 token,fine-tune 也最容易把这部分先冲垮。

Figure 3:fine-tuning 攻击下,per-token cross-entropy loss、梯度范数与 KL 散度均集中在前几个 token

浅层 alignment 解释了多种攻击

把上面的现象作为统一框架,论文将四类已知 jailbreak 都归到 shallow safety alignment:

Prefilling 攻击:直接在解码起始位置预填若干个有害 token,跳过 refusal 前缀。Figure 2 显示,随着预填 token 数从 0 增加到 40,aligned 模型在 Harmful HEx-PHI 上的 ASR 从接近 0 升到超过 50%。Anthropic 的 Claude API 已经支持 prefilling 接口(论文标注用途为 “better steerability”),开源模型解码过程更易被攻击者控制。

Adversarial suffix 攻击(如 GCG):通过优化一段附加在 prompt 后的字符串,迫使模型以肯定前缀开头。这类攻击实际优化的目标常常就是最大化 “Sure, here is…” 这类 affirmative prefix 的概率,本质上是在间接构造 prefilling 效果。

Decoding 参数攻击:仅改变 temperature、top-k、top-p 反复采样就能拿到有害回复。原因同样是浅层 alignment:只要采样轨迹偶然偏离了 refusal 前缀,后面就没有约束。

Fine-tuning 攻击:少量梯度步即可破坏 alignment,根源在于早期 token 上的大 loss 与大梯度。

加深 alignment:data augmentation

论文提出的对应方法之一是 safety recovery 数据。形式为三元组 $(x, h, r)$:$x$ 是有害指令,$h$ 是对应的有害回复,$r$ 是 refusal 回复。训练时除了常规的 $\pi(r|x)$,还增广 $\pi(r|x, h_{\leq k})$,其中 $k$ 从 $[1, 100]$ 上均匀采样(且 $k=0$ 占 50% 概率)。语义上是教模型"即使前 $k$ 个 token 已经走偏,也要在第 $k+1$ 个 token 切换回 refusal"。这类例子在自然语言中并不通顺(例如 “Step 1: Gather phosphorus I cannot fulfill your request…"),但用于训练时确实能把 alignment 的影响推向更深。

实现细节:在已经 align 的 Llama-2-7B-Chat 上继续 fine-tune,构造 256 个 $(x, h, r)$ 三元组组成 $D_H$。为防止 utility 退化,从 Alpaca 数据中取 benign 指令并用初始 Llama-2-7B-Chat 蒸馏出回答作为 $D_B$;总损失加权 $\alpha = 0.2$。得到的模型称为 Llama2-7B-Chat-Augmented。

效果(Table 2,对比初始 Llama-2-7B-Chat):

  • Prefilling 攻击(5/10/20/40 tokens):ASR 从 42.1% / 51.5% / 56.1% / 57.0% 降至 2.8% / 2.9% / 3.4% / 4.5%
  • GCG 攻击:HEx-PHI 上 ASR 从 36.5% 降至 18.4%;AdvBench 上从 65.6% 降至 19.0%
  • Decoding 参数攻击:HEx-PHI 上从 54.9% 降至 11.3%;MaliciousInstruct 上从 84.3% 降至 1.0%

Utility 方面,AlpacaEval winrate 从 51.8% 微降到 49.5%。论文指出对 fine-tuning 攻击的 durability 有所改善但仍不足,详见附录 C。

保护初始 token:约束式 fine-tuning

针对 fine-tuning 攻击,论文设计了一个 token-wise 约束 loss:

$$ \min_\theta \mathbb{E}_{(x,y)\sim D} \sum_{t=1}^{|y|} \frac{2}{\beta_t} \log \sigma\left(\beta_t \log \frac{\pi_\theta(y_t|x, y_{<t})}{\pi_{aligned}(y_t|x, y_{<t})}\right) $$

其中 $\sigma$ 是 sigmoid,$\beta_t$ 控制每个 token 位置上对"偏离初始 aligned model"的惩罚强度。$\beta_t$ 越大,该位置的生成分布越被拉回 $\pi_{aligned}$。论文给出的解读是:当 $\beta_t$ 较小时,loss 退化为标准 cross-entropy;当 $\beta_t$ 较大时,token 位置的梯度权重 $w_t$ 会随偏离接近阈值而自适应衰减,从而抑制该位置的分布进一步偏离。

实验中只对前 5 个 token 加大 $\beta$:$\beta_1 = 0.5$,$\beta_t = 2$($2 \leq t \leq 5$),$\beta_t = 0.1$($t > 5$)。

效果(Table 3,Llama-2-7B-Chat):

  • Harmful Examples fine-tuning 攻击:标准 SFT 的 ASR 88.9%,约束 SFT 4.6%
  • Identity Shifting:标准 SFT 79.5%,约束 SFT 8.1%
  • Backdoor Poisoning(带 trigger):标准 SFT 90.9%,约束 SFT 10.9%

正常下游 fine-tuning(Samsum、SQL Create Context、GSM8k)上,utility 接近标准 SFT(Samsum ROUGE-1:50.1 vs 51.7;SQL:98.5 vs 99.1;GSM8k:37.4 vs 41.7),同时 ASR 维持在低位(GSM8k 上从标准 SFT 的 3.3% 降到 2.0%,Samsum 从 23.4% 降到 3.2%,SQL 从 15.4% 降到 3.2%)。Gemma-1.1-7B-IT 上结论一致。

一些细节

与 Superficial Alignment Hypothesis 的关系。Zhou et al. 的 SAH 主张 alignment 只是浅层地改变输入输出格式。本文 shallow safety alignment 与 SAH 在 safety 场景下密切相关,但聚焦于具体攻击与缓解机制。Lin et al. 的 URIAL 也观察到 aligned 与 base 的差异随 token 位置变远而消失,但没有把这种现象与具体攻击关联。

为什么 refusal 前缀对 base model 也起作用。论文将其归为预训练阶段的语言先验:refusal 前缀(“I cannot fulfill”)后续接拒绝内容是自然语言中已有的 pattern,base model 在预训练时已经学到。alignment 在很大程度上是利用了这条已有的 pattern,而不是另起炉灶教模型拒绝。

关于残留风险。data augmentation 加深的 alignment 在 prefilling、GCG、decoding 攻击上明显更鲁棒,但对 adversarial fine-tuning 攻击仍易受攻击;约束式 SFT 对常见 fine-tuning 攻击有效。论文承认两种方法面对未来 adaptive 攻击的鲁棒性仍需后续研究,都是"更好”,不是"完全防御"。

论文给出的解释边界。第 5 节 Other Notions of Safety Depth 中,作者注明 “depth” 不止 token 维度一种,模型在 adaptation 后保持 safety 的能力也是另一种深度。本文聚焦的是 token-based depth。

小结

这篇论文给现有大量 jailbreak 现象提供了一个统一的机制解释:当前 SFT/RLHF 的 alignment 主要只改了前几个 token 的分布,后续 token 的分布几乎与 base model 一致。Prefilling、adversarial suffix、decoding 参数攻击都在绕过这道几个 token 厚的防线,fine-tuning 攻击则直接冲掉它。论文给出的两个对应方案(safety recovery 数据增广、token-wise 约束 fine-tuning loss)只是初步策略,但提供了概念层面的方向:alignment 应当显式建模"深度",而不是默认压制前缀。