跳转至

ASGuard: Activation-Scaling Guard to Mitigate Targeted Jailbreaking Attack

会议: ICLR 2026
OpenReview: https://openreview.net/forum?id=wmiEXNEXPs
代码: https://github.com/dmis-lab/ASGuard
领域: LLM 安全 / 越狱防御 / 机制可解释性
关键词: 时态越狱(tense jailbreaking), 注意力头电路分析, 激活缩放, 预防式微调, 安全-效用权衡

一句话总结

ASGuard 用电路分析定位出对"时态改写越狱"负责的少数注意力头,训练一个通道级缩放向量把这些头"按下去",再在缩放生效的"残障状态"下做预防式微调让模型学到更鲁棒的拒答机制,最后把缩放向量卸载,从而在几乎不损失通用能力、不增加过度拒答的前提下精准修补这一特定漏洞。

研究背景与动机

领域现状:经过安全对齐(SFT / RLHF / DPO)的 LLM 对直白的有害请求已能稳定拒答,但越狱攻击不断进化。其中"时态越狱"尤为典型——把"How to make a Molotov cocktail?"改写成过去式"How did people make a Molotov cocktail?",仅做一个语义保持的微小改动就能绕过大量 SoTA 模型的护栏。

现有痛点:当前对齐方法本质是在塑造全局输出分布(教模型"拒答什么内容"),而非让模型真正理解请求背后的有害意图。这导致两类后果:一是面对过去式这种叙述性改写时模型把它误判成无害的历史询问;二是想用更激进的微调去补这种窄漏洞时,往往带来"过度拒答(over-refusal)"和"灾难性遗忘(catastrophic forgetting)"——安全和效用此消彼长,落在一条不理想的权衡曲线上。

核心矛盾:安全功能其实高度局部化(往往集中在少数注意力头里),但主流防御却用全局、粗粒度的输出层优化去修补一个局部、狭窄的漏洞,必然牵连无关能力。核心 idea:要只修补一个已知的特定漏洞,就必须直接干预因果上对它负责的内部机制,而不是在输出层做笼统优化。

本文目标:在四个开源对齐模型上,用机制可解释性手段外科手术式地修掉时态越狱漏洞,同时保住通用能力、压住过度拒答,落到安全-效用的 Pareto 前沿上。

方法详解

整体框架

ASGuard 是一个三阶段流水线:先用电路分析找出只在越狱成功路径里出现的"时态脆弱头",再训练一个通道级缩放向量精准压制这些头的输出,最后在缩放向量临时挂载的状态下做预防式微调,让模型把更鲁棒的拒答内化进权重,训练完把缩放向量卸载、只保留新权重。

flowchart LR
    A[成功越狱案例<br/>过去式 vs 现在式] --> B[Step1 电路分析<br/>EAP-IG 构建电路<br/>对比 False-to-True / Always-False]
    B --> C[定位时态脆弱注意力头 Hvuln]
    C --> D[Step2 Identify-then-Scale<br/>训练通道级缩放向量 sj<br/>冻结模型权重]
    D --> E[Step3 预防式微调<br/>缩放生效下更新 θ→θ′<br/>学鲁棒拒答]
    E --> F[卸载缩放向量<br/>仅保留 θ′ 的对齐模型]

关键设计

1. 构建时态脆弱电路:用因果对比锁定"只在越狱成功时才出现"的头。作者把 transformer 内部计算建模成有向无环图 \(G=(N,E)\),节点 \(N=\{I, A_{l,j}, M_l, O\}\) 覆盖输入、各层注意力头、MLP 和输出,并用 SoTA 的 EAP-IG(带积分梯度的边归因打补丁)给每条边打分:\(\text{score}(u\!\to\!v)=\Delta z_u\cdot\frac{1}{m}\sum_{k=1}^{m}\frac{\partial L}{\partial(\text{input of }v)}\),其中 \(\Delta z_u=z_u-z'_u\) 是干净激活与污染激活之差,\(L\) 用 KL 散度这种任务无关的散度。关键在于设计了两类对照样本:False-to-True(现在式被拒、过去式被绕过的真越狱)和 Always-False(现在式过去式都被正确拒答),clean/corrupted 分别挂上真有害回答和采样的拒答。比较两类电路后,只保留仅出现在 False-to-True 电路里的注意力头作为脆弱头 \(H_{\text{vuln}}\)。有意思的是这批头与已知的"Temporal Head"完全不同——说明模型对"时态语法"和"时间知识"的编码是分离的。消融测试(把这些头置零)能让过去式 ASR 下降 4–13%,而随机头只掉 1–2%,证明定位有效;但置零这种粗暴干预只切断了下游拒答的传播,没改上游的有害性判断,所以还不够。

2. Identify-then-Scale:用通道级缩放向量做参数极省的精准干预。不把脆弱头整个砍掉,而是在通道层面重新标定其输出。对第 \(j\) 个头的激活张量 \(H_{l,j}\in\mathbb{R}^{T\times d_{\text{head}}}\),引入可学习的通道缩放向量 \(s_j\in\mathbb{R}^{d_{\text{head}}}\),做广播的 Hadamard 乘积 \(H'_{l,j}=H_{l,j}\odot s_j\)——它逐通道调制每个头输出的幅度。由于 \((H_{l,k}\odot s_k)W_{O,k}=H_{l,k}(\mathrm{diag}(s_k)W_{O,k})\),缩放可以直接融进输出投影 \(W'_{O,k}=\mathrm{diag}(s_k)W_{O,k}\)推理零额外开销。训练时只有缩放向量可学、原权重 \(\theta\) 全冻结,目标是把已知有害输入引导到安全拒答 \(y_{\text{safe}}\),最小化交叉熵 \(L_{\text{scale}}=-\mathbb{E}_{(x,y_{\text{safe}})}[\log P(y_{\text{safe}}|x;\theta,\{s_j\})]\)。这是比 LoRA 还轻量的表示工程,单靠它就能把 ASR 压下最多 29%。

3. 预防式微调:在"漏洞被临时按住"的残障状态下逼模型学鲁棒拒答。只做缩放是后处理(post-hoc),仍可能在无关任务上掉点、抬高过度拒答。于是把训练好的最优缩放向量 \(\{s_j^*\}\) 固定挂上,前向传播经过缩放干预,但梯度回去更新底层权重 \(\theta\)\(L_{\text{PFT}}=-\mathbb{E}_{(x,y_{\text{refusal}})}[\log P(y_{\text{refusal}}|x;\theta,\{s_j^*\})]\),得到新参数 \(\theta'\)。其精妙之处在于:缩放把脆弱通路的"成本"抬高,相当于一种隐式正则,逼优化器去寻找不依赖脆弱通路的另一条拒答路线。训练收敛后把缩放向量卸载,模型只剩 \(\theta'\),却已把更安全的内部机制内化进权重——既不再依赖那个被移除的干预,也避免了缩放残留带来的过度拒答。

实验关键数据

主实验表格(节选,Past Tense ASR 越低越好,R-Score/Overall 越高越好)

模型 / 方法 Past Tense ASR ↓ OR-Bench Toxic ↑ MMLU ↑ R-Score ↑ Overall ↑
Llama-3.1-8B base 42 88.5 68.2
Llama · DPO 38 90.2 68.0 69.5 36.7
Llama · RepBend 11 96.1 68.2 65.7 48.4
Llama · Only Scaling (Ours) 13 96.9 64.3 71.6 50.3
Llama · ASGuard (Ours) 8 96.4 68.2 71.8 52.9
Qwen2.5-7B base 51 79.5 74.2
Qwen · SFT(30/70) 0 99.5 74.1 66.4 58.7
Qwen · ASGuard (Ours) 8 98.0 74.0 74.6 58.8
OLMo-2-7B base 28 92.5 60.5
OLMo · ASGuard (Ours) 9 97.5 60.6 73.7 46.3

关键对比:激进的 SFT(30/70)或 Circuit Breaker(CB)虽能把 ASR 压到 0,却把 OR-Bench-Hard(过度拒答)抬到 80+ 甚至 MMLU 大幅掉点(Gemma SFT MMLU 从 72→43);ASGuard 在 ASR 大降的同时几乎不动 MMLU、过度拒答可控,Overall 综合分四个模型全部第一或并列第一。

跨攻击泛化

在 Llama 上,ASGuard 同时把别的攻击也压下来:时态越狱 42%→8%、GCG 15%→1%、LogiBreak 30%→13%,说明学到的鲁棒拒答机制不只对训练时的时态攻击有效。

关键发现

  • 脆弱头是真因:置零脆弱头 ASR 掉 4–13%,随机头只掉 1–2%,且这些头与已知 Temporal Head 完全不同——模型对"时态语法"与"时间知识"分开编码。
  • 缩放 > 置零:单纯置零是粗暴的下游切断,通道级缩放才能精准压制并保住效用(Only Scaling 已优于多数基线)。
  • 预防式微调是关键拼图:在缩放生效状态下微调再卸载,比单独缩放进一步压低 ASR 且修复了效用损失,把方案推到 Pareto 前沿。

亮点与洞察

  • 机制可解释性落地为可用防御:不是停在"找到了某些重要头"的分析层面,而是把电路定位→激活缩放→微调串成完整工程闭环,真正修补了一个具体漏洞。
  • "残障状态下训练"的反直觉设计:把漏洞临时按住再逼模型学拒答、训练完卸载干预,本质是一种隐式正则,引导优化器绕开脆弱通路——比直接抑制输出更治本。
  • 零推理开销:缩放可融进 \(W_O\),部署时不增加任何计算成本,这对实际落地很关键。
  • 对照实验设计精巧:False-to-True vs Always-False 的差集筛选,干净地分离出"只对越狱负责"的成分,避免了把通用拒答头误当脆弱头。

局限与展望

  • 针对性强但范围窄:方法是"外科手术式"修补已知的特定漏洞,需要先有成功攻击案例来构建电路;对全新、未知形态的越狱不能自动覆盖,更像"打补丁"而非通用免疫。
  • 电路构建成本:EAP-IG + 多种拒答模板 + 阈值扫描的电路发现流程较重,每个新模型、新攻击类型都要重做定位。
  • 缩放向量训练依赖判别质量:脆弱头与样本对的判定依赖 GPT-4.1 作语义裁判,裁判噪声会传导到定位与缩放。
  • 展望:能否把"定位-缩放-预防式微调"自动化扩展到一类攻击家族、或在线增量地修补新发现漏洞,是把它从"补丁工具"升级为"持续防御系统"的关键。

相关工作与启发

  • 对齐基线:SFT / RLHF / DPO 在直白有害请求上有效,但面对语义保持的改写存在泛化缺口;ASGuard 把它们作为对照,凸显输出层优化的局限。
  • 表示工程 / 激活引导:RepE、Circuit Breaker、RepBend 等在表示空间做干预,ASGuard 延续这一路线但把干预精确到"电路定位出的特定头的特定通道",更省参也更可控。
  • 机制可解释性:transformer circuits、EAP-IG、Temporal Head 等工作提供了定位工具;本文的贡献是证明"模型内部理解可以直接转化为实用、高效、targeted 的行为修正手段"。
  • 启发:当某个能力/漏洞高度局部化时,"先因果定位、再轻量干预、最后让模型把修复内化进权重"这套范式,可能比全局微调更适合精准、低副作用的模型行为编辑。

评分

  • 新颖性: ⭐⭐⭐⭐ 把电路分析、通道级激活缩放、预防式微调三者组合成一条完整防御流水线,"残障状态下训练再卸载干预"的设计有真正的巧思。
  • 实验充分度: ⭐⭐⭐⭐ 覆盖四个开源模型、对比 SFT/DPO/RepE/CB/RepBend 多种基线,含消融、跨攻击泛化、R-Score 综合权衡指标,论证扎实。
  • 写作质量: ⭐⭐⭐ 思路清晰、公式完整,但部分英文表达和图注略显粗糙,个别拼写错误。
  • 价值: ⭐⭐⭐⭐ 给"用机制可解释性做实用安全防御"提供了可复现的范式,零推理开销 + Pareto 前沿表现对实际部署有吸引力;主要局限是针对已知漏洞、偏打补丁。