1、近期,国内LLM头号玩家阿里发布了Qwen3-Next-80B模型,但从名字上看就和其之前发布的模型不同:多了next!这就奇怪了:为啥会多出一个next?这个next究竟是啥意思了?
2、自从3年前 chatGPT 3.5发布后,AI又开始大火,就是因为效果比传统的机器学习好10倍!效果为啥好了,核心还是attention机制!NLP任务中,有一个非常大的挑战:遇到长文本,这些文本包含了多个不同的语义,怎么合理地提炼这些文本的语义了?比如:
“虽说今天台风天,暴雨倾盆、电闪雷鸣,街边的车都被淹了, 但我是底层牛马,兜里的子比脸都干净, 所以这个逼班还是要去上的!上班途中我心情不好,在街边买了个包子就当早饭了。到公司后因为昨天的方案不被领导看好,被老板一顿劈头盖脸地骂了一上午,现在心情更不好了,┭┮﹏┭┮ ”
上面这段话,表达了3个主题,做NLP时是肯定要准确识别的!传统的NLP方案,在遇到长文本时,处理后面的文本会遗忘前面文本的信息,导致主题、语义等提取不全面,严重影响了文本的语义理解!但是在集成attention机制后,这一切都变了:attention机制计算token之间的相似度来决定前面token value信息的保留程度,语义相近的多保留,远的少保留,极大地解决了处理长文本时前面文本信息被部分遗忘的问题,让chatGPT一战成名!但万事有利就有弊,trade off肯定是有的:attention机制的time & space complex是出了名的:o(n^2)! 怎么降低attention的消耗了?
3、为了解决标准attention机制复杂度高的问题,manba诞生了:用线性的 SSM 替换 Transformer 的attention层,用状态方程SSM累积整个seq的信息,通过selective scan动态调整参数 A, B, C,实现硬件友好的并行计算,复杂度降低至O(n)! 既然mamba都这么牛了,那Qwen3-Next-80B是不是直接用mamba架构不就得了,还用标准的attention干啥了?说到底,manba也不是万能的,mamba也有缺陷:
- 长距离回忆(long-range recall)弱:Mamba 的状态更新是“前向累积”的,像一个“压缩记忆”,容易丢失早期细节。在 Needle-in-Haystack(长文找针)或 in-context learning 任务上,纯 Mamba 模型的准确率下降 10-20%,因为它不像attention那样能“全局加权”所有位置。
- 训练稳定性差:SSM 的连续动态系统在并行训练时需特殊技巧(如并行扫描算法),但在大规模语言建模(LLM)上,梯度爆炸/消失更常见。量化(e.g., GGUF)时,Mamba 性能损失大(保留率 < Transformer 的 80%),不适合生产部署。
- 任务通用性不足:Mamba 擅长序列(如 DNA/时间序列),但在多模态或复杂推理任务上,Transformer 的“dural/global” attention更强。纯 Mamba LLM(如 Mamba-LLM)在基准(如 GLUE)上落后 5-10 分。
mamba的优势是线性复杂度,缺点是seq长了会导致旧信息可能被“淡化”或“遗忘 / 重叠” (memory saturation / collision) 。也就是说,它在SSM容量固定时,对“忘记”和“保留”的权衡还不够灵活!
既然mamba的SSM和标准的attention各自都有优势和缺陷,能不能中和一下、各取所长?
4、Qwen3-Next-80B的架构诞生了:标准attention能很好地根据语义保留长seq的早起token信息,但复杂度高!mamba的SSM线性,但可能丢失早期token的语义信息,两者兼得一下行不行了?如下:
这个架构一共有4层,第一层是标注你的attention层,用来精准保留长seq的语义信息;后面三层就不一样了, 变成了Gated Delta Rule,这又是个啥?
5、先看简单的:scaled dot product attention中,旋转位置编码变成了partial Rope,归一化变成了Zero-Centered RMSNorm,这两个变化都是啥?
- partial Rope:传统的position embedding是给token的每个维度都加上,这么做有两个缺陷:
- 计算量大,尤其是几千维度的情况
- 在超长上下文(如 256K~1M tokens)下,position embedding的误差会被accumulate累积,出现过度震荡或失效问题
所以这里改进了一下,只给25%的维度添加position embedding,剩余75%的就不加了,让这些维度专注于学习语义信息!
- zero-centered RMSNorm:
-
标准 RMSNorm 只进行 RMS 缩放而不中心化,可能导致梯度不稳定或范数漂移(如注意力沉没问题)
- 先从输入中减去均值,使数据中心化(centered around zero),然后再应用 RMS 归一化(缩小数值的整体范围,避免梯度过大或不稳定)。同时,还对归一化层的权重施加权重衰减(weight decay),缓解了 MoE(Mixture of Experts)架构中常见的梯度爆炸或不稳定问题(如输出门控和注意力块中的漂移),从而提升整体模型的鲁棒性和收敛速度
-
- output gate:
- attention后输出的矩阵是低秩的,换句话说有很多信息是冗余的,此时加个output gate做筛选,去掉冗余的信息,减少后续的干扰!
6、最关键的来了:什么是gated delta rule?
- Gated:门的作用就是过滤,去掉冗余的,只保留正确和需要的
- delta: 数学符号就代表了增量的意思,表示新增的信息或知识
这两个数学符号连起来代表的就是过滤新增数据,保留有用的信息!什么意思了?比如:“The password is X123. The meeting is tomorrow.” , 模型的目标是记住 “X123”,意味着其他token都不重要,只需要记住目标token的语义信息就行了,最终在整个seq的最后一个token只保留 “X123”的embedding信息即可!但传统的方法序列方案(包括mamba)
- 使用一个统一的衰减因子
γ
来对所有历史信息进行指数衰减。这意味着无论新信息有多重要,它都只能“部分覆盖”过去的所有内容。 - 如果
γ
很小,模型会保留太多无关信息,导致“记忆碰撞”;如果γ
很大,模型又可能过早忘记重要的信息。它无法区分“X123”和“tomorrow”的重要性。
不难看出,问题的根因在γ了:这是事先设置好的超参数,无法动态调整;理想情况下:γ是动态调整的。如果发现token很重要,γ较大,能尽量多保留信息,这该怎么做了?
换个角度看这个问题:线性Transformer的一个根本限制是其信息存储容量是有限的,因为它将整个seq所有的token信息编码后存入一个固定维度的vector S_t
。当seq很长时,多个不同的信息会“挤”在这个vector里,就像把很多东西塞进一个抽屉,最后你再也分不清哪个是哪个了。怎么精准地识别哪些token的信息要保留,哪些要去掉了?Gated Delta Rule 孕育而生了:
重新举个例子:“我的生日是1月1日,现在我们来讨论量子物理。”
- 公式:
S_t = g_t * S_{t-1} + δ_t * v_t
g_t
是一个数据依赖的门控因子(gating term),也是一个介于0和1之间的标量,由当前输入x_t
计算得出。
- 工作原理:
- 快速清除:当遇到一个需要“重置”的上下文切换(如上面的“量子物理”)时,模型可以学习到产生一个极小的
g_t
(接近0)。这样,无论之前的S_{t-1}
里存了多少东西,都会被g_t * S_{t-1}
这一项瞬间抹除。 - 精准更新:紧接着,在同一个时间步,模型会同时计算出一个大的
δ_t
。由于g_t
已经清空了旧状态,δ_t * v_t
就相当于在一个干净的画布上,精确地写入了关于“量子物理”的新信息。
- 快速清除:当遇到一个需要“重置”的上下文切换(如上面的“量子物理”)时,模型可以学习到产生一个极小的
- 总结:Gated Delta Rule 将两种互补的操作完美结合:
g_t
负责 “擦除”(Memory Erasure)—— 快速、全局地清理无关记忆。δ_t
负责 “书写”(Memory Update)—— 精确、局部地更新相关记忆。
新的问题又来了:g_t和δ_t是怎么灵活计算出来的?
7、g_t
(Gating Term) 的原理:快速清除旧记忆
- 目标:
g_t
的唯一使命是决定是否以及多大程度上遗忘过去的所有状态信息。既然是动态计算获取的,又是在model中,肯定要靠神经网络了实时计算得到了! - 计算方式:
g_t
是通过一个门控函数(通常是 Sigmoid 函数)从当前输入x_t
中计算得出的。-
具体公式在论文中体现为:
g_t = σ(W_g * x_t)
(其中σ
是 Sigmoid 函数,W_g
是一个可学习的权重矩阵)。
-
8、
δ_t
(Delta Rule Coefficient) 的原理:精确更新特定关联
- 目标:
δ_t
的使命是决定新输入v_t
应该以多大的强度去覆盖或修改旧状态中与之对应的“键值对”。 - 计算方式:
δ_t
的计算同样基于x_t
,但其结构和目的与g_t
不同。在 DeltaNet 和 Gated DeltaNet 中,δ_t
通常与“键”(Key)的计算紧密相关。- 在线性注意力的框架下,模型将输入
x_t
映射为一个key向量k_t
和一个value向量v_t
。 δ_t
本质上是这个key向量k_t
的一个归一化后的幅度(magnitude)或激活强度。更准确地说,它是通过一个非线性变换(如 SiLU 激活函数)作用于k_t
后得到的一个标量。- 简化理解:
δ_t = φ(k_t)
,其中φ
是一个激活函数(如 SiLU),它将高维的键向量k_t
压缩成一个控制更新强度的标量。
- 在线性注意力的框架下,模型将输入
9、原论文中,哪些token的 δ_t较低、携带的信息可以去掉?普通、高频、语义上模糊或对长期记忆贡献微小的词。它们的 k_t
向量幅度很小,因此 δ_t
接近 0,几乎不会对记忆状态产生影响。
- 例子:
- 冠词:如 "the", "a", "an"
- 介词:如 "of", "in", "on"
- 连词:如 "and", "but", "or" (这些连接词的entropy可能高)
- 非常常见的副词或形容词:如 "very", "really", "good", "bad"
δ_t高的有:人名、地名、国名、数字、技术名称等
参考:
1、https://ar5iv.labs.arxiv.org/html/2412.06464 Gated Delta Networks: Improving Mamba2 with Delta Rule
https://github.com/NVlabs/GatedDeltaNet
2、https://www.bilibili.com/video/BV1k9pqznEEz?spm_id_from=333.788.player.switch&vd_source=241a5bcb1c13e6828e519dd1f78f35b2 线性注意力革命,下一代Attention模型已来!
3、https://huggingface.co/Qwen/Qwen3-Next-80B-A3B-Instruct