电路会补位,消融还可信吗?1×0:0010:560:08开场:消融为什么会被模型骗过1:35方法:从单点消融改成条件共消融3:26结果:backup heads 从看不见到可恢复5:05泛化:从 IOI 到 induction,再到更大的模型6:46意义:attribution、knockout、pruning 都会受影响8:27局限:它补的是一类盲点,不是万能电路发现器9:44收尾:重要性不是静态属性0:08主持人做 mechanistic interpretability 的人,常常会问一个朴素问题:把某个 attention head 消掉,模型行为变多少?如果变很多,这个 head 重要;如果几乎不变,它大概不重要。今天这篇 arXiv 论文挑战的正是这个直觉。作者说,在有自我修复的 transformer 电路里,单点消融可能会把真正重要的组件藏起来。0:35研究者这篇论文的标题是 Conditional Co-Ablation,副标题是 Recovering Self-Repair Backups in Transformer Circuits。它研究的不是又找到一个新 circuit,而是问:当 primary component 被拿掉以后,模型里那些平时沉睡的 backup component 会不会接管工作?如果会,我们之前按单个组件打分的 attribution,就可能系统性低估 primary,也完全看不见 backup。1:06主持人这点很关键。很多电路发现、能力 knockout、甚至结构化 pruning,默认都在给单个单元排重要性。可如果模型像工程系统一样有冗余路径,单点测试就会出现一种很尴尬的情况:你拆掉主路,旁路立刻顶上来,于是主路看起来没那么重要;你单独拆旁路,它在完整模型里又没上场,于是旁路看起来也不重要。1:35研究者论文把这个失败模式改写成一个 recovery task,叫 conditional circuit completion。它不是先问「哪个 head 在完整模型里最重要」,而是先给定一个 primary set,也就是你已经怀疑或已经移除的一组主组件,再问:主组件被拿掉以后,剩下每个组件的消融效果有没有变大?如果某个 head 平时消掉没影响,但在主组件缺席时一消就出问题,它就像 backup route 一样浮出来。2:09主持人作者把这个分数叫 CoAx,也就是 Conditional Co-Ablation。它的好处是 label-free、output-grounded。换句话说,它不需要你事先给每个 backup head 打人工标签,也不靠解释文本评分;它直接看输出行为,在「主组件还在」和「主组件已经被消掉」两个条件下,比同一个候选组件的边际影响有没有增长。2:34研究者这里的「增长」是二阶交互。单点消融看的是一阶效应:我拿掉 A,输出变多少。CoAx 看的是条件效应:我已经拿掉 A,再拿掉 B,输出额外变多少。B 的价值可能只有在 A 缺席时才显现。这个设定听起来简单,但它正好贴住 transformer 自我修复的结构。2:57主持人论文不是只停在方法定义。它先在 GPT 二 small 的 IOI circuit 上验证。IOI 是 indirect object identification,经典例子是「John and Mary went to the store, John gave a bottle to」,模型要预测 Mary。这个任务的 circuit 已经有一批 known heads,所以适合检查:CoAx 能不能找回那些被自我修复遮住的 backup heads。3:26研究者据论文摘要和实验章节,CoAx 在 GPT 二 small 的 IOI circuit 上,把 backup-head recovery 的 R O C A U C 从零点三三提高到零点九一。对照方法里,包含作者称为 self-repair-aware 的 gradient score,最好也只有零点八二。这个差距说明,单纯把 gradient 做得更聪明,还不一定能抓住条件性的备用路径。3:55主持人这里要小心解释 R O C A U C。它不是说模型准确率从三十三分涨到九十一分,而是在一个恢复 backup head 的排序任务里,CoAx 把真正 backup 排到前面的能力明显更强。对于 interpretability 来说,这个指标对应的是「我能不能把该看的组件捞出来」,而不是「模型本身变强」。4:18研究者作者还做了 counterfactual patching。也就是把候选 backup head 的激活从一种条件换到另一种条件,检查它是不是因果地承载了修复行为。论文结论是,CoAx 找回的 heads 不只是统计上相关;patching 结果支持它们确实在 primary head 缺席时接过了部分 computation。4:42主持人这和最近很多 circuit validation 的讨论接得上。我们不能满足于「这个组件分数高」或「这个解释听起来合理」。如果一个电路有补位机制,验证动作本身会改变谁在工作。消融不是照相机,它更像是在机器运转时拔线,机器可能会改走备用线路。5:05研究者论文接着把同一套 label-free 过程迁移到 induction circuit,而且覆盖了八个模型。induction heads 负责从前文重复模式里复制后续 token,是 transformer 里另一个被反复研究的机制。CoAx 在这里不依赖人工标注 backup,也不只绑定 IOI 任务,说明条件共消融不是一个只为单个 toy circuit 调出来的技巧。5:33主持人不过它还是有边界。作者自己也没有把这篇论文包装成 frontier-scale LLM 全面验证。它的核心贡献更像是一种 circuit recovery protocol:当你怀疑某个能力有自我修复或冗余路径时,用条件共消融去补全电路。它解决的是「单点打分会漏掉什么」,不是直接告诉你大模型所有复杂能力都能这样拆完。6:00研究者我觉得这个边界反而让论文更可信。它没有说「所有 attribution 都错了」,而是指出一个具体条件:当组件重要性不是加性的、当备用组件只有在 primary 被移除后才显现,孤立打分就会误导。这个条件在 transformer 里并不罕见,尤其是 attention head 之间常有功能重叠和补偿。6:24主持人项目页面和代码仓库也给了复现实验入口。根据作者提供的 GitHub 仓库,本期讨论的实验不是只有论文叙述,代码和交互页面已经公开。我们仍然不能把这等同于独立复现,但对读者来说,至少可以顺着仓库去看 scoring、patching 和 pruning 相关实现。6:46研究者这篇论文的应用段落有三层。第一层是 attribution。传统单点消融可能低估 primary,因为 backup 在 primary 缺席后补上来了;也可能低估 backup,因为 backup 在 intact model 里没有必要出手。CoAx 把 attribution 从「完整模型里的孤立重要性」改成「特定干预条件下的必要性」。7:10主持人第二层是 capability knockout。很多安全或能力分析会尝试删除某些组件,看目标能力是否消失。如果自我修复存在,你只敲掉主组件,能力还在,很容易误以为这条路径不关键。CoAx 的提醒是:要让能力真正掉下去,可能必须同时处理 primary 和它的 backup set。7:35研究者第三层是 pruning。论文说,recovered backups 可以用于 repair-aware structured pruning,而且规模从一亿两千四百万参数扩展到七十亿参数模型。这里的核心不是「剪得越狠越好」,而是 pruning 不应该只看单点重要性。若一个组件在完整模型里看似闲着,但在另一条路径失效后承担修复,它可能是鲁棒性的备用件。8:05主持人这会让我们重新理解「冗余」。在性能工程里,冗余有时被当成浪费;在模型行为里,冗余又可能是稳定性的来源。可解释性如果只追求最小电路,可能会把备用路径剪掉;如果只追求行为不变,又可能以为主路径不重要。CoAx 把这个两难问题变得可测。8:27研究者局限也要讲清楚。第一,CoAx 需要一个 primary set。也就是说,你得先知道或至少怀疑一组主组件,再围绕它找 backup。它不是完全从空白模型里自动发现所有电路。第二,它主要处理的是「移除主组件后,候选组件边际影响增长」这种交互;更高阶、更分布式的补偿机制可能还需要别的方法。8:52主持人第三,实验虽然覆盖 IOI、induction 和更大规模 pruning,但核心可解释性验证仍集中在 attention-head circuit 层面。对于 MLP、SAE feature、跨层 residual stream,条件共消融的思想很有启发,但不能直接把这篇论文的数字搬过去用。这个限制并不削弱它,只是提醒我们别把 protocol 当成结论。9:20研究者还有一个实践问题:共消融会增加评估预算。你要在 primary removed 的条件下重新测试候选组件,而不是只跑一遍单点消融。论文强调 matched-budget controls,就是为了说明它不是单纯靠多花预算取胜。但真正放到超大模型和很多任务上,预算仍然会变成设计选择。9:44主持人我认为这篇论文最有价值的一句话,是摘要里的最后一句:component importance is not merely an isolated-unit property。组件重要性不是静态贴在某个 head 上的标签。它取决于模型当时处在什么干预条件下,哪些路径还活着,哪些备用线路被迫接管。10:05研究者这对 mechanistic interpretability 很实在。我们做消融,是为了看清机制;但消融本身会改变机制运行的条件。以后如果一个 circuit 看起来删不掉、打不穿,别急着说「这个组件不重要」。也许是模型已经修好了自己,而我们还在用完整模型里的分数看一个已经变了的系统。10:30主持人本期就到这里。论文、项目页和代码仓库链接都放在节目说明里。下一次再读 circuit 论文时,可以多问一个问题:我看到的是主路径,还是主路径失效以后才亮起来的备用路径?