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

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

## 论文总览

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

线性注意力及相关递归模型常把历史压缩成固定大小的状态。状态容量有限，而且每个新 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=\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 架构](figures/fig-01-architecture.png)

**原图 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 更新的教学伪代码

```text
输入：当前表示 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 运算](figures/fig-02-varlen.png)

**原图 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 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：推理延迟和显存](figures/fig-03-efficiency.png)

**原图 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](figures/fig-04-extrapolation.png)

**原图 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：有辅助损失的记忆路由分布](figures/fig-05-balance-aux.png)

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

![图 9：无辅助损失的记忆路由分布](figures/fig-09-balance-no-aux.png)

**原图 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：主文的记忆数量扩展](figures/fig-06-scaling.png)

**原图 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：扩展到 16 个记忆的补充结果](figures/fig-08-scaling-full.png)

**原图 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：小配置训练损失](figures/fig-07-training-loss.png)

**原图 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 可以可靠带走的三个判断

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 的图号、面板和图例核对；[图件清单](figures/manifest.json)记录来源。成品中的教学公式、例子和复杂度推导均已单独标明。

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