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 Tasks | LongBench 类别结果 | 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 Extrapolation | 2K 训练后外推到 32K | p. 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=\sum_{i\le t}\mathbf k_i^\top\mathbf v_i$。用某个键作为查询时,输出包含它与其他键相似度加权的值:
非目标项未必为零,因此可以发生串扰。扩大状态能降低某些冲突,但不规定哪些信息应共享更新空间。门控可决定保留多少历史,却不自动把两个都重要的信息项存入不同位置。此推导解释最简更新的机制,不是所有带门控模型的误差定理。
1.2 MoM 增加了“写到哪里”的控制
MoM 把两个设计维度分开:
- 路由选择状态:当前输入应进入哪些记忆?未选中的记忆完全跳过这一步。
- 状态内部更新规则:在被选中的记忆里,怎样遗忘、纠正或添加信息?主实验使用 Gated DeltaNet。
因此,多记忆路由与遗忘门是互补的。一个记忆可以避开与它无关的 token,同时在接收到自己的 token 时继续使用精细的更新规则。[Sec. 3.1–3.2,PDF pp. 3–5]
论文以神经振荡中的记忆分隔作为灵感。这是架构动机;实验没有检验神经科学机制。作者有时使用“消除干扰”的强措辞,本次分析采用更受证据支持的“减少不同路由输入之间的直接状态干扰”:同一记忆内部仍会压缩信息,路由也可能分配错误。
二:方法
2.1 输入、状态与输出

原图 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:
令 $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:
不同记忆既有不同的状态,也有各自的 KV 投影。论文图中展示加法更新只是为了说明结构,主实验并非使用这个最简更新。
把论文文字中“未激活则不变”补写进公式,可得到更完整的教学表达:
$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 将其简写为:
按这张表的写法,$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:
这里先更新、再读取,所以当前 token 可以影响当前位置输出,符合因果语言模型通常的当前位置可见性。混合状态是本次读取的临时组合;各个独立状态仍分别保存,不能把它们永久覆盖成一个共同状态,否则下一步就失去分区结构。
共享记忆每步都接收输入,提供覆盖完整因果历史的通路。[Sec. 3.2,PDF p. 5] 根据 Fig. 1 的加法汇合关系,本次教学表达可写为:
这不是原文的编号公式;正文只明确说明共享记忆机制,图示给出其汇合关系。尤其不能把共享记忆算作四个路由记忆之一,也不能把“能访问全部历史”解释为“无损保存全部历史”。共享分支本身仍是固定容量状态。
读取后还会经过激活、归一化、输出线性变换。正文没有完整给出这几步的精确次序细节与所有超参数;源码中被注释掉的具体表达式不作为最终规范。
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,PDF p. 5;作者原图。 同色 token 被分给同一记忆。图中只画 top-1,省略 QKV 投影;主实验是 top-2,不应把示意图直接当作主配置。
关键恒等式是:
于是无需显式把许多矩阵拼成一个再读取:可以分别调用底层线性模型的高效算子,最后组合输出向量。这个等价依赖于在同一线性读取位置做加权;不能把任意非线性操作移进移出求和。[Sec. 3.3,PDF pp. 5–6]
具体过程如下:
- 对每个样本 $b$ 和记忆 $m$,收集有序索引 $\mathcal I_{b,m}=(t_{b,m}(1),\ldots,t_{b,m}(L_{b,m}))$。
- 按桶 $p=(b-1)M+m$ 排列,建立累计边界 $s_0=0$、$s_p=\sum_{q\le p}L_q$。
- 将各桶 token 拼成变长序列 $\widetilde{\mathbf X}$,以 $\mathbf s$ 标记边界。Top-$k$ 会让一个原 token 出现在 $k$ 个桶中。
- 每段使用共享查询投影和记忆专用 KV 投影,运行独立、因果的递归 kernel;边界必须阻止不同样本或记忆串状态。
- 把输出映射回原 $(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 MoE | MoM |
|---|---|---|
| 被路由到的对象 | 若干前馈参数子网络 | 带独立 KV 投影的递归记忆状态 |
| 主要处理位置 | 单 token 的通道变换 | 历史 token 的信息混合 |
| 跨 token 持续状态 | FFN 专家本身通常没有这类状态 | 每个记忆保存其路由子序列历史 |
| 主要扩展目标 | 稀疏激活更多参数 | 在稀疏更新下扩展上下文状态容量 |
这个比较对应论文附录 B(pp. 14–15)中的常见 FFN MoE,不是对所有已有 MoE 变体的绝对分类。MoM 同样会增加投影参数,也同样需要处理路由负载问题。
三:实验
3.1 共同训练设置与参数口径
| 项目 | “380M”配置 | “1.3B”配置 | 来源 |
|---|---|---|---|
| 层数、隐藏宽度 | 24 层,1024 | 24 层,2048 | Sec. 4.1;Table 2,pp. 6–7 |
| 训练 tokens | 15B | 100B | 同上 |
| batch tokens | 0.5M | 2M | Appendix C,p. 15 |
| warmup tokens | 0.25M(原文如此) | 1B | Appendix C,p. 15 |
| 预训练序列长度 | 2K | 2K | Sec. 4.2.5,p. 8 |
| 数据与 tokenizer | SlimPajama;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 tokens | Transformer++ | 31.70 | 28.81 |
| 同上 | Gated DeltaNet | 24.78 | 25.63 |
| 同上 | MoM | 28.16 | 29.20 |
| 1.3B / 100B tokens | Transformer++† | 37.31 | 35.91 |
| 同上 | Gated DeltaNet | 32.30 | 32.70 |
| 同上 | MoM | 36.04 | 35.02 |
本次计算:小配置相对 Gated DeltaNet 增加 $28.16-24.78=3.38$ 分,按原表平均分计算的相对增长约 13.64%;大配置增加 3.74 分,相对增长约 11.58%。分数差不应写成“提高 3.74%”;在这些异质任务均分上,使用“分”也比一概称“准确率百分点”更稳妥。
以大配置细分结果理解“接近”:
| 任务 | Gated DeltaNet | MoM | Transformer++† | MoM − Transformer++ |
|---|---|---|---|---|
| FDA | 30.25 | 41.14 | 44.32 | −3.18 |
| SWDE | 27.65 | 34.30 | 32.43 | +1.87 |
| SQuAD | 34.06 | 37.08 | 42.59 | −5.51 |
| NQ | 23.22 | 24.11 | 24.49 | −0.38 |
| TriviaQA | 58.23 | 58.59 | 58.47 | +0.12 |
| DROP | 20.36 | 21.03 | 21.56 | −0.53 |
MoM 在这两个尺度的六个召回任务上均优于表列其他线性模型,但大配置只在 SWDE、TriviaQA 超过 Transformer++。小配置 FDA 仍为 22.98 对 46.14,差距很大;排除 FDA 后小配置 MoM 的均值反而略高于 Transformer++。这说明平均分、任务选择会明显改变“追平”的印象。
没有置信区间或多种子的均值方差,不能把作者用语中的“significantly”自动解释为通过统计显著性检验。
4.2 长上下文:提升主要来自 few-shot 和代码
| 模型 | 摘要 | Few-shot | Synthetic | 代码 | 原表 Avg. |
|---|---|---|---|---|---|
| RetNet† | 6.30 | 15.76 | 2.64 | 40.52 | 13.61 |
| HGRN2† | 6.51 | 15.50 | 2.61 | 40.11 | 13.02 |
| GSA† | 7.75 | 20.29 | 1.92 | 42.83 | 14.61 |
| Gated DeltaNet | 7.14 | 18.00 | 2.10 | 41.52 | 13.98 |
| MoM | 6.89 | 21.26 | 2.63 | 47.79 | 15.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 expanded | 425M | 22.87 | 38.90 |
| GLA MoM | 395M | 23.53 | 39.99 |
| Gated DeltaNet expanded | 550M | 26.32 | 41.32 |
| Gated DeltaNet MoM | 444M | 28.16 | 41.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,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,PDF p. 8。 横轴为 FineWeb 评测上下文长度;纵轴 perplexity,越低越好。图例包括 Transformer++、GLA、GSA、Gated DeltaNet、MoM。MoM 在显示的各长度中最低,随上下文增长略有改善;Transformer++ 的曲线很快超出图的上界。
该实验说明在作者的 2K 训练与评测条件下,MoM 的语言建模外推较稳定。它并没有测量一个很早出现的特定事实能否在 32K 处被精确取回;PPL 改善和精确检索是不同证据。也不能将未经说明的 RoPE 外推配置中的 Transformer++ 退化推广到所有经过长上下文适配的 Transformer。源码注释中出现的图外具体 PPL 不属于最终正文报告,本笔记不将其补入结果。
4.6 记忆分析:均衡有量化证据,语义功能仍是观察

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

原图 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,PDF p. 10。 左图是召回均分,右图是常识均分;横轴为记忆数。主文标注固定激活率 0.5,图上标签为:
| 路由记忆数 | 召回 ↑ | 常识 ↑ |
|---|---|---|
| 1(起点) | 23.27 | 40.87 |
| 2 | 24.49 | 41.34 |
| 4 | 27.20 | 41.75 |
| 8 | 29.14 | 42.19 |
这支持从小记忆池到 8 个记忆的改善趋势。但 $M=1$ 无法字面满足整数 top-$k$ 且 $k/M=0.5$;附录 Fig. 8 把它单独画为起点,应按特殊基线理解,不自行指定 $k=0.5$。

原图 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.59 | 42.10 |
| 辅助损失权重 $5\times10^{-3}$ | 26.55 | 41.71 |
| 辅助损失权重 $10^{-3}$ | 28.16 | 41.97 |
| 辅助损失权重 0 | 27.23 | 41.58 |
| 有共享记忆 | 28.16 | 41.97 |
| 无共享记忆 | 26.06 | 40.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 / 15B | Transformer++ | 26.88 | 76.46 | 41.35 |
| 同上 | Gated DeltaNet | 26.47 | 58.59 | 41.44 |
| 同上 | MoM | 25.86 | 55.41 | 41.97 |
| 1.3B / 100B | Transformer++† | 17.61 | 19.29 | 49.93 |
| 同上 | GSA† | 16.69 | 16.02 | 50.89 |
| 同上 | Gated DeltaNet | 17.14 | 18.80 | 49.58 |
| 同上 | MoM | 16.64 | 14.83 | 50.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,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.70 | 41.35 |
| MoM | 28.16 | 41.97 |
| MoM Hybrid | 37.80 | 42.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 DeltaNet | 400M | 24.78 | 41.44 |
| MoM | 400M | 26.51 | 41.50 |
此时召回仍高 1.73 分,六个召回任务单项都更好;常识均值仅高 0.06 个百分点,其中 LAMBADA 和 PIQA 更低。这是一个有价值的控制实验:主结论在控制激活参数后仍得到召回方向的支持。但它没有同时对齐总参数、总状态容量、训练 FLOPs、内存访问量或墙钟时间。
五:结论
5.1 可以可靠带走的三个判断
- 多记忆路由改变了上下文信息的组织方式。 它决定哪些 token 会共同修改同一个递归状态,同时保留底层遗忘/修正机制;共享记忆提供贯穿因果历史的补充通路。
- 本文最有说服力的改善是召回。 主表和等激活参数实验都支持它优于 Gated DeltaNet;GLA 的扩展对照说明思路具有一定跨更新机制的通用性。常识和 LongBench 的收益需要按任务及预算分别看。
- 效率来自固定历史状态,但有具体成本。 总状态随记忆数扩大,路由和多路计算带来额外开销;固定激活比例扩容会增加计算。少量 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 展示了“稀疏更新多个持久状态”在效率和召回之间的实用价值。理解它的关键,是同时追踪路由、状态保留和预算条件,而不把平均分接近、理论线性复杂度、实际速度与无损记忆混成同一个结论。