Transformer 有一个看似天然适合解释的部件:attention。每个 token 对其他 token 有权重,把它画成热力图,看起来就像模型在告诉我们“我关注了哪里”。问题是,关注哪里不等于为什么这样回答。
可解释性要区分几个层次。给用户看的解释可能是自然语言理由;行为解释描述输入变化如何影响输出;机制解释则试图找出模型内部哪些组件以什么方式导致了结果。attention weight 只是内部信号之一,不能自动承担所有解释责任。
本篇能让你学会三件事:
- 为什么 attention weight 不是完整解释;
- 梯度、遮挡、探针和因果干预分别能说明什么;
- 为什么大语言模型的解释尤其困难。
一、什么叫解释
“解释模型”可以指很多事。产品用户想知道为什么贷款申请被拒;工程师想知道为什么模型在某类样本上失败;研究者想知道某个 attention head 是否实现了某种算法。
这些问题需要不同证据。用户解释需要可理解和合规;调试解释需要定位错误来源;机制解释需要因果证据。把它们混在一起,会导致“看起来合理”的解释被误当成真实机制。
模型自己生成的解释也要小心。语言模型很会写理由,但它写出的理由未必是产生答案的真实内部原因。
二、attention weight 的诱惑
attention weight 确实提供了有用线索。某个 head 强烈关注前文中的实体、括号或分隔符,可能说明它在处理某种结构。可视化 attention 能帮助发现模型模式。
但 attention weight 只是计算路径的一部分。Transformer 还有 MLP、残差流、LayerNorm、多个 head 和多层组合。一个 token 的最终表示不是由单个 attention 图决定。
更重要的是,权重高不等于因果贡献大。某个位置被关注,不代表它决定了输出;某个位置权重低,也可能通过其他层或 MLP 间接影响结果。
三、attention is not explanation
“Attention is not Explanation” 这类工作指出,attention 权重和模型预测之间的关系不总是可靠解释。有时可以改变 attention 分布而输出不变,有时重要输入不一定对应最高 attention。
这并不意味着 attention 可视化毫无价值。更准确的结论是:attention 可以作为诊断线索,但不能单独作为因果解释。要证明某个组件重要,需要干预:修改它、遮掉它、替换它,观察输出如何变化。
解释的核心不是“看起来像”,而是“如果改变这里,结果会不会变”。
四、梯度、遮挡和探针
梯度方法看输出对输入或激活的敏感性。梯度大,说明小变化可能影响输出。但梯度容易受饱和、尺度和局部线性近似影响。
遮挡实验更直接:把某个 token、区域或特征遮住,看输出变化。它接近因果干预,但遮挡本身可能制造分布外输入。
探针(probing)训练一个小模型,从内部表示预测某种属性。探针能说明表示中包含信息,但不能说明主模型实际使用了这些信息。线性探针能读出语法特征,不代表模型决策依赖它。
这些方法各有价值,也各有边界。
五、行为解释与机制解释
行为解释关注输入输出关系。比如改变 prompt 中某句话,模型回答如何变化;加入检索证据,幻觉是否减少。这对产品调试很有用。
机制解释关注内部电路。比如某些 attention head 是否负责复制模式,某些 MLP feature 是否表示具体概念,残差流中信息如何移动。这更接近“模型内部如何计算”。
两者都重要。只有行为解释,容易停留在黑箱测试;只有机制解释,又可能脱离真实用户场景。
六、为什么 LLM 更难解释
大语言模型规模巨大,层数多、head 多、MLP 维度高,行为还经过指令微调和 RLHF 改造。它们不仅预测文本,还会遵循角色、使用工具、拒绝请求、维持对话状态。
同一个输出可能由预训练知识、上下文示例、系统指令、解码策略和安全策略共同决定。把原因归结到某个 attention head,通常过度简化。
所以 LLM 可解释性需要多层证据:行为评测、数据分析、激活干预、特征分解和安全红队。
七、关键概念回顾
- attention weight:attention 中 query 对 key 的权重。
- 显著性方法:估计输入部分对输出的重要性。
- 遮挡实验:移除或替换输入部分,观察输出变化。
- 探针:从内部表示预测某种属性的小模型。
- 因果干预:直接改变内部组件或激活,验证对输出的影响。
- 机制解释:寻找模型内部真实计算路径。
八、常见误解
8.1 “attention 图就是解释”
attention 图是线索,不是完整因果解释。
8.2 “模型自己说的理由就是真实理由”
不一定。生成的理由可能是事后合理化。
8.3 “探针读出信息说明模型用了它”
探针只能说明信息存在于表示中,不保证主模型决策依赖它。
九、下一步
入门可解释性之后,下一篇进入机制可解释性:电路、特征、归因和 activation patching 如何更接近模型内部计算。
十、参考文献
- Jain, S. and Wallace, B. “Attention is not Explanation.” NAACL 2019.
- Wiegreffe, S. and Pinter, Y. “Attention is not not Explanation.” EMNLP 2019.
- Belinkov, Y. “Probing Classifiers: Promises, Shortcomings, and Advances.” Computational Linguistics 2022.
- Ribeiro, M. T. et al. “Why Should I Trust You?: Explaining the Predictions of Any Classifier.” KDD 2016.
← 上一篇:51|量化、蒸馏、剪枝 | 下一篇:53|机制可解释性 →
同主题继续阅读
把当前热点继续串成多页阅读,而不是停在单篇消费。
【Transformer 与注意力机制】42|FlashAttention:注意力计算的硬件级重写
FlashAttention 的关键不是近似注意力,也不是把公式改掉,而是重新安排标准 attention 在 GPU 内存层级里的计算路径。本文解释为什么标准 attention 的瓶颈常常是 HBM 读写,FlashAttention 如何用 tiling 和 online softmax 避免物化完整注意力矩阵,以及它为什么省显存、提吞吐,却没有消除 O(n²) 的根本复杂度。
【Transformer 与注意力机制】49|KV Cache:推理为什么是 O(n) 不是 O(n²)
自回归推理和训练不是同一种程序。本文解释 KV Cache 为什么成立:历史 token 的 Key/Value 一旦算出,在后续 decode 中不会改变;缓存它们可以避免反复重算前缀。文章同时讲清 prefill 与 decode 的差异、cache 显存公式、长上下文为什么受限,以及 PagedAttention、MQA/GQA、cache 量化等方向各自在解决什么。
【Transformer 与注意力机制】21|位置编码:为什么需要它,为什么用正弦
从「self-attention 是排列等变的」这件几乎被忽视的事实出发,推导出位置编码不是装饰、不是工程小技巧,而是结构性必需。原论文为什么选正弦、那个奇怪的 10000 是怎么来的、PE 与 embedding 是相加还是拼接、可学习位置和 sinusoidal 的本质差别在哪、为什么训练 512 推理 2048 会让可学习位置难以直接外推——这一篇把这些问题一次讲完,并把读者交到现代位置编码(RoPE、ALiBi)的门口。
【Transformer 与注意力机制】18|注意力的复杂度问题
为什么 attention 是 O(n²),O(n²) 到底贵在哪里,5 类降复杂度方案的优劣,FlashAttention 不是 O(n) 这件事,长上下文是怎么把架构师逼疯的。