像 GPT‑4 这样的大语言模型 (LLM) 可以写诗、调试代码、解释复杂的科学概念。但如果你问它们是如何做到这些的,答案往往是耸耸肩。这些模型是著名的“黑箱”——由数十亿参数构成的庞大网络,其中的复杂计算超出了人类的理解范围。
机制性可解释性 (mechanistic interpretability) 领域正试图改变这一现状。其目标是逆向工程 LLM——不仅仅观察它们的输出,还要理解它们内部是如何计算这些输出的。该研究的核心思想是回路 (circuit) : 一个由神经元和权重组成的稀疏子图,负责特定的行为,例如识别间接宾语或发现归纳模式。
然而,在穿越 Transformer 模型中的多层感知机 (MLP) 子层时,回路分析面临重大挑战。MLP 中的神经元通常是多义的 (polysemantic) ——一个神经元可能同时对“波兰姓氏”和“国际象棋棋步”激活。想在这张纠缠复杂的网络中追踪单一的可解释计算几乎是不可能的。
一个有效的变通方法是将焦点从单个神经元转移到特征 (features) 上——即通过稀疏自编码器 (SAEs) 等工具在模型的激活空间中发现的方向。这种方法提供了有意义的抽象,但引入了新的问题: 虽然我们能在 MLP 层前后识别出可解释特征,却难以描述连接它们的通用规则。因为这种连接会随着输入的变化而变化。
这正是论文《Transcoders Find Interpretable LLM Feature Circuits》所要解决的谜题。研究人员引入了 Transcoder , 一种新颖的架构,它在保持可解释性的同时,提供了一种强大的新方式来分析特征在 MLP 中是如何连接的。Transcoder 让研究者能够分离两种信息: 模型的永恒的、与输入无关的结构以及其中的特定于上下文的、依赖输入的激活 。
理解 Transformer 与 MLP 问题
Transformer 通过一系列层来处理文本,每层包含两个主要子层: 注意力子层和 MLP 子层 。
- 注意力子层使每个 token 能够“查看”其他 token,从而获取上下文信息。
- MLP 子层则独立地对每个 token 的隐藏表示进行操作。
每一层都会将其输出添加到残差流 (residual stream) 中——一个贯穿整个模型的信息共享通道。注意力与 MLP 的结果被加到这一流中,而非替换它,这意味着每个 token 的隐藏状态会累积所有先前的计算。

图 1: 一个 Transformer 层,包含并行的注意力与 MLP 路径。SAE 重构激活,而 Transcoder 模仿 MLP 的输入‑输出行为。
这种加法结构有助于训练,但使逆向工程变得困难。任何位置的隐藏状态都是所有先前计算的叠加。在 MLP 子层中,多义性神经元会造成进一步纠缠;一个单一的概念会分散到成千上万个神经元中。
稀疏自编码器 (SAEs)
SAE 通过将激活表示为稀疏的特征向量线性组合来缓解多义性。每个特征对应一个可解释的概念,如英文姓氏或一天中的时间。研究者无需分析成千上万个神经元,只需分析几百个有意义的特征即可。
但 SAE 也存在缺陷——缺乏输入不变性 。 两个 SAE 特征之间的连接 (例如,“波兰姓氏”特征与“引用”特征) 在某个输入中可能成立,但并非普遍适用。中间 MLP 的非线性会导致归因随输入波动,使得难以描述一个适用于所有数据的一般规律。
Transcoder 正是为弥补这一空缺而设计的。
Transcoder 的工作原理
Transcoder 在结构上与 SAE 类似: 一个宽的、单隐藏层 ReLU MLP。差别在于训练目标。SAE 旨在重构其输入,而 Transcoder 则训练去模仿原始 MLP 子层的前向计算——即从 MLP 输入到输出的映射。
数学表达如下:
\[ \mathbf{z}_{TC}(\mathbf{x}) = \mathrm{ReLU}(W_{enc}\mathbf{x} + b_{enc}) \]\[ TC(\mathbf{x}) = W_{dec}\mathbf{z}_{TC}(\mathbf{x}) + b_{dec} \]其中,\( \mathbf{x} \) 是 MLP 的输入。\( W_{enc} \) 将其编码为稀疏激活向量 \( \mathbf{z}{TC} \),\( W{dec} \) 将这些激活解码以重构 MLP 的输出。
Transcoder 的训练损失由两部分构成:
\[ \mathcal{L}_{TC}(\mathbf{x}) = \underbrace{\|\mathrm{MLP}(\mathbf{x}) - \mathrm{TC}(\mathbf{x})\|_2^2}_{\text{faithfulness loss}} + \underbrace{\lambda_1 \|\mathbf{z}_{TC}(\mathbf{x})\|_1}_{\text{sparsity penalty}} \]第一个项确保 Transcoder 的输出尽量忠实于原始 MLP;第二个项保持激活的稀疏性与可解释性。
分离输入依赖与输入不变的行为
训练完成后,Transcoder 展现出一个显著特性: 特征间的作用归因可以拆分为依赖输入与输入不变两部分。
对于层 \(l\) 中的特征 \(i\) 影响层 \(l’\) 中的特征 \(i’\) 的情况:
\[ \underbrace{z_{TC}^{(l,i)}(\mathbf{x}_{mid}^{(l,t)})}_{\text{input‑dependent}} \underbrace{(\mathbf{f}_{dec}^{(l,i)} \cdot \mathbf{f}_{enc}^{(l',i')})}_{\text{input‑invariant}} \]- 第一项取决于当前输入——特征 \(i\) 的激活强度。
- 第二项是纯粹结构性的,即解码器与编码器向量的恒定点积——揭示了特征之间的通用连接关系。
这种明确的分离使得输入无关的回路分析成为可能: 即识别 MLP 内部概念间稳定的连接结构。
自动发现回路
借助 Transcoder 的归因公式,作者提出了一种递归算法,用于在模型中自动发现完整的特征回路 。

图 2: 通过渐进式修剪,提取跨层与 token 的最具影响力的特征路径。
主要步骤:
- 以目标特征为起点 (例如,“引文分号”特征) 。
- 计算前一层特征对该特征激活的贡献。
- 仅保留贡献度最高的前 \(k\) 个特征。
- 对每个保留特征,依次向后层递归。
- 将所有路径合并为一个单一图,代表一个可解释的回路。
这种自动化的回路发现方法超越了以往基于 SAE 或梯度的手段: 它构建了一个稀疏的、层次化的计算流图。
Transcoder 是否与 SAE 一样有效?
只有在保持或提升相较于现有方法的保真度与清晰度时,一个新的可解释性工具才有价值。作者系统比较了 Transcoder 与 SAE 在可解释性、稀疏性和保真度上的表现。
可解释性研究
为测试人类可解释性,研究者对 Pythia‑410M 模型的特征进行盲评: 混合 50 个随机 Transcoder 特征与 50 个 SAE 特征,在不透露来源的情况下进行评估。评审者根据特征的高激活文本示例判断每个特征是否对应连贯概念。

表 1: 相较 SAE 特征,Transcoder 特征略具更强可解释性,不可解释特征更少。
Transcoder 取得了虽小但稳定的提升——更多明确可解释的特征、更少晦涩的特征——说明模仿 MLP 功能有助于保持语义清晰。
稀疏性‑保真度权衡
团队进一步评估了每种方法对模型原始性能的拟合程度。他们比较了稀疏性 (平均激活特征数,\(L_0\)) 与用训练近似替换 MLP 层后模型的下一个 token 损失。

图 3: 在不同模型规模下,当稀疏度相当时,Transcoder (橙色) 在保真度上与 SAE (蓝色) 相当或更优。
在 GPT‑2 Small、Pythia‑410M 和 Pythia‑1.4B 上,Transcoder 在相同稀疏度下的保真度与 SAE 持平甚至略胜。随着模型增大,优势愈发明显,表明 Transcoder 能很好地泛化到大型架构中。
案例研究: Transcoder 的实际应用
验证工具有效性后,作者将 Transcoder 应用于解释一些此前难以理解的回路。以下两个案例展示了其能力。
1. 盲研究 —— 引文特征
团队进行了盲研究: 在不查看任何文本的情况下,仅依靠回路与去嵌入分析推断特征含义。
他们聚焦 GPT‑2 Small 中的特征 tc8[355]。算法识别出的低层贡献者包括:
- 分号 token (“;”)
- 年份 (“1973”, “1967”)
- 姓氏 (“kowski”, “chenko”, “Burnett”)
- 括号 (“(”)
结合这些线索,他们推测模式为 (姓氏 年份;)——即括号内引用中的分号模式。
随后检视的高激活文本示例证实了这一推断: 如 (Poeck, 1969; Rinn, 1984) 与 (Robinson et al., 1984; Starkstein et al., 1988) 强烈触发该特征。
这验证了 Transcoder 在无文本线索情况下也能发现特征的能力。
2. GPT‑2 Small 中的“大于”回路
经典的“大于”问题探讨 GPT‑2 如何在句子 “战争从 1737 年持续到 17…” 中预测下一个 token 应形成一个比 37 更大的数字。早期研究确认 MLP 第 10 层起关键作用,Transcoder 方法对此进行了重审。
借助回路归因与直接 Logit 归因 (DLA) , 研究者精确定位了比较数字的特定 Transcoder 特征。

图 5: 每个特征在某范围的两位数年份 token 上激活,并提升后续年份的 logits。
这些特征增加了比其激活数字更大的数字被预测的概率——例如,在 “45” 上激活会提升 “46”、“47” 等的概率——揭示了数字比较背后的有结构、可解释机制。
研究人员进一步比较了由 Transcoder 特征与原始神经元组成的回路:

图 4: Transcoder 回路用比原始神经元回路更少的组件即可实现相似性能。
仅用 10–20 个 Transcoder 特征,模型就能恢复“大于”行为的大部分;而达到相似表现需 40–60 个神经元。这凸显了 Transcoder 在稀疏性与概念清晰度上的优势。
结论
论文 《Transcoders Find Interpretable LLM Feature Circuits》 标志着机制性可解释性研究的重要突破。通过训练稀疏、宽层的 MLP 来模仿原始子层,Transcoder 架起了特征发现与回路理解之间的桥梁。
关键结论:
- 它们分离了输入不变结构 (模型连接) 与输入依赖激活 (上下文效应) 。
- 它们保持或优于 SAE 级别的可解释性与保真度。
- 它们能自动发现跨 MLP 及注意力头的回路。
通过引文和“大于”回路等例子,Transcoder 展示了复杂语言模型计算如何简化为小规模、可理解的特征图。
Transcoder 并非终点——扩展到更大模型及优化近似仍是开放挑战——但它提供了观察 LLM 内部工作机制的强大新视角。随着研究推进,这一方法可能会将可解释性从直觉的艺术转变为透明算法的科学。
](https://deep-paper.org/en/paper/2406.11944/images/cover.png)