郑明悟 2025-08-06 19:10 北京
Attention越深越沉?
作者 | 郑明悟
研究方向 | 大语言模型
来源 | https://zhuanlan.zhihu.com/p/1932066570714215838
Attention Sink 来源于 Transformer 需要 Context Aware 的 Identity Layer,即需要 Attention Block 根据 Context 不输出任何变化的能力。
背景
最早是 Streaming LLM 发现了这一个现象,越深的层越会关注第一个 token,成为 Attention Sink,但是没有解释原因。
▲ https://arxiv.org/abs/2309.17453
But Why?
在我的认知里面,似乎至今没有论文给出一个令人信服的解释,关于为什么模型会有如此的表现,去年有一个工作专门做了 empirical study 来研究一些规律:
▲ https://arxiv.org/pdf/2410.10781
Understanding Attention Sink
我们尝试来提出一个假设,来解释所有的 Attention Sink 相关的实验:
Attention Sink 来源于 Transformer 需要Context Aware 的 Identity Layer,即需要 Attention Block 根据 Context 不输出任何变化的能力。
证据一:首个 token 的 value 几乎为 0
▲ https://arxiv.org/pdf/2410.10781
empirical study 的图中第一行第三列的图可以发现,第一个 token 的 value 的 norm 非常小,意味着即使被 attend 到,对最终结果的贡献也不会太大,那模型为什么要 attend 一个 0 呢?
对于前面两、三个 token 而言,模型学到的就是 bigram 和 trigram,这些都是比较简单的任务,有理由认为不需要很深的层就可以完成。
假设这个时候浅层已经输出了答案,深层要做的事情就是保持恒等变换。
但是 Attention Block 如何做恒等变化呢?
考虑残差,也就是 Attention 如何输出 0,这样实现整个 block 完成恒等变换。
由于每个 token 每一层是否要恒等的情况不一样(data dependent),所以不能靠 这样的静态参数来实现。
那么必须靠 Softmax Attention 来实现,也就是 key 空间里面必须存在一个特殊的 key:,这个 key 的 value 是 0,且需要模型在想要输出 0 的时候可以精确的 attend 到。
这也意味着模型必须给这个 分配一个单独的子空间,这个 和所有的其他 key 都是正交或者负相关的,这样可以保证 , 夹角很小的时候 的分数最高,实现 attend 到 sink token 并输出 0。
同时这个 key 的模长也必须比较小,这样在不需要输出恒等的时候,对正常的 Attention 结果尽量产生小的影响。如下图所示。
▲ sink token 和其余 token 的 key 会有什么区别
▲ https://arxiv.org/pdf/2410.10781
empirical study 的图中实验图的第二行第二列也可以看出,sink 发生的时候,其他 key 的相似度几乎都是 0 或者负的,同时第一行第二列可以看出第一个 token 的 key 的模长显著小,这佐证了我们的猜想。
证据二:模型存在 early decoding,且越深的层 sink 越明显
我们如果用 lm head 去 probe 中间层 feat 预测的 token,我们可以发现模型确实存在浅层就完成编码的情况。即从中间某层开始,输出的 Top-1 和最后一层输出的 Top-1 相同。
而如果我们 probe 不同层的 Attention map,Attention Sink 也确实在深层更加明显,这进一步佐证了我们的猜想。
(部分实验图片可能涉密,无法公开,这里仅分享结论)
证据三:非归一化或者非正定 kernel 会消除 sink
假设手动设置一个和所有 key 的相似度都为 1,value 为 0 的虚拟 token(等价于相当于给 Softmax 的分母加上了一个 e),这个时候理论上会缓解 sink。@小明同学 进行了实验,验证了这个猜想。
▲ https://arxiv.org/pdf/2410.10781
同时 empirical study 的论文(上图)发现了非归一化的 Attention 没有 sink 问题,也佐证了我们的猜想。 如果模型 score 不一定非负,那么也可以组合出 0 的 Attention,也不会有 sink。
证据四:Attention Sink 浪费了 dim,Gate 可以解决
Attention Sink 导致必须给 分配一个子空间,我们合理怀疑这个会产生 dim 的浪费(给分母加 e 也无法解决)。一个想法是使用 gating 操作,使得模型可以 data-dep 的输出 0. 正好 Qwen 最近做了这个实验:
▲ https://arxiv.org/pdf/2505.06708
先不谈效果提升幅度,他们发现 Attention 在输出阶段(G1)加入 gate 最有效,且消除了 Attention Sink。这和我们的猜想一致(在 G2、G3、G4 都不能使得 Attention 输出 0,但是 G1 可以)。
总结
Transformer 模型中的 Attention Sink 现象很可能源于模型对 context-aware 的 identity layer 的内在需求。多项经验性证据支持这一假设:
Sink token 的 value 接近于 0,且 key 有专用子空间;
Transformer 存在 early decoding,且更深的层恰好 sink 更严重;
通过非归一化或非正的注意力核会移除 Attention Sink;
门控机制能够消除 Attention Sink,且可能因为解决子空间浪费从而提升性能。
这一假设为 Attention Sink 提供了一个连贯的解释,并得到了来自多项实验的经验性证据支持。欢迎讨论。
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·