
你有没有想过,一个训练好的语言模型内部,会不会藏着几个"暴君"?
不是比喻意义上的暴君,是字面意义的:某几个数字,大小是周围所有同类数字的几百倍甚至几千倍。它们固守在固定的位置上,几乎不随输入内容变化,像是神经网络里一群拒绝融入集体的异类。
这不是研究者凭空想象出来的猜测,而是在几乎每一个被检查过的Transformer模型里都能观察到的现象。研究者给它起了个名字,叫
**巨大激活值**:Transformer模型中少数坐标数值远超常规激活值的现象,通常集中在某个特定token位置,数值大小几乎不随输入内容变化
这些巨大激活值不是bug,而是features。移除它们,模型质量会下降;它们还是低精度训练和推理的头号障碍,因为普通的量化方法根本容不下这么悬殊的数值跨度。更关键的是,它们和另一个被广泛讨论的现象紧密相连,叫
**注意力汇聚点**:Transformer在自回归生成时,后面几乎所有token都会把一部分注意力权重分配给序列最前面某个信息量很小的token(通常是第一个token),这个现象被称为注意力汇聚
这篇论文想弄明白的,是巨大激活值这辈子都经历了什么。它什么时候诞生?谁决定了它该多大?又是什么力量让它最终停止生长,甚至开始衰退?
这些问题听起来有点抽象,但背后的答案,牵出了一条意料之外的线索:权重衰减,这个大家训练模型时习以为常、几乎不会多想一眼的超参数,原来一直在幕后操控着这群"暴君"的兴衰。
之前的研究讲了一半的故事
在这篇论文之前,已经有两条线索指向了巨大激活值的秘密,但都只讲了故事的一半。
第一条线索来自陈等人2026年的工作,他们提出了一个很漂亮的机制解释:为什么巨大激活值有用?因为在因果掩码下,序列最前面的token会被后面所有位置关注,这意味着它要承接所有后续位置传回来的梯度,成了一个
**梯度汇聚点**:由于被大量后续token关注,某个token在反向传播时会聚集大量梯度,这个位置被称为梯度汇聚点
问题是梯度太多会让训练不稳定。而巨大激活值刚好能解决这个问题:归一化层的反向传播雅可比矩阵里天然带着一个1/rms(x)的衰减因子,激活值越大,传回去的梯度就越小。换句话说,巨大激活值像个减压阀,把本该汹涌而来的梯度洪流硬生生压小。
这个解释漂亮归漂亮,但它给出的只是一个下限条件:激活值大到某个程度,梯度就能被压到目标范围以下。它是单向的,只管下限,不管上限。它没告诉你巨大激活值会不会一直涨下去,会不会有一天掉头往下走。
第二条线索来自Gallego-Feliciano等人2025年的另一项研究,他们发现巨大激活值在训练过程中的增长曲线极其规律,可以用一个五参数公式精确拟合,拟合优度高达0.984。这条曲线画出了巨大激活值"长成什么样",但完全没解释"为什么长成这样"。
一个是约束,一个是曲线。这篇论文想做的,是把这两条线连起来,找到背后真正驱动增长、决定转折点、决定谁能活下来的那只手。
巨大激活值住在哪个token上
要讲清楚这个故事,先得弄明白几个基本概念。
现代大语言模型大多是decoder-only的Transformer,每一层由残差连接包裹的注意力和MLP模块组成,信息从输入一路加到输出,叫
**残差流**:Transformer每一层输出都通过残差连接叠加到原有的隐藏状态上,形成逐层累加的信息流,是巨大激活值真正"居住"的地方
残差流上每个token、每个维度都有一个数值,这就是研究者口中的"激活值"。而巨大激活值几乎总是出现在某个特定的token位置上,这个位置被称为"汇聚位置"。有意思的是,它不一定是序列的第0个token,研究者是通过谁的激活值最大来反推汇聚位置的,而不是先入为主地假定是第一个词。
研究者衡量巨大激活值用了三把尺子。第一把是单个通道的绝对数值,简单直接。第二把是最大值除以中位数的比值,这是前人研究常用的指标。第三把是整个token所有维度的均方根,也就是rms(x),这是陈等人梯度理论里真正起作用的量。
这三把尺子看起来是在测同一件事,其实经常互相打架。比值的分母是中位数,而中位数本身在训练过程中会不断下降。于是会出现一种诡异的局面:巨大激活值的绝对数值明明在下降,但由于中位数掉得更快,比值反而还在往上爬。论文里实实在在观测到了这种现象,这也提醒了一件事,用什么指标讲故事,会讲出完全不同的故事版本。
梯度衰减看的是全局,不是某一个数字
陈等人的理论说梯度衰减跟rms(x)挂钩,但rms(x)是整个token所有维度算出来的集体属性,不是巨大激活值这一个通道单独的功劳。这篇论文设计了一组消融实验来验证这件事。
实验方法很直接:挑出巨大激活值所在层,把它单独清零,记录清零后token的rms变化和反传梯度变化;再分别清零其他几个"次大"的通道,做同样的记录。如果梯度衰减真的只听rms(x)的话,那无论清零哪个通道,梯度乘以rms应该始终接近一个常数。
结果确实如此。清零巨大激活值后,梯度乘以rms等于0.94;清零其他大通道,这个乘积落在0.89到0.95之间,基本是同一个区间。更有意思的是,单独清零巨大激活值,整个token的rms只掉了大约5%,说明它根本不是rms的唯一贡献者,只是贡献较大的那几个之一。
这就像一个合唱团的音量控制。如果你以为整首歌的音量全靠领唱一个人撑着,把领唱静音应该会让整首歌瞬间变小声。但实验告诉你的是,把领唱静音后,音量只掉了5%,因为还有一群声部跟着一起撑着整体音量。真正决定歌曲响度的,不是某一个嗓子,而是整个合唱团的集体输出。如果误以为是领唱独自撑场,你可能会把全部精力放在控制那一个人身上,结果发现其他声部早就悄悄补上了空缺,努力白费。
这个发现有个重要的推论:很多看起来是"巨大激活值专属"的现象,很可能只是"数值够大"就会有的现象。研究者接下来专门去验证了这件事。
看起来专属,其实只是数值大
在扰动实验里,研究者先把巨大激活值强行清零,看训练继续进行后它会不会被"修复"回来;再把它强行放大两倍,看它会不会被"拉"回原来的轨道上。结果确实如此,被清零的会重新长回来,被放大的会被拉回来,而且这些修复行为比对照组的随机通道强得多,一开始让人以为巨大激活值真的有特殊地位。
但这个对照组本身有个bug:随机选的通道,数值本来就比巨大激活值小得多。拿一个数值小的东西和数值大的东西比修复力度,这个比较从一开始就不公平。
于是研究者改用了数值匹配的对照方式。他们比较两种操作:一种是单独把巨大激活值放大,另一种是把排名前16的通道按比例一起放大,两种操作制造出同样大小的rms增量,但第一种会严重扭曲token的方向(扭曲程度是第二种的11倍),第二种基本保持方向不变。
如果巨大激活值真的享有特殊待遇,这两种操作应该引发不一样的"拉回"反应。但实验数据显示,两者去除超额rms的比例几乎一样,分别是73%和71%。真正起作用的是rms总量的变化,跟方向扭不扭曲没什么关系。相比之下,一个随机小通道的拉回比例只有20%左右。
这个结果说明一件事:所谓的"巨大激活值专属调控",本质上是"大数值"这个属性带来的,不是因为它住在那个特定位置上。它的归一化增益也一样,跟其他同等量级的大通道差不多受到抑制,并不是单独被针对。
这就好比一个班里成绩最拔尖的学生,老师对他格外严格。乍一看像是老师特别针对他,但如果你把全班前八名放在一起看,会发现老师对所有排名靠前的学生都一样严格,只是这个学生恰好排第一,显得格外明显而已。如果没有做这个前八名的对照,你很容易误以为老师真的在针对某一个人,从而得出一个错误的因果结论。
换个随机种子,巨大激活值就换人做了
这篇论文一个让人意外的发现是:巨大激活值到底落在哪个通道上,是随机的。
研究者训练了一个5100万参数的小模型,换一个随机种子,主导通道从207号变成263号。再去看发布的Pythia-410m模型,三个不同种子的版本,排名前三的汇聚通道完全没有重叠。通道数量(一到三个)、出生的层数、汇聚位置,统统随种子变化。
**Pythia**:由EleutherAI开发的一系列开源大语言模型,参数规模覆盖7000万到69亿,并公开了训练过程中约150个中间检查点,是研究训练动态的常用对象
但一旦某个通道在早期竞争中胜出,它的身份就迅速稳定下来,不再轻易变动。在Pythia-410m里,最终胜出的前三个通道,从大约4000步开始就稳稳占据前三名的位置,一直保持到14.3万步训练结束。在那5100万参数的小模型里,主导通道经历了221号到308号再到207号的几次易位,但大约5000步之后就彻底锁定,之后换十段完全不相关的文本去测,胜出的通道身份都没变过。
这个过程很像抢座位游戏。音乐停下的那一瞬间谁坐到了椅子上是随机的,但一旦坐下,这个人就一直占着这个座位,直到游戏彻底结束都不会再变。如果没有这种早期锁定机制,模型每次推理可能都要重新决定谁来扮演"汇聚点"的角色,整个系统会变得极不稳定。锁定机制保证了同一个模型面对不同输入时,行为是一致和可预测的。
权重衰减才是幕后真正的操盘手
接下来是全文最核心的发现。研究者发现,全局激活规模(也就是中位数绝对值)的走向,完全由权重衰减这一个超参数决定。
**权重衰减**:训练优化器里一个常见的正则化手段,会在每一步更新时让权重按比例向零收缩,目的是防止权重无限增长、提升泛化能力,系数记为λ
研究者从一个接近峰值的检查点出发,分出两条continuation路径,一条保留权重衰减,一条关掉。关掉权重衰减后,全局激活规模继续往上爬。保留权重衰减,哪怉学习率固定不变,全局规模也会掉头下降,幅度是-11%;如果再加上学习率衰减调度,下降幅度会放大到-18%。
这个结果意味着什么?意味着巨大激活值的衰退,根本不是因为学习率在下降导致训练变弱,而是权重衰减这个力量在主动把它往回拉。
研究者进一步做了剂量反应实验,把权重衰减系数λ在0.05、0.1、0.2、0.4几个档位之间调节,记录巨大激活值达到峰值的训练步数。结果显示,峰值出现的时间点和λ的对数呈近似线性关系,相关系数达到-0.985,衰减系数越大,峰值来得越早。而λ等于0时,在观测窗口内压根不会出现峰值,它会一直往上涨。
更漂亮的是,峰值时刻巨大激活值的大小,和λ的-1/2次方近似成正比。
这就好比往气球里打气。打气的力量(梯度驱动的增长)和放气阀的开度(权重衰减系数)在互相角力。阀门开得越大,气球能撑到的最大体积就越小,爆气球的时间也来得越早。如果完全没有放气阀,气球会一直吹大,直到你停止打气为止,这正是λ=0时观测到的情形:没有峰值,只有持续增长。
一个平衡方程:增长力和衰减力的拔河
研究者为这个现象建立了一个理论框架,核心思想是巨大激活值的大小由写入它的那部分权重的范数决定,写入权重由
**AdamW**:一种广泛使用的深度学习优化器,结合了Adam的自适应梯度调整和解耦的权重衰减机制,更新公式里梯度和衰减项是分开处理的
更新。关键的量叫
**维持力**:定量描述损失驱动的梯度沿着权重自身方向的推力大小,是一个归一化后的分数增长率,直接与权重衰减系数λ可比
当维持力大于λ,通道就在增长;小于λ,通道就在衰退。巨大激活值的峰值,恰好出现在维持力等于λ的那个瞬间,这是一个精确的平衡点。
但这里有个大坑。研究者测量了原始的、未经预处理的梯度构成的维持力,发现它只有大约万分之一的量级,远远低于Pythia使用的λ=0.01。按这个数字,巨大激活值的队伍根本撐不起来,应该早就被权重衰减碾压殆尽了。
真正撑起这个队伍的,是AdamW的二阶矩归一化处理。一个持续但微弱的梯度信号,经过二阶矩归一化之后,会被放大好几个数量级。经过这层预处理后,大通道队伍的维持力才真正站到了衰减阈值之上,而随机通道的维持力依然趴在零附近。
这就像一个长期坚持小额定投的储户。单看他每天存进去的钱,少得几乎可以忽略,存银行活期利息根本追不上通胀。但如果有一种特殊的复利机制,把这些微小但稳定的投入经过长期放大处理,最后积累出的资产规模远超预期。那个"复利机制"就是AdamW的二阶矩归一化,它把持续但微弱的信号转化成了实际能对抗衰减压力的力量。如果没有这层处理,光看原始数字,你永远想不到这些微弱的梯度居然能支撑起整个巨大激活值的生存。
研究者还通过拟合确定了维持力随数值大小衰减的具体规律,指数为-1,也就是说数值越大,边际的维持力就越弱,每多长一点,就越费劲。这和经济学里的边际效用递减有点神似,早期容易爆发式增长,后期增长越来越吃力,最终被衰减力反超,触发峰值和下降。
需要说明的是,这个平衡方程只解释了"上升到峰值"这一段,下降阶段发生的是另一回事。研究者仔细检查发现,巨大激活值下降的时候,写入它的权重范数本身其实还在增长,并没有缩小。换句话说,不是权重变小了导致激活值变小,而是同样大小的权重,产生出来的激活值变少了。这个比例关系为什么会松动,论文里诚实地留了一个空白,没有强行给出答案。
巨大激活值从来不是独自撑场的个体
把时间线拉长再看Pythia-410m的训练轨迹,会发现一个清晰的竞争消长过程。从16000步到14.3万步,排名前三的"赢家"通道经历了先涨后小幅回落的曲线,而排名4到12的"中间层"通道则在不同时间点依次悄悄崩溃。前三名占整个汇聚token平方范数的比例,从一开始的55%一路涨到99%。
这不是什么"总量守恒,此消彼长"的简单重新分配,因为整个token的rms总量本身也在先涨后跌,赢家增长的部分,大约是中间层衰退部分的2.9倍,数字根本不对等。
这个汇聚机制还有另一个值得关注的特性,它高度冗余。研究者单独清零某个胜出通道,汇聚token获得的注意力权重只掉了0.004到0.015,几乎看不出影响。但如果同时清零排名前三的三个通道,注意力权重会猛跌0.08,是单独清零效果总和的大约3倍,呈超加性。随机通道的清零几乎毫无影响。
这就像一个有多重备份的供电系统。单独切断一条输电线路,城市照常运转,因为还有别的线路顶上。但如果一次性切断好几条关键线路,整个片区会突然大面积断电,而且断电规模比单独线路影响相加还要大,因为备份之间原本还承担着互相分担负载的作用。切断太多,系统的冗余结构本身被破坏了,崩溃的烈度远超预期。这解释了为什么巨大激活值从来不是一个孤军奋战的英雄,而是一个有备份、能互相兜底的小团队。
规模和训练时长共同决定了巨大激活值能不能"立起来"
研究者还检查了一个前提条件:要做数值匹配的对照实验,首先得保证真的存在数值相近的其他通道可以用来比较。
他们对比了从头训练的小模型和不同规模的Pythia模型(7000万到69亿参数)。两个系列都显示,参数规模越大,最大值和中位数的分离程度越高。但从头训练的小模型训练步数远远不够,它们的数值分布仍然是一个连续体,没有明显的断层;而训练充分的Pythia模型则呈现出少数几个大通道和一个坍缩的基础群体之间清晰的裂缝。
研究者还单独测量了一个叫"隔离度"的指标,表示排序后相邻通道数值比值里最大的那个跳跃。Pythia-410m和1.4B模型刚开始训练时隔离度接近1,代表数值连续分布;训练到14.3万步时,Pythia-410m的隔离度涨到了大约17,代表少数通道已经彻底和主体脱离。
更微妙的是,分离度(最大值除中位数)和隔离度(断层跳跃)这两个指标的发展节奏完全不同。分离度大约在1万步左右就基本稳定下来了,但隔离度一直持续增长到训练结束。这意味着数值大小的增长和"少数通道和多数通道彻底拉开差距"这两个过程,是两件独立发生的事,不能混为一谈。
这个未解之谜,留给了读者
论文作者很坦诚地承认,有一个关键问题他们没能解答:在那个赢家小团体内部,到底是什么决定了谁最终存活、谁最终崩溃?
他们排除了几个候选解释。崩溃中的通道,写入权重的梯度并没有像1/rms那样下降,反而梯度范数乘以rms的乘积还涨了1.5到2倍,梯度量级跟存活通道差不多。换种子重跑7000万和1.6亿参数的模型,存活通道的数量和总注意力汇聚程度之间几乎没有相关性(相关系数接近0),说明不是靠一个固定的"注意力配额"决定能活下来几个。总汇聚rms也不是守恒量。甚至一个存活下来的通道,在某些留出文本上测出的维持力居然是负的。
这些排除法把问题钉得更死了,但没有给出最终答案。研究者诚实地写下:这个机制依然未解。
写在后面
读完这篇论文,最让我停下来想了很久的一个细节,是巨大激活值衰退阶段那个反直觉的发现:权重并没有缩小,激活值却在变小。
这个发现挑战了一个我原本理所当然的假设,权重衰减这个名字本身就暗示着"权重会被衰减掉",大多数人(包括我)下意识会认为激活值下降就意味着权重在收缩。但论文用实际测量打破了这个直觉:同样大小的权重,产生出来的激活值变少了,中间一定发生了某种关系的松动,但论文没有告诉我们是什么。这种"诚实地留白"反而比强行给个解释更让人信服,因为很多论文为了显得完整,会硬凑一个听起来合理但其实没验证过的机制。
另一个值得单独说一说的细节是通道身份的随机性。换个种子,巨大激活值就换了一个完全不同的通道来扮演。这意味着如果你想研究或者干预某个具体的"问题通道",针对性地抑制它可能根本没用,因为这个角色会在别的坐标上重新长出来。这对于想通过量化或剪枝解决巨大激活值问题的工程师是个很实际的提醒:别盯着某个具体数字编号的通道做手术,盯着的应该是整个token的集体规模。
论文结尾那句话我印象很深:巨大激活值不是一个享有特权的架构坐标,而是训练过程挑选出来的、为集体汇聚机制服务的贡献者。这句话听起来平淡,但背后的实验链条相当扎实。它把一个看似"玄学"的现象,拆解成了一场由权重衰减和优化器预处理共同主导的、带点随机性的竞争过程。
那个没有解开的谜题,赢家和输家在维持力上为什么会重叠却走向不同命运,或许才是接下来最值得追问的问题。会不会有一种更细粒度的信号,藏在我们还没想到去测量的地方?
Q&A
Q1:巨大激活值是什么,为什么它值得研究?
A:巨大激活值是指Transformer模型残差流中少数坐标数值远超普通激活值(可达几百甚至几千倍)的现象,通常固定在某个token位置。它们和注意力汇聚机制紧密相关,移除会导致模型质量下降,同时是低精度训练和推理的主要障碍,因此理解它的产生、增长和衰退机制对模型优化很重要。
Q2:权重衰减和巨大激活值的峰值有什么关系?
A:论文发现权重衰减系数λ直接决定巨大激活值峰值出现的时间和大小。保留权重衰减会让激活值规模下降,去掉权重衰减则会让它持续上涨。峰值出现时间与λ的对数近似线性相关,峰值大小与λ的负二分之一次方近似成正比,这背后是AdamW预处理增长力和权重衰减拉力之间的平衡关系。
Q3:巨大激活值总是固定在同一个通道上吗?
A:不是。论文发现换一个训练随机种子,巨大激活值所在的具体通道会完全改变,在不同种子下Pythia-410m模型排名前三的汇聚通道没有任何重叠。不过一旦某个通道在训练早期胜出,它的身份会迅速稳定下来并长期保持,这说明通道身份是随机产生但早期锁定的。







