李宏毅 AI 课程:模型内部与可解释性
整理神经元、表示方向、稀疏自编码器、激活补丁、电路和 Patchscope。
文章目录
08 模型内部:表示、特征与可解释性
原始课件:
model_inside (v12).pptx(90 页)
1. 为什么研究模型内部
只观察输入和输出,无法回答模型为何得到某个答案、知识存在哪里,以及安全行为是否真实存在。可解释性研究试图把黑盒模型拆成可观察、可干预的内部变量和计算路径。
课件采用三种互补视角:
- 表示视角:某个神经元、方向或特征表示什么。
- 因果视角:改变内部变量是否会改变输出。
- 电路视角:多个层、注意力头和前馈网络如何协作完成计算。
相关结论通常只能在特定模型、任务和干预范围内成立,不能直接把相关性当成完整解释。
2. 单个神经元与分布式表示
早期研究常寻找“某个神经元对应某个概念”,例如与人物、语法或情绪相关的激活。常用方法包括:
- 收集激活最高的输入并观察共同语义。
- 用线性探针预测标签。
- 将神经元置零或放大,测试输出变化。
课件用“Trump neuron”和“祖母神经元”说明局部语义相关性,但也强调大型模型更常见的是分布式表示:一个概念由多个单元共同表示,一个单元也可能同时参与多个概念。
这就是多义性(polysemanticity),也是直接给单个神经元贴标签容易误导的原因。
3. 中间层方向与激活操控
3.1 差分方向
若收集模型在两类输入上的中间激活,计算均值差,就能得到一个可能代表某种行为的方向。例如:
- 拒答方向:安全请求与危险请求的激活差异。
- 谄媚方向:同意用户与坚持事实的激活差异。
- 真实性方向:真实陈述与错误陈述的激活差异。
在推理时将该方向加到激活上,或从激活中减去它,可以观察行为是否改变。这类方法称为 activation steering。
相关研究:
- Representation Engineering:用表示空间方向控制高层行为。
- Refusal in Language Models Is Mediated by a Single Direction:研究拒答相关方向及其可干预性。
- Towards Understanding Sycophancy in Language Models:分析谄媚行为的表示信号。
- The Geometry of Truth 与 Truth is a Direction:探讨真值相关方向。
3.2 局限
- 方向可能依赖提示模板和数据选择。
- 改变一个方向可能同时影响多个行为。
- 可控输出不等于找到模型真实的因果机制。
- 方向在不同层、不同模型和不同语言之间可能不稳定。
4. 稀疏自编码器(SAE)
大型模型的残差流包含大量叠加特征,单个神经元难以解释。稀疏自编码器尝试把高维激活 分解为少量可激活特征:
其中 通过稀疏约束让每个输入只激活少数特征。
训练后可以检查每个特征最高激活的文本,观察它是否对应代码、人物、语法、情绪或安全模式。Anthropic 对 Claude 的研究和 Gemma Scope 都展示了 SAE 在不同规模模型上的可解释特征分析。
SAE 的核心价值是把“混在一起的表示”转换为更容易命名和干预的特征;但特征质量依赖 SAE 结构、稀疏程度、层位置和解释者判断。
5. 从相关到因果:消融与补丁
5.1 消融
将某个神经元、注意力头、特征或层置零,再比较输出变化。若移除后特定行为下降,可以得到必要性证据;但单个组件可能被其他组件冗余替代。
5.2 激活补丁
在两个输入之间交换某层或某位置的激活:
- 运行“正确答案”输入,记录中间激活。
- 运行“错误答案”或对照输入。
- 把选定位置的激活替换成第一条运行的值。
- 观察输出是否恢复。
activation patching 可以定位信息在哪一层、哪个位置被计算,但成本较高,且需要精心设计对照输入。
6. 电路与机制
电路研究试图回答“哪些组件以什么顺序合作”。
- In-context Learning and Induction Heads 研究注意力头如何复制和延续序列模式。
- Locating and Editing Factual Associations in GPT 发现事实关联常集中在中间层前馈网络的特定计算区域。
- Towards Automated Circuit Discovery 尝试自动搜索完成任务所需的组件子图。
- Attribution Patching 用梯度近似快速估计组件对输出的贡献。
- Sparse Feature Circuits 把 SAE 特征纳入电路级分析。
课件还介绍 IOI(Indirect Object Identification)等受控任务,因为简单任务更适合验证机制假设。复杂开放任务通常存在多条等价路径,完整电路恢复仍然困难。
7. 读取模型的内部语言
7.1 Logit lens
Transformer 每层都有残差流。把中间层残差直接通过最终归一化和输出矩阵映射到词表,可以观察该层“倾向预测什么”。这就是 logit lens。
Interpreting GPT: The Logit Lens 及 Tuned Lens 展示了从中间表示读取预测的方式。它可以帮助定位知识和答案逐层形成的位置,但中间表示不一定已经满足最终层的坐标变换,直接解码可能产生误导。
7.2 FFN 的键值记忆
前馈网络可以近似理解为“键—值”存储:输入模式激活某些键,输出对应的值。相关研究包括 Transformer Feed-Forward Layers Are Key-Value Memories 和 Knowledge Neurons。
这种解释有助于定位事实关联,但真实模型还会通过注意力、残差和多层组合共同完成知识检索。
8. Patchscope 与跨提示解码
Patchscope 把一个提示中的隐藏表示,放到另一个更容易解释的模板或上下文中,再观察语言模型的输出。这样可以让模型用自然语言“翻译”自己的内部状态。
方法流程:
- 在源输入中提取目标层、位置的表示。
- 将表示注入目标提示的对应位置。
- 用目标提示诱导模型描述、分类或展开该表示。
- 与直接探针和因果干预结果交叉验证。
它能读取比单一词表投影更丰富的概念,但结果仍是模型生成的解释,需要外部实验验证。
9. 建议的可解释性实验规范
- 同时报告相关性结果和干预结果。
- 使用多个提示模板、随机种子和任务实例。
- 先在受控任务上验证,再外推到真实对话。
- 对 SAE 特征做重复性、稀疏性和重构误差分析。
- 记录干预的副作用,不只展示目标行为变化。
- 将内部解释与模型编辑、对齐回归和安全测试结合。
10. 重要方法与研究索引
| 方法 | 核心问题 | 对应研究 |
|---|---|---|
| 激活相关分析 | 找到与概念或行为相关的单元 | 神经元可视化、探针研究 |
| 消融实验 | 判断组件是否对行为必要 | 神经元、注意力头和层消融 |
| 激活操控 | 用表示方向改变行为 | Representation Engineering |
| 稀疏自编码器 | 将叠加表示分解为稀疏特征 | Gemma Scope |
| 激活补丁 | 定位因果信息流 | Attribution Patching |
| 电路发现 | 组合多个组件解释机制 | Automated Circuit Discovery |
| Logit lens | 读取中间层预测倾向 | Logit Lens |
| Patchscope | 用另一个提示解码内部表示 | Patchscope |
11. 本章结论
- 可解释性需要表示、因果和电路三个层次共同验证。
- 大模型表示通常是分布式和多义的,不能迷信单个神经元标签。
- SAE、激活补丁和电路发现提高了可解释性,但都不能替代行为层面的验证。
- 内部方向可以暂时控制拒答、真实性和谄媚等行为,但控制成功不等于机制已被完全理解。