机制可解释性(Mechanistic Interpretability)
RLHF/DPO 教模型「该说什么」,但我们并不知道模型「在想什么」——大模型至今仍是一个几千亿参数的黑箱。机制可解释性(Mechanistic Interpretability, MI) 试图像逆向工程一段编译后的程序一样,把神经网络的权重「反汇编」成人能读懂的算法。它是 Anthropic、OpenAI、DeepMind 安全团队与顶尖高校最看重的研究方向之一,也是研究型岗位面试的高区分度考点。前置阅读:Transformer 架构详解、嵌入层与表示学习、从 Logits 到损失、大模型安全与对齐。
面试先背这几句话
- 一句话定义:机制可解释性是「逆向工程」神经网络——把学到的权重解析成人类可理解的特征(features)与回路(circuits),从而理解、预测、乃至干预模型的内部计算,而不只是观察它的输入输出。
- 核心拦路虎是叠加(superposition):模型要表示的概念数量远超神经元数量,于是把多个特征「叠加」压进同一批神经元,导致单个神经元多义(polysemantic)——这正是「看神经元看不懂」的根本原因。
- 当前主力工具是稀疏自编码器(SAE):用一个过完备、稀疏激活的自编码器把叠加的激活「解压」成大量单义(monosemantic)特征。Anthropic 的 Towards Monosemanticity(2023) 与 Scaling Monosemanticity(2024) 是里程碑,衍生出「金门大桥 Claude」这类特征操控演示。
- 与行为对齐互补:RLHF/DPO 是「行为对齐」(教模型说什么),MI 是「理解式对齐」(看模型想什么),两者合起来才是完整的对齐工具箱——这是本页最值得记住的一句话。
- 区分两个「可解释性」:合规语境的 Explainability(能否向监管/用户解释某次决策,见 治理页)≠ 研究语境的 Mechanistic Interpretability(能否还原模型内部算法)。
一、为什么要做机制可解释性?
大模型能力越强、部署越广,「不知道它为什么这么答」的风险越大。行为层面的评测(benchmark、红队)只能告诉我们模型在测试分布上表现如何,无法保证它在没测到的情况下不会突然「使坏」。MI 想提供一种更强的保证:
| 目标 | 说明 |
|---|---|
| 安全审计 | 检测模型是否内隐了欺骗、越狱后门、危险能力(即使行为上暂时没暴露) |
| 对齐验证 | 确认对齐不是「学会了在评测时装乖」,而是真的内化了目标 |
| 调试与归因 | 定位幻觉、偏见、越狱到底由哪些内部计算引起,从根上修 |
| 能力预测 | 理解涌现能力的机制,预测 scaling 会带来什么新行为 |
| 精准干预 | 不重训、不 SFT,直接在推理时放大/抑制某个特征来改变行为 |
一句面试金句:评测告诉你模型「做了什么」,可解释性告诉你模型「为什么这么做」以及「还可能做什么」。 前者是抽样,后者才是白盒保证。
二、叠加(Superposition):一切困难的根源
最朴素的可解释性设想是「一个神经元 = 一个概念」。现实狠狠打脸:绝大多数神经元是多义的——同一个神经元会对「学术引用」「HTTP 请求」「韩语」同时激活。为什么?
叠加假说(Superposition Hypothesis):模型需要表示的特征数量 远多于 它拥有的维度/神经元数量。于是模型利用高维空间里「几乎正交」的向量近乎无穷多这一几何事实,把 $n \gg d$ 个特征以近似正交的方向压进 $d$ 维激活空间,代价是引入少量干扰(interference)。
- 当特征稀疏(任一时刻只有极少数被激活)时,这种压缩的收益远大于干扰的损失——这正是自然语言/视觉数据的特性。
- Anthropic 的 Toy Models of Superposition(2022) 在玩具模型上精确复现了这一现象:随着稀疏度上升,模型从「一维一特征」平滑过渡到「叠加多特征」,甚至出现五边形/正多面体等几何结构。
这直接推翻了「读神经元」的路线,也说明 MoE 的专家 为什么也不是天然单义的单元——分工是统计模式,不是干净的概念边界。要恢复单义特征,必须换一个「基」,这就引出了 SAE。
$$\text{观测激活 } x \in \mathbb{R}^{d} ;=; \sum_{i} f_i(x), \mathbf{d}_i, \qquad #{\mathbf{d}_i} \gg d$$
其中 $\mathbf{d}_i$ 是特征方向(字典原子),$f_i(x)$ 是该特征在这次前向中的激活强度,且大多数 $f_i=0$(稀疏)。
三、稀疏自编码器(SAE):把叠加解压出来
SAE 是当前从叠加中「捞出」单义特征的主力工具。思路很直接:训练一个过完备(over-complete)+ 稀疏的自编码器,去重建某一层的残差流激活。
$$f = \text{ReLU}(W_{\text{enc}}(x - b_{\text{dec}}) + b_{\text{enc}}), \qquad \hat{x} = W_{\text{dec}} f + b_{\text{dec}}$$
$$\mathcal{L} = \underbrace{\lVert x - \hat{x} \rVert_2^2}{\text{重建误差}} ;+; \underbrace{\lambda \lVert f \rVert_1}{\text{稀疏惩罚}}$$
- 过完备:字典维度(特征数)远大于激活维度 $d$,比如 $d=512$,SAE 学 $32{,}768$ 甚至上百万个特征。
- 稀疏:$L_1$ 惩罚逼迫每次前向只有极少数特征激活——恢复「稀疏 + 单义」的原始结构。
- 单义(monosemantic):训练好后,单个特征往往对应一个人类可读的概念(「金门大桥」「DNA 序列」「谄媚语气」「代码里的 off-by-one bug」)。
SAE 的变体(面试高频)
| 变体 | 关键改动 | 解决的问题 |
|---|---|---|
| 原始 ReLU SAE | $L_1$ 稀疏惩罚 | 基线,但 $L_1$ 会「收缩」激活值、有死特征 |
| Gated SAE | 门控与幅度解耦 | 缓解 $L_1$ 对激活幅度的系统性低估 |
| TopK SAE | 直接保留 top-k 激活,去掉 $L_1$ | 稀疏度可控、无收缩偏差(OpenAI 用它扩到 GPT-4) |
| JumpReLU SAE | 带阈值的 ReLU | DeepMind Gemma Scope 采用,重建-稀疏权衡更优 |
| Transcoder | 直接近似 MLP 的输入→输出映射 | 让特征可跨 MLP 追踪,利于画回路 |
Anthropic Scaling Monosemanticity(2024) 在 Claude 3 Sonnet 上训出了数千万级特征,并演示了「金门大桥 Claude」:把「金门大桥」特征的激活强行钳制到高位,模型无论被问什么都会把话题拽回金门大桥——一次极其直观的「特征即因果旋钮」的证明。
SAE 的现存难题
- 特征分裂 / 吸收:字典越大,一个概念可能被拆成多个近义特征,或被更宽泛特征「吸收」,评价「特征质量」本身很难。
- 重建 ≠ 忠实:SAE 重建得好,不代表它捕捉了模型实际使用的计算方向。
- 评估缺金标准:没有 ground-truth 特征集,只能用自动可解释性打分、下游干预效果等间接指标。
四、回路(Circuits):特征如何连成算法
单个特征是「名词」,回路是把特征连起来的「句子」——一组特征 + 注意力头 + MLP 协同完成一个可描述的子任务。经典成果:
- Induction Head(归纳头):两个注意力头串联实现「上文出现过 AB,再见到 A 就预测 B」,是上下文学习(in-context learning) 的机械基础。这是「回路」范式最有说服力的早期证据。
- IOI 回路(Indirect Object Identification):GPT-2 small 里一组约 26 个注意力头协作完成「John 把球给了 Mary,谁收到球→Mary」的语法任务,被完整逆向出来。
- 残差流视角:把 Transformer 看作各层不断读写一条共享残差流(residual stream) 的「通信总线」,注意力头负责搬运信息、MLP 负责查表计算——这是画回路的统一框架(见 Transformer 架构、Attention 变体)。
2025 年 Anthropic 进一步用 attribution graphs / cross-layer transcoder 追踪 Claude 在多步推理、诗歌押韵、多语言概念共享上的完整计算路径,把「回路」从 GPT-2 玩具规模推向前沿模型。
五、可解释性工具箱对比
除了 SAE 和回路分析,还有一批更轻量的探测手段,面试常要求横向对比:
| 方法 | 做什么 | 优点 | 局限 |
|---|---|---|---|
| Probing(探针分类器) | 训一个小线性分类器,看某层激活能否预测某属性(情感/语言/真假) | 简单、快 | 只证「信息存在」,不证「模型用到」;易过拟合探针 |
| Logit Lens | 用解嵌入矩阵直接把中间层激活投到词表,看每层「当前猜什么」 | 零训练、直观展示逐层预测演化 | 只对残差流有效,早期层噪声大(见 Logits 页) |
| Activation Patching / Causal Tracing | 把干净运行的某个激活「移植」到损坏运行,看输出恢复多少 | 建立因果而非相关 | 需精心设计对照样本,计算量大 |
| Ablation(消融) | 置零/替换某个头或特征,看性能掉多少 | 直接定位「必需组件」 | 有备份回路时会低估重要性 |
| SAE 特征 | 把叠加激活解压成单义特征 | 单义、可跨样本复用、可干预 | 训练贵、评估无金标准、特征分裂 |
| Attribution / 归因图 | 追踪某输出经过哪些特征-回路 | 端到端可视化推理路径 | 前沿、成本高、仍在成熟 |
一个高频追问的判别点:Probing 是相关性证据,Activation Patching 才是因果证据。 探针能预测出来的属性未必被模型真正使用,只有干预(patch/ablate)后行为改变,才能说这个组件「因果地」参与了计算。
六、特征操控与下游应用
一旦拿到单义特征,就能在推理时直接干预,不需重训:
- Feature Steering(特征操控):放大/抑制某特征的激活,实时改变风格、话题、拒答倾向(金门大桥 Claude、去谄媚、增强/削弱某语气)。
- Abliteration:找到「拒绝」方向并从残差流中投影消除,无需训练就能去掉模型的审查倾向——是特征方向操控的一个直接(且有安全争议的)应用,路线图页 已提到。
- 幻觉/真实性检测:用「真实性」相关特征或探针在生成时监控,辅助 幻觉检测。
- CoT 忠实性审查:检查模型写出的思维链是否真的对应其内部计算,还是「事后编 justification」——与 推理模型 的可信度直接相关。
- 理解式对齐:验证 RLHF 是否真改变了内部目标,而非学会「评测时装乖」——填补 安全页 只覆盖行为对齐的空白。
七、局限、争议与前沿
- 可扩展性:为一个前沿模型的每一层训 SAE、再人工审数百万特征,成本极高,自动化(用 LLM 给特征命名/打分)本身又引入循环依赖。
- 忠实性质疑:SAE 找到的特征是「模型真在用的」还是「数据里恰好存在、被 SAE 拟合出来的」?这是 2024-2025 学界最激烈的争论之一。
- 完整性无保证:即便逆向出若干回路,也无法证明「没有漏掉别的机制」——不像传统软件逆向能穷尽。
- 前沿方向:cross-layer transcoder、attribution graph、weight-based(而非 activation-based)解释、把 MI 纳入安全 case 的「可解释性审计」流程。
面试可加分的一句判断:机制可解释性目前更像「早期显微镜」——能看清局部结构、做出可证伪的因果断言,但还远不能给出整模型的完整算法说明书。 它的价值不在于「已经解决黑箱」,而在于把「理解模型」从哲学口号变成了可实验、可干预的工程问题。
高频追问
Q:什么是叠加(superposition)?它为什么让可解释性变难? 叠加指模型把「远多于神经元数量」的特征以近似正交的方向压进同一批神经元,靠特征稀疏性把干扰控制在可接受范围。后果是单个神经元多义——同时响应几个不相关概念,所以「盯着神经元看」根本读不出概念。要恢复可读性,必须换一个更高维、更稀疏的「基」,这就是 SAE 做的事。
Q:SAE 的损失函数长什么样?两项各起什么作用? $\mathcal{L} = \lVert x-\hat{x}\rVert_2^2 + \lambda\lVert f\rVert_1$。第一项是重建误差,保证解压后能还原原激活(信息不丢);第二项是 $L_1$ 稀疏惩罚,逼迫每次前向只激活极少数特征,从而把叠加的多义激活拆成稀疏的单义特征。$\lambda$ 调重建-稀疏的权衡:太大则重建差、死特征多,太小则不够稀疏、特征仍多义。
Q:SAE 为什么要「过完备」(字典维度远大于激活维度)? 因为模型本来就把远超维度数的特征叠加在低维激活里。要把它们分开表示,字典必须比原维度大得多(比如 512 维激活对应几万到上百万特征),才有足够的「格子」让每个概念占一个近似正交的方向、实现单义。这与传统降维自编码器(追求瓶颈压缩)的目标正好相反。
Q:Probing 和 Activation Patching 有什么本质区别? Probing 训一个小分类器看某层激活能否预测某属性,证明的是「信息在这层存在」——但信息存在不代表模型用到了它(探针可能自己学会了)。Activation Patching 把干净运行的激活移植进损坏运行、看输出是否恢复,证明的是因果:某组件被替换后行为改变,才说明它真的参与了计算。一句话:探针是相关性,patching 是因果性。
Q:Logit Lens 是怎么工作的?有什么局限? 用模型自己的解嵌入(unembedding)矩阵,把中间层的残差流激活直接投影到词表 logits,看「如果现在就停下来,模型会预测什么词」,从而观察逐层预测的演化。它零训练、很直观,但只适用于残差流、且早期层激活还没「对齐」到最终表示空间,投出来噪声很大,需要谨慎解读(细节见 从 Logits 到损失)。
Q:什么是 induction head?为什么它重要? 归纳头是两个注意力头串联形成的回路,实现「前文出现过 A→B,再遇到 A 就预测 B」的复制/续写机制。它重要是因为它被认为是 in-context learning(上下文学习) 的机械基础之一:模型不用更新权重、仅凭上下文就能模仿模式,很大程度上靠这类归纳回路。它也是「回路」这一分析范式最早、最有说服力的成功案例。
Q:机制可解释性和 RLHF 是什么关系? 互补而非替代。RLHF/DPO 是行为对齐——通过奖励塑造让模型「输出我们想要的」,但它无法保证模型内部真的内化了目标,还是只学会「在评测分布上装乖」。机制可解释性是理解式对齐——直接查看内部特征和回路,验证对齐是否真实、有没有隐藏的欺骗或后门能力。完整的对齐工具箱需要「行为约束 + 内部理解」两条腿走路。
Q:「金门大桥 Claude」演示说明了什么? 它是特征因果性的直接证据。Anthropic 在 Claude 3 Sonnet 上用 SAE 找到对应「金门大桥」的单义特征,把它的激活人为钳到高位后,模型无论被问什么都会把话题扯回金门大桥。这说明 SAE 特征不只是「相关的可视化」,而是可以当作因果旋钮——放大它就能定向改变模型行为,为特征操控(feature steering)这类不重训的干预手段提供了依据。
Q:机制可解释性目前最大的局限是什么? 三点:① 可扩展性——为前沿模型训 SAE 并人工审数百万特征成本极高;② 忠实性存疑——SAE 找到的特征未必是模型「真正使用」的计算方向,可能只是拟合了数据统计;③ 完整性无保证——逆向出若干回路也无法证明没有遗漏其他机制。所以现阶段它更像「早期显微镜」,能做局部的、可证伪的因果断言,但还给不出整模型的完整算法说明书。
Q:合规里的「可解释性(Explainability)」和机制可解释性是一回事吗? 不是。合规/治理语境的 Explainability 关注「能否向监管、用户解释某一次决策的理由」(见 AI 安全合规与治理),往往接受事后的、近似的、面向人的解释(如特征重要度、注意力可视化)。机制可解释性是研究语境,追求还原模型内部实际执行的算法,标准高得多、也更底层。面试时点破这层区别能显示概念清晰度。