第 28 章 机制可解释性:可解码、相关与因果不是一回事
28.1 找到颜色信息,还没有找到答案的原因
Section titled “28.1 找到颜色信息,还没有找到答案的原因”模型在很远的地方读到红钥匙,最后正确回答“红色”。研究者记录一处中间激活,训练一个小型读取器,发现它能识别钥匙颜色。这是否已经找到了产生答案的机制?
第 12 章已区分了表示是否有用,与坐标是否天然具有某种含义。本章还要往前走一步:信息可能存在,却没有被输出计算使用。某个背景特征可能恰好与线索相关,新增读取器学会了这个捷径。即使可视化很漂亮,我们也需要一个可能失败的检验:控制其他量,只改动这个内部量,答案会不会按预想改变?
本章分析一个规则完整的双坐标模型。数值由作者给定,结果按方程推导。它们不是 MG-2 的测量,不是发现了某种类似大脑的回路,也不能证明所有 LLM 都如此。它的用途是让读者能核查整条因果判断,包括没有效果的对照。
28.2 读取器可以从未被使用的坐标上答对
Section titled “28.2 读取器可以从未被使用的坐标上答对”例 28.1:两个信号相关,输出却只走一路。 隐藏行向量为 。仅在这个构造模型中,r 明确表示钥匙颜色:红色为 +1,蓝色为 −1;b 表示背景标记。观察样例始终把红色与标记 +1 配在一起,把蓝色与标记 −1 配在一起。填充文字虽可不同,这两个值不变。
输出候选顺序固定为红色、蓝色,输出矩阵为:
W 的第一行把 r 连到两个候选分数,第二行则让 b 的贡献为零。 时,logits 为 ; 时,为 。定义红色相对蓝色的 logit 分差(logit margin) 为红色分数减去蓝色分数:。分差为正时偏向红色,为负时偏向蓝色。它是分数之差,不是概率,也不是准确率百分比。
探针(probe) 是在原模型固定时,另行训练的读取器,用记录的激活预测某个标签。在本章的配对分布中,“读取 b 的正负号”能把两种颜色都判对,读取 r 也能。前者虽然成功,b 在原输出中的权重却为零。这说明给定配对条件下颜色信息 可解码(decodable) ,不说明原输出计算使用了它。
实际训练探针时,要保留独立训练与留出样例,独立定义标签,并与打乱标签的控制任务或更简单的读取器比较。表达能力很强的读取器可能只是记住标签。即使控制充分、探针表现良好,它回答的仍是“能否读出”,不是因果问题。在这个构造反例中,只要测试分布出现红色配标记 −1,读取 b 的捷径就立即失效。
28.3 局部敏感程度又是另一种问题
Section titled “28.3 局部敏感程度又是另一种问题”归因(attribution) 为输入或内部量分配某种输出影响度,不同方法回答的问题并不相同。先不用微积分:只把 r 从 1 改到 1.1,b 保持 1,分差便从 4 升到 4.4。坐标增加 0.1,分差增加 0.4,比值为 4。若只把 b 增加 0.1,分差不变。这个模型是线性的,所以这些比值在所有位置都成立。
基于梯度的归因把这种局部敏感程度推广到一般模型。必须说清做了什么操作:观察点附近的斜率,不一定等于删除整个组件,或换成另一条样例激活后的效果。饱和的非线性函数可能局部斜率很小,但大幅替换会把它带到另一区间;把梯度再乘激活,又引入了一种约定。因此,应报告所算的量、基线和位置,而不是把所有着色热图都叫作“重要性”。
注意力权重是另一类记录量,它描述某层、某头、某位置的一项混合系数。这份混合最终有什么作用,还取决于值向量、输出投影和后续残差路径。很大的系数也可能乘上无关向量,或在后续被抵消。它能提示一个值得调查的对象,不能自动解释最终答案。
28.4 换掉状态,再把后续计算做完
Section titled “28.4 换掉状态,再把后续计算做完”激活修补(activation patching) 先运行基线输入,再把选定位置的内部激活替换为另一轮运行中的值,随后重算替换点下游的全部相关运算。提供值的运行、接收值的运行、位置、层、替换坐标及输出指标,共同定义实验。只在结果表里贴上一个标签,并不算实施了干预。
例 28.2:同样大小的替换,恢复效果不同。 把“红色/标记 +1”称为干净运行,把“蓝色/标记 −1”称为扰动运行。这里的“扰动”指指定的比较条件,不是字节损坏。这个对照同时改变了线索与背景标记,因此要分别检验两个坐标。候选顺序、输出矩阵和分差定义保持不变。
表 28.1:按完整规则推导的干预记录
| 运行与操作 | 输出层前的状态 | Logits[红色,蓝色] | 红色分差 |
|---|---|---|---|
| 干净运行 | [1, 1] | [2, −2] | 4 |
| 扰动运行 | [−1, −1] | [−2, 2] | −4 |
| 向扰动运行恢复干净 r | [1, −1] | [2, −2] | 4 |
| 向扰动运行恢复干净 b | [−1, 1] | [−2, 2] | −4 |
| 用扰动 r 替换干净运行的 r | [−1, 1] | [−2, 2] | −4 |
| 用扰动 b 替换干净运行的 b | [1, −1] | [2, −2] | 4 |
第三行恢复了干净运行的分差。第四行保持相同的来源、接收方和替换大小,只换另一个坐标,却没有恢复效果。反向替换检验的则是破坏,而非恢复。合起来,它们支持一条具体判断:在这个输出规则中,r 传递了这组颜色差异的影响,b 没有。因为 W 已知,还能用另一条独立的矩阵乘法路径核查每项结果。
有时可以把恢复幅度归一化。这里干净与扰动运行相差 ;恢复 r 带来 的提升,因此恢复比例为 。恢复 b 没有提升,比例为 0。把这一约定写成一般形式:
各个 m 都是同一种带正负号的分差,只是来自不同运行。分母指定了作为参照的改善幅度,不是样例数。如果干净与扰动分差相同,这个比例就没有定义。其他干预还可能得到负数或大于 1 的值。把它们强行截到 0—1 区间,会掩盖破坏或超额恢复。
- 一组数字干净 [r,b]=[1,1]
- 模型保存的数值固定 W = [[2,−2],[0,0]]
- 一组数字分差 4;两坐标符号都能读出红色
可解码性来自数据配对;这里的零权重阻断了 b 对输出的作用。
- 一组数字扰动 [−1,−1]
- 处理步骤只换 r → [1,−1]
- 一组数字分差 −4 → 4;恢复比例 1
输出规则相同,重算下游。
- 一组数字扰动 [−1,−1]
- 处理步骤只换 b → [−1,1]
- 一组数字分差 −4 → −4;恢复比例 0
替换幅度相同,却不影响这个输出。
图 28.1 保持输出规则不变,每次只交换一个坐标。对没有效果的零权重支路,应当像对成功恢复一样认真检查;缺少它,观察到的相关性就可能被误当成因果作用。
28.5 局部证据很强,也仍然有适用范围
Section titled “28.5 局部证据很强,也仍然有适用范围”修补后的 [1, −1]、[−1, 1] 没有出现在观察样例中,它们是有意构造的反事实状态。这个小型线性模型在这些状态下的函数已完全给定,因此后果可以精确分析。真实网络里,不寻常的混合可能落在日常激活分布之外;观察到的影响可能反映广泛扰乱,而非所声称的特定机制。
谨慎的研究会更换干净/扰动样例对,加入匹配的无关替换和反向干预,检查其他扰动规则,并保留没有成功的样例。还要说明是否只挑选了模型原本答对的题。如果是,结论就适用于这个筛选后的子集,不能悄悄扩大成对失败题或全部提示的解释。位置对齐同样重要:措辞一变,token 可能移动,“相同数组下标”不一定还代表同一种角色。
恢复效果说明:在这次接收运行的条件下,提供的激活足以恢复这个指标。破坏效果则为所测条件下的必要性提供证据。两者都不自动证明它是唯一通路。若有冗余路径,去掉一路可能影响很小,因为另一路仍在传信号;反过来,破坏性替换也可能降低表现,却没有定位正常使用的具体信息。
28.6 读中间预测,再追踪计算回路
Section titled “28.6 读中间预测,再追踪计算回路”Logit Lens 问的是另一种读取问题:把中间残差向量接到输出投影,并按声明的方式应用最终归一化,会得到怎样的候选分数?它能以较低成本提供表示与输出词表之间的关系证据,但不一定等于完整模型经过后续层后的预测。
例 28.3:不同层的坐标角色可以变化。 假设较早的行向量是 ,后面有一步交换坐标,得到 ,最后才经 W 输出。若直接把 W 用在 u 上,读到的是 b。在原先配对的样例中,这个 Lens 看起来也能完美预测颜色;但在反事实 中,它偏向蓝色,真实的“交换后再输出”却偏向红色。后续变换不能省略。可学习的 Lens 尝试适配这种表示差异,但它又引入了一个读取器,必须报告相应训练与验证。
计算回路(circuit) 是关于一组组件及连接的机制假说:它们在特定条件下共同实现某种行为。本例的候选回路,就是 r 坐标及其连到两个 logits 的非零权重。在较大的模型里,可以保留候选路径,把其他路径按声明的基线替换,观察它能多大程度保留完整模型的行为;随后再删除或改变候选路径,检验依赖关系。路径修补只隔离特定连接,不是在所有下游位置一起替换某个组件的全部输出。
仍有三个不同问题:候选回路是否忠实复现有关行为,是否漏掉其他有影响的路径,以及删掉其中一部分后是否仍能复现。设两条冗余布尔路径用 OR 合并,两路都是 1 时,删除任何一路,答案仍是 1;两路都删才改变答案。只收集“单独删除就有效”的组件,可能漏掉冗余机制。因此,回路结果需要任务分布、干预定义和误差标准,不能只有标注过的结构图。
模型写下的答题解释是生成文本,可以帮助用户检查论证,但不是这些内部操作的记录,也不能证明模型内部的解题推理过程。前面的实验操作的是数组,再追踪下游效果;它们不是从流畅的自述中推测一份隐藏的思考笔录。
固定状态、矩阵和输出都在本部分共享数据中,可由标量程序复现。必做实践是阅读并判断这些记录;在真实训练网络中修补激活属于选做,本书没有用虚构测量代替它。分清了分数证据与因果证据,下一章回到一个更直接的运行问题:分数究竟怎样变成下一个 token?
28.7 本章小结
Section titled “28.7 本章小结”可解码性、归因与干预回答不同问题。探针可以读出原模型未使用的信息;局部敏感程度取决于基线和操作;修补则检验明确的替换。回路主张还涉及路径、覆盖范围和冗余。再强的证据,也要连着被测模型、样例、位置和指标一起理解。
28.8 习题
Section titled “28.8 习题”- 令例 28.1 的 ,给出读取 b 的探针预测、实际 logits 和最终颜色。
- 另一次实验的干净分差为 6、扰动分差为 2、修补后分差为 5。计算恢复比例。如果两个参照分差都是 2 呢?
- 一项研究只选原本答对的提示,恢复某处激活后观察到改善。它支持哪个样例群体的结论?哪两项对照有助于解释结果?
- 把例 28.3 的早期行向量改成 ,比较直接 Lens 与真实“交换—输出”的结果。
- 某个头对“红色”的注意力很高,替换其输出却没有效果。给出两种不同解释,不把它直接判为普遍无关。
28.9 参考解答
Section titled “28.9 参考解答”- b 探针预测红色。模型实际得到 ,选择蓝色。这个反事实打破了观察分布中的捷径,真正的输出规则没有改变。
- 恢复比例为 。参照分差相同时,分母为零,应报告原始分差并标为未定义。给分母随意加一个极小数,会产生另一种不稳定统计量。
- 结果针对筛出的正确回答提示及指定扰动。匹配的无关坐标替换和反向修补是两项有用对照;增加样例对、更换扰动规则还能检查稳健性。它们都不能自动把结论扩展到全部失败题。
- 直接 Lens 给出 ,偏向红色;交换后为 ,实际输出 ,偏向蓝色。中间投影可能与完整模型意见相反。
- 它的值/输出贡献可能没有携带有用颜色信息,也可能另有冗余通路保留了信号;替换本身选得不合适也是一种可能。需要进一步有针对性的实验区分这些解释。
28.10 参考文献
Section titled “28.10 参考文献”- Hewitt、Liang,Designing and Interpreting Probes with Control Tasks,2019。控制任务帮助区分表示本身的证据与新增读取器的能力。
- Belrose 等,Eliciting Latent Predictions from Transformers with the Tuned Lens,2023。第 2 节解释直接对中间表示作输出投影的局限。
- Meng 等,Locating and Editing Factual Associations in GPT,2022。第 2.1 节规定干净、扰动与恢复运行;本章数值是独立教学构造。
- Wang 等,Interpretability in the Wild,2023。第 3—4 节在受限语言任务中展示路径干预和不同回路标准。