The Spike, the Sparse and the Sink: Anatomy of Massive Activations and Attention Sinks

该论文通过系统实验揭示了 Transformer 模型中“巨大激活”与“注意力汇”虽常共现但功能迥异,前者作为隐式参数全局运作,后者局部调节注意力分布,且两者的共现主要归因于预归一化架构设计。

Shangwen Sun, Alfredo Canziani, Yann LeCun, Jiachen Zhu

发布于 2026-03-06
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文就像是在给大语言模型(LLM)做一次“深度体检”,发现了两个经常一起出现的奇怪现象:“巨大的激活值”(Massive Activations)“注意力陷阱”(Attention Sinks)

为了让你轻松理解,我们可以把大语言模型想象成一个超级繁忙的巨型图书馆,里面的图书管理员(模型)正在处理无数本书(文本数据)。

1. 发现了什么怪事?

在这个图书馆里,管理员发现两件事总是同时发生:

  • 现象一:巨大的激活值(The Spike / 巨大的噪音)
    想象一下,当管理员处理某些特定的词(比如句子的开头,或者标点符号)时,他的大脑里突然有几个“神经元”(通道)爆发出极其巨大的能量,就像有人突然在安静的图书馆里大喊一声,或者像电压表瞬间爆表。

    • 比喻:这就像图书馆里有个特殊的“警报器”,只要遇到特定的词,警报器就会发出震耳欲聋的响声,而且这个响声大得离谱,远超正常水平。
  • 现象二:注意力陷阱(The Sink / 磁铁效应)
    同时,管理员的注意力(Attention)会不由自主地死死粘住那些发出巨大响声的词(通常是第一个词,比如“开始”或句号)。不管后面的内容多重要,管理员的注意力总有一大块被强行吸在那个“开头”上,哪怕那个开头跟后面的内容没啥关系。

    • 比喻:这就像图书馆里有个超级磁铁(第一个词),不管管理员想读哪本书,他的目光总会被那个磁铁吸过去,导致他分心,没法公平地关注其他内容。

以前的困惑:大家以前觉得,是不是因为那个“警报器”响了(巨大的激活值),所以“磁铁”才吸住了注意力?或者反过来?它们是不是天生就绑在一起的?

2. 论文的核心发现:它们其实是“误会”

这篇论文通过做实验(就像给图书馆换不同的规则),发现这两个现象其实是可以分开的,它们之所以总是一起出现,是因为图书馆的建筑设计(模型架构)有点小毛病,而不是因为它们本质上必须在一起。

关键角色一: normalization(归一化)—— 那个“奇怪的过滤器”

现在的模型设计里有一个叫“归一化”的环节,它的作用是把所有输入的数据拉到一个标准范围内。

  • 论文发现:这个“过滤器”在处理那个“警报器”(巨大激活值)时,把它变成了一个非常稳定、非常稀疏、几乎不变的信号
  • 比喻:想象那个“警报器”原本是大喊大叫,但经过“过滤器”后,它变成了一种恒定不变的背景嗡嗡声。因为声音太稳定了,管理员(注意力机制)觉得:“哦,这个声音太熟悉了,我就把它当成一个固定的参考点吧。”于是,注意力就被吸过去了,形成了“陷阱”。

关键角色二:前馈网络(Feed-Forward)—— 那个“放大器”

  • 论文发现:那个“警报器”(巨大激活值)主要是由模型里的“前馈网络”(一种处理信息的模块)产生的。它像一个定向放大器,专门把某些特定的词放大。
  • 比喻:这就像图书馆里有个专门的扩音器,专门把“开头”这个词的声音放大一万倍。

3. 它们各自有什么用?(虽然它们经常一起出现)

论文通过实验证明,这两个现象虽然经常“同框”,但功能不同,甚至可以单独关掉

  • 巨大的激活值(Spike) = 全局的“隐式参数”

    • 作用:它像一个全局的偏置项(Bias)。它的作用是让模型在每一层都保持一种稳定的状态,有点像给模型加了一个“默认设置”。
    • 比喻:就像图书馆里永远亮着的一盏背景灯,不管你在读什么书,这盏灯都亮着,给整个环境定个基调。
  • 注意力陷阱(Sink) = 局部的“短程依赖调节器”

    • 作用:它帮助模型处理短距离的句子结构(比如一句话内部的语法)。它让某些注意力头(Head)专门盯着开头,用来快速定位句子的起始,处理局部信息。
    • 比喻:就像图书馆里有个专门的“书签”,管理员把它夹在第一章,方便快速找到句子的开始,处理短句子的逻辑。

4. 怎么解决?(把“警报器”和“磁铁”拆开)

论文最厉害的地方在于,他们发现可以通过修改建筑设计,把这两个现象拆开:

  1. 关掉“警报器”(消除巨大激活值)

    • 方法:改变“归一化”的方式(比如用 Sandwich Norm 或 QKNorm)。
    • 结果:那个震耳欲聋的“警报器”不响了,巨大的激活值消失了。但是,“磁铁”(注意力陷阱)依然存在!模型依然能把第一个词当作参考点。
    • 意义:这意味着巨大的激活值并不是产生注意力陷阱的必要条件,它只是架构设计带来的一个副作用。
  2. 关掉“磁铁”(消除注意力陷阱)

    • 方法:给模型加上“门控机制”(Gated Attention),或者只让模型在长文本上训练。
    • 结果:如果模型学会了用更聪明的“门”来控制注意力,或者只处理长句子,它就不再需要死死盯着第一个词了,“磁铁”就失效了。
    • 意义:注意力陷阱主要是为了处理短文本而“进化”出来的策略。如果不需要处理短文本,它就没必要存在。

5. 总结:这对我们意味着什么?

这篇论文告诉我们:

  • 不要恐慌:大模型里的这些奇怪现象(巨大的数值、奇怪的注意力集中),并不是模型“疯了”或者“坏了”,而是设计上的巧合
  • 可以优化
    • 如果你想让模型更省电、更稳定(比如做量化压缩),你可以把“巨大的激活值”去掉,而不影响模型理解句子的能力。
    • 如果你想让模型处理超长文本,你可以调整训练方式,让它不再依赖“注意力陷阱”去处理短句子。
  • 核心启示:这两个现象就像鞋带和鞋扣。以前大家以为鞋带系得紧(巨大激活值)是因为鞋扣(注意力陷阱)必须那样扣。现在发现,其实鞋带只是鞋带,鞋扣只是鞋扣,它们只是被现在的鞋子设计(Pre-Norm 架构)绑在了一起。我们可以把鞋带剪短,或者换个鞋扣,鞋子照样能穿,甚至穿得更舒服。

一句话总结
这篇论文揭开了大模型内部两个“怪现象”的真相——它们是因为建筑设计的巧合才凑在一起的,其实它们各干各的活。只要我们换个设计,就能把它们拆开,让模型变得更聪明、更高效。