一个尴尬的记忆困境
想象你在准备一场开卷考试,但只允许带一张 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——仍然是一个标量。
一个标量,同时控制两件本质不同的事:
- 擦除:从旧内容中移除多少?这是 key 侧的操作——决定哪些坐标的旧关联需要被清除。
- 写入:新内容提交多少?这是 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 仅有微小的常数开销——为更精细的记忆控制付出的代价微乎其微。
工程洞察
-
解耦是免费的午餐:把一个标量门控拆成两个通道级门控,参数量几乎不增加(只是多了两个投影矩阵 W_b 和 W_w),但带来了显著的性能提升。这种"把一个决策拆成两个独立决策"的思路,在模型设计中可能还有更多应用场景。
-
chunkwise 并行训练仍然可行:论文推导了 Gated Delta Rule-2 的 WY 形式和 gate-aware 反向传播,证明通道级衰减可以被吸收到非对称擦除因子中,保持与现有高效 delta-rule kernel 相同的 chunkwise 结构。这意味着工程落地不需要大改训练框架。
-
混合架构是实用路线:纯循环模型在长上下文检索上仍有局限(8K MK-NIAH 只有 37.8%),但加上 2K 滑动窗口注意力后,4K MK-NIAH 跳到 48.0%。对于实际部署,循环+局部注意力的混合架构是当前最务实的方案。
-
擦除比写入更关键:消融实验表明,如果你只能选择一个门控做通道级精细化,选擦除门。这暗示着在固定大小状态中,"知道该忘掉什么"比"知道该记住什么"更重要——一个颇有哲学意味的发现。
个人思考
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 水平。