大模型给出的答案是怎么算出来的?我们能从外部看到参数规模和层数,却说不清内部究竟发生了什么。机械可解释性要做的事很直白:把模型拆开,看它内部哪些结构负责哪些事。它追求的是真实机制,不是事后猜一个原因。
从「事后解释」到「拆开看内部」
常见的「事后解释」是:模型先给出答案,再用另一种方法解释「大概是因为什么」。这类解释有个软肋——它是在结果已经产生之后补出来的,可能和模型真正的计算过程对不上,甚至可能是事后编的。机械可解释性走的是另一条路:直接分析模型内部的运算,定位「哪一部分负责哪一件事」。前者回答「看起来为什么」,后者回答「实际上怎么算」。
研究者已经找到了什么
特定功能有对应结构:研究者在大模型内部找到了负责识别引号、追踪句子主语等具体功能的单元。这些单元是被实验验证出来的分工,并非按人的直觉命名。概念有对应方向:某些语义特征在模型内部呈现为特定的方向,往这个方向上加减,会稳定地影响输出。存在「回路」:多个单元串联成一条处理某类任务的路径,像电路一样完成一段完整的加工。
速查:机械可解释性的三类发现
- 功能单元:负责引号识别、主语追踪等具体任务。
- 概念方向:语义特征对应内部方向,可加减调节。
- 回路:多个单元串联,完成一条完整处理路径。
| 发现类型 | 典型表现 | 研究意义 | 当前局限 |
|---|---|---|---|
| 功能单元 | 某个单元稳定负责识别引号等任务 | 证明功能有对应的内部结构 | 单元与任务常非一一对应 |
| 概念方向 | 语义特征对应内部向量方向 | 提供可干预的「旋钮」 | 方向含义未必能用人话命名 |
| 回路 | 多单元串联完成某类处理 | 揭示加工的真实路径 | 完整回路难以全部还原 |
三块难啃的骨头
规模太大:模型的参数量以亿计,逐个分析不现实,任何人工审查都只能覆盖极小的一部分。神经元不等于概念:一个概念往往分散在几百个单元里,一个单元又可能同时参与几十个概念,想找出「代表某个概念的单元」几乎无从下手。验证困难:你怎么证明找到的机制就是模型真正在用的,并非一种巧合?这三块骨头,决定了这个方向的进展是局部的、渐进的。
为什么它值得投入
安全审查、偏差排查、可靠性提升,都建立在「知道它为什么这么做」的基础上。一个只能看到输入输出的系统,很难被真正信任——出了问题找不到位置,也就无从修。机械可解释性提供的是「定位能力」:当模型行为异常,能指到具体的单元或方向。这是它区别于事后归因的价值,也是这个方向近年投入明显增加的原因。
它做不到什么
机械可解释性目前只能照亮模型内部的一小部分。几十亿参数里,被清晰理解的结构占比很低;「找到机制」也不等于「证明机制」,很多发现还停留在相关性层面,未必反映真实的因果关系。它无法给出「完整说明书」——拆开看,不等于全看懂。对普通用户而言,它更接近一门基础研究,而非立刻可用的工具;它的产出是理解,不是修复。
顺着内部结构往下追
机械可解释性的核心,是把「模型为什么会这样输出」拆到内部去找答案。类似的「拆开找源头」在别的模块也能看到:语音合成里念错字,往往要去文本前端看哪个环节出了岔,是前端的锅,不是最终合成声音的问题。想先了解被拆解的大模型本身,可读什么是大语言模型;想体会「拆开内部找源头」的分析思路,可读语音合成的文本前端做哪些事;而模型如何理解「推拉摇移」这类运镜词,背后同样是内部语义特征的映射,可读运镜词是怎么被模型理解的。


