3764 字
19 分钟

Kimi K3论文:Kimi Linear

Kimi Linear 是 Kimi 团队(Moonshot AI)公开的一篇注意力架构技术报告。它想回答一个老问题:线性注意力号称能把注意力的时间复杂度从 O(T2)O(T^2) 降到 O(T)O(T)、把不断增长的 KV cache 压成一个固定大小的状态,可它长期在语言建模上打不过标准的 softmax attention,哪怕在短序列上也是。这篇工作提出的 Kimi Delta Attention(KDA,Kimi 增量注意力)配上一个 3:1 的混合结构,第一次在公平对比下,于短上下文、长上下文和强化学习(RL)三种场景里全面追平甚至超过 full attention,同时把 100 万 token 上下文的解码吞吐做到约 6 倍、KV cache 省掉约 75%。

一句话概括:把 Gated DeltaNet 里「每个头共用一个标量遗忘门」换成「每个通道一个独立遗忘门」,再为这种细粒度门设计一套硬件高效的分块并行算法,最后用 3 层 KDA 配 1 层全注意力,堆成一个 48B 总参数、3B 激活参数的 MoE 模型。

这也是关于 Kimi 新一代架构的两篇技术报告里的第一篇。第二篇《Attention Residuals》改的是残差连接,直接建立在本文的 Kimi Linear 之上(那篇的实验模型就是「Kimi Linear 48B + AttnRes」)。KDA 是理解这两篇的地基,所以先读这篇。

1. 背景:线性注意力为什么一直打不过 softmax#

标准 self-attention 有两个众所周知的代价:注意力矩阵是 O(T2)O(T^2) 的,KV cache 随序列长度线性增长。当模型越来越多地被当成 agent 用、要处理很长的轨迹、工具调用记录,尤其是 RL 阶段在推理时要生成很长的序列时,这两个代价直接卡住吞吐、上下文长度和实时性。

线性注意力(linear attention)给了一条原理上很干净的出路。它把 softmax 换成一个正的特征映射 ϕ\phi,于是

Attention(Q,K,V)ϕ(Q)(ϕ(K)V),\operatorname{Attention}(Q,K,V) \approx \phi(Q)\,\big(\phi(K)^\top V\big),

括号从「先算 QKQK^\top」挪到「先算 KVK^\top V」,O(T2)O(T^2) 的显式相似度矩阵就消失了,计算对序列长度变成线性,推理时只需要维护一个固定大小的矩阵状态,不再有随长度增长的 KV cache。代价是表达力:把整段历史压进一个固定大小的状态,就注定在「精确复制」「大海捞针式检索」这类任务上吃亏。

过去几年把线性注意力往上拉的两条主线是 门控 / 衰减(gating / decay)和 delta rule(增量更新规则)。它们把线性注意力在中等长度序列上推到了接近 softmax 的水平,但纯线性结构受限于有限状态容量这件事没有变,长序列建模和上下文检索在理论上就困难。于是混合架构(hybrid)成了务实的折中:大部分层用便宜的线性注意力,少数几层保留全注意力来兜住全局信息流。Kimi Linear 走的就是这条路,但把线性那部分换成了更强的 KDA,并且做了大规模、对齐条件的公平评测。

2. 从线性注意力到 gated delta rule#

要讲清楚 KDA 改了什么,得先把它的三个前身摆到一起看。它们都可以写成「维护一个矩阵状态 StRdk×dvS_t\in\mathbb{R}^{d_k\times d_v}、每步更新、再用 query 读出」的循环形式,区别只在状态怎么更新。一个很有用的视角是把这个状态看成一块快权重(fast weight)联想记忆:它在线地存 key→value 的映射,而每一步更新相当于对某个目标做一步梯度下降。

线性注意力最朴素:

St=St1+ktvt,ot=Stqt.S_t = S_{t-1} + k_t v_t^\top,\qquad o_t = S_t^\top q_t .

它等价于对目标 Lt(S)=Skt,vt\mathcal{L}_t(S)=-\langle S^\top k_t, v_t\rangle 做梯度上升,也就是不停地强化最近的 key–value 对,从不遗忘。问题也在这:没有任何删除旧记忆的机制,状态无界增长,长上下文里互相干扰。

DeltaNet 换了个目标。它把每步更新看成对一个重建损失做在线梯度下降:

Lt(S)=12Sktvt2,\mathcal{L}_t(S)=\tfrac{1}{2}\lVert S^\top k_t - v_t\rVert^2 ,

以学习率 βt\beta_t 走一步,得到经典的 delta rule:

St=(Iβtktkt)St1+βtktvt.S_t = (I-\beta_t k_t k_t^\top)\,S_{t-1} + \beta_t k_t v_t^\top .

直观上,它不是盲目累加,而是先看当前 key 在旧状态里已经存了什么、和真实 value 差多少,再朝着 ktvtk_t\mapsto v_t 去修正。这个 rank-1 的更新等价于一个广义 Householder 变换,能做硬件友好的分块并行。

Gated DeltaNet(GDN) 再加一个标量遗忘门 αt[0,1]\alpha_t\in[0,1]

St=αt(Iβtktkt)St1+βtktvt.S_t = \alpha_t\,(I-\beta_t k_t k_t^\top)\,S_{t-1} + \beta_t k_t v_t^\top .

这个 αt\alpha_t 相当于对快权重做 weight decay,给记忆一个「寿命」,缓解长上下文里的干扰。它和 Mamba2 一样,用的是每个头一个标量的粗粒度衰减。

线性注意力 → DeltaNet → Gated DeltaNet → KDA:状态更新规则的演进,关键差别在于「用什么控制遗忘」

3. KDA:把标量遗忘门换成通道级遗忘门#

KDA 的核心改动就一句话:把 GDN 那个作用在整个头上的标量遗忘门 αt\alpha_t,换成一个每维独立的对角门 Diag(αt)\operatorname{Diag}(\alpha_t) 更新规则变成

St=(Iβtktkt)Diag(αt)St1+βtktvt,ot=Stqt.(1)S_t = (I-\beta_t k_t k_t^\top)\,\operatorname{Diag}(\alpha_t)\,S_{t-1} + \beta_t k_t v_t^\top,\qquad o_t = S_t^\top q_t . \tag{1}

区别看起来很小,含义却不小。GDN 的标量 αt\alpha_t 只能决定「这一步整体记多少、忘多少」;KDA 的 αt[0,1]dk\alpha_t\in[0,1]^{d_k} 让状态的每一个特征维度都有自己的遗忘速率,可以精细地「留住这几维、冲掉那几维」。这种细粒度做法和 Gated Linear Attention(GLA)的对角门是一脉的,只是 KDA 把它嵌进了 delta rule。有限状态的容量就那么大,能否更精确地决定往里写什么、擦掉什么,直接决定了这块记忆好不好用。

每个头一个标量遗忘门(GDN)与每个通道一个遗忘门(KDA)的对比:同一个状态矩阵,标量门对所有通道一视同仁,对角门逐通道调节

论文在几个合成任务上验证了这件事:在 palindrome(倒序复述)、MQAR(多查询联想召回)和 stack(状态跟踪)上,KDA 的准确率随序列变长始终高于 GDN,且收敛更快;而只有乘性衰减、没有 delta rule 的 Mamba2 在这套设置下几乎全挂。这说明「细粒度衰减 + delta rule」两者叠加才是关键。

神经参数化。 每个头的输入是这样算出来的(dk=dv=128d_k=d_v=128):

qt,kt=L2Norm(Swish(ShortConv(Wq/kxt))),vt=Swish(ShortConv(Wvxt)),q_t,k_t = \operatorname{L2Norm}(\operatorname{Swish}(\operatorname{ShortConv}(W_{q/k}\,x_t))),\quad v_t = \operatorname{Swish}(\operatorname{ShortConv}(W_v\,x_t)),αt=f(WαWαxt)[0,1]dk,βt=Sigmoid(Wβxt)[0,1].\alpha_t = f(W_\alpha^{\uparrow}W_\alpha^{\downarrow}x_t)\in[0,1]^{d_k},\qquad \beta_t = \operatorname{Sigmoid}(W_\beta\,x_t)\in[0,1].

几个值得记的点:q,kq,k 过一个短卷积(ShortConv)抓局部依赖,再做 L2 归一化保证特征值稳定;通道级衰减 αt\alpha_t 用一个低秩投影(rank 等于头维度)加一个衰减函数 ff 参数化,成本可控;输出前还有一个 head-wise RMSNorm 和一个数据相关的 sigmoid 输出门,用来缓解 attention sink。消融显示 sigmoid 输出门明显优于 swish 门,短卷积也确有贡献。

4. 高效的分块并行算法与它和 DPLR 的关系#

细粒度门虽好,但很容易把算子拖慢,KDA 有一半的功夫花在「怎么让它跑得快」。

它其实是 DPLR 的一个受限特例。 一般的 gated delta rule 可以推广成对角加低秩(Diagonal-Plus-Low-Rank,DPLR)的转移矩阵 St=(Datbt)St1+ktvtS_t=(D-a_t b_t^\top)S_{t-1}+k_t v_t^\top。DPLR 表达力更强,但计算贵、并行差。KDA 把公式 (1) 改写成

St=(Diag(αt)βtktktDiag(αt))St1+βtktvt,S_t = \big(\operatorname{Diag}(\alpha_t)-\beta_t k_t k_t^\top \operatorname{Diag}(\alpha_t)\big)S_{t-1}+\beta_t k_t v_t^\top,

对应到 DPLR 就是令 D=Diag(αt), at=βtkt, bt=ktαtD=\operatorname{Diag}(\alpha_t),\ a_t=\beta_t k_t,\ b_t=k_t\odot\alpha_t——关键在于 aabb 都被绑定到同一个 kk。一般 DPLR 里 aabb 是相互独立的,这一步绑定让 KDA 避开了 DPLR 最贵的那部分计算,同时保持和经典 delta rule 一致。

分块并行。 KDA 把序列切成长度 C=64C=64 的块,块内用矩阵乘法并行、块间用递归传状态。它借用 WY 表示把一连串 rank-1 更新压成一个紧凑矩阵,再用 UT 变换减少非矩阵乘法的 FLOPs(这些操作对张量核不友好)。相比一般 DPLR,KDA 把二级分块的矩阵计算从 4 次减到 2 次,还省掉了大约 3 次矩阵乘法;一般 DPLR 为了处理累积衰减的倒数带来的数值不稳定,要在全精度下做二级分块,而 KDA 靠 a=b=ka=b=k 的绑定直接绕开了这个瓶颈。最终 KDA 算子的速度比 DPLR 快了约一倍。

KDA 的分块策略:块内并行(intra-chunk,矩阵乘法)+ 块间递归(inter-chunk,传递状态),配合 WY / UT 变换压缩 rank-1 更新

成本。 训练时单头的 FLOPs 约为 6Tdh2+3TCdh+TC26Td_h^2+3TCd_h+TC^2,对序列长度线性;而全注意力单头是 2T2dh2T^2d_h,是平方的。推理时 KDA 维护固定大小 dk×dvd_k\times d_v 的状态,与序列长度无关,prefill 用 FLOPs 密集的分块核、解码切到更省的递归核。

5. Kimi Linear 架构:3:1 混合 + NoPE#

纯线性注意力在极端长上下文的精确检索上仍然不够,所以 Kimi Linear 是个混合模型:每 3 层 KDA 配 1 层全注意力,全注意力用的是 MLA(Multi-Head Latent Attention,多头潜在注意力)。选择「按层混合」(整层要么 KDA 要么 MLA)而不是「按头混合」,是因为前者对训练基础设施更简单、更稳定。消融里 3:1 是训练和验证困惑度最优的比例:比它更稀疏(如 7:1)验证集变差,更密(如 1:1)推理开销上升,纯全注意力(0:1)反而最差。这个 3:1 结构让长序列生成时的 KV cache 最多省掉约 75%,同时靠那 1/4 的全注意力层维持全局信息流。

骨干沿用 Moonlight 的 MoE 设计:48B 总参数、3B 激活参数,每次从 256 个路由专家里激活 8 个再加 1 个共享专家,首层用稠密层保证训练稳定。

Kimi Linear 的层堆叠:3 层 KDA + 1 层 MLA 交替,每个 token-mixing 层后接一个 MoE;全注意力层用 NoPE

NoPE:把位置信息全交给 KDA。 Kimi Linear 的所有全注意力(MLA)层都不加位置编码(No Position Encoding,NoPE),位置信息和近因偏置完全由 KDA 层承担。这样做有两个实际好处:不带位置编码的 MLA 在推理时可以退化成高效的 MQA;长上下文训练也省去了调 RoPE 频率、YaRN 外推那一套。当然前提是 KDA 本身要能编码位置——下一节说明它为什么能。

6. 为什么 NoPE 行得通:KDA 相当于可学习的位置编码#

RoPE 之所以有效,是因为它把「第 tt 个 query 和第 ii 个 key 的相对位置」编码成一串旋转矩阵的累乘。论文指出,gated delta rule 可以写成一个形式上很像的表达式:

ot=i=1tqt(j=i+1tAj(Iβjkjkj))kivi,o_t = \sum_{i=1}^{t} q_t^\top\Big(\prod_{j=i+1}^{t}A_j\big(I-\beta_j k_j k_j^\top\big)\Big)k_i\,v_i ,

中间那串转移矩阵 AjA_j 的累乘,扮演的正是 RoPE 里旋转矩阵累乘的角色。区别是 RoPE 的旋转是固定的、正交的,而 KDA 的转移矩阵是数据相关、可学习的,放松了 RoPE 的正交约束,因此原则上更强,也更不容易像 RoPE 那样因固定频率而在训练没见过的长度上过拟合。更进一步,RoPE 的一大优点是给不同维度分配不同旋转频率、做到细粒度的位置刻画;标准 GDN 只有每头一个标量衰减,缺这种逐维度的多样性——这恰恰是 KDA 引入通道级门的另一个动机。换句话说,把标量门换成通道级门,不只是让记忆更精细,也让 KDA 更像一个逐维度、可学习的位置编码器,从而能替 MLA 扛起编码位置的责任。

7. 效果#

论文的主要卖点是公平对比:Kimi Linear、全注意力 MLA、以及混合 GDN(GDN-H)三者共享同样的架构规模、参数量和训练配方,都在 1.4T token 上训练。

  • 短上下文预训练与 SFT。 Kimi Linear 在几乎所有类别上都领先,排序稳定为 Kimi Linear > GDN-H > MLA。例如预训练后 MMLU-Pro 达到 51.0(MLA 47.2、GDN-H 47.9),SFT 后 GPQA-Diamond 达到 62.1(MLA 57.1)。
  • 长上下文。 在 128k 的一组长上下文 benchmark 上,Kimi Linear 平均分最高(54.5),RULER 达到 84.3、RepoQA 68.5,都明显领先。有意思的是,长上下文里 GDN-H 反而掉到 MLA 之后,而 Kimi Linear 始终居首。
  • RL。 用同样的数学 RL 训练,Kimi Linear 的训练/测试准确率增长都比 MLA 快、差距还越拉越大,说明它在推理密集的长文本生成上更吃得开 RL。
  • scaling law。 在计算最优训练下,Kimi Linear 相比 MLA 有约 1.16 倍的计算效率优势。
  • 效率。 相比全注意力 MLA,Kimi Linear 在 512k 序列上 prefill 快约 2.3 倍、1M 上快约 2.9 倍;解码阶段 1M 上下文下每 token 时间(TPOT)约 6 倍于 MLA,KV cache 省约 75%——省下来的显存还能换成更大的 batch,进一步抬高吞吐。

上面这些数字来自论文的 Table 3–5 和图 1、图 7。涉及密集表格里的具体分数,建议对着原文再核一遍。

8. 局限与讨论#

  • 它没有抛弃全注意力,而是留了 1/4。 纯线性注意力在精确复制和极端长上下文检索上仍有短板,Kimi Linear 靠 3:1 的混合把这块补上,本质上是「压缩即智能」的线性路线和「保留全 KV」的全注意力路线之间的折中。
  • 线性 vs 稀疏注意力。 论文把稀疏注意力当作另一条效率路线来对比:稀疏注意力细粒度检索更强,但要保留整份 KV cache 来做 token 选择,理论表达力上限仍是全注意力;线性注意力靠固定状态泛化,配上 delta rule 能有更强的理论表达力。两者不互斥,未来可以结合。
  • 对基础设施有要求。 细粒度门和 delta rule 让算子更复杂,需要专门的 kernel 才能跑出理论速度;好在论文开源了 KDA kernel 和 vLLM 集成,且接口和现有全注意力管线兼容。
  • 混合模型对位置编码敏感。 已有工作发现混合模型对 RoPE base 频率的调整很敏感,会影响长度外推;Kimi Linear 用 NoPE + KDA 承担位置信息的方式绕开了这个坑。

总的来说,KDA 把「细粒度门控」和「delta rule」这两条线拧到了一起,再用一套受限 DPLR 的分块算法让它跑得动,最后靠 3:1 混合和 NoPE 在公平对比下证明了线性注意力可以是 full attention 的直接替代品。要理解建立在它之上的《Attention Residuals》,这篇是必读的前置。

参考#

  • Kimi Team. Kimi Linear: An Expressive, Efficient Attention Architecture. Technical Report, 2025. arXiv:2510.26692
  • Yang et al. Gated Delta Networks: Improving Mamba2 with Delta Rule. ICLR 2025. arXiv:2412.06464
  • Yang et al. Gated Linear Attention Transformers with Hardware-Efficient Training. ICML 2024. arXiv:2312.06635
  • Schlag et al. Linear Transformers Are Secretly Fast Weight Programmers. ICML 2021. arXiv:2102.11174
  • Dao & Gu. Transformers are SSMs (Mamba2). 2024. arXiv:2405.21060
Kimi K3论文:Kimi Linear
https://blog.gzher.com/posts/paper-kimi-k3-kimi-linear/
作者
中会 / Claude Opus 4.8
发布于
2026-07-20
许可协议
CC BY-NC-SA 4.0