三种"反 Transformer"架构掰头,xLSTM 凭什么赢了 Mamba-2 和 DeltaNet

arXiv: 2606.12364 | On Subquadratic Architectures: From Applications to Principles

做长序列建模的人,迟早会被同一件事卡住:注意力是 \(O(T^2)\) 的。序列翻倍,算力翻四倍。你想把上下文从 8K 拉到 128K,显存和 FLOPs 直接劝退。

于是这几年冒出来一堆"次二次方"(subquadratic)架构,想用 \(O(T)\) 的复杂度把 Transformer 干掉——Mamba、Mamba-2、DeltaNet、Gated DeltaNet、xLSTM……每一篇出来都说自己是新王。但问题是:到底哪个设计是真的好,哪个只是在某个 benchmark 上调出来的运气?

这篇论文干的就是这件事。作者把三个最强的候选——xLSTM、Mamba-2、Gated DeltaNet——拉到同一个擂台上,在三个完全不同的真实任务里硬碰硬,最后还掏出一套统一的数学框架,把"为什么 xLSTM 赢"这件事从现象讲到了原理。

说实话,这种"既做大规模实测、又给理论解释"的论文不多见。大部分架构论文要么只刷榜,要么只推公式。这篇是真的两条腿都在走。


📖 一段话讲清楚这篇论文

现有的次二次方架构各说各话,没人公平地比过。作者选了三个最有代表性的,在代码模型预训练、从大模型蒸馏代码模型、时序基础模型预训练这三类"依赖关系特别复杂"的任务上做了匹配对照实验。结论很干脆:xLSTM 在几乎所有场景里都是最强的。更难得的是,他们没停在"它赢了",而是把三种架构统一写成"带门控的线性注意力",指出 xLSTM 的优势来自它更灵活、更稳定的记忆修正机制——门是独立的、能像 softmax 一样动态地压低旧信息。最后用一组合成的长度泛化任务,精确地把"计数能力"和"状态追踪能力"拆开验证。

我的判断:这是一篇少见的"收口"型论文。它不发明新架构,而是把这个混乱的赛道做了一次系统性的裁决,并且给出了一个能自圆其说的解释框架。对任何在选型 subquadratic backbone 的人来说,这篇值得细读。


🤔 先说清楚:为什么这事难判

你可能会想,比架构不就是跑个 benchmark 看谁分高吗?

没那么简单。这几个架构的"出身"完全不一样:Mamba 来自状态空间模型(SSM),DeltaNet 来自快速权重(fast weights),xLSTM 是 LSTM 的现代化改造。它们用的记号、训练配方、初始化方式各不相同,论文里报的数也是在各自最舒服的设置下刷出来的。直接拿原论文的数字对比,等于让三个人在三个不同的考场考不同的卷子,然后比分数——没意义。

而且更隐蔽的问题是:很多 benchmark 其实测不出架构的真实能力差异。如果一个任务用浅层模式匹配就能做对,那再强的状态追踪能力也体现不出来。你得挑那种"必须跨长上下文追踪很多相互作用的状态"的任务,差距才会暴露。

作者的选择就很讲究——代码和时序。

图1:两类依赖关系复杂的任务。左边是代码,依赖藏在形式结构里——语法树、调用图、变量绑定;右边是时间序列,依赖藏在部分可观测的动态系统里(这里画的是洛伦兹吸引子),未来取决于历史上那些没被观测到的状态。

图1:代码(a)的依赖关系刻在语法树、调用图、变量绑定这些形式结构里;时序(b)的依赖刻在部分可观测的动力学轨迹里。两者的共同点是——你必须跨长上下文追踪大量相互纠缠的状态,浅层模式匹配根本应付不了。

这张图我挺喜欢的。它一句话点明了为什么这两个任务能当"试金石":代码里一个变量的作用域、一个函数的调用关系,都是长程的强依赖;时序里洛伦兹系统的下一步,取决于你根本看不到的隐藏状态。这种任务,模型要么真有记忆和状态追踪能力,要么就露馅。


🏗️ 核心武器:把三个架构写成同一个公式

这是全文我觉得最值钱的部分。作者做了一件很"物理学家"的事——找统一框架。

起点是 2020 年的线性注意力(Katharopoulos 那篇)。它的关键洞察是:注意力的递归形式可以暴露出一个显式的矩阵状态 \(C \in \mathbb{R}^{D_{qk} \times D_v}\),更新规则是这样的:

\[C_t = C_{t-1} + k_t \otimes v_t, \quad h_t = q_t C_t\]

每来一个 token,就把 \(k \otimes v\) 这个外积加进状态矩阵里。读取的时候用 \(q\) 去查。复杂度从 \(O(T^2)\) 降到 \(O(T)\)——因为状态矩阵大小固定,不随序列变长。

但纯线性注意力有个致命问题:它只会无脑累加,旧信息永远删不掉,状态迟早被噪声淹没。所以现代架构都在这个累加上动手脚,加"门"。

而作者的洞察是:xLSTM、Mamba-2、Gated DeltaNet 本质上都是给线性注意力加了不同的门控。它们都能写成"输入门 + 遗忘门"的 LSTM 式形式,区别只在门怎么设计。

xLSTM(这里指 mLSTM 部分)

\[C_t = f_t \, C_{t-1} + i_t \, k_t \otimes v_t\]

注意它的输入门 \(i_t = \exp(w_i x_t)\)指数门,遗忘门 \(f_t = \sigma(w_f x_t)\) 是独立的 sigmoid。指数输入门经过归一化后,行为上像时间维度上的 softmax——当新来的值更重要时,它能直接把旧值压下去甚至覆盖掉。这个"灵活下调旧信息"的能力,是后面所有优势的根。

Mamba-2

\[i_t = \mathrm{softplus}(w_\Delta x_t), \quad f_t = (1 - \sigma(w_\Delta x_t))^a\]

看出问题了吗?它的输入门和遗忘门绑在同一个 \(w_\Delta\)。这就很像 GRU——而 GRU 是出了名的不会数数。门一绑定,纠正前序权重的能力就受限。作者由此预言:Mamba-2 的计数会差。

Gated DeltaNet

\[C_t = f_t \left(I - i_t \frac{k_t \otimes k_t}{\|k_t\|^2}\right) C_{t-1} + i_t \frac{k_t}{\|k_t\|} \otimes v_t\]

它多了一个 \(I - k_t \otimes k_t / \|k_t\|^2\),这是一个\(k_t\) 零空间的正交投影。直白讲,当 \(i_t=1\) 时,它会把状态里沿 \(k_t\) 方向的旧分量整个抹掉,再写入新值。这是个很强的"检索友好"机制——适合精确召回某个 key 对应的 value。但代价是:旧值总是被覆盖,所以它也数不好数(计数需要累积,不是覆盖)。

把这三个并排放在一起看,差异就一目了然了:

架构 输入/遗忘门 记忆修正机制 理论预期
Mamba-2 两门绑定 类 GRU,纠错能力有限 表达力弱,计数差
Gated DeltaNet 两门独立 正交投影,直接覆盖旧值 利于检索,计数有问题
xLSTM 两门独立 指数门做 softmax 式动态压制 修正最灵活

这个表是全文的"题眼"。后面所有实验,本质上都是在验证这张表里的"理论预期"。


🧪 实战擂台:三个任务,xLSTM 三连胜

战场一:代码模型预训练

设置很硬核:400M 参数的层间混合模型,24 层,统一保留 3 层自注意力,剩下的换成各自的 backbone。xLSTM[7:1] 的意思是每 7 个非递归层配 1 个递归层。三种训练配方:纯代码 20B tokens、纯代码 100B tokens、代码+FineWeb-Edu 混合 20B tokens。评测 HumanEval 的 pass@k。

图3:HumanEval pass@k 结果。左图训练 20B tokens,右图 100B tokens。横轴是 pass@2/8/16/64,纵轴是通过率。紫色星标的 xLSTM[7:1] 在所有点上都压着 Mamba-2(红)和 Gated DeltaNet(橙)。

图3:HumanEval pass@k 全面对比。紫色的 xLSTM[7:1] 在每一个 k、每一种训练量下都是最高的那条线。随着训练量从 20B 涨到 100B,三条线在收窄——但 xLSTM 始终在最上面。

具体数字上,xLSTM[7:1] 在 pass@64 这个最能体现生成多样性的指标上,领先次优 backbone:

训练配置 xLSTM[7:1] 在 pass@64 的领先幅度
20B 代码 tokens 领先 1.43 分
100B 代码 tokens 领先 0.90 分
代码 + FineWeb-Edu 领先 1.81 分

有意思的是,在纯代码语料下,次优的永远是 Gated DeltaNet,不是 Mamba-2。这跟前面那张表的预期对上了——Gated DeltaNet 的检索能力对代码这种强结构任务是有帮助的,只是还是干不过 xLSTM。

至于推理和常识类任务(HellaSwag、PIQA、ARC 那一套),xLSTM 也是最高,但优势很小——20B/100B 下领先不到 0.1 分。说实话这个差距基本可以忽略,作者也很诚实地写出来了,没硬吹。这种地方反而让我对它的可信度加分。

战场二:从大模型蒸馏代码模型

这个实验设计得更巧。教师是 Qwen3-4B-Instruct,学生保留教师的宽度、深度、tokenizer,只把每个注意力块换成"线性注意力算子 + 滑动窗口注意力"的层内混合块,用一个可学习的门融合。两阶段蒸馏:先对齐隐状态(MSE),再最小化 \(0.9 \cdot \text{CE} + 0.1 \cdot \text{KL}\)

这里只比了 xLSTM[1:0](纯 mLSTM)和 Gated DeltaNet 两个变体。为啥不带 Mamba-2 玩?因为蒸馏要复用教师的 q/k/v 投影权重做初始化,而 Mamba-2 把门绑定了、参数也不直接对应教师权重,没法公平地接进来。这个排除理由我觉得是站得住的。

Student HumanEval HumanEval+ MBPP MBPP+ Avg
Qwen3-4B-Instruct(教师) 0.914 0.835 0.708 0.847 0.826
xLSTM[1:0] 0.831 0.764 0.689 0.788 0.768
Gated DeltaNet 0.802 0.739 0.677 0.802 0.755
Gated DeltaNet[−1,1] 0.813 0.745 0.671 0.796 0.756

xLSTM[1:0] 在四个 benchmark 里赢了三个,平均分 0.768 对 0.755。唯一翻车的是 MBPP+,落后 0.014。

这个结果其实比第一个实验更有说服力。注意——这里 xLSTM 用的是 [1:0]纯线性注意力、没有任何递归层。也就是说,它的优势不靠那个递归状态追踪组件,光是 mLSTM 这个线性注意力算子本身就比 Gated DeltaNet 强。这直接堵死了"xLSTM 赢是因为偷偷加了递归层"的质疑。

战场三:时序基础模型

沿用 TiRex 的配方,只换序列 mixer,从 1M 一路扫到 80M 五个尺度,在 GIFT-Eval 上零样本评测 MASE 和 CRPS(都是越低越好)。

图4:时序基础模型在 GIFT-Eval 上的表现,跨五个参数尺度。左 MASE,右 CRPS,都是越低越好。紫色 xLSTM[3:1] 在 1M 到 40M 全程领先,橙色 Gated DeltaNet 明显最差。到 80M 三者几乎收敛。

图4:时序场景下 xLSTM[3:1](紫)从 1M 到 40M 全程压制。10M 这个点上 MASE 0.733 对 Mamba-2 的 0.767,CRPS 0.508 对 0.525——差距很实在。但到 80M 时基本追平了,CRPS 上 Mamba-2 甚至反超 0.005。

这里有个值得玩味的规律:xLSTM 的优势在中小规模最明显,参数越大差距越小。代码实验里也是这个趋势。

这说明什么?我的理解是——架构的归纳偏置(inductive bias)在数据/参数受限时最值钱。当你有海量参数和数据时,模型可以"暴力背",架构差异被冲淡。但在小模型、小数据的场景(很多真实工业落地恰恰是这种),选对架构能省下大量算力。这个 insight 对做边缘部署、做垂域小模型的人特别有用。


🔬 最硬核的部分:把"计数"和"状态追踪"拆开看

前面都是真实任务,混着各种因素。作者最后用一组合成任务做了"显微镜级"的验证——这是我最佩服的设计。

他们把模型能力拆成两类:

  • 累积/计数(counting):\(A^nB^n\)\(A^nB^nC^n\)、Majority(多数投票)。这类任务要求你能"数数"、能累加。
  • 状态追踪(state tracking):Parity(奇偶校验)、模 5 运算、对称群 \(S_3\) 的字问题。这类要求你能维护一个不断被结构化更新的内部状态。

训练长度固定 128,评测拉到 512 和 2048(4× 和 16× 外推)。看长度泛化能力。

图5:合成任务的长度泛化。左边计数任务(Majority),右边状态追踪任务(Parity)。横轴是评测长度,竖虚线标出训练长度 128。左图 xLSTM[1:1](紫)在 2048 还有 0.74,Mamba-2 和 Gated DeltaNet 都掉到 0.3 多。右图 xLSTM[1:1] 在所有长度都是满分 1.0,Mamba-2(红)连分布内都做不对,Gated DeltaNet[−1,1](橙)在 2048 掉到 0.47。

图5:左为计数(Majority),右为状态追踪(Parity)。竖虚线是训练长度 128。计数任务上 xLSTM[1:1] 外推到 2048 还有 0.74,另外两个崩到 0.3 区间;状态追踪任务上 xLSTM[1:1] 全程满分,Mamba-2 连分布内都做不对(从不超过 0.352)。

把关键数字摊开看(评测长度 2048):

架构 计数任务 状态追踪任务
Mamba-2 \(A^nB^n\) 从 1.000 崩到 0.241 Parity 连分布内都 ≤ 0.352
Gated DeltaNet(默认) Majority 退化到 0.268 任何状态追踪都做不了
Gated DeltaNet[−1,1] 分布内能恢复,但 Parity 在 2048 跌到 0.472\(S_3\) 跌到 0.667
xLSTM[1:0] \(A^nB^n\)=0.892\(A^nB^nC^n\)=0.932,Majority=0.763 全部失败(纯线性注意力,符合预期)
xLSTM[1:1] 略弱于 [1:0] 但仍能外推 三个任务全部精确

这组结果漂亮就漂亮在——它精确印证了那张理论表:

  • Mamba-2 门绑定 → 既不会数数(计数崩)也不会追踪(Parity 崩)。和"类 GRU"的预言完全一致。
  • Gated DeltaNet 靠覆盖 → 适合检索但不会累积,所以计数崩。默认版连状态追踪都做不了;把遗忘门从 \([0,1]\) 扩到 \([-1,1]\)(允许负特征值,这是 Grazzi et al. 2025 的发现)才勉强恢复一部分状态追踪。
  • xLSTM[1:0](纯 mLSTM)→ 计数之王,但状态追踪完全不行。因为它只有累积,没有结构化的递归更新。
  • xLSTM[1:1](加了一层 sLSTM 递归组件)→ 唯一能同时搞定累积和状态追踪的。计数略有牺牲,但状态追踪做到精确。

这下就把整个故事讲圆了:计数能力来自线性注意力的矩阵状态累积,状态追踪能力来自非线性递归组件。两者来源不同,所以单一机制总会偏科,而 xLSTM 的混合设计 \([m:s]\) 恰好能把两者捏到一起。

这也解释了为什么真实任务里都用"m 重"配置——语言用 \([7:1]\)、时序用 \([3:1]\):以高效的累积块为主体,掺一点递归层补上状态追踪。不是每项都最优,而是最平衡


💡 我的判断

先说亮点。这篇论文的价值不在"又发明了一个架构",而在它做了这个赛道急需的两件事:一次公平的大规模裁决,加一套能自圆其说的解释框架。尤其是那个"统一成带门控的线性注意力"的视角——把 xLSTM、Mamba-2、Gated DeltaNet 写成同一个公式的不同门控特例,然后用 GRU 的已知缺陷、正交投影的覆盖语义去预测各自的能力短板,最后用合成任务精确验证。这种"现象→统一形式→机制归因→受控验证"的闭环,比单纯刷榜扎实太多了。

蒸馏实验用纯 mLSTM(无递归层)就赢过 Gated DeltaNet,这一刀堵死了"xLSTM 赢靠递归层作弊"的质疑,是我觉得最有说服力的一笔。

再说我的保留。规模是硬伤。代码语言建模只做到 400M,蒸馏只用了一个教师(Qwen3-4B)。而恰恰他们自己的数据反复显示——架构优势随规模增大而收窄。那么在 7B、70B 这种真正部署的尺度上,xLSTM 还领先吗?还是会像 80M 时序实验里那样被追平甚至反超?论文没法回答,只有时序那条线扫到了 80M,还正好在 CRPS 上被 Mamba-2 反超 0.005。这个趋势其实有点危险,作者也没回避,但也没深究。

另外,"复杂依赖任务"这个任务选择本身是有倾向性的——代码和时序都是 xLSTM 的强项场景。如果换成纯检索密集型任务(比如长文档大海捞针),Gated DeltaNet 那个正交投影覆盖机制说不定就翻盘了。论文里也承认 Gated DeltaNet"利于检索",但没正面去测这块。所以结论更准确的表述应该是:在需要状态追踪和累积的复杂依赖任务上,xLSTM 最强,而不是"xLSTM 全面最强"。

对工程的启发:如果你在做中小规模的 subquadratic backbone 选型,尤其是代码、时序、或者任何需要长程状态追踪的任务,xLSTM 的混合配置值得优先试。如果你的任务是检索主导、参数规模又很大,那 Mamba-2 和 Gated DeltaNet 还有得一争,别盲从。更重要的是——这篇论文教会你一个判断架构好坏的框架:看它的门是不是独立、记忆修正是覆盖还是动态压制、累积和状态追踪是不是兼顾。带着这个视角,下次再看到新架构,你自己就能预判它的软肋在哪。

次二次方架构这场仗远没打完。但这篇论文至少让我们知道,评判它们的标尺该怎么立了。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新 AI 前沿,关注我