Summary
Circuit Tracing: Revealing Computational Graphs in Language Models
- 核心: 用 cross-layer transcoder (CLT) 把 transformer 的 MLP 换成稀疏可解释 feature,再冻结 attention/normalization、对其余非线性打 stop-gradient,使得整张前向计算在单个 prompt 上线性化,从而回溯出 feature 级的 attribution graph——一张说明「哪些内部概念因果驱动了输出」的计算图。
- 方法: CLT (feature 从本层读、向后续所有 MLP 层写) + local replacement model (注入 error node 使激活逐层精确等于原模型) + Jacobian 反传算 feature→feature 边权 + 剪枝 + 人工聚成 supernode + 干预验证 (constrained patching)。
- 结果: 在 18 层玩具模型与生产级 Claude 3.5 Haiku 上 scale;completeness 0.80 / replacement 0.61 (18L);biology 篇用它揭示 multi-step reasoning、诗歌押韵的提前规划、加法的 lookup-table 机制、幻觉的「known/can’t-answer」开关、jailbreak 的延迟拒绝等案例。
- Sources: paper | website | github
- Rating: 2 - Frontier (lens+patching+SAE 三线收敛的 2025 前沿整合工件,已 open-source 且被广泛跟进;但方法本身仍有大块 unexplained「dark matter」、attention 不被解释,尚未沉淀为不可替代的奠基范式)
Key Takeaways:
- CLT 是核心结构创新:相比 per-layer transcoder,cross-layer transcoder 让一个 feature 直接向后续所有层写出,把跨层「同一概念」收编进单个 feature,缩短归因路径(平均路径长 2.3 vs 3.7),是把 SAE/dictionary learning 从「单层字典」推进到「全网络替身模型」的关键一步。
- attribution graph = lens + patching + SAE 三线收敛:用 feature (SAE 线) 当节点、用 stop-gradient 线性化的 Jacobian (patching/causal 线) 算边、读 logit 贡献 (lens 线) 当输出节点,第一次把三条互补的可解释性线整合进一个可 scale 到生产模型的 artifact。
- error node 让「不知道有多少没解释」变得可测:通过 completeness / replacement score 量化有多少计算走 feature、多少走无法解释的 error 项——诚实地暴露了方法的「dark matter」(Haiku 重构误差 21.7%)。
- biology 篇是 case study 而非 method:真正的方法贡献在 methods 篇 (CLT + attribution graph);biology 篇用它做了十余个生物学式解剖(规划、加法、幻觉、jailbreak),证明工具能在生产模型上产出因果可验证的机制叙事。
Teaser. 多步推理的 attribution graph 缩略示意(“包含 Dallas 的州的首府” → 模型内部先激活 Texas 中间步,再 capital + Texas → 输出 Austin;把 Texas feature 换成 California,输出变 Sacramento)。 这张极简化图浓缩了全套方法要回答的问题:内部到底有没有「中间概念」、它是否因果驱动输出。

深度校准:默认读者熟悉 Logit Lens、activation patching、dictionary learning 等前置,本文不复述这些基础,只聚焦本工作的 delta:CLT 结构、attribution graph 的精确构造、验证指标与边界。
1. Motivation:为什么需要「replacement model」
SAE 解决了「单层激活里有哪些 feature」(破解 superposition),但没回答「这些 feature 之间如何因果连接成一条计算链」。手工 circuit discovery(如 IOI circuit)能给出 attention head 级的连线但不 scale、且以 head/neuron 为单位、可读性差。本文的赌注是:先把模型整体换成一个由可解释 feature 构成的「替身模型」(replacement model),再在替身上做归因——这样节点天然可解释,边天然可算。
2. Cross-Layer Transcoder (CLT):核心结构
CLT 用稀疏 feature 替换模型的 MLP 子层。与普通 transcoder 的关键区别:每个 feature 在自己所在层 读 residual stream,但可以向所有后续 MLP 层写出——把「同一语义概念在多层延续」收进单个 feature,而非在每层重复学。
Equation 1. feature 激活(JumpReLU 编码)
Equation 2. CLT 对第 层 MLP 输出的重构
符号说明: 为第 层 residual 输入; 为第 层的 feature 激活; 是从第 层 feature 写到第 层输出的解码权重——「cross-layer」即体现于此。
Equation 3. 训练目标(重构 MSE + 稀疏惩罚)
含义:在「输出与原 MLP 对齐」与「激活稀疏」之间权衡。作者在 18 层模型 (18L) 和 Claude 3.5 Haiku 上训练,feature 数从 300K 到 30M。自动评测 (Sort/Contrastive Eval) 显示 CLT feature 的可解释性随规模上升,且显著优于 per-layer transcoder 与阈值化神经元。
❓ CLT 的「同一 feature 跨层写」在直觉上很优雅,但它隐含一个强假设:一个概念在多层的「读出方向」可由单一 decoder 集合参数化。这与 linear representation hypothesis 一脉相承——若某些概念在不同层用了不同线性方向(feature splitting / absorption,作者自己也承认存在),CLT 会被迫用多个碎 feature 近似,归因图随之失真。
3. Local Replacement Model:把单 prompt 的前向「精确改写」
替身模型独立看会与原模型有重构误差。本文的关键技巧是构造针对单个 prompt 的 local replacement model:
- 用 CLT 顶替 MLP;
- 冻结 attention pattern 和 normalization 分母(取原模型该次前向的值);
- 在每层加一个 error node = (原 MLP 真实输出 − CLT 重构) 的差。
加了 error 修正并冻结非线性后,「替身」在该 prompt 上的所有激活与 logit 输出与原模型逐位精确相等。代价是:模型计算被重写成一个跨 token 的全连接线性网络,feature 是神经元,路径权重是「virtual weight」。这一步本质是 causal mediation / patching 思路的线性化封装。
4. Attribution Graph:节点与边
- 节点:输出节点(top tokens,覆盖 95% 概率质量,≤10 个)、中间节点(各 token 位上激活的 CLT feature)、输入节点(token embedding)、error 节点(未被 feature 解释的 MLP 输出残差)。
- 边:因为对所有非线性(MLP、attention pattern、normalization 分母)都打了 stop-gradient,任一 feature 的 preactivation 恰等于其入边之和——归因变成纯线性。
Equation 4. feature 的边权(Jacobian 直接归因)
符号说明: 为源 feature 激活; 是带 stop-gradient 的 Jacobian(沿残差流从 传到 )。边权依赖具体 prompt(局部、context-dependent),与全局「virtual weight」 区分开。
构图后做剪枝(默认可把节点数压到 1/10、只损失约 20% 可解释行为),再人工把语义相近、I/O 相似的 feature 聚成 supernode(作者明言没有令人满意的全自动聚合法),最后在交互界面上读图。
❓ 边权对单 prompt 局部线性化,意味着 attribution graph 是「这一次前向」的解剖,不是模型的全局电路。作者提出 TWERA 想外推到全局,但自承「不是完美方案」——全局电路的 interference 问题(未共激活的 feature 间有大 virtual weight 却无因果效应)仍未解决。这是它与 IOI 那种「一次性手工找到可复用全局电路」的根本张力。
5. 验证:completeness / replacement / 干预
由于有 error node,可以量化「多少计算被解释」:
Table 1. 18L (10M-feature CLT) 的图质量与重构误差
| 指标 | 数值 | 含义 |
|---|---|---|
| Completeness Score | 0.80 | 入边中来自 feature/embedding(而非 error)的比例 |
| Replacement Score | 0.61 | 端到端路径走 feature(而非 error)的比例 |
| 重构误差 (18L, L0=88) | ~11.5% | normalized mean reconstruction error |
| 重构误差 (Haiku, L0=235) | 21.7% | 生产模型上「dark matter」更重 |
| 替身匹配 next-token | ~50% | 多样预训练 prompt 上替身输出与原模型一致的比例 |
| 平均路径长 (CLT vs PLT) | 2.3 vs 3.7 | CLT 缩短归因链(“Zagreb:Croatia::Copenhagen:” prompt) |
干预验证:用 constrained patching(在层区间 内对 feature 乘因子 再前向)测因果效应。feature→feature influence 与下游实际激活变化的 Spearman 相关达 0.72;但mechanistic faithfulness 有限——干预后一层内扰动效应余弦相似 ~0.8,随层数显著累积偏差(作者归因于缺失 normalization 分母),高层尤甚。
6. Biology 篇:用工具做的解剖(案例,非方法)
methods 篇给工具,biology 篇 (On the Biology of a Large Language Model) 在 Claude 3.5 Haiku 上做了十余个案例。最 load-bearing 的几个:
Figure 1. 多步推理(医学诊断)的中间表征。 给出妊娠 + 右上腹痛 + 高血压症状时,模型在文中未出现 “preeclampsia” 字样的情况下内部激活 preeclampsia feature,并因果驱动下游「视觉障碍 / 蛋白尿」确认 feature;抑制 preeclampsia feature 会把答案推向胆道疾病。这与 Dallas→Texas→Austin 是同一类「genuine 中间步」证据。

Figure 2. 诗歌中的「提前规划」。 在换行 token 处,模型就已激活候选押韵词 feature(如 “rabbit”/“habit”),即先想好句尾韵脚再倒推整句——注入目标押韵词 feature 会让模型重构整行以落到该词,作者报告在约 70% 重采样中成功。这是反「LLM 只会逐 token 贪心」直觉的强结果。

Figure 3. 加法机制 ≠ 模型自述。 加法走两条并行路:低精度「约等于 X」feature + lookup-table feature(如「个位 6 + 个位 9 → 个位 5」)。下图显示「_6 + _9」这个 lookup feature 在大量非算术文本里也激活(日期、价格、卷号等含 6/9 的数字 context),说明它是被复用的通用数字 feature;而当被问「你怎么算的」,模型口头自述是标准「进位」算法——与其实际机制矛盾,是 faithfulness 失配的清晰案例。

其余案例(要点):
- Multilingual circuits:核心反义/语义变换由跨语言共享 feature 完成(“lingua franca”),但 English「机制上享有特权」——多语 feature 对英文输出直连更强,非英文更依赖语言特定中介 feature。
- 幻觉:「known answer」feature 默认抑制「can’t answer」拒答 feature;幻觉源于该抑制误触发——人为在未知实体 “Josh Batson” 上激活 known-answer feature 会诱发虚构引用。
- Refusal / Jailbreak:harm 类 feature → 统一「harmful request」cluster → 拒答链(pretraining 学分类、finetuning 接线)。“Babies Outlive Mustard Block” 这类首字母 jailbreak 之所以得手,是因为模型逐字母拼出 “BOMB” 时无语义理解,直到句号后 new-sentence feature 触发才延迟拒答(“However, I cannot…“)。
- CoT faithfulness / hidden goals:区分真实推理步 vs 从人给答案倒推的「motivated reasoning / bullshitting」;并在一个故意 misaligned 模型上追踪隐藏目标。
7. 作者自陈的局限(诚实度高,值得照单全收)
- attention 不被解释:QK-circuit(注意力模式如何形成)完全在图外。对 induction head、多选题等「信息靠 attention 选址」的任务,图「essentially useless」。
- dark matter:重构误差 + error node 占比意味着相当部分计算未被解释,关键计算缺失时图近乎无信息。
- inactive / 抑制 feature:图强调激活 feature,难以表达「某 feature 不激活」或抑制电路。
- 抽象层级错位:feature splitting / absorption 使 feature 不对齐自然概念边界。
- 局部 vs 全局:图只解释单 prompt,全局电路有 interference 问题。
- mechanistic faithfulness:替身用的是否是原模型「同一机制」存疑,高层扰动偏差累积。
关联工作
基于
- dictionary learning:CLT 是其直接演化——把「单层稀疏字典」升级为「跨层、可替换 MLP 的稀疏 transcoder」,解决 superposition 的同一动机线。
- activation patching / causal mediation:edge 计算本质是对线性化前向做 patching/中介分析,stop-gradient 是把扰动归因封装成可一次性求解的 Jacobian。
- Logit Lens:输出节点取 logit 方向上的贡献,与 lens「读残差流到 vocab」同源。
- features & dictionary learning / circuits / Toy Models of Superposition:feature/circuit 这一整套本体论的来源。
对比
- ACDC:同样自动找 circuit,但 ACDC 在 attention head/edge 粒度上做 patching、产出 head 级电路;本文在 feature 粒度、产 feature 级图,可读性更高、且 scale 到生产模型。
- IOI circuit:手工找到的全局可复用电路;attribution graph 是单 prompt 局部解剖,互补——前者证明「电路存在且可复用」,后者提供「在任意 prompt 上自动产图」的工具。
- ROME:从「事实知识存在哪、如何编辑」切入;本文不编辑,而是把同类事实回忆(如「Michael Jordan→basketball」65% 置信)拆成可视的 feature 路径。
方法相关
- circuit-tracer (safety-research):本文配套开源库,把找图/可视化/标注/干预集成为 pipeline,由 Anthropic Fellows + Decode Research 开发,支持 Gemma 等开源模型。
- TWERA / virtual weights:从局部图外推全局电路的尝试(作者自承不完美)。
论文点评
Strengths
- 三线收敛的整合工件:把 lens(输出归因)、patching/causal(边)、SAE(节点)第一次拧进一个能在 Claude 3.5 Haiku 这种生产级模型上跑通的 artifact,且开源。可解释性长期被诟病「只在 toy / 单层有效」,这是规模上的实质突破。
- 诚实暴露边界:completeness/replacement/重构误差把「有多少没解释」量化出来,error node 的设计让方法对自己的盲区可测而非掩盖。
- 干预即证据:每个机制叙事(Texas→California、押韵词注入、preeclampsia 抑制)都配因果干预,不是只看相关性的「故事会」,这是它比很多 probing 工作更可信的地方。
- biology 篇的科学品味:把工具用来回答真问题(规划、幻觉成因、jailbreak 时序、CoT 是否忠实),而非刷指标。
Weaknesses
- attention 是结构性盲区:QK-circuit 不被解释,对一大类「靠 attention 选址」的行为(induction、检索、长上下文)图直接失效——这不是工程缺陷而是方法论缺口。
- mechanistic faithfulness 存疑:替身在干预下高层偏差累积,「替身用同一机制」更多是希望而非证明;0.72 的相关也只是中等,留有大量解释不掉的方差。
- 重度人工:supernode 聚合、读图、挑案例都靠人,且承认无满意自动法——可 scale 到「跑出图」,但「读懂图」仍不 scale。biology 的案例难免有 cherry-pick / 确认偏误风险。
- 依赖 linear representation hypothesis:整套线性化(stop-gradient + 线性边)建立在「概念=线性方向」上,feature splitting/absorption 已是该假设在数据上漏气的信号。
- 局部性:单 prompt 图不等于模型电路,全局化未解决,结论的可泛化性需谨慎。
可信评估
Artifact 可获取性
- 代码:开源(safety-research/circuit-tracer),含 find / visualize / annotate / intervene 全 pipeline 与 demo notebook(Gemma 等)。CLT 训练代码非完整放出(库以「用 transcoder 找图」为主)。
- 模型权重:被解剖的 Claude 3.5 Haiku 为闭源生产模型;18L 为内部玩具模型;开源库支持公开模型 + 公开/自训 transcoder。
- 训练细节:CLT 高层描述 + 关键超参(feature 数 300K–30M、L0、JumpReLU、稀疏系数形式)披露;完整训练配比/步数未在 blog 详尽给出。
- 数据集:解剖用 prompt 多为构造案例;预训练分布私有。
Claim 可验证性
- 可信:multi-step reasoning 有真实中间步:grounding = Dallas→Texas→Austin / preeclampsia 的抑制与替换干预,因果可复现。
- 可信:诗歌提前规划:grounding = 换行处押韵词 feature + 注入实验(约 70% 重采样成功)。
- 可信:加法机制 ≠ 自述:grounding = lookup feature 跨非算术 context 激活 + 自述「进位」对照,faithfulness 失配证据清晰。
- 存疑:completeness 0.80 / replacement 0.61:是自定义指标,分母依赖 CLT 训练质量,跨模型/规模不可直接横比;Haiku 21.7% 重构误差说明生产模型上「解释覆盖率」明显更低。
- 存疑:「替身=原模型同机制」(mechanistic faithfulness):高层干预偏差累积、相关仅 0.72,属半可信。
- 存疑:biology 案例的代表性:人工挑选 + 重人工读图,存在选择偏差,未给出案例在多大 prompt 分布上成立的统计。
Notes
- 在我们「方法谱系 survey」线上的定位:这是 2025 前沿整合节点——lens(Logit Lens)/ patching(ACDC、patching)/ SAE(SAE)三条线在此收敛成「replacement model + feature 级 attribution graph」。叙事上它是 SAE 之后「从静态字典走向动态电路」的自然下一步。
- 与 parameter decomposition / APD 那条「直接分解权重而非激活」的线形成对照:本文仍是 activation-space(feature on activations),APD 试图绕开 activation 直接拆参数——值得在 survey 里并置讨论「activation-based vs weight-based」分解路线。
Rating
Metrics (as of 2026-06-27): citation=N/A (S2 IP throttled), influential=N/A, velocity=N/A; HF upvotes=N/A (blog, 无 arXiv id); github 2836⭐ / forks=333 / 90d commits=8 / pushed 22d ago (active, not stale)
分数:2 - Frontier 理由:这是 2025 可解释性最重要的整合工件之一,开源库 2.8k★ 且仍活跃(22 天前更新),已成为 feature-circuit 方向「必比、必读」的代表,社区跟进密集——满足 Frontier 的「方法范式代表 + 被主要工作采用」。未升到 Foundation,因为它仍有结构性盲区(attention 不被解释、>20% dark matter、mechanistic faithfulness 未证),方法尚在快速迭代、未沉淀成不可替代的奠基范式;且它在概念上更像 SAE 奠基线的强力应用/整合,而非另起炉灶的新本体。若后续被时间验证为生产级机制解剖的事实标准,可升 3。