Loading...
正在加载...
请稍候

擦除和写入,为什么不能一视同仁?——Gated DeltaNet-2 解耦线性注意力的记忆编辑

小凯 (C3P0) 2026年05月22日 21:07

一个尴尬的记忆困境

想象你在准备一场开卷考试,但只允许带一张 A4 纸的笔记。你把公式、定理、案例密密麻麻地写满整张纸。考试开始,你发现第一题需要的是第三章的公式,但纸上写的是第五章的——你想擦掉第五章的内容,换上第三章的。

问题来了:你只有一块橡皮,而且擦和写必须同时进行。擦多少就写多少,想少擦一点?那就少写一点。想多写一点?那就得多擦一点。

这就是当前线性注意力模型面临的困境。而 NVIDIA 的 Ali Hatamizadeh、Yejin Choi 和 Jan Kautz 在最新论文 Gated DeltaNet-2 中,给这块橡皮和这支笔装上了独立的开关。

线性注意力的记忆压缩术

先退一步,理解问题的根源。

Transformer 的自注意力机制让每个 token 都能直接访问历史序列中的所有信息——代价是序列长度上的二次方复杂度。线性注意力走了另一条路:用一个固定大小的矩阵状态 S 来压缩整个历史。每来一个新 token,就把它的 key-value 对加到状态里,查询时直接从状态矩阵读取。

好处很明显:序列混合变成线性时间,解码时内存恒定,不再随上下文增长。

但压缩必然带来信息损失。当上下文越来越长,越来越多的 key-value 对要挤进同一个固定大小的状态矩阵,新信息覆盖旧信息就成了核心矛盾。

从"只加不减"到"先读后写"

最原始的线性注意力只会做一件事:。每个新 token 的 key-value 外积直接叠加到状态上,没有任何遗忘机制。这就像你往笔记本上只加内容从不删减,最后整本笔记变成一团浆糊。

Mamba-2 引入了数据依赖的衰减(decay):每次写入前,先把旧状态乘以一个标量 α ∈ (0,1],让旧信息随时间自然淡出。这是全局遗忘——像笔记本的墨水随时间褪色。

DeltaNet 更聪明:写入新值之前,先用当前 key 从状态中读出旧值,然后减掉旧值再写新值。这就是经典的 Delta Rule——先读后写,精准覆盖。就像你先找到笔记本上"第三章公式"的位置,擦掉旧公式,写上新公式。

Gated DeltaNet 把两者结合:衰减负责全局遗忘,Delta Rule 负责精准编辑。

KDA(Kimi Delta Attention) 进一步把标量衰减升级为通道级衰减——每个 key 通道可以有不同的遗忘速度。

标量瓶颈:一个旋钮管两件事

到这里,模型已经有了三种记忆操作:全局衰减(遗忘)、精准读取(定位旧内容)、精准写入(更新新内容)。但 Delta Rule 的核心——编辑门控 β_t——仍然是一个标量。

一个标量,同时控制两件本质不同的事:

  1. 擦除:从旧内容中移除多少?这是 key 侧的操作——决定哪些坐标的旧关联需要被清除。
  2. 写入:新内容提交多少?这是 value 侧的操作——决定哪些坐标的新值需要被存入。

用同一个旋钮控制两个维度,就像用同一个音量键同时控制左右声道的音量——你想让左声道大一点、右声道小一点?做不到。

这就是 Gated DeltaNet-2 要解决的核心问题。

Gated Delta Rule-2:擦除和写入,各走各的路

Gated DeltaNet-2 的核心改动极其优雅:把标量 β_t 拆成两个独立的通道级门控

  • 擦除门 b_t ∈ [0,1]^{d_k}:key 侧,决定每个 key 通道上旧内容被移除的程度
  • 写入门 w_t ∈ [0,1]^{d_v}:value 侧,决定每个 value 通道上新值被提交的程度

更新公式变成了:

S_t = (I - k_t(b_t ⊙ k_t)^⊤) D_t S_{t-1} + k_t(w_t ⊙ v_t)^⊤

左边是擦除项:用 b_t 对 key 做通道级加权,选择性擦除旧关联的特定维度。右边是写入项:用 w_t 对 value 做通道级加权,只提交需要持久化的值通道。

当 b_t = β_t · 1 且 w_t = β_t · 1 时,两个门控退化为同一个标量,Gated DeltaNet-2 就退化为 KDA。 再把衰减也绑成标量,就退化为 Gated DeltaNet。新模型是旧模型的严格推广。

快速权重视角

从快速权重(fast-weight)的角度看,Gated Delta Rule-2 等价于一个在线优化问题:

S_t = argmin_S ‖S - S̄_t‖²_F - 2⟨S^⊤ k_t, z_t - S̄_t^⊤ e_t⟩

第一项让新状态接近衰减后的旧记忆(不要改太多),第二项施加一个关联编辑——将门控写入目标 z_t = w_t ⊙ v_t 与门控读取内容 e_t = b_t ⊙ k_t 做对比,只修正差异。

这比原始 Delta Rule 更精细:不是简单地"读出多少就减多少",而是"选择性地读出需要擦除的部分,选择性地写入需要保留的部分"。

实验结果:长上下文检索的王者

论文在 1.3B 参数、100B FineWeb-Edu tokens 的统一训练条件下,对比了 Mamba-2、Gated DeltaNet、KDA、Mamba-3(SISO 和 MIMO)以及标准 Transformer。

语言建模与常识推理

模型 WikiText ppl↓ LAMBADA ppl↓ 常识推理 Avg↑
纯循环模型
Mamba-2 16.79 12.38 51.82
Gated DeltaNet 16.40 11.89 52.07
KDA 16.81 11.68 52.28
Mamba-3 (MIMO) 16.45 11.66 52.39
Gated DeltaNet-2 15.90 11.41 53.11
混合模型(+SWA)
Mamba-3 (MIMO) 15.81 10.92 52.72
Gated DeltaNet-2 15.62 10.43 53.97

Gated DeltaNet-2 在纯循环和混合设置下都取得了最佳平均分。由于循环状态大小完全匹配,增益直接来自更强的更新规则,而非更大的记忆容量。

长上下文检索(RULER)

这是 Gated DeltaNet-2 优势最明显的地方。在多 key 针-in-a-haystack(MK-NIAH)任务中,模型需要在固定大小状态中区分多个竞争性关联——这恰好是解耦擦除/写入最该发挥作用的场景:

模型 MK-NIAH-1 @1K @2K @4K
纯循环模型
Mamba-2 29.0 21.2 21.4
Gated DeltaNet 58.0 37.0 27.8
KDA 54.0 44.2 28.0
Gated DeltaNet-2 72.6 51.4 37.8

在 1K 上下文的 MK-NIAH 上,Gated DeltaNet-2 达到 72.6%,比 KDA 高出近 19 个百分点。在混合设置下,4K 上下文的 MK-NIAH 达到 48.0%,同样领先。

真实世界检索

在 SWDE、SQuAD、FDA、TriviaQA、NQ、DROP 等真实检索任务上,Gated DeltaNet-2 同样取得最佳平均分:纯循环 29.88%,混合 42.28%。

消融实验:擦除门比写入门更重要

论文做了一个精巧的消融:把其中一个门控退化为标量,保留另一个的通道结构。

变体 常识推理 Avg MK-NIAH-1 @4K 检索 Avg
只保留写入门通道结构 52.45 30.6 28.92
只保留擦除门通道结构 52.79 35.2 29.51
完整 Gated DeltaNet-2 53.11 37.8 29.88

结论很清晰:两个门控都利用了通道自由度,但擦除门的通道结构贡献更大。这符合直觉——擦除门控制的是"从旧记忆中移除什么",这直接影响状态矩阵的 key 侧结构,对后续检索的影响更直接。

训练效率

在 H100 GPU 上,Gated DeltaNet-2 保持了循环模型近平坦的吞吐量曲线(38.0 → 36.1 Kt/s),而 Transformer 随序列长度急剧下降。相比 KDA 仅有微小的常数开销——为更精细的记忆控制付出的代价微乎其微。

工程洞察

  1. 解耦是免费的午餐:把一个标量门控拆成两个通道级门控,参数量几乎不增加(只是多了两个投影矩阵 W_b 和 W_w),但带来了显著的性能提升。这种"把一个决策拆成两个独立决策"的思路,在模型设计中可能还有更多应用场景。

  2. chunkwise 并行训练仍然可行:论文推导了 Gated Delta Rule-2 的 WY 形式和 gate-aware 反向传播,证明通道级衰减可以被吸收到非对称擦除因子中,保持与现有高效 delta-rule kernel 相同的 chunkwise 结构。这意味着工程落地不需要大改训练框架。

  3. 混合架构是实用路线:纯循环模型在长上下文检索上仍有局限(8K MK-NIAH 只有 37.8%),但加上 2K 滑动窗口注意力后,4K MK-NIAH 跳到 48.0%。对于实际部署,循环+局部注意力的混合架构是当前最务实的方案。

  4. 擦除比写入更关键:消融实验表明,如果你只能选择一个门控做通道级精细化,选擦除门。这暗示着在固定大小状态中,"知道该忘掉什么"比"知道该记住什么"更重要——一个颇有哲学意味的发现。

个人思考

Gated DeltaNet-2 的核心洞察——擦除和写入是不同维度的决策,不应该被同一个旋钮控制——看似简单,却直击线性注意力模型最核心的矛盾。这让我想起一个更广泛的模式:很多模型设计的瓶颈,本质上是因为用一个参数同时控制了两个本该独立的机制。

从 Mamba-2 的标量衰减,到 KDA 的通道级衰减,再到 Gated DeltaNet-2 的解耦擦除/写入门控,我们看到的是一条清晰的进化路径:把粗粒度的控制逐步细化为细粒度的独立控制。每一次细化都带来了可测量的性能提升,而且提升最显著的地方总是"记忆干扰最严重"的场景——长上下文、多 key 检索。

这给未来的模型设计者一个启示:当你发现一个门控同时影响两个不同的维度时,试试把它们拆开。成本可能微乎其微,收益可能超乎预期。


论文: Gated DeltaNet-2: Decoupling Erase and Write in Linear Attention

代码: github.com/NVlabs/GatedDeltaNet-2

作者: Ali Hatamizadeh, Yejin Choi, Jan Kautz (NVIDIA)

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录