从0训练LLM · 现代大模型体系 岔路 阅读+实验 ≈ 20 分钟 页内实验 ×1
C0 序章:为什么是 Transformer + 预测下一个词 岔路课

为什么 2026 年「固定状态」又回来了?

固定状态的回归
注意力把前文每个 token 的 K、V 都存下来,记忆随长度线性增长;RNN 的固定状态不增长,但装得下的东西有上限。2026 年的模型把两者按 3:1 混着用——锚点模型 64 层里有 48 层就是固定状态层。

本课一问:为什么 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 现算:

  1. ① 朴素方案
  2. ② 它在哪失败
  3. ③ 改进方案
朴素方案全部保留:每层存下前文每个 token 的 K、V(KV cache)

记忆 = 层数 × 每 token 的 K、V × 长度,随长度线性增长:

  • 每个 token 每层:2 × 4 × 256 = 2,048 个数(BF16 下 4,096 字节)
  • 假设 64 层全是注意力,262,144 个 token:64 GiB

生成第 t 个 token 的注意力要和前面 t 个 K 各算一次点积,每一步的计算也随长度线性增长。

⚠

常见误解:「固定状态层省了参数。」 省的是随长度增长的记忆和计算,不是参数。锚点模型里,单个固定状态层(GDN)有 115,876,064 个参数,单个全注意力层有 104,858,112 个——前者还更多(由 config 的 safetensors 分项现算)。

改进:去掉 softmax,注意力就变回了 RNN

关键的一步:线性注意力。 普通注意力的输出是 softmax(q·KT) V。把 softmax 去掉(或换成可以拆开的核函数),输出 q·(Σ k v) 里的求和就能提前累加成一个 d×d 的矩阵——它就是一个随时间更新的固定大小状态:

线性注意力 = 带矩阵状态的 RNN
= + , ot =
👆 公式里带下划线的每一项都可以点——点哪项,讲哪项。
Katharopoulos et al. 2020 的标题就是《Transformers are RNNs》:去掉 softmax 后,矩阵乘法的结合律让注意力可以写成这种递推。

它和 2014 年的 RNN 有两处本质不同 :

  1. 训练可以并行。 状态更新对状态是线性的,整段序列可以分块、用矩阵乘法一次算完,不必像 L2 那样一步一步等(Yang et al. 2024 给出了带 delta rule 时的沿序列并行算法,arXiv 2406.06484)。RNN「必须串行」的硬伤在训练时被绕开了。
  2. 推理时记忆不增长。 生成时只需带着 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 。3:1 这个比例本身也是实验选出来的,C11 会把它拆开看。

这件事对这门课的意义:前半程(C3 讲注意力、GQA、KV cache)只用锚点模型那 16 个全注意力层的真实数字;到 C11 讲长上下文与省 KV 的时候,再把另外 48 层揭开。

极小真数字:记忆的账,和容量的墙

锚点账本 + 容量模拟器(浏览器里现算)
A. 记住前文要多少字节?(Qwen/Qwen3.8-27B 的 config 现算)
红 = 64 层全是全注意力(假设) 蓝 = Qwen3.8 实际(16 全注意力 + 48 GDN) 绿 = 64 层全是 GDN(假设)

B. 固定大小的状态,装得下多少对「键 → 值」?(教学构造,浏览器里真算)
键和值的维度 d(状态 d×d)
■ 固定状态 S = Σ v kᵀ ■ 保留全部 N 对(KV cache)+ softmax · 竖线 = N = d(状态的秩上限)

教学构造:随机单位向量、固定种子,每个 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 后求和可以提前累加,记忆变成常数,训练还能并行
③ 实验上为什么被选中?纯固定状态有容量上限,保留少量注意力层在实验里效果最好

本课每条结论的证据等级:

结论证据等级依据
KV cache 随长度线性增长;固定状态不增长可证明 锚点 config 现算
去掉 softmax 的注意力可以写成矩阵状态的递推可证明 Katharopoulos et al. 2020
d×d 状态最多无干扰地存 d 对可证明 线性代数
门控 + delta rule 让固定状态更好用理论动机 + 实验 Yang et al. 2024
3:1 混合优于全注意力实验验证 Qwen 技术报告

一句话

📌

KV cache 随长度线性增长,固定状态不增长但有容量上限——所以 2026 年的模型把两者按 3:1 混着用。

🚦

先停在这里:记住「KV 随长度涨、固定状态不涨但装不下太多」,回主线 L3。
再深一层:读 Songlin Yang 的 DeltaNet Explained,或等 C11 揭晓 GDN 的写入与遗忘。

回到主线

岔路到此。主线接着 L2 的最后一个问题:输入一句、输出一句时,整句都挤进一个固定状态会怎样? → L3。GDN 怎么写入与遗忘、为什么要混合、3:1 为什么只能靠实验定,将在 C11 兑现。

你可能会问