为什么 2026 年「固定状态」又回来了?
本课一问:为什么 2026 年「固定状态」又回来了? L2 说 RNN 已经退出了 LLM 的主干。可锚点模型 Qwen3.8 的 64 层里,有 48 层用的正是「一个固定大小的状态,一路往下传」。
这一课先不碰:这些层具体怎么更新状态(门控、delta rule 的公式)、为什么要混合、比例为什么只能靠实验定——这些是 C11 的内容。这一课只讲清「为什么要回来」和「回来的代价」。
这节岔路会用到注意力与 KV cache 的一个事实:注意力要把前文每个 token 的 K、V 都存下来,生成新 token 时拿它们来算。如果还没读 L3、L4,可以先记住这一句,或读完 L4 再回来。
从已有出发
贯穿例句「小明 把 苹果 给了 小王」只有 5 个词,两种记法的差别在它身上看不出来。换例子的原因:这节岔路讨论的是几十万个 token 的上下文,所以直接用锚点模型的原生上下文长度来算。
到目前为止见过两种记住前文的办法:RNN 的固定状态(L2:只存一个向量,大小与长度无关)和注意力的全部保留(L3、L4:每个 token 的 K、V 都存着,要用时逐个比)。流水线里的「解码层」,锚点模型每 4 层里有 1 层是后者、3 层是前者。
先自己设计:全部保留,有什么不好?
注意力的做法很直接:前文的每个 token 在每一层都留下一份 K 和 V,生成下一个 token 时,新 token 的 Q 与它们逐个打分。数字全部由锚点 config 现算:
- ① 朴素方案
- ② 它在哪失败
- ③ 改进方案
记忆 = 层数 × 每 token 的 K、V × 长度,随长度线性增长:
- 每个 token 每层:2 × 4 × 256 = 2,048 个数(BF16 下 4,096 字节)
- 假设 64 层全是注意力,262,144 个 token:64 GiB
生成第 t 个 token 的注意力要和前面 t 个 K 各算一次点积,每一步的计算也随长度线性增长。
大多数层换成固定大小的状态:每层一块 48 个头 × 128 × 128 = 786,432 个数,写多长都是这么多。锚点实际配置(16 层注意力 + 48 层固定状态):
- 16 层注意力的 KV:16 GiB
- 48 层固定状态:37,748,736 个数,按 FP32 约 144 MiB,与长度无关
每 token 的 KV 降到全注意力的 1/4。
常见误解:「固定状态层省了参数。」 省的是随长度增长的记忆和计算,不是参数。锚点模型里,单个固定状态层(GDN)有 115,876,064 个参数,单个全注意力层有 104,858,112 个——前者还更多(由 config 的 safetensors 分项现算)。
改进:去掉 softmax,注意力就变回了 RNN
关键的一步:线性注意力。 普通注意力的输出是 softmax(q·KT) V。把 softmax 去掉(或换成可以拆开的核函数),输出 q·(Σ k v) 里的求和就能提前累加成一个 d×d 的矩阵——它就是一个随时间更新的固定大小状态:
它和 2014 年的 RNN 有两处本质不同 证据等级 · 数学可证明 在写明的前提下可以严格推导出来,不依赖实验。只要前提成立,换数据、换规模仍然成立。 本条矩阵乘法结合律:(q kᵀ) v 与 q (kᵀ v) 相等,于是求和可以提前累加成状态。 出处Katharopoulos et al. 2020 · arXiv 2006.16236 ↗需联网 :
- 训练可以并行。 状态更新对状态是线性的,整段序列可以分块、用矩阵乘法一次算完,不必像 L2 那样一步一步等(Yang et al. 2024 给出了带 delta rule 时的沿序列并行算法,arXiv 2406.06484)。RNN「必须串行」的硬伤在训练时被绕开了。
- 推理时记忆不增长。 生成时只需带着 S 往下走,每步的计算与前文长度无关。
但「只加不减」很快就装满了。 状态是 d×d 的矩阵,它的秩最多是 d:两两正交的键最多只有 d 个,存进去的对数一超过 d,读出来的值就必然互相干扰(下面实验台 B 的竖线)。所以 2023-2025 年的工作都在解决「写什么、忘什么」:给状态加随输入变化的门(Mamba,Gu & Dao 2023);写入前先减掉旧值、只修正差额(delta rule);两者合在一起就是 Gated DeltaNet(Yang, Kautz & Hatamizadeh 2024-12);Kimi Linear 的 KDA 再把门细化到每个通道(2025-10)。
常见误解:「线性注意力就是 2014 年的 RNN 复活。」 同样是固定状态,但状态更新对状态是线性的、没有 tanh 夹在中间,所以训练能沿序列并行;写入与遗忘由门和 delta rule 精细控制。它回来的,是「固定大小的记忆」这个想法,不是 L2 那种串行、梯度连乘的网络。
所以今天的答案是混合。 固定状态层便宜但容量有限,注意力层能精确回看任意一个前文 token 但越长越贵。锚点模型每 4 层放 1 层注意力、3 层 Gated DeltaNet;Kimi K3(KDA : MLA)和 GLM-5.3-Flash 也都约 3:1(K3 为 69 : 24,GLM-5.3-Flash 为 34 : 11;R2 横向对照)。Gated DeltaNet 不是 Qwen 发明的,出自 Yang, Kautz & Hatamizadeh(arXiv 2412.06464);Qwen 的贡献是在 Qwen3-Next(2025-09)里第一次把它和注意力按 3:1 做成前沿规模的量产架构。混合为什么比全注意力好,目前靠实验:Qwen 在 25B-A3B 的 MoE 上比较,GDN 混合在 9 个基准里赢了全注意力 8 个,平均 53.81 对 49.87 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条28 层、25B-A3B MoE,先 4K 训 400B token 再 32K 训 80B;只在这一组设置下成立。数字经本课程调研 R2 从报告读出。 出处Qwen3.8-Flash-Next 技术报告(2026-08-26) ↗需联网 。3:1 这个比例本身也是实验选出来的,C11 会把它拆开看。
这件事对这门课的意义:前半程(C3 讲注意力、GQA、KV cache)只用锚点模型那 16 个全注意力层的真实数字;到 C11 讲长上下文与省 KV 的时候,再把另外 48 层揭开。
极小真数字:记忆的账,和容量的墙
教学构造:随机单位向量、固定种子,每个 N 取 20 组、每组读回 min(N, 8) 对。演示的是「d×d 的状态最多可靠地装约 d 对」这条数学事实,不是 GDN 的真实表现(它有门控与 delta rule,C11 讲)。
试三件事: ① 在 A 里把上下文拖到 262,144(原生上下文):假设全是注意力要 64 GiB,锚点实际约 16 GiB 多一点;再拖到 1M,看蓝线和红线的差距怎么保持在 4 倍。 ② 在 B 里保持 d = 16,把 N 从 8 拖到 48:固定状态的读回准确率一路下滑,保留全部的那条线几乎不动。 ③ 勾上「键尽量两两正交」:N ≤ 16 时固定状态能 100% 读回,N 一过 16 就掉——d×d 的状态最多装 d 对互不干扰的键值,这不是调参能解决的。
常见误解:「固定状态什么都记得住,只是记得模糊一点。」 容量有硬上限:d 维的键最多 d 个互相正交。要在 10 万个 token 里精确找回某一个电话号码,固定状态层做不到的事就交给那 1/4 的注意力层——这正是混合而不是全换的原因。
证据三问
| 问 | 本课的回答(以 3:1 混合为例) |
|---|---|
| ① 它解决什么问题? | 注意力的记忆和每步计算都随长度线性增长 |
| ② 数学上为什么可能有效? | 去掉 softmax 后求和可以提前累加,记忆变成常数,训练还能并行 证据等级 · 数学可证明 在写明的前提下可以严格推导出来,不依赖实验。只要前提成立,换数据、换规模仍然成立。 本条矩阵乘法结合律。 出处Katharopoulos et al. 2020 ↗需联网 |
| ③ 实验上为什么被选中? | 纯固定状态有容量上限,保留少量注意力层在实验里效果最好 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条25B-A3B MoE 上的消融。 出处Qwen3.8-Flash-Next 技术报告 ↗需联网 |
本课每条结论的证据等级:
| 结论 | 证据等级 | 依据 |
|---|---|---|
| KV cache 随长度线性增长;固定状态不增长 | 可证明 证据等级 · 数学可证明 在写明的前提下可以严格推导出来,不依赖实验。只要前提成立,换数据、换规模仍然成立。 本条按 config 计数。 出处待补 | 锚点 config 现算 |
| 去掉 softmax 的注意力可以写成矩阵状态的递推 | 可证明 证据等级 · 数学可证明 在写明的前提下可以严格推导出来,不依赖实验。只要前提成立,换数据、换规模仍然成立。 本条矩阵乘法结合律。 出处Katharopoulos et al. 2020 ↗需联网 | Katharopoulos et al. 2020 |
| d×d 状态最多无干扰地存 d 对 | 可证明 证据等级 · 数学可证明 在写明的前提下可以严格推导出来,不依赖实验。只要前提成立,换数据、换规模仍然成立。 本条外积和的秩 ≤ d;ℝᵈ 中两两正交的向量最多 d 个。 出处待补 | 线性代数 |
| 门控 + delta rule 让固定状态更好用 | 理论动机 + 实验 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条门负责快速擦除、delta rule 负责定点修改,在其语言建模与检索基准上优于 Mamba2、DeltaNet。 出处Gated DeltaNet · arXiv 2412.06464 ↗需联网 | Yang et al. 2024 |
| 3:1 混合优于全注意力 | 实验验证 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条25B-A3B MoE 上 9 个基准赢 8 个;换规模、换数据不一定成立。 出处Qwen3.8-Flash-Next 技术报告 ↗需联网 | Qwen 技术报告 |
一句话
KV cache 随长度线性增长,固定状态不增长但有容量上限——所以 2026 年的模型把两者按 3:1 混着用。
先停在这里:记住「KV 随长度涨、固定状态不涨但装不下太多」,回主线 L3。
再深一层:读 Songlin Yang 的 DeltaNet Explained,或等 C11 揭晓 GDN 的写入与遗忘。
回到主线
岔路到此。主线接着 L2 的最后一个问题:输入一句、输出一句时,整句都挤进一个固定状态会怎样? → L3。GDN 怎么写入与遗忘、为什么要混合、3:1 为什么只能靠实验定,将在 C11 兑现。
你可能会问
- 那 Transformer 是不是白学了? 不是。锚点模型每 4 层仍有 1 层完整的注意力,C3 讲的 Q/K/V、GQA、KV cache 全部原样适用;而且线性注意力本身就是「去掉 softmax 的注意力」,不懂注意力就看不懂它。
- 固定状态层要不要位置编码? RoPE 作用在全注意力层的 Q、K 上(C2 的主角);固定状态是按时间顺序一步步写入的,先后本身就体现在写入顺序里。GDN 层在锚点模型里还用不用额外的位置信息,C11 核实后再讲。
- 别的开源模型也这样吗? 2026 年的 Kimi K3、GLM-5.3-Flash、Qwen3.8 都走向了「线性注意力 + 少量全注意力」的混合,细节各不相同,C15 横向对照。