MDN: 面向 Delta 线性注意力的逐步动量并行化方法 MDN: Parallelizing Stepwise Momentum for Delta Linear Attention
通过分块并行算法把逐步动量机制引入Delta线性注意力,在保持严格因果性的同时实现高效训练。
前置知识
线性注意力 (Linear Attention)
线性注意力通过去除Softmax算子将自注意力的复杂度从O(L²)降低到O(L)。它将Q、K的乘积顺序对调,引入一个大小恒定的状态矩阵 $S_t = \sum_{i=1}^t k_i v_i^\top$,输出为 $o_t = S_t^\top q_t$。这种方法使得推理时的状态是常数大小的,支持高效的长序列处理。
本文的工作完全建立在线性注意力的递归结构之上,并把每一次状态更新重新解释为一次在线优化步骤,所以必须先理解为什么 $S_t$ 可以视为fast weight memory。
Mamba2 / Decay Rule
Mamba2通过引入一个数据相关的标量衰减因子 $\alpha_t \in (0,1)$ 解决了vanilla线性注意力中累积隐藏状态无界增长的问题。其更新规则为 $S_t = \alpha_t S_{t-1} + \beta_t k_t v_t^\top$,对应带有权重衰减的潜在目标函数的闭式SGD解。
MDN是Mamba2体系的自然扩展,$\alpha_t$ 在MDN中依然存在,但被复用于定义fast weight的衰减和momentum的更新耦合。
Delta Rule (Gated DeltaNet)
Delta Rule引入了对value的修正项 $\tilde{v}_t = v_t - S_{t-1}^\top k_t$,使得状态在写入新信息时会减去当前key对应的已有预测,类似一种正交化操作。Gated DeltaNet (GDN) 进一步把衰减项和数据相关的修正结合: $S_t = \alpha_t (I - \beta_t k_t k_t^\top) S_{t-1} + \beta_t k_t v_t^\top$。
MDN以GDN的Delta结构为基础,把动量叠加到修正梯度上,所以必须理解修正值 $\tilde{v}_t$ 如何隐式充当梯度信号。
动量优化器 (Momentum-based Optimizer)
动量方法(如Polyak、Nesterov动量)通过累积历史梯度 $M_t = \mu M_{t-1} + \eta \nabla L$ 来平滑更新方向、抑制噪声。在深度学习中,动量被证明能加速收敛、跳出尖锐极小值,并能减少梯度噪声的方差。
本文将动量机制从参数空间搬到序列建模的状态更新空间,所以读者需要理解为什么动量能稳定优化,并熟悉 $\mu, \eta$ 等超参数的角色。
分块并行算法 (Chunkwise Parallel Algorithm)
在线性注意力中,分块算法把长度为L的序列分成多个长度为C的块,对每个块内部使用矩阵乘法并行计算,块间则保持递归状态传递。这种方法在保持因果性的同时获得了接近全并行的训练效率,整体复杂度为 $O(LCd + Ld^2)$。
MDN的工程核心就是把逐token的动量更新改写成块内可并行的形式,必须理解块内并行和块间递归如何配合。
二阶动力学系统 / 特征值分析
递推关系 $S_t = A_t S_{t-1} + B_t$ 可以视为一个离散线性动力学系统,其稳定性由状态转移矩阵 $A_t$ 的特征值决定。当特征值为复数(复共轭对)时,系统表现为阻尼振荡;特征值实部为负时则会出现符号翻转和发散行为。
本文首次把Mamba2/GDN等一阶递推推广为二阶动量系统,并通过特征值分析指导门控设计。
研究动机
近年来线性注意力(如Mamba2、Gated DeltaNet、KDA)已经在长序列建模上追平甚至超越Transformer,但研究者发现这些模型在in-context retrieval任务上仍有明显短板。以Multi-Query Associative Recall (MQAR) 为例,GDN在512序列长度、32键值对的设置下准确率仅约15%,而Transformer可达到43%以上。根本原因在于现有LA机制的递推更新均由naive SGD推导得到——GDN对应 $\frac{\beta_t}{2}\|\tilde{S}_{t-1}^\top k_t - v_t\|^2$ 的SGD解,SGD完全依赖瞬时梯度、对噪声敏感、缺乏历史信息积累,导致长程细节捕捉能力差。在1.3B模型、100B tokens的实验中,GDN和KDA的in-context retrieval平均分只有32.80和32.62,远低于Transformer的40.60。
本文的目标是本文的目标是把动量优化机制引入线性注意力的状态更新中,使状态更新过程从一阶SGD升级到一阶动量(Heavy-ball动量),从而获得历史梯度累积、噪声抑制、收敛稳定等优化层面的优势。具体目标包含三点:(1)设计一个递推公式,能在线性注意力的fast weight更新中嵌入动量状态 $M_t$;(2)开发一个支持严格因果性、可在GPU上高效并行训练的分块算法;(3)从二阶动力系统角度分析该递推的稳定性,并据此设计出可在100B token规模稳定训练的门控参数化方法。
与已有工作不同的是,现有引入动量的非线性RNN工作(如TTT、Atlas、Titans、LMM、LaCT)大多采用blockwise或sliding-window方案:以块为单位执行动量更新以提升硬件利用率。然而block size > 1时,块内出现非因果信息泄露(intra-block non-causality),造成训练-推理不一致;而sliding window方案(如Atlas)则截断了部分历史信息,限制了表达能力。Sun et al. (2024) 经验性地证明block size=1(即stepwise momentum)效果最强,但这种token-by-token的更新顺序性极强,无法在大规模预训练中高效实现。本文的核心切入角度正是这一矛盾:从几何视角出发,对逐步动量更新做系数重排(geometric decoupling),首次让严格因果的stepwise momentum具备可扩展的chunkwise并行训练能力,同时保持逐token递推的因果性。
核心方法
MDN的核心思想是把线性注意力的状态更新解释为针对fast weight $S_t$ 的在线优化步骤,然后在该优化过程中加入动量状态 $M_t$。具体来说,给定损失 $\mathcal{L}(\tilde{S}_{t-1}) = \frac{1}{2}\|v_t - \tilde{S}_{t-1}^\top k_t\|^2$(其中 $\tilde{S}_{t-1} = \alpha_t S_{t-1}$ 是衰减后的fast weight),其闭式动量更新为 $M_t = \mu_t M_{t-1} - \eta_t k_t(v_t - \alpha_t S_{t-1}^\top k_t)^\top$ 和 $S_t = \alpha_t S_{t-1} - \beta_t M_t$。这一递推本质上是一个二阶动力系统:当 $\mu_t > 0$ 时引入记忆效应,$\eta_t$ 控制有效学习率,$\beta_t$ 决定动量对当前更新的影响。直接实现这一递推的复杂度是 $O(L\cdot d_k \cdot d_v)$ 但完全顺序,无法GPU并行。关键技术贡献是从几何视角推导出一个等价的chunkwise并行公式:将嵌套求和 $\sum_{i=1}^t \sum_{j=1}^i a_i b_j$ 通过行-列扫描重排为 $\sum_{i=1}^t \sum_{j=i}^t a_j b_i$,从而把外积与系数解耦。该重排把块内权重 $k_i \tilde{v}_j^\top$ 的系数从双层依赖变为可分的形式,使得块内并行计算成为可能。最终MDN使用Triton实现,并配合从特征值分析导出的稳定门控 $\beta_t \le 1 - \alpha_t$ 和 $\mu_t \in (e^{-1}, 1)$,把所有特征值约束在右半平面,避免符号翻转导致的训练崩溃。
MDN的关键创新是双重的:算法层面,提出了基于几何重排的chunkwise并行算法,使原本严格顺序的stepwise momentum在保持因果性的同时可大规模并行训练;理论层面,将动量递推重新表述为二阶离散状态空间 $[S_t; M_t] = A_t [S_{t-1}; M_{t-1}] + B_t$,并证明该系统的转移矩阵 $A_t$ 包含复共轭特征值,扩展了一阶递推(Mamba2/GDN)只能产生实特征值的表达能力瓶颈。这种“复特征值→阻尼振荡→相位感知记忆”的分析直接指导了门控约束的设计,使二阶系统在大规模训练中保持稳定。和已有方法相比,本质区别在于:Mamba2和GDN的更新等价于对latent loss做一次SGD,KDA和Comba引入了输入门或查询修正但仍是一阶SGD,而MDN是首个把Heavy-ball动量机制真正嵌入线性注意力递推,并通过严格的特征值分析确保大模型训练稳定性的方法。
方法步骤详情
MDN的完整方法流程包含以下步骤。第一步是建立递推公式:从latent loss $\mathcal{L} = \frac{1}{2}\|v_t - \tilde{S}_{t-1}^\top k_t\|^2$ 出发,计算梯度 $\nabla \mathcal{L} = -k_t(v_t - \tilde{S}_{t-1}^\top k_t)^\top$,得到动量更新 $M_t = \mu_t M_{t-1} - \eta_t k_t \tilde{v}_t^\top$(其中修正值 $\tilde{v}_t = v_t - S_{t-1}^\top p_t$,$p_t = \alpha_t k_t$)和fast weight更新 $S_t = \alpha_t S_{t-1} - \beta_t M_t$。第二步是推导并行公式:将 $M_t$ 展开为 $M_t = \bar{\mu}_t M_0 - \sum_{i=1}^t \frac{\bar{\mu}_t}{\bar{\mu}_i} k_i \tilde{v}_i^\top$,代入 $S_t$ 后得到 $S_t = \bar{\alpha}_t S_0 - b_t M_0 + \sum_{i=1}^t \gamma_{t,i} k_i \tilde{v}_i^\top$,其中 $b_t = \bar{\alpha}_t c_t$,$\gamma_{t,i} = \frac{\bar{\alpha}_t}{\bar{\mu}_i}(c_t - c_{i-1})$,$c_t = \sum_{i=1}^t \frac{\beta_i \bar{\mu}_i}{\bar{\alpha}_i}$。第三步是几何重排:原求和 $\sum_{i=1}^t \sum_{j=1}^i a_i b_j$ 按行扫描可改写为列扫描 $\sum_{i=1}^t \sum_{j=i}^t a_j b_i$,从而把内积系数与外积分离,使块内可写成 $(Q K^\top) \odot \Gamma \cdot \tilde{V}$ 的形式。第四步是分块实现:每个chunk内并行计算修正值 $\tilde{V}[t] = U[t] - Y[t] S[t] + Z[t] M[t]$,其中 $U[t] = T[t] V[t]$,$Y[t] = T[t] \text{Diag}(\bar{\alpha}_{0 \to C-1}) P[t]$,$Z[t] = T[t] \text{Diag}(b_{0 \to C-1}) P[t]$,$T[t] = \text{Tril}(I + P K^\top \odot \Gamma^-)^{-1}$。第五步是系数对数域计算:为避免数值溢出,所有累积乘积 $\bar{\alpha}_t, \bar{\mu}_t, c_t$ 在log域内用cumsum和logcumsumexp算子计算,$\Gamma[t]$ 矩阵通过下三角log-broadcasting构造($O(C^2)$ 空间、$O(\log C)$ 并行时间)。第六步是稳定门控:基于二阶系统的特征值分析($\lambda_\pm = \frac{\alpha_t + \mu_t - \alpha_t\beta_t\eta_t\|k_t\|^2 \pm \sqrt{(\alpha_t + \mu_t - \alpha_t\beta_t\eta_t\|k_t\|^2)^2 - 4\alpha_t\mu_t}}{2}$),约束 $\beta_{\max} = \sin^2(\theta)$,$\alpha_{\max} = \cos^2(\theta)$,$\theta = \arctan(\eta_t \cdot s)$,并把 $\log \mu$ 下界clamp到-2、$\mu_t$ 限制在 $[e^{-1}, 1)$,确保所有特征值落入右半平面(实部非负),避免符号翻转。第七步是架构集成:MDN沿用GDN的主干结构,加入输出端query修正 $q_t = q_t - d k_t$(来自Comba),门控参数 $\alpha_{\log}, \mu_{\log}, \beta, \eta$ 由低秩矩阵 $W_{\alpha/\beta/\mu/\eta} \in \mathbb{R}^{d_{in} \times h}$ 计算($h \ll d_{in}$,引入可忽略参数),最终通过Triton kernel实现,训练时启用 $\tilde{V}[t]$ 物化策略以加速反向传播。
技术新颖性
MDN的技术新颖性体现在三个层面。第一是算法层面的geometric decoupling:传统chunkwise算法(如GDN的WY representation)只处理一阶乘积的累加,而MDN需要处理带有动量系数的双层求和。通过对下三角域 $\{1 \le j \le i \le t\}$ 做行-列扫描重排,把 $O(t^2)$ 依赖的嵌套累加变换为可分形式,这是本文最具技术深度的贡献,也是首次在二阶递推上实现严格因果的分块并行。第二是理论层面的二阶动力学视角:本文首次把动量版线性注意力写为 $2d_k d_v$ 维block状态空间 $[S_t; M_t] = A_t [S_{t-1}; M_{t-1}] + B_t$,推导出 $A_t$ 的闭式谱 $\{\alpha_t, \mu_t, \lambda_+, \lambda_-\}$,揭示了动量引入的复共轭特征值会扩展一阶系统的表达能力(一阶只有实特征值,无法建模阻尼振荡),同时也引入了符号翻转的风险。这一分析不仅给出稳定性条件 $-(1-\alpha_t)(1-\mu_t) \le \alpha_t\beta_t\eta_t\|k_t\|^2 \le (1+\alpha_t)(1+\mu_t)$,更直接指导了 $\beta \le 1 - \alpha$ 的门控约束设计。第三是工程层面的训练优化:通过物化修正值 $\tilde{V}[t]$ 而非完整状态 $S[t], M[t]$,MDN在保留chunkwise并行能力的同时降低了反向传播的内存开销,使训练吞吐量与Mamba2、KDA相当。这三个层面的结合让MDN成为首个在400M/1.3B规模上稳定训练的动量型线性注意力模型。
实验结果
MDN在合成检索和语言建模评测中都展现出稳定且一致的性能提升。在合成实验MQAR上,128维和256维的MDN在512–2048序列长度、32–512键值对的所有设置下都达到与KDA相当的检索准确率,显著超越GDN和Mamba2。语言建模方面,400M规模MDN在LAMBADA上取得41.62的最低困惑度(对比Transformer 54.36、GDN 45.63、KDA 43.44),commonsense reasoning平均分49.42为所有基线最高,in-context retrieval平均分26.76大幅领先其他线性模型(KDA 24.47、Comba 24.01、GDN 22.93、Mamba2 21.12)。扩展到1.3B规模、100B tokens后,MDN的LAMBADA困惑度进一步降至14.87,仍为所有模型最优(vs Transformer 17.90、GDN 16.12、Comba 15.17、KDA 16.83),commonsense reasoning平均分58.82也最高,in-context retrieval平均36.14超过KDA的32.62和Comba的35.25。长上下文评测中,MDN在LongBench(16K长度)上以20.18的平均分排名第一,尤其在Code(LCC 50.50、RBP 39.13)和Summarization(MNs 18.85)任务上优势明显。Needle-In-A-Haystack测试中,MDN在超过训练长度的8K上下文下表现尤为突出,多needle设置MK-NIAH-1、MQ-NIAH、MV-NIAH分别达到38.60、35.15、27.60,比最强基线分别高13.40、11.45、8.95个点。效率方面,MDN的解码延迟与GDN、Comba几乎相同,保持线性复杂度对Transformer的优势;训练吞吐量在H100单卡上略低于GDN/Comba(受双状态计算的额外开销影响),但与Mamba2、KDA基本持平。隐藏状态统计分析显示MDN在解码过程中fast weight的更新范数明显高于GDN和Comba,验证了动量机制带来的更丰富的状态演化。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| LAMBADA 困惑度 (400M, 15B tokens) | Perplexity (lower is better) | 41.62 | Transformer 54.36 / Mamba2 60.42 / GDN 45.63 / KDA 43.44 | 相比最强基线KDA降低1.82,相对提升4.2% |
| Commonsense Reasoning Avg (400M) | Accuracy (higher is better) | 49.42 | Transformer 48.06 / GDN 48.51 / Comba 48.91 / KDA 49.06 | 比KDA高0.36点,比Transformer高1.36点 |
| In-Context Retrieval Avg (400M, 2K input) | Accuracy (higher is better) | 26.76 | Transformer 30.42 / Mamba2 21.12 / GDN 22.93 / KDA 24.47 | 比KDA高2.29点,比GDN高3.83点,显著缩小与Transformer的差距 |
| LAMBADA 困惑度 (1.3B, 100B tokens) | Perplexity (lower is better) | 14.87 | Transformer 17.90 / Mamba2 18.20 / GDN 16.12 / Comba 15.17 / KDA 16.83 | 比Comba降低0.30,比GDN降低1.25,所有模型中最低 |
| Commonsense Reasoning Avg (1.3B) | Accuracy (higher is better) | 58.82 | Transformer 57.95 / GDN 57.44 / Comba 58.49 / KDA 58.56 | 比KDA高0.26点,比Transformer高0.87点 |
| LongBench 16K 平均分 (1.3B) | Task score (higher is better) | 20.18 | Transformer 8.35 / Mamba2 15.00 / GDN 19.28 / Comba 18.11 / KDA 18.62 | 比GDN高0.90,比Comba高2.07,所有模型中最高 |
| NIAH 多needle设置 (8K context, 1.3B) | Accuracy (higher is better) | MK 38.60 / MQ 35.15 / MV 27.60 | GDN 25.20 / KDA 23.70 等 | 在MK/MQ/MV上分别比最强基线高13.40/11.45/8.95点 |
局限与改进
作者明确承认的局限性包括:(1)实验规模限制——由于算力约束,本文未能在7B或更大规模验证MDN的扩展性,因此尚不清楚二阶动量机制在更大模型上是否仍保持优势;(2)训练吞吐量——MDN需要维护双状态 $S_t, M_t$ 和物化修正值 $\tilde{V}[t]$,反向传播开销较高,当前训练吞吐量略低于GDN和Comba,仅与Mamba2、KDA相当;(3)混合架构探索有限——仅测试了3:1和7:1两种linear/full-attention比例,未系统研究层放置策略和更细粒度的门控参数化。此外,我们观察到的潜在局限性包括:二阶系统的复特征值虽然在理论上扩展了表达能力,但在实际评测中Commonsense Reasoning的提升幅度(1.3B下仅+0.26~+0.87点)相对较小,动量对长程结构化记忆的提升(in-context retrieval +3.83点)远大于对通用推理的提升,这意味着动量机制的收益主要在“长程精确回忆”这一类任务上,而对需要全局语义整合的任务增益有限;门控参数 $\mu$ 的下界clamp为-2是从经验调参得到,缺乏自适应机制;最后,分块大小C对效率-性能权衡的影响在本文中未充分讨论,C=64是默认选择,更大C可能进一步提升吞吐量但会影响精度。
独立分析的弱点
独立分析MDN的弱点如下。第一,门控超参数数量增加:相比GDN只有 $\alpha, \beta$ 两个门控,MDN引入 $\mu, \eta$ 增加了调参复杂度,$\eta$ 的温度 $\tau = \sqrt{d_{in}/h}$ 和缩放因子 $s$ 的选择对最终性能有显著影响(实验显示 $\eta_t = 2\sigma(\cdot)$ 替代 $\tanh(\cdot) + 1$ 时LAMBADA困惑度从41.62退化到49.10)。改进方向:可借鉴Muon optimizer中的自适应缩放思想,让 $\eta_t$ 根据更新范数自动调整。第二,$\mu$ 下界clamp为固定值-2的鲁棒性问题——表4显示把clamp值改为-1.5、-1.357、-1都会导致LAMBADA困惑度退化到42.65~44.90,这说明稳定性和表达力之间存在trade-off,clamp值需要细致的网格搜索。改进方向:可考虑学习式下界或per-head动态clamp。第三,反向传播依赖修正值物化 $\tilde{V}[t]$ 显著提升了训练吞吐量,但代价是峰值显存占用(400M MDN 39.38 GB vs GDN 37.21 GB),在大batch或长序列训练中可能成为瓶颈。改进方向:可探索chunkwise重计算策略,在不显著牺牲速度的前提下按需重建 $\tilde{V}$。第四,二阶系统的特征值约束 $\beta_t \le 1 - \alpha_t$ 牺牲了一部分表达能力空间——某些理论上可表达的动力学被排除在外。改进方向:可考虑更细粒度的per-channel门控,让不同特征维度拥有不同的稳定边界。第五,MQAR的合成评估中MDN与KDA打平而非显著超越,意味着在纯粹的关联记忆任务上KDA的vector-valued gating可能更有效。改进方向:未来工作可结合MDN的动量机制与KDA的channel-wise门控。
未来方向
作者明确提出的未来方向:(1)探索更复杂的优化器启发的门控策略(如Nesterov动量、Adam、Muon缩放),并将其纳入线性注意力框架;(2)进一步优化kernel以提升训练吞吐量,目标是对齐GDN/Comba的效率;(3)扩展到更大规模(7B及以上)验证MDN的扩展性。基于论文成果可延伸的方向包括:(1)将MDN应用于多模态长序列建模,如视频、语音、基因组数据,这些场景对长程依赖建模有强需求;(2)探索MDN与状态空间模型(如Mamba3)的混合架构,利用二者的互补优势——Mamba3的强序列建模能力配合MDN的动量记忆机制;(3)研究动量系数 $\mu_t, \eta_t$ 的自适应机制,例如用Muon-like的谱归一化替代当前的固定clamp和温度缩放;(4)将geometric decoupling思想推广到更高阶递推(如三阶动量、Nesterov加速梯度),为非平稳线性递推提供一个通用的并行化模板;(5)研究MDN在强化学习、online learning场景中的应用,因为其递推本质上就是一个online learning过程;(6)探索更细粒度的混合架构设计,如学习式layer placement,让模型自动决定哪些层使用MDN、哪些使用full attention或SSM。
复现评估
MDN的复现评估整体较为友好。代码已开源,地址为github.com/HuuYuLong/MomentumDeltaNet,仓库中应包含完整的Triton kernel实现。实验方面,训练数据为SlimPajama的100B tokens子集(公开可获取),使用GPT-2 tokenizer(公开);评测协议严格遵循GDN和Comba的设置,包括commonsense reasoning(LM Evaluation Harness)、in-context retrieval(prefix-linear-attention,2K input)、LongBench、Needle-In-A-Haystack(RULER),所有这些都是公开benchmark。训练配置透明:400M模型用15B tokens、0.5M batch size、AdamW、cosine schedule(peak 3e-4,warmup 0.5B,min 3e-5),1.3B模型用100B tokens、1M batch size、warmup 1B。算力需求方面,1.3B实验在H100上完成,论文中报告了完整的训练吞吐量和显存占用(400M MDN需39.38 GB,1.3B MDN-H需44.89 GB);复现一个400M实验需要约数天H100/A100算力,1.3B则需要更长时间。复现难度属于中等偏上:(1)Triton kernel的log-cumsum-exp算子实现有一定门槛,需要深入理解chunkwise并行算法的实现细节(论文Appendix E提供了PyTorch-style伪代码可作参考);(2)门控参数 $\alpha_{\log}, \mu_{\log}, \beta, \eta$ 的初始化(特别是 $\mu$ 的clamp下界-2)对稳定性敏感,移除约束直接导致NaN;(3)超参搜索范围较广(学习率从5e-5到2e-2),MQAR的搜索需要9个学习率×4个hidden dim组合;(4)二阶系统的特征值分析虽然论文给出了闭式解,但实践中验证稳定性约束是否正确实施需要一定的数值计算经验。总体而言,对熟悉flash-linear-attention生态和Triton编程的研究者来说,1-2周可以完成400M规模的复现。
论文图表
比较了四种动量更新方案在训练时的因果结构:Mini Chunk(块大小小,如TTT、LMM)会引入块内非因果,造成训练-推理不一致;Large Chunk(如LaCT)同样有非因果问题;Sliding Window(如Atlas)虽然对齐解码但限制了历史信息;Stepwise(Momentum DeltaNet,本文)保持严格因果掩码,确保并行训练与解码的完全一致。
这张图是论文动机的核心可视化,清晰说明了为什么现有blockwise动量方案会牺牲因果性,以及MDN如何通过块大小为1的逐步动量保持严格因果,是理解方法motivation的关键图。