← 全部论文2502.13685v4 / r1
版本与下载

MoM: Linear Sequence Modeling with Mixture-of-Memories:中文精读笔记

  • 作者:Jusen Du、Weigao Sun、Disen Lan、Jiaxi Hu、Yu Cheng。
  • 版本:arXiv:2502.13685v4,2025-11-18 修订;首次提交于 2025-02-19。本文以 arXiv 技术报告为身份,不根据源码模板推断会议录用状态。
  • 获取与研读日期:2026-09-11(UTC);本次成品修订:r1。
  • 原始材料:本地 PDF、版本元数据、作者 TeX 主文件、引言、源码清单。已下载同版本 PDF 与源码,读取主文件实际正文、引言、相关数学宏及参考文献条目,结合最终 PDF 核对正文、全部附录 A–I、表 1–10 和图 1–9。作者源文件内注释掉的旧稿和表格不作为最终结果。
  • 页码约定:以下均为 PDF 从 1 开始的页码,本文件中与印刷页码一致。原文共 18 页;参考文献在 pp. 9–14,附录在 pp. 14–18。没有另行阅读其引用论文全文,也未运行作者训练或评测代码。
  • 配套材料:英文汇报 PDF、可编辑 Beamer TeX、质量核验记录。

论文总览

核心问题是:在保持序列长度方向上的线性计算成本时,能否通过“把历史信息写到不同状态”改善线性模型的召回能力?

线性注意力及相关递归模型常把历史压缩成固定大小的状态。状态容量有限,而且每个新 token 都可能修改已有记忆。MoM(混合记忆,Mixture-of-Memories)在每层设置多个独立递归状态,学习一个输入依赖的路由器,只更新当前 token 选中的 top-$k$ 个状态,再按路由权重组合它们的读取结果;额外的共享记忆处理所有 token。主实验采用 Gated DeltaNet 更新、4 个路由记忆、每步激活 2 个,另加 1 个共享记忆。

最扎实的证据来自召回密集任务:在论文称为 1.3B 的配置、100B 训练 tokens 下,MoM 六任务平均分 36.04,Gated DeltaNet 为 32.30,Transformer++ 为 37.31;MoM 相对前者提高 3.74 分,仍落后后者 1.27 分。这里六任务输入最长 2K tokens,不能直接写成“在超长上下文召回上追平 Transformer”。[Sec. 4.1–4.2.1,PDF pp. 6–7,Table 2]

论文还给出相同激活参数量、相同激活记忆容量、LongBench、长度外推、路由均衡、扩展与混合架构实验。整体证据支持“记忆分区是一种有效的架构选择”;尚不足以证明完全消除干扰、所有任务都改善,或在严格相同端到端计算预算下全面优于其他架构。

结构地图

原文章节在论证中的作用PDF 页码与关键证据
1 Introduction记忆容量、干扰与多记忆动机pp. 1–2
2 Preliminary从线性注意力到矩阵递归状态pp. 2–3,Eqs. (1)–(2)
3.1 Motivation单纯扩大一个状态为何可能不够p. 3
3.2 MoM: Mixture-of-Memories路由、投影、更新、混合、共享记忆pp. 3–5,Fig. 1,Table 1,Eqs. (3)–(8)
3.3 Hardware-Efficient Implementation按记忆重排、varlen 运算与回填pp. 5–6,Fig. 2;该节公式未编号
4.1 Experimental Setups模型、训练数据与参数口径p. 6
4.2.1 Recall-intensive Tasks六个召回任务pp. 6–7,Table 2
4.2.2 Long Context TasksLongBench 类别结果pp. 6–7,Table 3
4.2.3 Mixed Memory vs. Single Memory相同激活状态容量的比较pp. 7–8,Table 4
4.2.4 Efficiency推理延迟与 GPU 显存p. 8,Fig. 3
4.2.5 Length Extrapolation2K 训练后外推到 32Kp. 8,Fig. 4
4.2.6 Memory Analysis路由均衡及功能分化观察pp. 8–9,Table 5,Fig. 5;Fig. 9 在 p. 18
4.2.7 MoM Scaling Up & Ablation Study记忆数、辅助损失与共享记忆pp. 8–10,Fig. 6,Table 6
5 Conclusion;6 Ethics Statement作者结论及数据使用说明p. 9
A Related Work;B Comparison between MoM and MoE相关背景及与 FFN MoE 的区别pp. 14–15
C Experiments Details;D Commonsense Reasoning Tasks训练超参数及常识评测p. 15,Table 7
E Training Loss Comparison;F The Hybrid of MoM and Transformer训练曲线与少量全局注意力层pp. 15–16,Fig. 7,Table 8
G Fairness对齐激活参数量与激活记忆容量pp. 16–17,Table 9,回指 Table 4
H Detailed Scaling Results;I Full Results更大记忆池、LongBench 补充、无辅助损失路由pp. 17–18,Figs. 8–9,Table 10

一:动机

1.1 固定状态既是效率来源,也是信息瓶颈

Transformer 为历史 token 保存独立的键和值;历史越长,KV cache 越大,下一步注意力需访问的历史也越多。线性递归模型把历史压缩到固定状态,单步状态操作的成本不随历史长度增加。这种压缩的代价是:不同输入可能在相同状态位置累积或覆盖信息。[Secs. 1–2,PDF pp. 1–3]

这里的“单个状态”是论文采用的层/记忆模块视角;实际模型可以有多头、多层、门控等结构,不应理解为整个网络只有一个标量或一个向量。

以原文 Eq. (2) 的最简加法记忆为例:

$$ \mathbf M_t=\mathbf M_{t-1}+\mathbf k_t^\top\mathbf v_t, \qquad \mathbf o_t=\mathbf q_t\mathbf M_t. $$

教学推导:若初始状态为零,则 $\mathbf M_t=\sum_{i\le t}\mathbf k_i^\top\mathbf v_i$。用某个键作为查询时,输出包含它与其他键相似度加权的值:

$$ \mathbf k_j\mathbf M_t =\sum_{i\le t}(\mathbf k_j\mathbf k_i^\top)\mathbf v_i. $$

非目标项未必为零,因此可以发生串扰。扩大状态能降低某些冲突,但不规定哪些信息应共享更新空间。门控可决定保留多少历史,却不自动把两个都重要的信息项存入不同位置。此推导解释最简更新的机制,不是所有带门控模型的误差定理。

1.2 MoM 增加了“写到哪里”的控制

MoM 把两个设计维度分开:

  1. 路由选择状态:当前输入应进入哪些记忆?未选中的记忆完全跳过这一步。
  2. 状态内部更新规则:在被选中的记忆里,怎样遗忘、纠正或添加信息?主实验使用 Gated DeltaNet。

因此,多记忆路由与遗忘门是互补的。一个记忆可以避开与它无关的 token,同时在接收到自己的 token 时继续使用精细的更新规则。[Sec. 3.1–3.2,PDF pp. 3–5]

论文以神经振荡中的记忆分隔作为灵感。这是架构动机;实验没有检验神经科学机制。作者有时使用“消除干扰”的强措辞,本次分析采用更受证据支持的“减少不同路由输入之间的直接状态干扰”:同一记忆内部仍会压缩信息,路由也可能分配错误。

二:方法

2.1 输入、状态与输出

图 1:MoM 架构

原图 1,PDF p. 3;使用作者原始图件。 从底部向上读:输入隐藏表示同时进入共享查询投影、共享记忆路径和路由器;路由器选择部分独立 KV 投影及记忆;各状态更新后混合,最后由查询读取。浅灰色 Memory 2 表示该步未被选中。图中的 KV Memory 是递归矩阵状态,不是随 token 数增加的 Transformer KV cache。

符号含义与原文简化维度
$t$、$T$、$B$token 时刻、序列长度、batch 中的序列数
$d$论文简化表示中的向量宽度;具体多头实现不能直接用整层 $d^2$ 估算
$M$、$m$路由记忆总数与其索引;$M$ 不含额外共享记忆
$k$每个 token 选择的路由记忆数;与键向量 $\mathbf k_t$ 区分
$\mathbf x_t,\mathbf q_t,\mathbf k_t^m,\mathbf v_t^m$输入、共享查询、记忆 $m$ 的键和值,均按行向量解释
$\mathbf W_g\in\mathbb R^{d\times M}$线性路由投影
$\mathbf M_t^m\in\mathbb R^{d\times d}$处理到 $t$ 后第 $m$ 个路由记忆的状态
$g_t^{(m)}$选中记忆的归一化混合权重;未选中时可扩展定义为 0
$\widetilde{\mathbf M}_t$、$\mathbf o_t$混合状态及读取结果;后者为 $d$ 维行向量

输入是一段隐藏表示序列及其递归状态;输出是每个 token 的新表示和下一步继续使用的各个状态。模型参数(投影、门控、路由器)通过训练学习,序列状态则随当前上下文更新,两者不是同一种“记忆”。

2.2 路由:softmax、top-$k$、重新归一化

原文 Eqs. (3)–(4),PDF p. 4:

$$ \mathrm{scores}_t=\mathrm{TopK}\bigl(\mathrm{softmax}(\mathbf x_t\mathbf W_g)\bigr), \qquad \mathbf g_t=\frac{\mathrm{scores}_t}{\sum\mathrm{scores}_t}. $$

令 $S_t$ 表示选中的记忆索引集合,则 $|S_t|=k$,$\sum_{m\in S_t}g_t^{(m)}=1$。TopK 返回分数时必须同时保留记忆索引,才能调用对应的投影和状态。

教学例子:若四个 softmax 分数为 $(0.50,0.30,0.15,0.05)$,$k=2$,则选择记忆 1、2,混合权重为 $(0.625,0.375)$。这一步的权重用于后续读取结果的混合;原文 Eq. (6) 并没有把它乘到写入外积上,不应自行改成“按路由概率缩小写入”。

路由器使用当前层当前 token 的表示,没有显式读取未来 token。要保持自回归因果性,上游表示必须是因果的,而且后续重排要保留每个记忆内部的原始时间顺序。

2.3 独立 KV 投影与有条件的递归更新

原文 Eqs. (5)–(6),PDF p. 4:

$$ \mathbf k_t^m=\mathbf x_t\mathbf W_k^m, \qquad \mathbf v_t^m=\mathbf x_t\mathbf W_v^m, $$
$$ \mathbf M_t^m=\mathbf M_{t-1}^m+(\mathbf k_t^m)^\top\mathbf v_t^m \quad (m\in S_t). $$

不同记忆既有不同的状态,也有各自的 KV 投影。论文图中展示加法更新只是为了说明结构,主实验并非使用这个最简更新。

把论文文字中“未激活则不变”补写进公式,可得到更完整的教学表达:

$$ \mathbf M_t^m= \begin{cases} F_m(\mathbf M_{t-1}^m,\mathbf x_t),&m\in S_t,\\ \mathbf M_{t-1}^m,&m\notin S_t. \end{cases} $$

$F_m$ 是底层递归更新。这里有一个容易漏掉的细节:未选中的记忆连遗忘更新也不执行。若一个记忆先后接收原序列第 1、5、9 个 token,它沿这三个“事件”递归;中间那些 token 不会使该记忆按原始时钟继续衰减。这正是按子序列实现与状态隔离对应的条件。[Sec. 3.2.2,PDF p. 4;Sec. 3.3,pp. 5–6]

2.4 更新规则是可替换的,但表 1 是概括性表示

Table 1(PDF p. 4)把多种模型概括为矩阵状态更新:加法线性注意力;RetNet 的固定衰减;GLA/HGRN2 的输入依赖门控;DeltaNet/Gated DeltaNet 的定向修正;以及 Mamba2、RWKV、TTT、Titans 等。其作用是说明 MoM 的模块化接口,而不是声称每个变体都在这篇论文里完成了相同规模实验。

主实验选择为 Gated DeltaNet。MoM 的 Table 1 将其简写为:

$$ \mathbf M_t=a_t(\mathbf I-\mathbf k_t^\top\mathbf k_t)\mathbf M_{t-1} +b_t\mathbf k_t^\top\mathbf v_t. $$

按这张表的写法,$a_t,b_t\in(0,1)$ 是输入依赖标量;$\mathbf k_t^\top\mathbf k_t$ 对旧状态作沿当前键方向的修改,另一项写入新键值关系。它比纯累加更能有针对性地改变旧记忆。MoM 再把“这次修改会发生在哪个状态”交给路由器。

符号核验提醒:不要把 Table 1 当作完整实现规范。表中的梯度类更新没有展开损失及符号约定,一些向量门的广播/乘法记法也很简略;本笔记不从这些简写推断所有底层模型的精确算法。实际复现需要进一步核对作者实现和被引用模型的正式定义。

2.5 混合读取与共享记忆

原文 Eqs. (7)–(8),PDF p. 4:

$$ \widetilde{\mathbf M}_t=\sum_{m\in S_t}g_t^{(m)}\mathbf M_t^m, \qquad \mathbf o_t=\mathbf q_t\widetilde{\mathbf M}_t. $$

这里先更新、再读取,所以当前 token 可以影响当前位置输出,符合因果语言模型通常的当前位置可见性。混合状态是本次读取的临时组合;各个独立状态仍分别保存,不能把它们永久覆盖成一个共同状态,否则下一步就失去分区结构。

共享记忆每步都接收输入,提供覆盖完整因果历史的通路。[Sec. 3.2,PDF p. 5] 根据 Fig. 1 的加法汇合关系,本次教学表达可写为:

$$ \mathbf o_t^{\mathrm{all}} =\mathbf q_t\mathbf M_t^s +\sum_{m\in S_t}g_t^{(m)}\mathbf q_t\mathbf M_t^m. $$

这不是原文的编号公式;正文只明确说明共享记忆机制,图示给出其汇合关系。尤其不能把共享记忆算作四个路由记忆之一,也不能把“能访问全部历史”解释为“无损保存全部历史”。共享分支本身仍是固定容量状态。

读取后还会经过激活、归一化、输出线性变换。正文没有完整给出这几步的精确次序细节与所有超参数;源码中被注释掉的具体表达式不作为最终规范。

2.6 一次 token 更新的教学伪代码

输入:当前表示 x;M 个路由状态 state[m];共享状态 shared
q = shared_query_projection(x)
selected, weights = top_k_and_renormalize(softmax(router(x)))
for m in selected:
    key, value = memory_specific_KV_projection[m](x)
    state[m] = update_rule[m](state[m], key, value, gates_from_x)
# 未选中的 state[m] 原样保留
shared = shared_update_rule(shared, x)
output = read(q, shared)
for m, weight in zip(selected, weights):
    output += weight * read(q, state[m])
return output_postprocessing(output), state, shared

该伪代码用于解释数据流,省略多头、卷积、门控投影等底层实现细节;共享分支的加法沿用 Fig. 1 的图示。它不是从作者代码提取的可运行实现。

2.7 用 varlen 把稀疏路由变成高效的分段序列运算

图 2:按记忆分组及 varlen 运算

原图 2,PDF p. 5;作者原图。 同色 token 被分给同一记忆。图中只画 top-1,省略 QKV 投影;主实验是 top-2,不应把示意图直接当作主配置。

关键恒等式是:

$$ \mathbf q_t\!\left(\sum_m g_t^{(m)}\mathbf M_t^m\right) =\sum_m g_t^{(m)}(\mathbf q_t\mathbf M_t^m). $$

于是无需显式把许多矩阵拼成一个再读取:可以分别调用底层线性模型的高效算子,最后组合输出向量。这个等价依赖于在同一线性读取位置做加权;不能把任意非线性操作移进移出求和。[Sec. 3.3,PDF pp. 5–6]

具体过程如下:

  1. 对每个样本 $b$ 和记忆 $m$,收集有序索引 $\mathcal I_{b,m}=(t_{b,m}(1),\ldots,t_{b,m}(L_{b,m}))$。
  2. 按桶 $p=(b-1)M+m$ 排列,建立累计边界 $s_0=0$、$s_p=\sum_{q\le p}L_q$。
  3. 将各桶 token 拼成变长序列 $\widetilde{\mathbf X}$,以 $\mathbf s$ 标记边界。Top-$k$ 会让一个原 token 出现在 $k$ 个桶中。
  4. 每段使用共享查询投影和记忆专用 KV 投影,运行独立、因果的递归 kernel;边界必须阻止不同样本或记忆串状态。
  5. 把输出映射回原 $(b,t,m)$,按 $\alpha_{b,t,m}$(同一类路由权重的新记号)加权求和,恢复原 token 顺序。

教学例子:top-1 分配为 $[A,B,A,C,B]$ 时,桶为 $A:[1,3]$、$B:[2,5]$、$C:[4]$;拼接索引是 $[1,3,2,5,4]$,边界为 $[0,2,4,5]$。整个拼接序列不按全局时间排序,但桶内保持时间顺序,因此每个记忆不会看到它自己的未来输入。

训练时可利用所有已知输入做按桶整理和底层并行/分块运算;自回归解码时每步直接路由并更新缓存状态。所谓“并行训练”没有消除模型的递归依赖,而是以高效等价算法计算它。

2.8 复杂度必须说清参照变量

以下为根据方法结构作的简化分析,固定层数与宽度,且假设底层更新和稀疏分桶具有相应高效实现:

  • 序列长度 $T$ 增加时,固定 $M,k$ 的训练总工作量保持 $O(T)$;每个 token 在路由分支产生 $k$ 次处理,共享分支另处理一次。
  • 矩阵记忆核心操作可概括为 $O(T(k+1)d^2)$;路由打分还需 $O(TdM)$,另有 top-$k$、分桶和回填开销。该式不是完整模型的 FLOPs 统计。
  • 解码单步核心成本相对已有历史长度为 $O(1)$,但仍随 $k,d,M$ 变化。
  • 状态存储约随 $(M+1)d^2$ 增长,而不是只存 $k+1$ 份。未激活状态虽然不计算,仍需保留。
  • 若扩大记忆池时固定的是 $k/M$,那么 $M$ 增大也会使 $k$ 增大;因此扩展实验不是固定每步计算量的扩容实验。

“常数推理”只描述历史长度方向上的单步状态计算和存储;读取整个 prompt 的 prefill 仍需处理其所有 token,生成多个 token 也需多个解码步骤。更不能由渐近复杂度推出短序列一定更快。[Secs. 1、3.3、4.2.4,PDF pp. 1、5–6、8]

2.9 与普通 FFN MoE 的区别

维度常见 FFN MoEMoM
被路由到的对象若干前馈参数子网络带独立 KV 投影的递归记忆状态
主要处理位置单 token 的通道变换历史 token 的信息混合
跨 token 持续状态FFN 专家本身通常没有这类状态每个记忆保存其路由子序列历史
主要扩展目标稀疏激活更多参数在稀疏更新下扩展上下文状态容量

这个比较对应论文附录 B(pp. 14–15)中的常见 FFN MoE,不是对所有已有 MoE 变体的绝对分类。MoM 同样会增加投影参数,也同样需要处理路由负载问题。

三:实验

3.1 共同训练设置与参数口径

项目“380M”配置“1.3B”配置来源
层数、隐藏宽度24 层,102424 层,2048Sec. 4.1;Table 2,pp. 6–7
训练 tokens15B100B同上
batch tokens0.5M2MAppendix C,p. 15
warmup tokens0.25M(原文如此)1BAppendix C,p. 15
预训练序列长度2K2KSec. 4.2.5,p. 8
数据与 tokenizerSlimPajama;Mistral tokenizer同左Sec. 4.1,p. 6
MoM 状态设置Gated DeltaNet;$M=4,k=2$,加 1 个共享状态同左Sec. 4.1,p. 6

通用超参数为 AdamW、学习率 $3\times10^{-4}$、余弦调度、weight decay 0.01、梯度裁剪 1.0;附录 C 称在 32 张 NVIDIA A800 上实验,小配置约 10 小时、大配置约 6 天。主设置的 MLP hidden ratio 为 3。论文未完整展开 AdamW 的全部参数、精确实现版本、各实验种子及多次运行统计。小配置的 warmup 0.25M 小于一批 0.5M tokens,需在复现前核对;本笔记保留原值,不擅自改成 0.25B。

参数名不是严格相等预算。 Sec. 4.1 明确说“380M”和“1.3B”是层数/宽度配置的简称,MoM 的稀疏 KV 投影会增加参数。Table 4 给 Gated DeltaNet-MoM 标出 444M,附录 G 以激活参数口径讨论这类比较。不要宣称主表每行都有完全相同的总参数或激活参数。真正明确对齐为 400M 激活参数的结果在 Table 9。

基线身份:Transformer++ 使用 RoPE 和 GLU,提供保留逐 token KV 信息的对照;Gated DeltaNet 与 MoM 主模型使用同类更新,是最直接的基线;RetNet、GLA、HGRN2、GSA 代表其他线性递归状态设计。大配置表中带 $\dagger$ 的 Transformer++、RetNet、HGRN2、GLA、GSA 使用已公开且作者称配置相同的权重。正文同时有“从头训练所有基线”的概括说法,应以这个明确例外为准。

3.2 每组实验实际检验什么

实验检验问题指标与协议边界
六项召回密集任务从上下文取出并利用特定信息是否更好?FDA、SWDE、SQuAD、NQ、TriviaQA、DROP;全部截断到最多 2K;报告任务分数及平均,越高越好
LongBench较长输入下,不同类别任务是否受益?单/多文档 QA、摘要、few-shot、synthetic、代码;类别和总平均;更高更好
扩展单状态对照收益能否由单纯增大活动状态解释?扩大单状态的 value 维度,对齐 MoM 被激活状态总容量
推理效率长历史下生成 1K token 的成本如何变化?延迟秒数、GPU 显存 GB;越低越好;上下文 32K–512K
长度外推2K 预训练后更长输入的语言建模是否稳定?FineWeb 上 2K–32K 的 perplexity,越低越好
路由分析状态有无闲置或过载?是否呈现内容偏好?ARC-easy 约 300k tokens 的层×记忆路由比例;中间层 token 类别分析
常识与语言建模召回收益是否伴随一般能力改善?零样本,lm-evaluation-harness;六项 accuracy 均值和单独列出的 PPL
扩展、消融、混合哪些组件有用?更多记忆或少量注意力有何效果?记忆数/激活率、辅助损失权重、共享记忆、3 个 Transformer 层

指标细节应保留未知项。 主文未逐项明示六个召回任务究竟用 EM、F1 还是其他打分,以及所有 prompt/shot/解码细节,因而这里统一称“原表分数”,不自行把它们全部定义成完全匹配率。LongBench 也没有充分报告本实验的每任务输入上限、精确模型规模、生成配置与汇总权重;不能把 Table 2 的 2K 截断规则自动套给 Table 3。

常识任务中,ARC-e、LAMBADA、PIQA、WinoGrande 使用表中 acc;ARC-c 和 HellaSwag 使用 acc_n,指按选项长度归一化评分后选择答案的准确率。Table 7 的 Avg. 是六项任务的平均,不包括 WikiText 和 LAMBADA 的 PPL。PPL 是预测损失的指数形式,数值越低越好,不能与准确率直接求均值。

四:结果

4.1 召回密集任务:显著缩小差距,但保留 Transformer 优势项

下表摘录关键行,所有数值与 Table 2(PDF p. 7)一致。分数越高越好,Avg. 为六任务均值。

配置模型Avg.Avg.(不含 FDA)
380M / 15B tokensTransformer++31.7028.81
同上Gated DeltaNet24.7825.63
同上MoM28.1629.20
1.3B / 100B tokensTransformer++†37.3135.91
同上Gated DeltaNet32.3032.70
同上MoM36.0435.02

本次计算:小配置相对 Gated DeltaNet 增加 $28.16-24.78=3.38$ 分,按原表平均分计算的相对增长约 13.64%;大配置增加 3.74 分,相对增长约 11.58%。分数差不应写成“提高 3.74%”;在这些异质任务均分上,使用“分”也比一概称“准确率百分点”更稳妥。

以大配置细分结果理解“接近”:

任务Gated DeltaNetMoMTransformer++†MoM − Transformer++
FDA30.2541.1444.32−3.18
SWDE27.6534.3032.43+1.87
SQuAD34.0637.0842.59−5.51
NQ23.2224.1124.49−0.38
TriviaQA58.2358.5958.47+0.12
DROP20.3621.0321.56−0.53

MoM 在这两个尺度的六个召回任务上均优于表列其他线性模型,但大配置只在 SWDE、TriviaQA 超过 Transformer++。小配置 FDA 仍为 22.98 对 46.14,差距很大;排除 FDA 后小配置 MoM 的均值反而略高于 Transformer++。这说明平均分、任务选择会明显改变“追平”的印象。

没有置信区间或多种子的均值方差,不能把作者用语中的“significantly”自动解释为通过统计显著性检验。

4.2 长上下文:提升主要来自 few-shot 和代码

模型摘要Few-shotSynthetic代码原表 Avg.
RetNet†6.3015.762.6440.5213.61
HGRN2†6.5115.502.6140.1113.02
GSA†7.7520.291.9242.8314.61
Gated DeltaNet7.1418.002.1041.5213.98
MoM6.8921.262.6347.7915.64

来源:Table 3(p. 7)、Appendix I / Table 10(p. 18)。MoM 原表总平均相对 Gated DeltaNet 高 1.66 分,相对 GSA 高 1.03 分;代码分别高 6.27、4.96 分。但是摘要低于 GSA 和 Gated DeltaNet;Synthetic 仍略低于 RetNet。

补充的 QA 列也不是全面领先:MoM 单文档 QA 为 8.14,低于 RetNet 9.23 和 Gated DeltaNet 8.52;多文档 QA 为 7.11,略低于 RetNet 7.23。因此该组结果更支持“若干类别明显获益,原表综合分领先”,而不是“所有长上下文能力都改善”。

汇总口径问题:Table 10 同时报出 MoM 的 Zh-Avg 17.33、En-Avg 15.71 和 Avg. 15.64。若前两者是在相同任务口径下按中文/英文完整划分,总平均不应低于二者;GSA 等行也有类似现象。论文没有给出足以重建这些平均的逐任务分数及权重。因此保留作者总分并标为“原表 Avg.”,不把它重新解释成六类别简单均值或两个语言均值的加权平均,也不声称已独立复算 LongBench 总分。表题称 complete results,实际仍是类别与语言级汇总。

这一组没有报告 Transformer++,不能由该表推出 MoM 在 LongBench 上追平 Transformer。

4.3 混合记忆优于扩展单记忆:对齐的是活动容量

Table 4(p. 7)将单状态的 value 维度扩大,以匹配 MoM 每步激活的状态容量。

更新机制与架构表列 Params召回均分 ↑常识均分 ↑
GLA expanded425M22.8738.90
GLA MoM395M23.5339.99
Gated DeltaNet expanded550M26.3241.32
Gated DeltaNet MoM444M28.1641.97

Gated DeltaNet 的 MoM 版本比扩展单状态高 1.84 分召回、0.65 分常识;GLA 版本分别高 0.66、1.09 分。相同架构思想在两种更新机制下都改善均分,有助于说明 MoM 的价值不只来自某个特定更新公式。

但这没有完全隔离“减少干扰”的因果贡献:比较对齐的是激活容量,MoM 还保留更多未激活状态;总状态存储、KV 投影结构、参数布局均有变化。附录 G.2(p. 17)标题使用“equal memory capacity”,应结合 Sec. 4.2.3 的更具体说明理解。另有单项退步,例如 GLA-MoM 的 FDA 9.90 低于 expanded 的 15.08,不能把均分改善说成逐任务改善。

4.4 效率:长历史获益明显,短端不一定更快

图 3:推理延迟和显存

原图 3,PDF p. 8;作者原始矢量图转 PNG。 横轴为 32K、64K、128K、256K、512K 序列长度;柱形看左轴延迟秒数,折线看右轴 GPU 显存 GB;浅色为 MoM,较深色为 Transformer++。任务是生成 1K tokens。

MoM 的延迟和显存在图中随历史长度大体平稳;Transformer++ 的延迟和显存随长度明显上升,并在 512K 标为 OOM。32K 的柱形中 Transformer++ 延迟反而低于 MoM,因此不能概括为“MoM 在所有长度都更快”。这与稀疏路由和多份状态带来常数开销并不矛盾。

可支持:该实现、该测量设置下的长历史解码优势。不能支持:端到端训练速度优于所有线性模型,或任意硬件/批大小下的固定加速倍数。图 3 未充分列出推理时的模型规模、batch、精度、预填充是否计时等完整配置;32 张 A800 是训练设置,不能直接作为该图的推理设备配置。图中 OOM 柱及虚线是失败/超范围标记,不是实际测得的 512K 延迟或显存数值。本笔记不据图估计精确加速比。

4.5 长度外推:PPL 稳定不等于远距离精确检索

图 4:训练 2K 后外推到 32K

原图 4,PDF p. 8。 横轴为 FineWeb 评测上下文长度;纵轴 perplexity,越低越好。图例包括 Transformer++、GLA、GSA、Gated DeltaNet、MoM。MoM 在显示的各长度中最低,随上下文增长略有改善;Transformer++ 的曲线很快超出图的上界。

该实验说明在作者的 2K 训练与评测条件下,MoM 的语言建模外推较稳定。它并没有测量一个很早出现的特定事实能否在 32K 处被精确取回;PPL 改善和精确检索是不同证据。也不能将未经说明的 RoPE 外推配置中的 Transformer++ 退化推广到所有经过长上下文适配的 Transformer。源码注释中出现的图外具体 PPL 不属于最终正文报告,本笔记不将其补入结果。

4.6 记忆分析:均衡有量化证据,语义功能仍是观察

图 5:有辅助损失的记忆路由分布

原图 5,PDF p. 9。 列为 24 个网络层,行为 4 个路由记忆,单元格是路由分配比例;色条为比例。大多数值接近 0.25,仍存在 0.12、0.37 等偏离,故“近似均衡”不等于完全相等。

图 9:无辅助损失的记忆路由分布

原图 9,PDF p. 18。 无辅助损失时,不同层出现接近 0 和 0.50 的分配比例。例如第 2 层四个值为 0.00、0.50、0.05、0.45,明显偏斜。两图色条范围不同(图 5 到 0.40、图 9 到 0.50),应比较数字,不能只比较颜色深浅。

这些列内比例约为 1,结合 top-2,合理解释是“所有路由分配中的份额”,而不是“某记忆被原始 token 选中的概率”;否则均衡时每个记忆应对应约 0.5。该归一化解释来自图数值与配置的一致性分析,原文没有给出明确分母公式。[Sec. 4.2.6,p. 8]

Table 5(p. 9)给出中间层的 token 偏好和可能功能:

记忆作者观察到的 token 类别作者提出的可能功能
1基础名词、动词、介词基础语义/因果逻辑
2专有名词、科学术语专门知识
3技术术语、形容词细节记忆
4疑问词、不完整名词片段或开放信息

这是定性观察。没有报告完整 token 清单、类别判定方法、跨层跨种子稳定性或针对性的状态干预,因此不能认定“记忆 2 已被证明专门保存科学知识”。此外正文 p. 8 把两幅热图都描述为有辅助损失,与 Fig. 9 标题冲突;这里以 Fig. 9 明确的 without Aux Loss 为准。

4.7 扩展与消融:共享状态有用,扩展曲线有边界

图 6:主文的记忆数量扩展

原图 6,PDF p. 10。 左图是召回均分,右图是常识均分;横轴为记忆数。主文标注固定激活率 0.5,图上标签为:

路由记忆数召回 ↑常识 ↑
1(起点)23.2740.87
224.4941.34
427.2041.75
829.1442.19

这支持从小记忆池到 8 个记忆的改善趋势。但 $M=1$ 无法字面满足整数 top-$k$ 且 $k/M=0.5$;附录 Fig. 8 把它单独画为起点,应按特殊基线理解,不自行指定 $k=0.5$。

图 8:扩展到 16 个记忆的补充结果

原图 8,PDF p. 17。 红色圆点代表激活率 25%,蓝色三角为 50%,空心点为单记忆起点;图例的 $n$ 指记忆数,不是序列长度。所有设置另有共享记忆。常识总体随记忆数增加而提升,但 50% 激活率的召回曲线从 8 到 16 个记忆发生下降(约 29.1 到 28.6,按图估读)。因此正文所谓持续提升不能扩展成“严格单调扩展律”。未标具体数值的点不视作精确报告值。

跨表不一致:图 6 的 4 记忆/50% 激活率为 27.20、41.75,而主模型 Table 2、Table 6 的 4 记忆、top-2、共享状态对应 28.16、41.97。原文未充分说明导致差异的额外设置;这些结果应分开展示,不串成同一个配置下可精确复现的单一实验系列。

Table 6(p. 10)的辅助损失与共享状态消融如下,属于小配置、15B tokens:

变化项召回 ↑常识 ↑
辅助损失权重 $10^{-2}$27.5942.10
辅助损失权重 $5\times10^{-3}$26.5541.71
辅助损失权重 $10^{-3}$28.1641.97
辅助损失权重 027.2341.58
有共享记忆28.1641.97
无共享记忆26.0640.38

$10^{-3}$ 对召回最好,$10^{-2}$ 对常识最好;相对无辅助损失,$5\times10^{-3}$ 的召回反而较差。可概念性写成语言建模损失加 $\lambda$ 倍负载均衡损失,但论文仅引用 Switch Transformer 的损失形式,没有在正文展开自己的完整实现与分母约定。共享记忆在这组实验中增加 2.10 分召回、1.59 个百分点常识准确率。增加共享分支也会增加状态与计算,故这个消融不是固定预算下对“共享”语义的纯因果检验。

4.8 附录 D–E:常识收益较小,训练损失是单次曲线

Table 7(p. 15)关键结果:

配置模型WikiText PPL ↓LAMBADA PPL ↓六项常识 Avg. ↑
380M / 15BTransformer++26.8876.4641.35
同上Gated DeltaNet26.4758.5941.44
同上MoM25.8655.4141.97
1.3B / 100BTransformer++†17.6119.2949.93
同上GSA†16.6916.0250.89
同上Gated DeltaNet17.1418.8049.58
同上MoM16.6414.8350.97

MoM 大配置相对 Gated DeltaNet 高 1.39 个百分点,但相对更强的 GSA 均值仅高 0.08 个百分点。MoM 并非每项第一,例如大配置 ARC-e 55.35 低于 HGRN2/GSA 的 58.33,HellaSwag 50.95 低于 HGRN2 的 51.93。没有误差条时,对小差异应克制。

图 7:小配置训练损失

原图 7,PDF p. 16;Appendix E 起于 p. 15。 图注明确为小配置、15B tokens、随机种子 42。纵轴为训练损失;横轴刻度至约 30k,与 $15\mathrm B/0.5\mathrm M=30{,}000$ 更新步相符,但图未明确印出横轴单位名称。MoM 曲线在图中处于较低位置,支持这次训练轨迹的优势;这不是跨种子的置信带,也不是训练吞吐测试。

4.9 附录 F:加入少量全局注意力后,召回还会大幅上升

每 7 个 MoM 层之后放 1 个 Transformer 层,24 层中有 21 个 MoM 层和 3 个全局注意力层。[Appendix F,Table 8,p. 16]

模型召回均分 ↑常识均分 ↑
Transformer++31.7041.35
MoM28.1641.97
MoM Hybrid37.8042.38

混合模型召回相对纯 MoM 高 9.64 分,相对 Transformer++ 高 6.10 分。大幅变化集中在 FDA(22.98 → 58.13)和 SWDE(29.90 → 44.05)等任务;TriviaQA、DROP 相对纯 MoM 略有下降。表中普通 MoM/Transformer++ 行与小配置主表对应,但附录未另列 hybrid 的全部参数与计算预算。

这支持全局注意力和递归多记忆的互补性。复杂度代价也随之改变:3 个标准全局注意力层仍保留随历史增加的 KV cache;不能把纯 MoM 的固定状态、历史长度方向 $O(1)$ 解码结论直接赋给整个 Hybrid 模型。论文没有在同一张效率图中验证 Hybrid 的速度收益。

4.10 附录 G:严格对齐激活参数后,召回优势仍在

作者将 MoM 的 MLP hidden ratio 降为 2,使双方为 400M 激活参数;其他训练设置沿用 Sec. 4.1。[Appendix G.1,pp. 16–17,Table 9]

模型激活参数召回均分 ↑常识均分 ↑
Gated DeltaNet400M24.7841.44
MoM400M26.5141.50

此时召回仍高 1.73 分,六个召回任务单项都更好;常识均值仅高 0.06 个百分点,其中 LAMBADA 和 PIQA 更低。这是一个有价值的控制实验:主结论在控制激活参数后仍得到召回方向的支持。但它没有同时对齐总参数、总状态容量、训练 FLOPs、内存访问量或墙钟时间。

五:结论

5.1 可以可靠带走的三个判断

  1. 多记忆路由改变了上下文信息的组织方式。 它决定哪些 token 会共同修改同一个递归状态,同时保留底层遗忘/修正机制;共享记忆提供贯穿因果历史的补充通路。
  2. 本文最有说服力的改善是召回。 主表和等激活参数实验都支持它优于 Gated DeltaNet;GLA 的扩展对照说明思路具有一定跨更新机制的通用性。常识和 LongBench 的收益需要按任务及预算分别看。
  3. 效率来自固定历史状态,但有具体成本。 总状态随记忆数扩大,路由和多路计算带来额外开销;固定激活比例扩容会增加计算。少量 Transformer 层还能显著改善召回,但同时改变渐近存储和计算性质。

5.2 原文表述与证据之间应保留的距离

容易误读的说法更准确的读法
“完全消除记忆干扰”未选中的状态避免本步写入干扰;同一状态内部及路由错误仍可能造成信息损失
“与 Transformer 召回相当”1.3B、100B tokens、最长 2K 的六任务均值接近,仍落后 1.27 分,且单项差异明显
“380M 参数公平比较”主文是层数与宽度配置简称;400M 等激活参数比较需看 Table 9
“相同记忆容量”Table 4 对齐激活状态容量;总持久状态不是同一个预算
“常数推理”固定架构下,单步解码相对历史长度为常数;prefill、总生成步数及记忆池规模仍影响成本
“增加记忆必然持续提升”主图 1–8 的趋势为改善,附录 50% 激活率下 8→16 的召回出现回落
“LongBench 全面优于基线”部分类别和原表总分更好;QA/摘要等并非最好,汇总口径有未解释问题
“记忆自动形成确定的知识模块”Table 5 是中间层定性类别观察,没有功能干预或跨种子稳定性证明

5.3 复现前优先核对的问题

这些是本次阅读提出的后续检查,并非已完成复现:

  • 评测口径:召回任务的 metric/prompt/shot、LongBench 的任务权重与语言汇总,尤其为何总均值低于中文和英文均值。
  • 预算与实现:总/激活参数、每层每头状态尺寸、门控参数是否独立、实际 kernel 与路由打包成本;图 3 的完整推理协议。
  • 配置一致性:0.25M warmup 是否属实;图 6 与 Table 2/6 的 4 记忆设置为何分数不同。
  • 机制检验:固定总状态与计算预算下比较学习路由、随机路由与稠密更新;用直接召回或状态干预测试“减少干扰”,避免只用下游平均分代替机制证据。
  • 可靠性与扩展:多随机种子、误差条、固定 $k$ 的记忆扩展曲线,以及更长上下文的精确检索任务。本文无相应完整结果,不能预判答案。

5.4 公式与材料一致性记录

  • Sec. 2 的 Eq. (1) 是带归一化和特征映射的全序列写法;Eq. (2) 去掉这些项并转为因果递归。解释自回归模型时使用 $i\le t$,不把两式当作未经条件调整就完全相等。
  • Sec. 2 明确用行向量,Eq. (5) 写 $\mathbf x\mathbf W$;Sec. 3.3 则写 $\mathbf W\mathbf x$。本笔记与幻灯片统一按行向量组织,属于维度一致的记号整理,不是增加方法步骤。
  • Table 6 标题仍谈 memory count,但实际表行是辅助损失权重和共享记忆,按表内内容分析。
  • Fig. 9 是无辅助损失;源码注释中未发表的额外消融表和具体图外数值不进入成品。
  • 所有图件来自同一 v4 作者源码,并已与最终 PDF 的图号、面板和图例核对;图件清单记录来源。成品中的教学公式、例子和复杂度推导均已单独标明。

阅读后的判断:MoM 展示了“稀疏更新多个持久状态”在效率和召回之间的实用价值。理解它的关键,是同时追踪路由、状态保留和预算条件,而不把平均分接近、理论线性复杂度、实际速度与无损记忆混成同一个结论。