眼睛害怕,手却停不下来:Transformer 的"读写失明症"解释了大激活为何顽固
论文:Which the Eye Fears: Writing with Read-Blindness Explains Massive Activations in Transformers
arXiv: 2609.35630
场景:一个 280 倍的异常值,为什么没人管
打开 Llama 135M 的残差流,你会发现一个诡异现象:极少数坐标(10 个,占 0.4%)的值高达 280,000,而其他坐标的值在几百到几千之间。这些"大激活"(Massive Activations, MAs)比正常值大 280 倍。
奇怪的不是它们存在,而是它们顽固。一个在第 3 层出现的大激活,到第 30 层还在那里,几乎没被削弱。但理论上,后面的每一层——注意力块、前馈网络(FFN)——都有线性能力把它减回正常范围。一个 FFN 神经元只要输出一个负值就能抵消它。
为什么没人管?
这篇论文给了一个让人拍案叫绝的答案:因为后续层在"读"的时候看不见这些坐标,但在"写"的时候看得见。读写不对称——读失明(read-blindness)——让大激活一旦产生就无法被纠正,只能持续累积。
类比:办公室里的"失明签字人"
想象一个办公室,有一个员工(大激活坐标)特别吵闹,声音大到整个楼层都能听见。办公室里有两种人:
- 读者(attention/FFN 的输入侧):他们应该听见噪音,然后写报告说"请降低音量"
- 签字人(attention/FFN 的输出侧):他们负责在报告上签字,让降噪建议生效
但这个办公室有个奇怪的规则:读者在听的时候戴耳塞,签字人在签字的时候不戴。
结果:读者永远听不到噪音,所以永远不写报告。签字人虽然能听见,但没有报告可签。噪音永远存在。
这就是 Transformer 里发生的事。注意力的 Value 投影、Query 投影、FFN 的 gate/up 投影——这些是"读"残差流的权重——在大激活坐标上权重极低。模型在"读"的时候看不见这些坐标。但 Value 输出、FFN down 投影——这些是"写"的权重——在大激活坐标上正常。模型在"写"的时候完全看得见。
读不见,但写得见。于是大激活被持续写入,但永远不会被读出来纠正。
方法:算子级机制分析
论文做的是"算子级"(operator-level)的机制分析。不是看整个 Transformer,而是拆开每个 attention 块和 FFN 块,看它们在"读"和"写"两个方向上分别如何对待大激活坐标。
具体做法:
- 识别大激活坐标:在 Llama 135M 上找到 10 个 MA 坐标,最大激活值 280×10³
- 擦除实验(erasure):在"读"侧或"写"侧擦除这些坐标的信息,看大激活是否消失
- 权重视角:看 Value/Query/Key/gate/up/down 投影矩阵在大激活坐标上的权重大小
- 训练动态:分析模型训练过程中 checkpoint 的变化,看读失明和 FFN 放大谁先出现
数据:读侧擦除让大激活消失,写侧擦除不影响
擦除实验的核心发现:
| 擦除位置 | 大激活是否消失 | rank-biserial 相关 |
|---|---|---|
| 注意力输入侧(读) | 消失 | r_b = -0.60 ~ -0.73 |
| FFN 输入侧(读) | 消失 | r_b = -0.13 ~ -0.65 |
| Value 投影(读权重) | 消失 | r_b = +0.99 |
| Query 投影(读权重) | 消失 | r_b = +0.99 |
| FFN gate/up(读权重) | 消失 | r_b = +0.99 |
关键:在"读"侧擦除大激活坐标,大激活消失(负相关,意味着擦除让大激活减小)。在"写"侧擦除,大激活几乎不受影响。
权重视角更直接:Value 投影在大激活坐标上的权重极小(模型几乎不"读"这些坐标),但输出侧的权重正常(模型完全"写"这些坐标)。
反转:读失明先于 FFN 放大
此前的主流假说(Sun et al., 2026)认为:大激活的根因是 FFN 的"放大能力"——某些 FFN 神经元专门放大特定坐标。这篇论文原本想验证这个假说,结果反转了。
通过分析训练过程中的 checkpoint,论文发现:
- 读失明先出现
- FFN 放大后出现
这意味着读失明不是 FFN 放大的结果,而是上游原因。FFN 的放大是在读失明已经存在之后,模型"学会"利用这个不对称——既然读不到这些坐标,那就让 FFN 在写侧放大它们,反正没人能纠正。
更让人意外的是:模型主动维持读失明。梯度分析显示,损失函数的梯度景观(loss landscape)存在 surprising asymmetry——模型的学习过程倾向于保持读失明,而不是消除它。这不是 bug,是 feature。
补偿效应:堵住一个口,别处冒出来
论文做了一个"消融"实验:人为移除某个位置的读失明(让那里的权重不再忽略大激活坐标),看会发生什么。
结果:大激活在那个位置确实减弱了,但在其他位置补偿性地增强了。就像按下一个弹簧,别处弹起来。大激活整体仍然存在。
这说明读失明不是局部现象,而是系统级的自组织模式。模型在训练过程中自发形成了一套"读失明网络",在不同位置互相补偿。打破一个节点,网络会自我修复。
为什么重要
1. 量化困境的根因
大激活是 Transformer 量化(低比特)的主要障碍。一个 280,000 的值用 INT4 根本表示不了,只能用混合精度或特殊处理。如果不知道大激活为什么存在,量化策略只能"头痛医头"。读失明理论给出了根因:不是某些坐标"天生"大,而是读写不对称让它们无法被纠正。
2. 机制可解释性的新工具
"算子级分析"是一种新的机制可解释性方法。不是看单个神经元,不是看整个层,而是拆开每个算子的"读"和"写"两个方向。这种视角可以推广到其他现象——注意力头的行为、FFN 的功能分化、残差流的演化。
3. "合理化外壳"谱系的又一例
读失明揭示了一个有趣的模式:模型在训练中自发形成了"自我保护"机制。大激活一旦产生,模型不是去消除它,而是围绕它构建一套维持系统。这和"合理化外壳"概念异曲同工——系统不是直接对抗问题,而是构建一套让问题看起来合理的结构。
局限
- 实验只在 Llama 135M/1.28B/2.56B 和 Qwen3 1.7B 上做,更大模型(70B+)是否一致?
- 读失明的"补偿效应"机制没有完全解释——为什么模型会"主动"维持它?
- 论文没有给出"如何利用读失明理论改进量化"的具体方案
但核心洞察已经足够深刻:Transformer 的大激活问题,根因不在于某些坐标"太大",而在于模型的读写系统不对称——它看不见自己写入的东西。
标题"Which the Eye Fears"来自 T.S. Eliot 的诗句——眼睛害怕看见的东西,手却仍在书写。Transformer 的大激活,正是这种"读写失明"的具象化:模型在写,但看不见自己写了什么。
论文链接: arxiv.org/abs/2609.35630
HTML 全文: arxiv.org/html/2609.35630v1
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。