# Triadic Linear Attention：三维递归记忆的中文研读笔记

**论文**：Triadic Linear Attention: Three-Dimensional Recurrent States for Long-Context Sequence Modeling  
**作者**：Oliver Sieberling、Bharat Runwal、David Jin、Ryan Chin、Rameswar Panda、Yoon Kim（MIT / MIT-IBM Computing Research Lab）  
**版本**：arXiv:2609.36529v1，2026-09-29 提交；获取与研读日期：2026-10-09。  
**原文**：[arXiv](https://arxiv.org/abs/2609.36529v1) · [本地 PDF](../source/paper.pdf) · [英文汇报 PDF](slides.en.pdf) · [可编辑 TeX](slides.en.tex)  
**作者提供的代码链接**：[TriadicLinearAttention](https://github.com/OliverSieberling/TriadicLinearAttention)。文中原图沿用论文图件，许可为 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)。以下页码均为从 1 开始的 PDF 页码，与论文印刷页码一致。

## 论文总览

线性注意力把历史压入固定大小的矩阵状态，推理成本因此不随历史长度增长，但记忆容量也受到限制。本文提出三元线性注意力（Triadic Linear Attention）：每个 token 额外产生一个短 key 和一个短 query，把原来的 $k\otimes v$ 写入改成 $k\otimes k'\otimes v$，让状态从 $d\times d$ 扩大到 $d\times E\times d$。检索权重由一次相似度变成两次相似度的乘积，联合地址空间扩大，而投影参数只增加少量。

论文的贡献有三个相互依赖的部分：三维记忆的参数化；与逐切片遗忘和联合 delta rule 的结合；利用乘积结构与 value 维分块实现可训练的 GPU 内核。400M GDN 的 $E=8$ 模型把状态从 6.3 MB 扩大到 50.3 MB，参数从 380.9M 增到 385.4M；PG19 的 16K–64K 区间困惑度从 14.15 降到 13.74，六任务召回均分从 26.2 升到 33.1。计算代价则在 1.3B、H100 的单块测试中测量：$E=8$ 的前向加反向耗时较普通 GDN 增加约 28%–30%。（Table 2, p. 7；Sec. 3.5, p. 8）

最有启发的结果是：**状态容量可以成为独立于模型参数量的扩展方向**。不过，长文 next-token 预测的改善和精确检索能力的改善幅度不同；Figure 3 中，纯 Triadic GDN 在 64K 的四项 NIAH 检索上仍明显落后于 Transformer。本文展示了容量、参数和计算之间更好的取舍，并没有消除固定状态的容量限制。

## 结构地图

| 原文章节 | 论证作用 | PDF 页码与关键证据 |
| --- | --- | --- |
| 1 Introduction | 固定状态瓶颈与参数高效扩容动机 | pp. 1–2 |
| 2.1 Linear attention as an associative memory | 外积写入、查询解绑定与干扰 | p. 2，Eq. (1) |
| 2.2 Binding to a second key | 三元外积与乘积检索 | pp. 2–3，Eq. (2) |
| 2.3 Capacity in isolation | 简化 MQAR 实验隔离容量收益 | p. 3，Fig. 1 |
| 2.4 Forgetting and the delta rule | 逐切片衰减、联合 key 的 delta 更新 | pp. 3–4，Eqs. (3)–(5) |
| 2.5 Efficient implementation | 分块并行、乘积核、value 维分块 | pp. 4–5，Eqs. (6)–(8) |
| 3.1 Experimental Setup | 模型、训练、对照与指标 | pp. 5–6 |
| 3.2 Main Results | 扩容趋势与等状态比较 | pp. 6–7；Fig. 2 在 p. 5，Table 1 在 p. 6，Fig. 3 在 p. 7 |
| 3.3 Upcycling to Triadic Linear Attention via Continued Pretraining | 预训练后的状态扩容 | pp. 7–8，Table 2 |
| 3.4 Hybrid Models | 混合模型中扩递归状态还是 KV 缓存 | p. 8，Table 3 |
| 3.5 Training Efficiency | 实测训练耗时 | p. 8，Fig. 4 |
| 3.6 Ablations | 两个 key 维度的分配与非线性 | pp. 8–9，Table 4 |
| 4 Discussion and Limitations；5 Related Work；6 Conclusion | 取舍、已有高阶记忆工作与贡献定位 | pp. 9–10 |
| A Chunkwise Form and GPU kernels | 完整门控 delta 分块公式与数值实现 | pp. 17–18，Eqs. (9)–(11) |
| B Analysis | 远程上下文、写入强度、记忆时间尺度 | pp. 18–19，Fig. 5 |
| C MQAR Setup；D Language Modeling Setup | 实验协议与模块伪代码 | pp. 19–20，Algorithms 1–2 |

## 一：动机——扩大可寻址空间，避免挤占其他模块

普通线性注意力的单头状态为 $S_t\in\mathbb R^{d\times d}$：

$$
S_t=S_{t-1}+k_tv_t^\top,\qquad
o_t=S_t^\top q_t=\sum_{s\le t}(q_t^\top k_s)v_s.
$$

这里假设初始状态为零。$k_s$ 充当地址，$v_s$ 充当内容，$q_t$ 负责检索。如果查询与其他记录的 key 不正交，那些记录就会按相似度混入输出。这是叠加式关联记忆（associative memory）的串扰。$d$ 维地址空间至多包含 $d$ 个彼此正交的 key；更好的遗忘与替换策略可以管理干扰，却不会自动扩大地址空间。（Sec. 2.1, p. 2）

直接扩大状态有几条路径：增大每头维度、扩大 value、给一个 key 配多个 value head、增加 head 数。后几种方式也会扩大投影矩阵。在固定参数预算下，作者必须缩窄 MLP；部分 4 倍扩容对照把 MLP 宽度从 2816 缩到 640。因而本文研究的是一个预算分配问题：怎样用尽量少的慢权重参数，为每条序列提供更多快权重记忆？（Secs. 3.1–3.2, pp. 6–7）

## 二：方法——两个地址轴共同读写一个 value

### 2.1 符号与基本计算

| 符号 | 含义与维度 |
| --- | --- |
| $x_t$ | 当前 token 的输入表示，维度 $d_{\rm model}$ |
| $q_t,k_t,v_t$ | 第一 query、第一 key、value，主实验每头均为 $d=128$ |
| $q'_t,k'_t$ | 第二 query 与第二 key，维度 $E$ |
| $S_t$ | 每头状态，$d\times E\times d$ |
| $\alpha_{t,e}$ | 第 $e$ 个状态切片的遗忘系数，介于 0 和 1 之间 |
| $\beta_t$ | 每头的 delta 写入强度，介于 0 和 1 之间 |
| $H,C$ | 头数与训练分块长度；完整内核使用 $C=64$ |

无门控、无 delta 的基本形式是：

$$
S_t=S_{t-1}+k_t\otimes k'_t\otimes v_t,
$$

$$
o_t=S_t\times_1q_t\times_2q'_t
=\sum_{s\le t}(q_t^\top k_s)(q_t'{}^\top k'_s)v_s.
$$

$\times_n$ 表示沿第 $n$ 个轴收缩。例如，输出的第 $j$ 个分量是 $\sum_{a,e}S_t[a,e,j]q_t[a]q'_t[e]$。因此，历史 token 需要同时在两套地址上与查询匹配，才会对输出产生大的贡献。第二 key 是模型学习的潜在地址，不需要数据自带第二种标签。（Eq. (2), p. 3）

这也可以展平成普通矩阵记忆：定义联合 key $\kappa_t=k_t\otimes k'_t\in\mathbb R^{dE}$，把状态视为 $\bar S_t\in\mathbb R^{dE\times d}$。于是三维表示等价于采用结构化特征映射的线性注意力，特征由两个短向量的外积产生。单次写入的联合地址有可分解约束，但多次写入累加后的状态不必保持秩一。

状态元素从 $d^2$ 增到 $d^2E$。主要新增投影参数约为 $2d_{\rm model}HE$，另有短卷积和门控的少量参数。把联合 key 直接投影到 $dE$ 维，则需要远大的投影矩阵。参数节省来自这种乘积分解，而实际状态仍是稠密存储，读写量随 $E$ 增加。

### 2.2 一个说明串扰如何减少的例子

下面是教学例子。设两条记录的第一 key 相同，都是 $e_1=(1,0)$，但第二 key 分别是 $f_1=(1,0)$ 和 $f_2=(0,1)$，value 分别为 $a,b$。普通矩阵记忆只能在地址 $e_1$ 下读出 $a+b$；三维记忆则保存

$$
S=e_1\otimes f_1\otimes a+e_1\otimes f_2\otimes b.
$$

用 $(e_1,f_1)$ 查询，$b$ 项被 $f_1^\top f_2=0$ 消掉，恰好得到 $a$。一般地，取 $d$ 个正交第一 key 与 $E$ 个正交第二 key 的全部组合，可以形成 $dE$ 个正交联合地址。这是理想正交条件下的容量解释；真实模型学习的地址允许重叠。尤其主语言模型对第二 key 使用正值 softplus，正交例子描述的是机制极限。

当 $E=1$ 且 $k'_t=q'_t=1$ 时，公式严格退化成普通线性注意力。语言模型实现中第二 key/query 先经 softplus 再做 $\ell_2$ 归一化，因而一维情况下确实等于 1。（Sec. 2.2, p. 3；Appendix D, pp. 19–20）

### 2.3 遗忘与 delta rule：先衰减，再修正联合地址

逐切片遗忘先得到临时状态

$$
\widetilde S_t[:,e,:]=\alpha_{t,e}S_{t-1}[:,e,:].
$$

Triadic GDN 随后读出当前联合 key 对应的已有内容，并写入残差：

$$
\widehat v_t=\widetilde S_t\times_1k_t\times_2k'_t,
\qquad r_t=v_t-\widehat v_t,
$$

$$
S_t=\widetilde S_t+\beta_t k_t\otimes k'_t\otimes r_t,
\qquad o_t=S_t\times_1q_t\times_2q'_t.
$$

这里的残差来自所有切片的联合读出，所以不能把它当作 $E$ 套互不相干的 DeltaNet。若记 $D_t$ 为展平后的对角衰减矩阵，原文 Eq. (5) 为：

$$
\bar S_t=(I-\beta_t\kappa_t\kappa_t^\top)D_t\bar S_{t-1}
+\beta_t\kappa_tv_t^\top.
$$

归一化使 $\|\kappa_t\|=\|k_t\|\|k'_t\|=1$。由上式可直接推得，更新后在同一地址读到 $(1-\beta_t)\widehat v_t+\beta_tv_t$：$\beta_t$ 控制替换比例，取 1 才是完整替换。还可以把它理解为对内层损失 $\frac12\|\bar S^\top\kappa_t-v_t\|^2$ 做一次梯度更新，初值是衰减后的状态。这一推导解释了与快权重和 test-time training 的联系。（Eqs. (3)–(5), p. 4；上述替换关系为教学推导）

标量门控线性注意力 sGLA 则去掉擦除项，实际实验更新为

$$
S_t=\widetilde S_t+\beta_t k_t\otimes k'_t\otimes v_t.
$$

其写入强度 $\beta_t$ 仍然保留。主实验的 sGLA 是作者定义的受控基线，不能直接等同于完整的 Mamba-2 或 mLSTM。（Algorithm 2, p. 20）

### 2.4 实际语言模型模块

输入先经过 RMSNorm。$q,k,v$ 由线性投影、因果短卷积和 SiLU 生成；$q',k'$ 则由投影、短卷积和 softplus 生成。四个 query/key 向量分别做 $\ell_2$ 归一化，value 不做这一归一化。遗忘门的参数化为

$$
\alpha_{t,e}=\exp\!\left[-\exp(A_e)\operatorname{softplus}(W_{\alpha,e}u_t+b_e)\right],
\qquad \beta_t=\sigma(W_\beta u_t).
$$

状态更新并读出后，各头输出经过 RMSNorm 与 sigmoid 输出门，再拼接、投影、残差相加；之后是带残差的 SwiGLU MLP。第二 key/query 与原有投影、卷积合并执行，因此实现上不需要为每个新向量单独启动一整套 GEMM 和卷积。（Algorithm 2, p. 20；Appendix A, p. 18）

### 2.5 高效训练：把块内乘积核与跨块状态分开

对于一个长度为 $C$ 的 chunk，令 $Q,K,V\in\mathbb R^{C\times d}$，$Q',K'\in\mathbb R^{C\times E}$。先看无遗忘、无 delta 的情况。联合地址内积可分解为

$$
(q\otimes q')^\top(k\otimes k')=(q^\top k)(q'{}^\top k').
$$

因此，块内因果交互矩阵为

$$
A=\operatorname{tril}\!\left[(QK^\top)\odot(Q'K'{}^\top)\right].
$$

构造它的成本从直接展平地址时的 $O(C^2dE)$ 降为 $O(C^2(d+E))$。设 $q'_e,k'_e$ 为第二 query/key 矩阵的第 $e$ 列，跨块状态的读写为

$$
O=\sum_e\operatorname{diag}(q'_e)QS_{[i],e}+AV,
$$

$$
S_{[i+1],e}=S_{[i],e}+K^\top\operatorname{diag}(k'_e)V.
$$

块内 token 可以并行，跨 chunk 才递归。省掉的是块内地址点积的乘法扩张；状态读写的 $E$ 倍成本仍然存在。（Sec. 2.5, pp. 4–5，Eqs. (6)–(8)）

完整门控 delta 形式用每片累计衰减 $\gamma_e^r=\prod_{j=1}^r\alpha_e^j$，定义因果矩阵 $(\Gamma_e)_{rs}=\gamma_e^r/\gamma_e^s$（$r\ge s$；其他位置为零），以及

$$
R=\sum_e(k'_ek'_e{}^\top)\odot\Gamma_e,\qquad
R'=\sum_e(q'_ek'_e{}^\top)\odot\Gamma_e.
$$

所有切片共享同一个 $C\times C$ 的三角系统：

$$
T=\left[I+\operatorname{tril}\!\left(\operatorname{diag}(\boldsymbol\beta)
(KK^\top\odot R),-1\right)\right]^{-1}
\operatorname{diag}(\boldsymbol\beta).
$$

这里 $\operatorname{tril}(\cdot,-1)$ 只保留严格下三角部分，表示当前 token 的写入依赖此前写入造成的修正。由它求得块内经 delta 修正的 value：

$$
U=T\left[V-\sum_e\operatorname{diag}(k'_e\odot\gamma_e)KS_{[i],e}\right],
$$

$$
O=\sum_e\operatorname{diag}(q'_e\odot\gamma_e)QS_{[i],e}
+(QK^\top\odot R')U,
$$

$$
S_{[i+1],e}=\gamma_e^C S_{[i],e}
+K^\top\operatorname{diag}\!\left(k'_e\odot\frac{\gamma_e^C}{\gamma_e}\right)U.
$$

向量上的乘除均按元素进行。门控沿第二 key 轴变化后，不能只预计算一份标准 DeltaNet 的 $TK$；作者选择直接把共享 $T$ 作用到残差上。（Appendix A, p. 17，Eqs. (9)–(11)）

### 2.6 GPU 实现与数值稳定性

在 $d=128,E=8$ 时，一个头的 FP32 状态有 $128\times8\times128\times4=512$ KiB，超过单个 Hopper SM 的寄存器容量。value 各列的计算互不依赖，作者按 32 个 value 通道切分，单块只需保存 128 KiB 的状态，同时保留这部分 value 的全部 $E$ 个切片。块数不足时使用 16 列。这样无需把整个头的状态放到一个 SM 上。（Sec. 2.5, p. 5；Appendix A, p. 18）

衰减比值直接计算为 $\exp(\log\gamma_e^r-\log\gamma_e^s)$。因果范围内指数非正，避免把一对可能溢出的正指数因子相乘。作者展示，先分解成两个矩阵再对指数做截断的便宜方案，在极强衰减时会破坏近对角项；所构造的 FP64 模拟中，块内总衰减为 $e^{-200}$ 和 $e^{-600}$ 时，相对输出误差分别达 0.05 和 1.5。这是选择逐元素形成 $R,R'$ 的具体原因。（Appendix A, p. 17）

CuTe 内核使用 FP32 三角求解，并在训练前向中保存 BF16 的块边界状态供反向使用。因此，“固定状态”描述的是逐 token 推理时的历史记忆；训练仍需保留随 chunk 数增长的中间信息。表格中的 2 字节状态计量与内核 FP32 寄存器工作集也属于不同口径。（Appendix A, p. 18）

## 三：实验——分别检验容量、语言建模和资源分配

### 3.1 独立容量实验：MQAR

多查询关联召回（Multi-Query Associative Recall, MQAR）先提供 $N$ 个随机 key–value 对，再以随机顺序查询全部 key。每个 key–value 对被打包为一个 token，因此总序列长为 $2N$；查询位置只读、不更新状态。key 与 value 分别从两个互不重叠的 8K 词表中无放回采样。

模型只有两层、4 个头，每头第一 key/value 维度为 16，模型宽度 128，MLP 宽度 384。序列混合器去掉卷积、遗忘、delta rule 和额外激活，仅保留基本外积机制及归一化；模型仍有 SwiGLU MLP。扫描 $N=32,64,\ldots,4096$ 和 $E=1,2,4,8,16$，每个组合训练 25 个种子。每次训练 50K steps，每步约 250K tokens，报告 3K 条留出序列上的平均正确率。（Sec. 2.3, p. 3；Appendix C, p. 19）

### 3.2 语言模型与训练协议

| 项目 | 400M 规模 | 1.3B 规模 |
| --- | --- | --- |
| 层数 / 模型宽度 / 头数 | 24 / 1024 / 8 | 24 / 2048 / 16 |
| 第一 key / value 维度 | 每头 128 / 128 | 每头 128 / 128 |
| 短上下文预训练 | 20B tokens，4K 上下文 | 65B tokens，4K 上下文 |
| 长上下文扩展 | 64K，每参数再训练 5 tokens | 同左 |
| 两阶段有效 batch | 约 0.5M tokens | 约 1M tokens |

预训练使用 FineWeb-Edu；扩展阶段混合 FineWeb-Edu、PG19 和科学 PDF 数据。优化器是 AdamW，两阶段峰值学习率分别为 $3\times10^{-4}$ 和 $10^{-4}$，weight decay 为 0.1，采用线性 warmup 后余弦衰减至峰值的 10%。所有语言任务结果来自长上下文扩展后的最终 checkpoint。（Sec. 3.1, pp. 5–6）

对照 Transformer 使用 GQA-8（每 8 个 query head 共享一个 KV head）、QK-norm 和 RoPE；RoPE base 从预训练的 10K 提高到扩展时的 2M。混合模型另用 NoPE，不能把两个设置混为一谈。各模型统一使用 32K 词表的 Llama-2 tokenizer。（Appendix D, pp. 19–20；Sec. 3.4, p. 8）

400M 的主对照与混合结果是三次训练种子的均值；Table 2 明确 400M 为三种子均值、1.3B 为单种子结果。Table 4 的激活消融行与 Table 2 的主实验行数值略有不同，应在各自表内比较，不把两表当成同一次运行。

### 3.3 指标口径

| 指标 | 衡量什么 | 方向与统计方式 |
| --- | --- | --- |
| WikiText-2 PPL | 通用语言预测 | 越低越好，按 token 计算，各文档完整输入 |
| PG19 PPL | 长书籍预测 | 越低越好；约 1700 本留出书、约 150M tokens、64K 窗口，按 token 位置区间统计 |
| Recall | 从上下文提取答案 | 越高越好；DROP、NQ、TriviaQA、FDA、SQuAD、SWDE 六任务，生成中包含答案即判对 |
| Zero-shot | 一般语言理解/常识能力 | 十任务准确率均值；HellaSwag、ARC-Challenge、OpenBookQA 用长度归一化准确率 |
| RULER NIAH | 受控长距离精确检索 | 越高越好；八任务、1K–64K；Table 3 同时对任务与上下文长度求平均 |

Zero-shot 其余七项为 LAMBADA、PIQA、ARC-Easy、WinoGrande、SciQ、BoolQ、COPA。Figure 3 只展示四项代表性 NIAH：单 needle、多 key、多 query、同 key 多 value。Recall 均分、NIAH 均分与逐位置预测损失回答的是不同问题。（Appendix D, p. 20）

## 四：结果——更大记忆在哪里有效，代价是什么

### 4.1 简化 MQAR 支持容量随第二 key 维度扩大

![图 1：第二 key 维度与关联召回容量](figures/fig01-mqar.png)

原图 Figure 1，PDF p. 3。横轴是 key–value 对数，按倍增取点；纵轴是正确率；从深红到黄色表示 $E$ 从 1 增到 16。随着 $E$ 增大，准确率下降的位置明显右移。作者概括为每次把 $E$ 翻倍，可记住的关联数量大致翻倍；$E=16$ 的非 embedding 参数仅约为基线的 1.08 倍。

这个实验的价值是把复杂门控和 delta rule 去掉后，仍能看到容量提升。曲线同时显示饱和边界：$E=16$ 到 2K、4K 关联时正确率也很低。

### 4.2 扩大状态改善长文预测和平均召回

![图 2 左下：1.3B 模型相对 Transformer 的逐位置损失](figures/fig02-pg19-1p3b.png)

原图 Figure 2 左下，PDF p. 5。纵轴是模型损失减去 Transformer 损失，负值更好；横轴是上下文位置。普通 GDN 在短上下文有优势，但约 10K 后开始落后；$E=8$ 到 64K 仍低于 Transformer。竖向虚线表示 Transformer 的 KV cache 超过相应递归状态的长度，**不是准确率曲线的交叉点**。

以下为精确表格数据。PG19 一列均指 **16K–64K token 位置区间**，Recall 单位为百分数；状态按全模型、每元素 2 字节计量。

| 模型 | 参数 M | 状态 MB | Wiki PPL ↓ | PG19 PPL ↓ | Recall ↑ |
| --- | ---: | ---: | ---: | ---: | ---: |
| 400M GDN | 380.9 | 6.3 | 11.25 | 14.15 | 26.2 |
| 400M Triadic GDN，$E=2$ | 381.9 | 12.6 | 11.08 | 13.95 | 28.4 |
| 400M Triadic GDN，$E=4$ | 383.0 | 25.2 | 10.93 | 13.79 | 31.1 |
| 400M Triadic GDN，$E=8$ | 385.4 | 50.3 | 10.87 | 13.74 | 33.1 |
| 1.3B GDN | 1360.2 | 12.6 | 8.08 | 10.20 | 36.1 |
| 1.3B Triadic GDN，$E=8$ | 1378.3 | 100.7 | 7.87 | 9.94 | 44.4 |

来源：Table 1, p. 6；Table 2, p. 7。400M 的 $E=8$ 相对基线增加约 1.18% 参数，Recall 增加 **6.9 个百分点**，PG19 PPL 相对下降约 2.90%。1.3B 对应参数增加约 1.33%，Recall 增加 **8.3 个百分点**，PG19 PPL 相对下降约 2.55%。这些比例由表内数值计算。400M 的 PG19 收益随 $E$ 增长逐步收窄：从 $E=4$ 到 8 只再下降 0.05 PPL。

![图 2 右下：1.3B 模型的六项召回任务](figures/fig02-recall-1p3b.png)

原图 Figure 2 右下，PDF p. 5。横轴列出六任务与均值；纵轴是正确率，彩色柱对应不同 $E$，空心柱为 Transformer。FDA 与 SWDE 的提升最突出，作者把它们与长文复制需求联系起来。并非每个任务都随 $E$ 单调改善，例如图中的 DROP、NQ 和 SQuAD 就存在波动。平均召回改善也不代表赶上 Transformer；400M 的 $E=8$ 均分为 33.1，Transformer 为 41.6。

### 4.3 等状态、近似等参数：乘积地址优于直接加宽

400M GDN 的 4 倍状态比较如下。四行状态均为 25.2 MB；参数在 380.6M–383.0M 之间。

| 扩容办法 | Wiki PPL ↓ | PG19 ≤4K ↓ | PG19 4K–16K ↓ | PG19 16K–64K ↓ | Recall ↑ |
| --- | ---: | ---: | ---: | ---: | ---: |
| 更大 head，$d=512$ | 11.25 | 15.21 | 14.50 | 14.24 | 28.5 |
| 每 key 配 4 个 value head | 11.35 | 15.35 | 14.63 | 14.36 | 27.3 |
| 更宽 value，$d_v=512$ | 11.41 | 15.41 | 14.70 | 14.44 | 27.5 |
| Triadic，$E=4$ | **10.93** | **14.80** | **14.08** | **13.79** | **31.1** |

来源：Table 1, p. 6。Triadic 在这些 PPL 与 Recall 指标上均领先；2 倍状态比较也呈现同一趋势。4 倍“更多 heads”没有进入表中，因为仅序列混合器的投影就会超过参数预算。

这组结果同时反映**地址参数化和全模型预算分配**：Triadic 保留了完整 MLP，而宽 value / 多 value 对照必须大幅压缩 MLP。因此，结论是“在给定参数预算下怎样扩状态更有效”。更大 head 的对照不需要同样增大投影宽度，也仍逊于 Triadic，说明优势并不能全部归因于 MLP 被削减。

sGLA 的结论与 GDN 相近：$E=4$ 的 PG19 长区间 PPL 为 13.97，其他 4 倍状态对照为 14.52–14.59；Recall 为 30.7，对照为 28.3–29.0。一个细节例外是 2 倍状态下 grouped values 的 sGLA Recall 为 28.5，Triadic 为 28.4；因此不宜把结果写成所有模型、所有指标全面领先。

### 4.4 NIAH：扩容延迟检索崩溃，64K 仍有明显缺口

![图 3：1.3B 模型的四项 RULER 检索](figures/fig03-niah.png)

原图 Figure 3，PDF p. 7。四个面板依次为单 needle、多 key、多 query、多 value；横轴为上下文长度，纵轴为正确率，虚线是 Transformer。增大 $E$ 能把准确率下降的区间推后，尤其单 needle 在中等长度处获益明显。然而到 64K，四项任务上的纯 Triadic 曲线仍处于低位，Transformer 保持明显优势。

这一结果解释了为何“64K 书籍困惑度优于 Transformer”和“64K 精确检索弱于 Transformer”能够同时成立：语言预测平均损失可从压缩后的统计与语义信息获益，NIAH 则要求找回具体记录。后者仍明显受到有限地址容量与干扰影响。

### 4.5 Upcycling：扩容可以推迟到长上下文训练阶段

作者从已预训练的 $E=1$ 模型出发，把遗忘门复制到 8 个切片，随机初始化新增第二 key/query 投影及卷积，再进行长上下文扩展。此过程需要继续训练来适配新地址；论文没有把它描述成无需训练的等价变换。（Sec. 3.3, pp. 7–8）

| 基础模型 | PG19 PPL：基线 / 扩容后 / 从头 Triadic | Recall：基线 / 扩容后 / 从头 Triadic |
| --- | --- | --- |
| 400M GDN | 14.15 / 13.86 / 13.74 | 26.2 / 29.7 / 33.1 |
| 400M sGLA | 14.32 / 14.03 / 13.95 | 26.4 / 30.0 / 32.1 |
| 1.3B GDN | 10.20 / 10.00 / 9.94 | 36.1 / 42.0 / 44.4 |
| 1.3B sGLA | 10.45 / 10.19 / 10.03 | 37.0 / 42.2 / 45.1 |

来源：Table 2, p. 7。PG19 仍为 16K–64K 区间；扩容后与从头 Triadic 均为 $E=8$。例如 400M GDN 的 PG19 改善恢复率为 $(14.15-13.86)/(14.15-13.74)\approx71\%$，Recall 改善恢复率约为 51%；1.3B GDN 对应约 77% 与 71%。这支持在主要短上下文预训练结束后再扩大状态的路线，效果仍低于全程使用三维状态的对应模型。

### 4.6 混合模型：扩线性状态比加倍 KV 缓存更划算

作者在 400M、3:1 GDN/softmax 混合架构上比较三种方案。GQA-8 每 8 个 query head 共享一个 KV head，改成 GQA-4 会把 KV head 数量加倍；Triadic 方案则保留 GQA-8，并把 GDN 状态扩大到 $E=4$。

| 混合模型 | 状态 MB @4K / @64K ↓ | PG19 4K–64K PPL ↓ | Recall ↑ | NIAH 均分 ↑ |
| --- | --- | ---: | ---: | ---: |
| GDN / GQA-8 基线 | 17 / 206 | 13.50 | 43.7 | 51.5 |
| GDN / GQA-4，更大 KV | 30 / 407 | 13.47 | **45.3** | 53.0 |
| Triadic GDN / GQA-8，$E=4$ | 31 / 220 | **13.39** | 44.5 | **56.3** |

来源：Table 3, p. 8；三种子均值。此表 PG19 区间合并为 **4K–64K**，与前面的 16K–64K 不同。Triadic 的 Wiki PPL 10.63 和零样本均分 53.8 也最好。它在 64K 时比更大 KV 方案少用约 45.9% 的状态内存，同时 NIAH 高 3.3 个百分点；但 Recall 低 0.8 个百分点，作者称该差距在种子波动范围内。

在约 4.6K 之后，更大 KV 方案才比 Triadic 方案占用更多记忆；4K 时 Triadic 的表内状态还略大。混合模型保留 softmax 层，因此总状态仍随序列长度增长。这里给出的是递归状态与 KV cache 的计量，不包含参数、优化器及全部训练激活。

### 4.7 实测训练成本：相对 GDN 变慢，相对长序列 Transformer 变快

![图 4：单块前向和反向耗时](figures/fig04-training.png)

原图 Figure 4，PDF p. 8。横轴为序列长度，纵轴为每条序列耗时（ms），插图放大 2K–8K 区间。测试对象是 1.3B 模型的**一个 block 的前向加反向**，batch size 为 4，硬件为单张 H100。Triadic 使用 CuTe 内核，GDN 使用 FlashQLA 的 TileLang 内核，Transformer 使用 FlexAttention。

| Triadic 扩容 | 相对 GDN 的额外耗时 | 对 Transformer 的交叉位置 |
| --- | --- | --- |
| $E=2$ | 9%–11% | 4K 开始更快 |
| $E=4$ | 14%–15% | 4K 开始更快 |
| $E=8$ | 28%–30% | 4K 仍慢 3%；8K 起更快 |

64K 时，$E=8$ 的该项测试比 Transformer 快约 5.1 倍。这是给定硬件、内核和单块前反向协议下的结果；不能直接当作完整训练吞吐、端到端服务吞吐或逐 token 解码加速。论文也没有通过这个图验证其他 GPU 上相同的速度比。

### 4.8 消融：总地址维度相同，如何分配仍重要

Table 4 上半部分固定联合 key 维度 $d_kE=1024$、value 维度和头数，**每个头只有一个共享标量遗忘门**。投影缩小后增加 MLP 宽度以匹配参数预算。

| $d_k\times E$ | Wiki PPL ↓ | PG19 16K–64K PPL ↓ | Recall ↑ |
| --- | ---: | ---: | ---: |
| $128\times8$ | **10.80** | **13.70** | **33.4** |
| $64\times16$ | 10.84 | 13.73 | 32.5 |
| $32\times32$ | 10.90 | 13.78 | 32.5 |
| $32\times32$，tied keys | 10.89 | 13.79 | 31.9 |

来源：Table 4, p. 9。相同元素个数并不足以决定性能。更均衡的因子维度可以节省投影参数，却使困惑度略差；这一对照还包含 MLP 宽度的配套变化。共享标量门的 128×8 行在表内表现很好，但论文没有把这些行组织为带不确定性估计的“共享门与逐切片门”专项比较，不能据此断言逐切片遗忘必然更好或更差。

Table 4 下半部分比较第二 key/query 的激活函数：

| 激活函数 | Wiki PPL ↓ | PG19 16K–64K PPL ↓ | Recall ↑ |
| --- | ---: | ---: | ---: |
| Softplus | 10.86 | 13.77 | 32.2 |
| Sigmoid | 10.86 | 13.77 | 33.3 |
| SiLU | 10.98 | 13.84 | 32.8 |
| 不用激活 | 11.06 | 13.98 | 32.9 |

非负激活在 PPL 上较好。作者的解释是：允许负值时，同一 token 在不同切片上的读写贡献可能异号，在聚合时互相抵消。Recall 没有完全遵循同一排序，所以这个解释应与其支持最直接的语言建模结果联系起来。

### 4.9 机制分析：更多状态如何被使用

![图 5：上下文利用、写入强度和时间尺度](figures/fig05-analysis.png)

原图 Figure 5，PDF p. 18；相关文字延续至 p. 19。三个面板分别检验：

1. **同一预测目标能否利用更多远程上下文。** 固定每本书最后 4K tokens 为预测目标，改变此前读入的上下文。左图以 4K 上下文下的损失为基准，越负越好。普通 GDN 约在 16K 开始饱和，Triadic 到 32K 仍持续获益。固定目标避免把“位置不同、目标不同”误当成上下文利用。
2. **写入强度如何变化。** 中图横轴为 $\beta$，纵轴为分布密度；均值从 0.31 增到 0.50，分布也更宽。更大状态对应更强、更多样的更新。
3. **切片是否分工。** 右图在每个 head 内按遗忘半衰期排序，纵轴使用对数尺度。八个排序位置的中位半衰期从 0.20 到 1080 tokens，普通 GDN 的单门中位半衰期为 5.1 tokens。小于一个 token 表示单步衰减已经超过一半。

这些观察支持“不同切片形成不同时间尺度”的解释。右图度量的是遗忘门导致的衰减，完整状态还受 delta 擦写影响，因此半衰期不能直接等同于具体事实的可召回时长。（Appendix B, pp. 18–19；最后一点为基于更新公式的分析）

## 五：结论与研究启发

本文把两个短地址向量组合成更大的联合地址空间，用很少的新增参数扩大稠密递归记忆。它的实证优势同时依赖可训练的状态管理与利用结构的内核：两组相似度相乘降低块内计算，value 维分块使大状态适配 GPU，联合 delta 更新与遗忘门负责管理记忆内容。

与已有工作的关系也很明确。高阶关联记忆和三阶张量积表示并非本文首次提出；Sec. 5 特别指出 Schlag 与 Schmidhuber 的 2018 年工作已使用三阶状态和图遍历操作。本文把相近构造接入现代 GDN/sGLA、多头架构与可扩展内核，并在 400M、1.3B 语言模型上验证，创新重点在这一组合及其成本收益。（Sec. 5, pp. 9–10）

对后续架构研究，有三点值得保留：

- 比较记忆机制时应同时看参数、状态容量与实际计算。仅匹配模型参数，可能把更大的快权重容量带来的收益误认为更新规则本身的收益；本文关于较大 TTT 状态的讨论也是这一层面的假设，并未直接实验分解各 TTT 方法的贡献。
- 状态大小可以随训练阶段改变。Upcycling 支持短上下文阶段使用小状态、长上下文阶段再扩容，但新增地址需要适配，达到全程三维预训练的效果仍有差距。
- 长文本语言建模和精确记录检索需要分别评估。Triadic 的容量收益很清楚，纯模型在最长 NIAH 上的缺口也很清楚；混合模型的结果提示，增大递归记忆与保留部分精确 KV 存储可以互补。

实际取舍是明确的：$E=8$ 约增加 1.2%–1.3% 参数，却把递归状态扩大 8 倍，并使所测单块训练耗时增加约 30%。这些代价换来了更好的语言建模和召回，但内核测试范围、最长检索表现，以及等参数对照中的 MLP 预算调整，都会影响如何把结果用于新的模型设计。
