跳转至

Seeing Through Circuits: Faithful Mechanistic Interpretability for Vision Transformers

会议: ECCV2026
论文: ECCV 原文
领域: 可解释性
关键词: 机械可解释性 / 视觉电路 / 激活补丁 / 排版攻击 / 激活引导

一句话总结

把 ViT 的计算图形式化为残差流上的有向图,用「语义分割 + 修复」构造干净/腐化输入对、以目标 logit 差为准则做顺序边剪枝(Vi-CD),在 ViT-B 与 OpenCLIP 上自动发现保真且比最强基线稀疏约 10 倍的类专属电路,并证明这些电路能作为因果开关去抵御 CLIP 排版攻击、压低 RoCOCO 危险检索分数。

研究背景与动机

机械可解释性想要逆向工程神经网络的内部计算,其核心概念是「电路」——模型中实现某个具体行为的一小块稀疏子图。在 transformer 语言模型里,电路发现有相当一致的边级(edge-based)形式化:把模型看成残差流上attention head 与 MLP 之间的有向图,目标是找出承担某行为的最小子图,并用「保真度」(faithfulness,把计算限制在该子图上仍能保持原任务性能)来检验它是不是真的解释了行为,而不是仅仅与行为相关。ACDC 的顺序补丁剪枝、EAP 的梯度近似都属于这一路线。

视觉侧的情况完全不同:电路发现长期停留在神经元、通道或特征层面——从 Distill 的 Circuits 线程,到把多义神经元拆成概念专属电路、用剪枝找保特征子网、connectome 式可视化、以及 ViT 上找「影响力神经元路径」的工作,全都回答「哪些组件重要」,而回避了「信息如何在组件之间流动」。这正是问题的要害:节点级电路无法拆开同时参与多个电路的多义神经元,也无法在不整块消融组件的前提下做精细干预。边级形式化恰好能解决这两点,还能支持更细的保真度概念(单条连接可以单独纳入或排除)。然而,已有边级方法全部只在语言模型上开发和评测,迁移到视觉并不平凡:视觉 transformer 的输入是空间上铺开的 patch embedding 而非离散 token,腐化(corruption)根本无法定位到单个表示单元;同时逐边干预的计算量在视觉模型的图上更加难以承受。边级保真电路在视觉架构里到底能不能被有意义地恢复,此前是一个未回答的问题。

本文的核心切入点是:视觉的「腐化」问题不该用加噪解决,而应该用语义——把目标类别的前景物体分割出来再修复掉,这样性能下降才反映「类别证据消失」而非分布外伪影。在这套干净/腐化对上,沿用语言侧的逐边补丁剪枝即可。核心 idea:把电路从神经元级下沉到残差流边级,用「分割+修复」的语义腐化构造配对样本、用 attention-input 聚合节点压缩搜索空间,再以目标 logit 差为剪枝准则、以分类准确率为独立保真度指标,得到既稀疏又忠实的类专属电路;并把电路当作可开关的因果阀门,用投影式引导去纠正有害模型行为。

方法详解

整体框架

Vi-CD 要回答的问题很具体:给定一个目标类别 \(A\)(或一个攻击词),能否在 ViT 的残差流计算图上找出一小撮边,使得只让信号沿着这撮边流动就能复原模型对该类别的判断?整条流程分四步串行:先为每个目标类别构造「干净 / 腐化」输入对(腐化 = 分割掉前景物体再修复),再把模型形式化成有向图并做规模简化,然后逐边试探性地把非电路连接替换成腐化激活、按目标 logit 差决定这条边该不该留,最后用一个与剪枝准则不同的指标(分类准确率)验收保真度。得到的类电路不止是分析产物,还可以在推理时对电路内边的发送端做方向消融,从而抑制攻击引入的信号通路。

论文对「电路」和「保真」给了明确的形式化,这是后面所有实验的地基。模型被写成残差流上的有向图 \(G=(V,E)\),节点是计算组件(注意力头、MLP 块),边是它们通过残差流向后续组件传递的加性贡献;一个电路就是边的子集 \(E_C \subseteq E\),等价于给每条边一个 0/1 指示变量 \(i_e\)。保真度则沿用 Hanna 等人的定义:给定任务 \(T\)(这里指图像分类),电路 \(E_C\) 是忠实的,当把计算限制在 \(E_C\) 上时任务性能的损失不超过 \(\epsilon\)

\[\bigl|M_T(E) - M_T(E_C)\bigr| \le \epsilon\]

其中 \(M_T\) 是任务保真度指标,论文特别强调它必须不同于剪枝准则——否则保真度就变成了自证。实践中剪枝用目标 logit 差,验收用分类准确率。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["目标类别图像"] --> B["分割 + 修复<br/>构造干净-腐化对"]
    B --> C["注意力输入节点<br/>简化计算图"]
    C --> D["顺序剪枝边<br/>准则:目标 logit 差"]
    D --> E["类电路<br/>稀疏保真子图"]
    E --> F["腐化对齐方向<br/>投影移除引导"]
    F --> G["抵御排版攻击<br/>压低 RSMS"]

关键设计

1. 分割 + 修复的语义腐化:让性能下降只反映「类别证据消失」

激活补丁的整套逻辑建立在「腐化输入去掉了任务相关信息、但保留其余统计特性」这个前提上,而这个前提在视觉里是最难满足的一环:语言模型可以把某个 token 换掉,视觉模型的输入是空间铺开的 patch embedding,没有哪个表示单元能被单独「换掉」。如果改用加噪或黑块遮挡,被破坏的就不只是类别证据,还有低层统计与背景上下文,性能下降会混入分布外伪影,保真度数字就不再可信。Vi-CD 的做法是从语义层入手:对目标任务相关的前景物体做分割得到掩码,再用 inpainting 模型填补被抹掉的区域,产出一张视觉上自然、且保持了全局背景统计与低层结构的腐化图。论文直接使用 ForAug 数据集——它已经提供了按这条流程处理过的 ImageNet 图像,因此省掉了自己训练分割与修复模型的开销。

这个设计最直接的后果是:那些编码背景相关性的「捷径」边,在干净/腐化两次前向之间激活差几乎为零,于是补丁过程不会把它们判定为重要,电路自然收敛到物体级通路上,而不是背景纹理的伪相关上。论文在附录 H 中对分割掩码质量做了消融,也在正文指出这条腐化策略并不绑定分类任务:换用 SUB 等合成的 inpainting 方法,就能把它推进到概念级电路的发现。值得注意的是,在排版攻击这一应用场景里干净与腐化的角色是反过来的——带攻击文本的图像充当干净输入,未受污染的原图充当腐化输入,因为此时「要去掉的信息」正是攻击文本注入的那条通路。

2. 注意力输入节点:把 \(O(L^2H^2)\) 的候选边数压掉一个 \(H\) 因子

逐边干预的成本与候选边数成正比,而一个 \(L\)\(H\) 头的 transformer,其完整的残差流依赖图有 \(O(L^2H^2)\) 条边——这个规模上做穷举搜索是不现实的,所以边集必须先缩小,但缩小的方式不能改变模型的功能,否则找到的电路就不是原模型的电路了。Vi-CD 的简化只动「接收端」:为每个注意力块引入一个 attention-input 节点,它聚合该块的残差输入,作为所有流入该块的边的共享接收者;注意力头本身仍然是彼此独立的发送者。这样注意力头不再各自拥有 \(H\) 个接收口,而共用一个入口,候选边数量约降 \(H\) 倍,而前向计算的语义完全不变。

简化后图上的边类型被固定为九类,构成后续搜索的完整空间:输入到 attention-input(input→attn_in)、输入到 MLP(input→mlp)、输入到 logits(input→logits);注意力头到 attention-input(attn→attn_in)、注意力头到 MLP(attn→mlp)、注意力头到 logits(attn→logits);MLP 到 attention-input(mlp→attn_in)、MLP 到 MLP(mlp→mlp)、MLP 到 logits(mlp→logits)。论文用一个 2 层 toy transformer 的可视化说明了这个坍缩过程(原文图 3)。

3. 顺序补丁剪枝:剪枝准则与保真度指标刻意分离

有了图和配对样本,剩下的问题是排序并剔除不重要的边。Vi-CD 沿用 ACDC 的顺序剪枝框架,其技术前提是残差流的加性:因为各组件的贡献是可加的,边级干预可以只替换某条边发送端的输出,而让其余计算保持不变。具体地,对节点 \(v\) 的前驱集合 \(P(v)\),把不属于候选电路的残差连接换成腐化运行时的贡献,得到补丁后送入 \(v\) 的输入:

\[\mathrm{in}^v_C(\tilde{x}) = \sum_{u \in P(v)} \bigl(i_e\, r_u(x) + (1-i_e)\, r_u(\tilde{x})\bigr)\]

其中 \(i_e = \mathbb{1}[(u \to v) \in E_C]\) 表示这条边当前是否留在候选电路里。剪枝过程是迭代的:逐条试探性地移除某条边,如果移除后目标 logit 差的损失足够小,就把它从候选电路中删掉并更新模型,反复进行直到没有边可删。选目标 logit 差而不是 KL 散度这类分布级指标作准则,理由很实在——多数视觉分类器并不在固定词表上工作,分布层面的比较与「把类别 A 判对」这个目标并不直接对齐;两种准则的对比见附录 F。

关键的一点在于准则与验收的分离:搜索时用的是目标 logit 差,最终报告保真度时用的是分类准确率,两者不同源,因此「电路很稀疏且准确率几乎不掉」不是一个可以自证的结论。这也直接定义了论文的类电路:一个三元组 \(C_A = (D_A, M, E_C)\)——目标类 \(A\) 的一批被正确分类的多样输入、一个标量性能指标 \(M\)(如准确率)、以及一个经过激活补丁验证、在该指标下保真的电路 \(E_C\)。对 ViT-B 这类模型 logits 直接来自分类头,对 OpenCLIP 这类对比模型 logits 则取图像嵌入与对应文本嵌入的点积,因此同一套流程能覆盖两种截然不同的模型族。

4. 腐化对齐方向的投影式引导:把电路当成因果阀门来验证

保真度本质上是「被动」指标:一个只与行为相关、但在消融下恰好被其他通路补偿掉的子图,也可能拿到漂亮的保真度曲线。要说明电路承载的是真正的机制,需要一个可预测的因果干预。Vi-CD 的做法是先按上面流程发现一批与「攻击」对应的保真电路(排版攻击场景下,攻击电路的定义与类电路完全平行),再为电路中每个组件 \(j\) 估计一个腐化对齐方向:取配对样本在该组件上激活差的均值,且每条样本的两种激活先各自单位化再作差,这样方向不受激活幅度影响,只刻画「朝向腐化一侧」的方向。

推理时只对 \(E_C\) 中那些边对应的发送端输出 \(h\) 做干预,而且是逐 patch 的。对每个 patch \(p\) 计算激活在方向上的投影系数

\[c_p = \frac{\langle h_p, v_{j,p}\rangle}{\lVert v_{j,p}\rVert_2^2 + \varepsilon}\]

然后按 \(h^{\text{steered}}_p = h_p - \alpha\,\mathrm{ReLU}(c_p)\,v_{j,p}\) 做方向消融(directional ablation,即投影移除),\(\alpha \ge 0\) 控制引导强度;在原图未被攻击的对照上(RoCOCO 实验)论文取 \(\alpha = 0.4\)。几何上这个操作是把激活在「当前激活 \(h\) 与特征方向 \(v\)」张成的二维子空间里做旋转,ReLU 的作用是保证只移除与 \(v\) 正相关的投影、不去放大反相关的特征。干预之所以有效,前提正是电路本身是保真的:在上游边上就把腐化方向压掉,它就不会传播到下游组件,而电路之外的无关计算基本不受影响——这也是为什么引导能在几乎不掉干净准确率的前提下奏效。

损失函数 / 训练策略

Vi-CD 完全不训练任何参数,全部在预训练模型上事后(post-hoc)完成,因此没有损失函数。近似可以称作「目标」的是剪枝准则——目标 logit 差的下降幅度,以及判定边是否需要保留的阈值 \(\epsilon\);电路搜索本身就是在这个准则下的贪心迭代。引导阶段唯一的额外超参是强度 \(\alpha\)(RoCOCO 实验取 0.4)与作用的最大接收层;排版攻击实验里论文把引导强度调到使 ASR 相对下降约 90% 的水平再报告结果(表注记为 ASR ↓90%)。排版电路在 13 个有效攻击词上分别抽取。

实验关键数据

主实验

实验在两个中等规模模型上做:监督训练于 ImageNet 的 ViT-B,以及 OpenCLIP ViT-B/32。两者都被写成注意力头与 MLP 经残差流边相连的有向计算图。基线包括 EAP、EAP-IG(步数 3 / 5 / 10)和随机剪枝(下界),其中 EAP 与 EAP-IG 借助 ViTPrisma 适配到 ViT,并强制使用同一套简化计算图,保证比较公平。电路质量用两个指标衡量:保真度(把计算限制在电路上时的分类准确率,越高越好)与稀疏度(保留下来的边占比,越低越好)。跨类分析用 Jaccard 相似度 \(|A \cap B| / |A \cup B|\)

表 1:边级电路提取方法对比(ViT-B / OpenCLIP,ImageNet 全类)

方法 电路粒度 边重要性来源 ViT-B 保真度 达到可比保真度所需边占比
Random 随机 接近随机水平 最低(下界)
EAP 一阶梯度近似 全程接近随机剪枝 很高
EAP-IG-3 / 5 / 10 积分梯度近似 基线中最强,步数间差异很小 较高
Vi-CD(本文) 逐边激活补丁(真实干预) 接近完美的目标类准确率 < 10%

⚠️ 原文这一结果以「准确率 vs 稀疏度」的曲线(图 4)给出,论文并未提供可直接抄录的数值表,上表的定性结论与「< 10%」取自正文表述;「约 10 倍更稀疏」是相对最强基线 EAP-IG 而言。跨模型的结论一致:Vi-CD 在极端稀疏下仍保持高保真,而基线在纳入相当大比例的边之前一直停留在低准确率。

表 2:排版攻击下的电路引导(OpenCLIP,ImageNet)

设置 指标 Big Text Base → Steered Small Text Base → Steered Bezel Base → Steered
干净 ImageNet Top-1 Acc. (%) 57.0 → 55.8 57.1 → 55.7 57.1 → 49.9
干净 ImageNet Top-5 Acc. (%) 81.9 → 80.9 81.9 → 80.9 81.9 → 75.6
受攻击 ImageNet Top-1 Acc. (%) 34.7 → 50.0 34.7 → 49.1 34.4 → 45.0
受攻击 ImageNet Top-5 Acc. (%) 69.9 → 75.9 70.1 → 75.3 69.8 → 71.2
受攻击 ImageNet ASR Top-1 (%) 39.1 → 2.8 39.4 → 1.6 39.5 → 3.1
受攻击 ImageNet ASR Top-5 (%) 68.0 → 8.1 68.4 → 7.6 68.4 → 12.7

三种攻击形态分别是大幅文字覆盖、小幅文字覆盖和边框式覆盖(样例见附录 C)。引导后 Top-1 攻击成功率从 39% 量级掉到 3% 以下,同时受攻击图像上的分类准确率反而大幅回升(Top-1 从 34.7% 提到约 50%)——这说明引导恢复的是图像本身的内容判断,而不只是压制了某个 logit。

消融实验

表 3:引导效果的分析与对照

配置 / 分析项 关键指标 说明
RoCOCO Base(不引导) Rmean 62.74%,RSMS 11.68% 未干预基线(\(\alpha = 0.4\),附录 C.6)
RoCOCO + Assault Rifle 电路 Rmean 63.00 ± 0.37,RSMS 5.15 ± 0.24 危险召回分数减半以上,检索质量持平
RoCOCO + Revolver 电路 Rmean 62.68 ± 0.22,RSMS 5.69 ± 0.41 同上
RoCOCO + Rifle 电路 Rmean 64.37 ± 0.47,RSMS 4.86 ± 0.21 Rmean 甚至比基线高 1.6 个点
随机电路(同规模) 排版攻击 ASR 无明显下降 附录 G;说明效果来自发现的电路而非一般性消融
引导作用的最大接收层(早层 vs 深层) 早层干预即可压低 ASR 与引导强度共同扫描(原文图 6)
剪枝准则:目标 logit 差 vs KL 散度 目标 logit 差更优 附录 F
分割掩码质量 见附录 H 正文未给数值
跨运行稳定性 同类电路 Jaccard 0.6–0.8 共享核心边集,额外连接不同

关键发现

  • 稀疏度是本文最硬的结论:Vi-CD 找到的忠实电路比最强基线 EAP-IG 稀疏约 10 倍;在 ViT-B 上保留不到 10% 的边就能接近完美的目标类准确率。梯度近似类方法里 EAP-IG 稳定优于 EAP,而 EAP 全程几乎与随机剪枝无异——这提示一阶梯度近似在视觉这种输入分布上与真实因果贡献偏离很大。
  • 电路反映语义结构:同类或语义相关的类之间电路重叠明显更高。Pembroke Corgi 与 Cardigan Corgi 之间的共享边显著多于它们与 Revolver、Tench 等无关类的共享;Revolver 的电路则与 Assault Rifle、Rifle 等武器类最相似。论文明确把这一点定位为对模型如何组织计算的描述性分析,而不是 Vi-CD 的质量指标。
  • 同一类别的电路并非唯一:不同运行间同类电路的 Jaccard 相似度只有 0.6–0.8,共享一个核心边集但额外连接各异。作者没有把它当作方法缺陷,而解释为模型本身存在冗余——多个部分重叠的子图可以实现相似行为,与语言模型中观察到的 OR-circuit 结构一致;因此电路发现更应理解为「给出一个合理电路的分布」而非还原唯一真值子图(附录 D)。
  • 攻击信息走的是可定位的早层通路:即使只干预较早层的接收端,排版攻击的成功率也会下降,同时干净性能基本保持;同规模的随机电路没有这个效果,说明被发现的是真实存在的攻击通路,而非消融带来的普遍损伤。
  • 安全增益不以检索质量为代价:RoCOCO 上三个武器电路都把 RSMS 从 11.68% 压到 5% 左右,而 R@1/R@5/R@10 与 Rmean 全部持平或略有提升(Rifle 电路把 Rmean 从 62.74% 提到 64.37%)。
  • 电路具有可组合性:多个类专属电路的并集可以在不额外训练的情况下支持零样本二分类(附录 E),说明模型的计算被组织成可分离的机制,而不是纠缠在一起的表示。

亮点与洞察

  • 把「腐化」从噪声问题转成语义问题。视觉没有离散 token,可迁移的做法是主动把任务证据从输入里「取走」——分割前景再修复。这既解决了腐化无法局部化的问题,又顺带抑制了背景捷径边的干扰,是一个非常干净的问题重构。
  • 剪枝准则与保真度指标刻意不同源。用目标 logit 差搜索、用分类准确率验收,避免「用同一把尺子量自己」的自证式保真度。这个纪律值得任何做电路抽取的工作照搬。
  • 用引导做因果验证而非只报曲线。保真度是必要不充分的,可预测的干预效应才说明子图承载机制;论文把这一点做成两条独立攻击场景下的定量防御结果,说服力比单纯的稀疏度对比强得多。
  • attention-input 节点是个廉价而通用的技巧。只改接收端结构、不改功能,就把候选边降一个 \(H\) 因子;任何需要逐边干预的 transformer 分析都能直接复用。
  • 可迁移的方向:只要某模态的输入能做语义掩码加修复(图像、视频帧、部分文档版面),这套腐化策略就能照搬;「电路即开关」的思路也可以用于数据侧——用某个概念电路的激活差异做异常输入或分布外样本的检测器。

局限与展望

  • 计算成本是最大瓶颈(作者承认):相比 EAP / EAP-IG 这类近似方法,Vi-CD 要求每条边至少被补丁一次,代价高得多;目前只扩展到 OpenCLIP 这种中等规模的基础模型,如何在最大的 transformer 上做高效发现仍是开放问题。
  • 多义性未解(作者承认):单个神经元常同时编码多个无关特征,边级电路并不能拆开这一点;把 Vi-CD 跑在稀疏自编码器分解出的单义特征方向上,是作者点名的自然延伸。
  • 稳定性认证难以直接移植(作者承认):近期针对节点级电路的随机平滑认证要求重采样干净输入,搬到边级则需要重采样配对的干净–腐化输入,并非平凡改动,只能留作未来工作。
  • 模型覆盖面偏窄(我的观察):全部实验只落在 ViT-B 与 OpenCLIP ViT-B/32,没有 DINOv2、SAM 这类自监督或分割基础模型,也没有更大的 ViT 或视觉–语言生成模型。论文标题与结论里的「vision transformers」一词,其证据基础实际上限于两个中等规模、且都以 ImageNet 分类行为评测的模型。
  • 保真度的评测设置偏窄(我的观察):类电路的目标是「把类 A 与竞争类区分开」,属于二选一式的设置;在完整多类准确率下电路是否同样保真、以及竞争类如何选取对结果的影响,正文没有展开。
  • 腐化质量的敏感性只放在附录(我的观察):分割掩码质量、修复模型的保真度直接决定「性能下降是否纯由类别信息缺失引起」,但正文没有量化这一环节的敏感性,附录 H 才是唯一依据。
  • 改进思路:用代理模型或早停策略削减逐边补丁的次数;把电路发现扩展到 grounding、检索等非分类任务;结合 SAE 特征方向做边级与神经元级的联合分析;跟踪训练过程中电路结构的演化,用于判断能力何时形成。

相关工作与启发

  • vs EAP [34]:EAP 用一阶梯度近似估计边的重要性,以保真度换可扩展性;Vi-CD 做的是真实的逐边激活补丁,慢但准。实验里 EAP 在视觉上几乎与随机剪枝持平,说明在 patch embedding 这种连续输入上,梯度近似与真实因果贡献偏差很大。
  • vs EAP-IG [18]:积分梯度变体稳定了归因估计,是本文最强也最接近的基线;本文的保真度定义(Def. 3.2)本身就沿用自该工作。但即便 EAP-IG 也需要多得多的边才能达到与 Vi-CD 相当的性能,稀疏度差距约 10 倍,且不同步数之间差异很小。
  • vs ACDC / Conmy et al. [9]:Vi-CD 直接继承其边级电路定义与顺序补丁剪枝框架,但补齐了两处视觉特有的适配——语义腐化与 attention-input 图简化,并且把「剪枝准则」换成与分类决策对齐的目标 logit 差。所有边级方法此前都只在语言模型上开发与评测,本文是第一次在视觉 transformer 上做这件事。
  • vs 视觉神经元级方法 [7, 13, 16, 24, 31, 38]:这些工作回答「哪些组件/神经元/特征重要」,Vi-CD 回答「信息如何在组件之间流动」;边级形式化额外带来两个好处——可以拆开多义神经元在多个电路中的贡献,以及不必整块消融组件就能做精细干预。二者并非替代关系,把边级与神经元级分析结合(找出某条电路边内部真正承载语义的神经元)被作者列为自然延伸。
  • vs Certified Circuits [1]:该工作用随机平滑给节点级电路提供稳定性保证,认证电路成员判定在有界数据编辑下不变。本文指出这一保证迁到边级并不平凡(需要重采样配对输入),并把它列为明确的未来方向;本文自己也发现了同类电路跨运行的 0.6–0.8 Jaccard 波动,两者几乎是同一问题的两种回应。

评分

  • 新颖性: ⭐⭐⭐⭐ 首次把边级电路发现系统性迁移到视觉 transformer,腐化策略与图简化两处适配都非平凡;但骨架(顺序补丁剪枝、边级电路定义)继承自 ACDC,形式化部分基本是搬运。
  • 实验充分度: ⭐⭐⭐⭐ 两个模型、全 ImageNet 类、跨类相似性、两种攻击场景的引导验证相当完整,agent 未能给出数值表的部分也以曲线交代;不足是主对比只有 Vi-CD vs EAP/EAP-IG/random,保真度结论以曲线呈现、缺可复现的数值,规模停在 ViT-B 量级。
  • 写作质量: ⭐⭐⭐⭐ 形式化清晰、RQ 组织得当、框架图把三步流程讲得明白;但若干关键结论(掩码质量、准则对比、随机电路对照、多电路冗余)都指向附录,正文偏「结论式」陈述。
  • 价值: ⭐⭐⭐⭐ 给出了一个可操作的视觉机制分析工具,并用两条攻击场景的防御结果证明电路是可行动的而不仅是可解释的;代价是逐边补丁的计算开销限制了向更大模型扩展。