阿里巴巴Qwen团队联合爱丁堡大学、斯坦福大学、麻省理工学院及清华大学,做了一项十分硬核的穷举式研究。
他们针对标准Softmax注意力层,设计了30多种门控变体,在15B参数量的混合专家模型(MoE)和1.7B参数量的稠密模型上,进行了长达3.5万亿Token的训练实验。
这项研究入选NeurIPS 2025。
给Softmax注意力机制加上一个简单的Sigmoid门控,就能解决大模型训练不稳、消除注意力汇聚现象,并显著提升长文本外推能力。
在Transformer架构统治自然语言处理领域的当下,虽然整体结构已趋于成熟,但内部组件的微调仍在持续演进。
特别是注意力机制,它决定了模型如何捕捉上下文信息。
这项工作不仅揭示了门控机制的底层原理,更为新一代模型Qwen3-Next的开发奠定了基础。
这是一次对Transformer心脏的精密手术。
一次针对注意力机制的穷举
门控机制并非新鲜事。
在深度学习的早期,LSTM(长短期记忆网络)和GRU(门控循环单元)就依靠门控来控制信息流,解决梯度消失问题。
这种输入、遗忘、输出的控制哲学,是序列建模的基石。
到了Transformer时代,尽管线性注意力(Linear Attention)和状态空间模型(SSM)依然青睐门控,但主流的大语言模型大多沿用了标准的Softmax注意力架构。
现有的改进方案,例如Switch Heads或NSA(Native Sparse Attention),虽然引入了门控,但往往将其与路由机制混淆,难以看清门控本身的价值。
Qwen团队决定拨开迷雾。
他们采用控制变量法,试图回答一个核心问题:在标准注意力层中引入门控,到底有没有用,怎么用才最好。
研究人员拆解了Transformer注意力层的计算过程:查询(Query)、键(Key)、值(Value)投影,缩放点积注意力(SDPA),多头拼接,以及最终输出投影。
为了找到最优解,团队在五个维度上进行了地毯式搜索。
第一是位置。
门控可以放在Q、K、V投影之后,也可以放在SDPA输出之后,或者放在最终的输出层之后。
第二是粒度。
是逐头(Headwise)控制,给每个注意力头一个开关?
还是逐元素(Elementwise)控制,对输出向量的每一维进行精细调节?
第三是共享策略。
是让每个头拥有独立的门控参数(Head-Specific),还是强制所有头共享一套参数(Head-Shared)?
第四是计算方式。
是用乘法门控,还是加法门控?
第五是激活函数。
是经典的Sigmoid,还是SiLU,亦或是简单的恒等映射?
这30多种组合,在数万亿Token的训练中一决高下。
实验结果非常清晰。
在15B参数的MoE模型对比中,两个位置脱颖而出:SDPA输出处(G1)和Value投影处(G2)。
最终的王者是:SDPA输出处的、逐元素的、头特定的Sigmoid门控。
这个配置将困惑度(PPL)从基线的6.026降低到了5.761。
在MMLU、GSM8k等下游任务评测中,它也带来了显著的分数提升。
相比之下,单纯增加模型的参数量,比如增加Key/Value的头数,或者增加专家的数量,收益都不如这个小小的门控来得直接。
这里有几个关键细节值得注意。
头特定(Head-Specific)至关重要。
实验表明,如果强制不同注意力头共享门控参数,性能会大幅回落,甚至接近无门控的基线。
这说明每个注意力头都在捕捉不同的特征,它们需要独立的开关来调节信息流。
乘法门控优于加法门控。
Sigmoid优于SiLU。
这些结论不是理论推导,而是实打实算出来的。
驯服不羁的训练曲线
除了性能提升,门控机制还带来了一个巨大的工程红利:稳定性。
训练超大模型时,工程师最怕看到Loss Spike(损失刺突)。
那一根根突然窜起的损失曲线,往往意味着训练发散,甚至前功尽弃。
在1.7B稠密模型的3.5T Token长跑中,基线模型在训练中途频繁出现损失刺突。
而应用了SDPA门控的模型,损失曲线平滑得像一条直线。
这种稳定性带来了更广阔的调参空间。
通常情况下,为了求稳,我们不敢使用太大的学习率。
但有了门控护体,模型可以承受更大的学习率和批量大小(Batch Size)。
数据显示,当学习率从4.0e-3提升到8.0e-3时,基线模型直接崩溃发散。
即便引入Sandwich Norm这种常用的稳定手段,基线模型也只能勉强收敛,性能大打折扣。
反观门控模型,不仅扛住了8.0e-3的高学习率,性能反而进一步提升。
对于需要消耗巨额算力的LLM预训练来说,这意味着更高的效率和成功率。
为什么一个简单的Sigmoid能有这么大的魔力?
我们可以从线性代数的角度来拆解。
注意力机制中的Value投影矩阵和输出投影矩阵,是两个连续的线性变换。
在数学上,两个连续的线性矩阵相乘,本质上还是一个线性变换。
由于注意力头的维度远小于模型维度,这两个矩阵的组合实际上形成了一个低秩线性映射。
低秩意味着信息的压缩和丢失,限制了模型的表达能力。
在SDPA输出处引入门控,相当于在这两个线性变换之间插了一刀。
Sigmoid函数引入了非线性激活。
这破坏了原有的线性叠加,增加了变换的秩,从而提升了模型的表达能力。
实验也印证了这一点。
即便只是在SDPA输出处插入一个不带参数的RMSNorm(这也是一种非线性操作),PPL也能从6.026降到5.847。
当然,可学习的Sigmoid门控效果更好。
这说明,非线性是门控生效的必要条件,而数据驱动的参数化调节则是锦上添花。
研究人员统计了训练后的门控分数(Gating Scores)。
结果令人惊讶。
在SDPA输出处,门控分数的均值极低,仅为0.116,且大量分布在0附近。
这意味着,门控机制在主动关闭大量的信息通道。
它像一个极其挑剔的过滤器,只放行极少数关键信息。
更有趣的是对比。
SDPA输出门控(G1)的稀疏性,显著强于Value投影门控(G2)。
为什么?
因为G1的门控分数是由当前的查询(Query)决定的。
这被称为查询依赖性(Query-Dependent)。
而G2位于Value投影之后,它的门控分数只依赖于过去的Key和Value。
G1能够根据当前Query的需求,动态地判断哪些信息是杂音,哪些是信号。
这种基于当前上下文的动态过滤,正是人类注意力的本质。
为了验证这一假设,研究团队设计了一个非稀疏Sigmoid实验。
他们强行将门控分数的范围限制在[0.5, 1.0]之间,不让它完全关闭。
结果,模型性能显著下降。
这确凿地证明了:查询依赖的强稀疏性,是门控机制提升性能的核心要素。
消失的幽灵与长度的极限突破
大模型领域有两个著名的幽灵:注意力汇聚(Attention Sink)和大规模激活(Massive Activation)。
注意力汇聚是指,模型倾向于把大量的注意力分数分配给序列的第一个Token。
哪怕这个Token是无意义的开始符号。
这就像一个班级里的学生,不知道看哪里的时候,就死盯着班长。
大规模激活是指,隐藏状态中会出现数值极大的离群点。
这些异常值会给量化和低精度训练带来无穷的麻烦。
门控机制竟然同时驱散了这两个幽灵。
在基线模型中,第21层有83%的注意力权重都给了第一个Token,这是典型的注意力汇聚。
引入SDPA门控后,这个比例骤降到了4%。
注意力分布变得均匀,模型开始真正关注那些有语义的Token。
同时,大规模激活也被按了下去。
基线模型某些层的激活值能飙到1053,而门控模型将其控制在94左右。
这一现象的消失,解释了为什么门控模型训练更稳定。
在BF16半精度训练下,过大的激活值极易导致数值溢出,引发Loss Spike。
门控机制通过稀疏化过滤,切断了这些大数值在残差网络中的累积路径。
通过对比实验,研究人员还理清了因果关系。
如果只在Value处做门控,可以减少大规模激活,但无法消除注意力汇聚。
这说明大规模激活不是导致注意力汇聚的原因。
要想同时解决两者,必须使用头特定、查询依赖的稀疏门控。
既然消除了注意力汇聚,模型对长文本的处理能力自然水涨船高。
注意力汇聚本质上是Softmax归一化带来的副作用。
模型利用第一个Token作为一个垃圾桶,存放那些多余的注意力分数。
这种机制对位置编码非常敏感。
当我们在推理阶段使用YaRN等技术进行长度外推时,位置编码的改变会打破这种微妙的平衡,导致模型崩盘。
Qwen团队将3.5T Token训练的模型,通过YaRN从32k扩展到128k。
在32k的训练长度内,门控模型和基线模型差距不大。
但一旦超出训练长度,进入64k和128k的未知领域,基线模型迅速掉队。
在128k长度的RULER评测中,基线模型得分仅为31.65。
而门控模型依然坚挺,得分高达58.82,超出近一倍。
这是因为门控模型不依赖垃圾桶机制。
它靠的是输入依赖的动态门控来控制信息流。
这种机制对位置编码的被动调整不敏感,因此具备了极强的外推鲁棒性。
回归本质的胜利
这项研究没有发明眼花缭乱的新架构。
它只是在Transformer最关键的部位,加了一个早已存在的Sigmoid函数。
SDPA后置门控(Post-SDPA Gating)。
这个改动极小,增加的计算延迟不到2%。
但收益是巨大的:更强的性能、更稳的训练、更长的上下文。
它证明了,在追求大参数量的同时,对基础组件的精细打磨依然能挖掘出巨大的潜力。
Qwen3-Next已经集成了这一设计。
这也提醒我们,在深度学习的黑盒中,非线性和稀疏性依然是解释智能涌现的两把钥匙。
理解了它们,就理解了模型更深层的思考方式。
参考资料:
https://openreview.net/forum?id=1b7whO4SfY
https://huggingface.co/collections/Qwen/qwen3-next
https://github.com/qiuzh20/gated_attention
END

被折叠的 条评论
为什么被折叠?



