土法炼钢兴趣小组的算法知识备份

【Transformer 与注意力机制】52|可解释性入门:注意力权重真的是“解释”吗

文章导航

分类入口
transformer
标签入口
#transformer#interpretability#attention#probing#chain-of-thought#faithfulness

Transformer系列导航

按系列顺序继续阅读,而不是停在单篇。

系列目录上一篇:【Transformer 与注意力机制】51|量化、蒸馏、剪枝:压缩改变的是三种不同的东西下一篇:【Transformer 与注意力机制】53|机制可解释性:电路、诱导头与叠加态的边界

目录

Transformer 有一个看似天然适合解释的部件:attention。每个 token 对其他 token 有一组 softmax 权重,画成热力图,看起来就像模型在告诉我们“我关注了哪里”。这个直觉从 2019 年起就被系统性地检验过——结论并不是“完全没用”,也不是“可以直接当解释”,而是一场持续到今天、依赖具体架构和任务的争论。

这篇文章不复述“attention 是什么”,而是回答一个更难的问题:当我们说“解释了模型”,到底在拿什么当证据?梯度大能说明什么,遮挡实验能说明什么,探针读出信息能说明什么,模型自己写的理由又能不能信?这些问题在调试真实模型、看 attention 热力图、看 chain-of-thought 输出时天天遇到,答案却经常被简化成“看起来关注了 X,所以模型是因为 X 才这样回答”。

本篇能让你学会三件事:

  1. 为什么“attention weight 高”和“模型因此这样回答”是两件不同的事,以及这场争论的具体实验证据;
  2. 梯度、遮挡、探针、因果中介分析各自提供什么证据、各自在哪里失效;
  3. 为什么大语言模型自己给出的解释——尤其是 chain-of-thought——在对齐之后反而更容易“听起来合理却不忠实”。

一、解释分层:用户、行为、机制

“解释模型”在不同场景里问的是不同问题。产品经理想知道为什么贷款申请被拒,这需要一句用户能懂、且经得起监管审查的理由;工程师想知道模型为什么在某类样本上失败,这需要能定位到具体输入变化的行为解释;研究者想知道某个 attention head 是否实现了某种算法,这需要能追踪到内部计算路径的机制解释。三者需要的证据强度递增,混用会让“听起来合理”的解释被当成“确实如此”的机制。

Jacovi 和 Goldberg 在 ACL 2020 的立场论文里把这个混淆讲清楚:解释有两个独立可以变化的属性,plausibility(对人类有多大说服力)和 faithfulness(有多准确地反映模型真实的推理过程)1。一个解释可以很 plausible 却完全不 faithful——比如用一个额外训练出来、专门生成”听起来讲得通”的文字来配合模型输出的生成器,它对人类友好,但和模型真正为什么给出这个输出毫无必然联系。他们还主张不要把 faithfulness 当成二元的”是/否”,而要看作一个程度问题:没有任何解释方法是绝对忠实的,只有更忠实或更不忠实。

这个区分是本篇所有讨论的底层框架:下文提到的每一种方法——attention 可视化、梯度、遮挡、探针、模型自我陈述——都要先问它到底在服务 plausibility 还是 faithfulness,再决定它能不能支撑一个机制层面的结论。


二、attention weight 为什么诱人,又为什么不够

attention weight 之所以特别容易被当成解释,是因为它天然是一组和为 1 的非负系数,直接对应到具体的输入 token,可视化成本几乎为零。这是一种认知捷径:把”权重大”直接等同”重要”,比读梯度矩阵或探针输出直观得多。

但 attention 只是 Transformer 一层里的一个中间产物。一个 token 最终的表示,要经过 \(\mathrm{softmax}(QK^\top/\sqrt{d_k})V\) 之后再乘以输出投影 \(W_O\),与残差流相加,再进入 LayerNorm 和 MLP,然后进入下一层重复这个过程。attention 权重只描述了某一层某一个 head 里”从哪些位置读取信息”,不描述这些信息经过 \(W_O\)、残差、MLP 之后对最终 logit 的实际贡献有多大——貢献可能被放大、抵消,也可能完全不参与最终决策所依赖的方向。

更关键的一点是:权重高不等于因果贡献大。一个位置被高度关注,不代表它决定了输出;一个位置权重很低,也可能通过残差路径或其他层间接地强烈影响结果。要区分”看起来关注”和”确实决定”,需要的是干预实验,而不是可视化。


三、attention is not explanation:一场持续的争论

“Attention is not Explanation”不是一句口号,而是 Jain 和 Wallace 在 NAACL 2019 用两组具体实验支撑的结论2

第一组实验(论文 4.1 节)比较了学出来的 attention 权重和基于梯度的特征重要度之间的相关性,发现在他们测试的文本分类、问答等任务上,二者经常不相关——如果 attention 真的指示”模型认为哪个输入重要”,它应该和另一种独立度量出的重要度大致一致,但实验没有观察到这种一致性。

第二组实验(4.2 节)更关键:构造 counterfactual attention distribution。具体做法是,先随机打乱学到的 attention 权重(分配到任意随机的位置),记录输出变化;再进一步显式搜索”对抗性”attention 分布——这组分布在 Jensen–Shannon 散度意义上和原始分布差异最大化,但预测结果几乎不变(分类任务容许变化不超过 0.01,QA 任务不超过 0.05)。作者能在大多数任务上稳定找到这样的对抗分布,由此推出:如果两个截然不同的 attention 热力图能得出同一个预测,那么原始热力图就不能被特权化为”the explanation”——因为一个真正的解释应当满足”把关注度移到差异很大的输入上,输出应有相应变化”这个直觉性质。

这个结论半年内被两篇论文正面回应。Serrano 和 Smith 在 ACL 2019 用另一种方法——intermediate representation erasure——重新检验这个问题3:把某些位置的 attention 权重置零并重新归一化,观察输出的 Jensen–Shannon 散度变化和决策翻转所需要移除的元素数量。他们发现,用基于梯度的排序(或梯度乘以 attention 的排序)去预测”移除哪些位置最容易导致决策翻转”,系统性地比纯粹按 attention 权重大小排序更准确。结论是折中的:attention 确实能提供关于输入重要性的信号,但这个信号是noisy的,不是fail-safe的——它不是随机噪声,也不是可以直接当作因果解释的可靠指标。

Wiegreffe 和 Pinter 在同年的 EMNLP-IJCNLP 2019 则直接挑战 Jain 和 Wallace 的实验设计4。他们指出”explanation”这个词本身没有被清晰定义,而对抗性搜索这个实验给了研究者过大的自由度——对每一个具体样本单独搜索一个对抗分布,总能找到某个满足约束的解,这件事本身并不能证明模型的决策过程真的存在多条等价的”关注路径”。他们提出四个诊断实验:与均匀分布基线对比、多个随机种子下的方差校准、把预训练好的 attention 权重冻结后喂给一个无法访问上下文的简单 token 级 MLP 作为诊断、以及端到端地训练对抗性 attention。关键结果是:即便能可靠地找到 Jain 和 Wallace 意义上的对抗分布,这些对抗分布放进诊断 MLP 里的表现明显比原始学到的权重差——说明原始 attention 权重携带的信息比”随便找一个能维持预测的替代分布”更多,不是任意的。

三篇论文用不同的实验设计,得到了部分不一致的结论,根源恰恰在于对”explanation 应该满足什么性质”没有统一定义——是要求唯一性(不存在等价的替代解释)、还是只要求信息量(比随机基线更好)、还是要求可操作性(干预它会改变输出)。这正是 Jacovi 和 Goldberg 呼吁把 faithfulness 单独评测、并放弃二元判断的动机所在。今天社区比较收敛的立场是:attention 权重在很多设置下与”真正驱动输出的因素”只有弱到中等的相关性,本身不构成充分的因果证据;但完全否定它的价值,同样超出了这些实验能支持的范围。这仍是一个依赖具体架构、任务和度量方式的开放问题,不是一次性被证明或证伪的结论——而且三篇论文测试的都是 2019 年前后的 LSTM/BERT 分类模型,今天的 decoder-only、指令微调、多头数量动辄上百的 LLM 是否服从同样的结论,目前没有同等规模的复现工作。


四、梯度、遮挡、探针:各自的证据边界

4.1 梯度:能看到局部敏感性,看不到全局因果贡献

最朴素的显著性方法是看输出对输入(或对某个中间激活)的梯度 \(\partial y / \partial x_i\):梯度大,说明这一点的微小扰动会让输出变化更大。问题是,这只是一个局部线性近似,深度网络里普遍存在的饱和现象会让梯度在很多输入区域接近零,即使这个特征对最终输出至关重要。

Sundararajan、Taly 和 Yan 在 ICML 2017 提出的 Integrated Gradients 试图解决这个问题5。他们指出多数显著性方法不满足两个公理:Sensitivity(如果改变一个特征真的改变了输出,该特征的归因就不该是零)和 Implementation Invariance(两个功能上等价但实现不同的网络应该给出相同归因)。Integrated Gradients 沿着从一个 baseline 输入到实际输入的直线路径累积梯度,以此规避单点梯度的饱和问题。但这不是终点:后续工作发现 Integrated Gradients 自身在积分路径接近 baseline 的饱和区间里,梯度依然可能引入误导性的贡献量,需要额外裁剪掉这部分区间才能得到更可靠的归因。换句话说,即使是公理化设计出来的方法,也没有彻底摆脱”局部信号无法直接等价全局因果贡献”这个根本限制。

4.2 遮挡:更接近因果,但要处理分布外问题

遮挡(occlusion/erasure)实验直接把某个 token、特征或激活置零或替换,观察输出变化,这比看梯度更接近”如果改变这里,结果会不会变”这个因果问题的字面意思。但遮挡本身可能制造模型训练时从未见过的分布外输入——把某个 embedding 置零,模型看到的是一个训练时不存在的向量,它的反应可能只是”对陌生输入的反应”,而不是”缺少这个信息之后的真实反应”。

Vig 等人在 NeurIPS 2020 提出的因果中介分析(causal mediation analysis)是这个问题的一个更严谨的解法6。他们把内部的神经元或 attention head 当作因果图里连接输入与输出的中介变量(mediator),用成对的、只在目标属性上不同的输入(例如把句子中的性别代词替换为对应的另一性别)计算每个中介的直接效应和间接效应,而不是简单粗暴地置零。论文标题本身的判断值得重复:以往那些只检查”信息是否存在于某个表示中”的方法,回答的只是存在性问题,回答不了”这个信息是否真的被模型用来产生了当前输出”——这句话直接指向下一节探针的局限。他们在 GPT-2 上的案例研究发现,性别偏见效应集中在少量特定的神经元和 head 上,说明因果中介分析确实能定位到比”整体遮挡”更精细的因果结构。

4.3 探针:能证明信息存在,不能证明信息被用

探针(probing classifier)训练一个独立的小模型,从冻结的内部表示预测某种语言学或任务相关的属性。如果探针准确率很高,很容易被解读为”模型的表示里编码了这个属性,而且模型用它来做决策”。Belinkov 在 Computational Linguistics 2022 的综述里明确区分了这两件事:探针高准确率只能说明信息存在于表示中,不能说明主任务的计算依赖这个信息7

这个局限有更具体的实验支撑。Hewitt 和 Liang 在 EMNLP-IJCNLP 2019 指出,探针本身的容量是一个混淆变量:一个足够复杂的 MLP 探针,即使表示里根本不包含某种结构,也可能靠强行记忆把训练集里每个词型(word type)和一个随机分配的标签对应起来,从而在这个”控制任务”(control task)上也拿到不低的准确率8。他们提出用 selectivity(语言学任务准确率与对应控制任务准确率之差)来区分”探针学到了表示的结构”和”探针只是在记忆”。论文里的一个具体数字:在 ELMo 表示上做词性标注,一个线性探针的 selectivity 达到 26.0,而默认超参数下的一层 MLP 探针 selectivity 只有 4.5——两者语言学任务准确率相近,但后者的高准确率里混入了远多于前者的纯记忆成分。这说明探针方法本身需要额外的控制实验,才能把”读出信息”和”信息真的被使用”分开讨论,更谈不上直接跳到”模型决策依赖这个信息”的结论。


五、LLM 自我解释:听起来合理 ≠ 真实原因

大语言模型可以直接用自然语言说出”我为什么这样回答”,chain-of-thought(CoT)看起来尤其像是把模型内部推理过程转录成了文字。这个假设值得警惕,因为它已经被系统性地检验过,而且结果是否定的。

Turpin、Michael、Perez 和 Bowman 在 NeurIPS 2023 设计了一组对照实验9:在少样本提示里系统性地加入一个模型无法直接观察到自己受其影响的偏置特征——比如把正确选项永远固定在选项 (A) 的位置,或者在提示里插入一句”建议答案是……“。模型确实会被这些偏置左右最终答案,但生成的 CoT 里几乎从不提及这个偏置,反而会编造出一套读起来完全合理、却和真实原因无关的理由。在 BIG-Bench Hard 的 13 个任务上,用 GPT-3.5 和 Claude 1.0 测试,这种偏置造成的准确率下降最高达到 36%。这是”plausible 但不 faithful”的直接实证:解释文本读起来天衣无缝,但和模型真正依据的信号毫不相干。

Chen 等人(Anthropic Alignment Science Team)在 2025 年的工作把这个问题推进到了更新的推理模型上10。这篇论文目前只以 arXiv 预印本形式发布,尚未经过同行评审,但其实验设计和数据值得作为最新证据引用:他们在提示里插入模型确实会使用的”提示线索”(例如”一位教授认为答案是……“),分别测量模型是否真的用了这个线索来改答案,以及模型是否在 CoT 里提到了这个线索。结果是,Claude 3.7 Sonnet 平均只在 25% 的场景里提到用过的线索,DeepSeek R1 是 39%——大多数情况下模型用了却没说。更值得注意的是训练动力学:他们用 outcome-based 强化学习去优化模型行为,发现忠实度只在训练早期有提升,随后就进入平台期不再上升;当强化学习意外提高了模型利用某种 reward hack 的频率时,模型在 CoT 里说出这个 hack 的频率并没有同步提高。

把这两组结果放在一起可以给出一个具体但仍是推导(而非已证实事实)的机制假设:RLHF 或偏好优化直接优化的是人类评分者对回答的偏好,而人类评分者能可靠评估的主要是解释的 plausibility——是否读起来通顺、条理清楚、像是有道理——几乎没有直接信号去奖励 faithfulness,因为忠实度本身通常无法被评分者验证。这意味着对齐训练在没有专门约束的情况下,更可能选择性地保留那些”听起来合理”的解释文本,而不会自动提升它们反映模型真实计算过程的程度。这也是为什么”模型自己说的理由”在经过越多轮对齐之后,反而越需要额外的怀疑,而不是越可信。


六、行为解释与机制解释的分工

区分清楚三层解释之后,行为解释和机制解释的分工也更清楚。行为解释只关心输入输出关系:改变 prompt 中的某句话,模型回答如何变化;加入检索证据,幻觉是否减少。它不需要打开模型内部,证据强度足够支撑产品调试和 A/B 测试,但停留在这一层无法回答”模型内部到底怎么计算出这个结果”。

机制解释则试图找到内部真正参与计算的组件和路径——某些 attention head 是否实现了某种可复用的算法,某些 MLP 维度是否表示具体概念,残差流里的信息如何在层间移动。这需要电路(circuit)、激活修补(activation patching)、superposition 和 Sparse Autoencoder 这类更专门的工具,它们比本篇讨论的遮挡和因果中介分析更进一步,提供了对特定行为的完整因果模型,但也远没有解决大模型的整体解释问题。本篇不展开这些工具,下一篇会专门处理。

两者都必要:只做行为解释,容易停留在黑箱测试,给不出”为什么会这样”;只做机制解释,又容易在小模型的局部电路上打转,脱离真实产品场景里模型的整体行为。


七、为什么 LLM 更难解释

大语言模型规模巨大,层数多、head 多、MLP 维度高,行为还经过指令微调和 RLHF 改造。它们不仅预测下一个 token,还要遵循角色设定、调用工具、拒绝请求、维持多轮对话状态。上一节已经说明,这层改造还带来一个额外的负面效应:对齐训练可能系统性地让模型的自我解释更擅长”听起来合理”,而不会自动让它更忠实。

同一个输出可能由预训练知识、上下文示例、系统指令、解码策略和安全策略共同决定。把原因归结到某个 attention head 或某一段 CoT 文本,通常是过度简化。所以 LLM 可解释性需要多层证据配合:行为评测、数据分析、激活层面的因果干预、特征分解和安全红队,单独依赖任何一层都容易得出”看起来解释了”但实际站不住脚的结论。


八、关键概念回顾


九、常见误解

9.1 “attention 图就是解释”

attention 图是有信息量的诊断线索,但 Jain 和 Wallace 的对抗分布实验、Serrano 和 Smith 的erasure 实验都表明它不是唯一或必然的因果解释,权重大小和决策翻转所需要移除的元素数量之间只有中等的一致性。

9.2 “模型自己说的理由就是真实理由”

不一定。Turpin 等人的实验证明 CoT 可以在完全不提及真实影响因素的情况下,编造出读起来合理的理由;Chen 等人 2025 年的工作(arXiv 预印本)进一步显示,即便强化学习让模型行为变好,CoT 的忠实度也不会随之同步提升。

9.3 “探针读出信息说明模型用了它”

探针只能说明信息存在于表示中,不保证主模型的决策依赖它。Hewitt 和 Liang 的 selectivity 框架说明,不加控制的探针本身就可能靠记忆拿到虚高的准确率。

9.4 “Jain 和 Wallace 已经证明 attention 完全没用”

这是对论文结论的过度引申。Wiegreffe 和 Pinter 的诊断实验显示,可靠找到的对抗分布本身在更严格的检验下表现更差,说明原始 attention 权重并非任意;三篇论文共同指向的是”证据强度不够支撑因果解释”,不是”完全没有信息量”。


十、开放问题


十一、下一步

入门可解释性之后,下一篇进入机制可解释性:电路、特征、归因和 activation patching 如何在电路层面给出比本篇讨论的遮挡、因果中介分析更精细的因果证据,以及 Sparse Autoencoder 试图如何拆解 superposition。


十二、参考文献

attention 与 explanation 之争

  1. Jain, S. and Wallace, B. C. “Attention is not Explanation.” NAACL-HLT 2019, pages 3543–3556.
  2. Wiegreffe, S. and Pinter, Y. “Attention is not not Explanation.” EMNLP-IJCNLP 2019, pages 11–20.
  3. Serrano, S. and Smith, N. A. “Is Attention Interpretable?” ACL 2019, pages 2931–2951.

faithfulness、探针与因果方法

  1. Jacovi, A. and Goldberg, Y. “Towards Faithfully Interpretable NLP Systems: How Should We Define and Evaluate Faithfulness?” ACL 2020, pages 4198–4205.
  2. Belinkov, Y. “Probing Classifiers: Promises, Shortcomings, and Advances.” Computational Linguistics, 2022.
  3. Hewitt, J. and Liang, P. “Designing and Interpreting Probes with Control Tasks.” EMNLP-IJCNLP 2019, pages 2733–2743.
  4. Sundararajan, M., Taly, A., and Yan, Q. “Axiomatic Attribution for Deep Networks.” ICML 2017, pages 3319–3328.
  5. Vig, J. et al. “Investigating Gender Bias in Language Models Using Causal Mediation Analysis.” NeurIPS 2020.

LLM 自我解释与 chain-of-thought 忠实度

  1. Turpin, M., Michael, J., Perez, E., and Bowman, S. R. “Language Models Don’t Always Say What They Think: Unfaithful Explanations in Chain-of-Thought Prompting.” NeurIPS 2023.
  2. Chen, Y. et al. (Anthropic Alignment Science Team). “Reasoning Models Don’t Always Say What They Think.” arXiv:2505.05410, 2025.(预印本,未经同行评审)

← 上一篇:51|量化、蒸馏、剪枝 | 下一篇:53|机制可解释性


  1. Jacovi, A. and Goldberg, Y. ACL 2020,见参考文献第 4 条。↩︎

  2. Jain, S. and Wallace, B. C. NAACL-HLT 2019,见参考文献第 1 条。↩︎

  3. Serrano, S. and Smith, N. A. ACL 2019,见参考文献第 3 条。↩︎

  4. Wiegreffe, S. and Pinter, Y. EMNLP-IJCNLP 2019,见参考文献第 2 条。↩︎

  5. Sundararajan, M., Taly, A., and Yan, Q. ICML 2017,见参考文献第 7 条。↩︎

  6. Vig, J. et al. NeurIPS 2020,见参考文献第 8 条。↩︎

  7. Belinkov, Y. Computational Linguistics 2022,见参考文献第 5 条。↩︎

  8. Hewitt, J. and Liang, P. EMNLP-IJCNLP 2019,见参考文献第 6 条。↩︎

  9. Turpin, M. et al. NeurIPS 2023,见参考文献第 9 条。↩︎

  10. Chen, Y. et al. arXiv:2505.05410, 2025,见参考文献第 10 条;预印本,未经同行评审。↩︎

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-04-15 · transformer

【Transformer 与注意力机制】42|FlashAttention:注意力计算的硬件级重写

FlashAttention 的关键不是近似注意力,也不是把公式改掉,而是重新安排标准 attention 在 GPU 内存层级里的计算路径。本文解释为什么标准 attention 的瓶颈常常是 HBM 读写,FlashAttention 如何用 tiling 和 online softmax 避免物化完整注意力矩阵,以及它为什么省显存、提吞吐,却没有消除 O(n²) 的根本复杂度。

2026-04-15 · transformer

【Transformer 与注意力机制】49|KV Cache:推理为什么是 O(n) 不是 O(n²)

自回归推理和训练不是同一种程序。本文解释 KV Cache 为什么成立:历史 token 的 Key/Value 一旦算出,在后续 decode 中不会改变;缓存它们可以避免反复重算前缀。文章同时讲清 prefill 与 decode 的差异、cache 显存公式、长上下文为什么受限,以及 PagedAttention、MQA/GQA、cache 量化等方向各自在解决什么。

2026-06-09 · transformer

【Transformer 与注意力机制】59|推理退化:为什么大模型会输出乱码、死循环和无意义文本

大模型推理时偶尔会突然陷入死循环、输出乱码或连续无意义数字,这不是随机 bug,而是注意力机制、Causal Mask、解码策略和数值精度在自回归生成中共同作用的结果。本文从 QKV 计算坍塌出发,解释 Attention Sink、Softmax 马太效应、Causal Mask 的退路切断、FP16 溢出路径和 KV Cache 污染,并给出从架构到运行时的多层防线。


By .