69 + 24 的混合堆叠
为什么 K3 不把 93 层全换成线性注意力——线性层与 softmax 层各自补什么,Gated MLA 在其中的角色,以及混合比例这个旋钮怎么拧。
69 + 24 的混合堆叠
上一章末尾留了个问题:既然 KDA 又省缓存又快,为什么不把 93 层全用它?
这一章回答它。答案很朴素:因为线性注意力做不到精确回看,而精确回看是不能丢的能力。
两种层,两种记忆
把 K3 的 93 层拆成三类:
| 类型 | 层数 | 记忆形态 | 缓存开销 |
|---|---|---|---|
| KDA | 69 | 固定大小的矩阵状态 | 与序列长度无关 |
| Gated MLA | 24 | 完整 KV 缓存(经 MLA 低秩压缩) | 随长度线性增长 |
| dense | 1 | —— | —— |
两种记忆的分工,用一个类比说最清楚:
- KDA 像是「读完一章后写的笔记」——高度压缩、抓住要点、随时可查,但你没法用它复述原文的第 37 行写了什么。
- softmax 注意力像是「原书本身」——想查哪一行就翻到哪一行,代价是你得一直背着这本书。
一个只有笔记的模型,会在「把上下文里那段配置原样复制出来」这类任务上翻车;一个只有原书的模型,背不动 100 万字。K3 的选择是:大部分层做笔记,少数层背原书。
为什么是 Gated MLA 而不是普通注意力
那 24 层若用朴素 MHA,KV 缓存会立刻把前面省下的额度吃回去。所以 K3 在这些层上叠了两重优化:
- MLA(Multi-head Latent Attention)——DeepSeek-V2 引入的做法:把 K 和 V 压进一个低秩的潜向量再缓存,用时再解开。这是「出路二」里压缩率最高的一类。
- 门控(Gated)——在注意力输出上加一道可学习的门,调节这一层实际往主干里注入多少信息。
组合起来的效果是:保留精确检索能力,同时把这条路上的缓存开销压到最低。
混合比例怎么定
69:24 约等于 2.9 : 1,也就是「大约每 3 层 KDA 配 1 层 MLA」。
这个数字不是 K3 拍出来的——它继承自 Kimi Linear 论文的实验结论。那篇论文用 3:1 的 KDA:MLA 混合,得到「KV 缓存降约 75%、1M 上下文解码吞吐最高约 6 倍」的结果。K3 基本沿用了这个配比,只是层数放大到 93。
3:1 的直观解释:设混合前所有层都缓存 KV,混合后只有 1/4 的层还在缓存,缓存量自然降到约 1/4——这正是「降低约 75%」的来源。这个数字如此干净,说明收益的主要来源就是「有多少层不再缓存」,而不是什么复杂的二阶效应。
排布位置也是个变量
比例定了,还有一个问题:这 24 层 softmax 该放在哪?均匀插空,还是集中在某一段?
技术报告与模型卡对 K3 的具体排布没有给出逐层清单,本专栏不做推测。可以确定的是,这属于同一族设计里的一个真实旋钮——同期的 DeepSeek V4 就在论文里写明了自己的排法:前两层之后,两种压缩注意力一层隔一层交替(详见那个专栏),说明「放哪里、怎么排」是各家要明确设计的一环。
这是本专栏里少数几处「资料到此为止」的地方。逐层排布可以从公开权重的配置文件里读出来,但那属于独立复现的范畴,不是转述官方材料。等有第三方把这份逐层结构整理出来并交叉验证,本页会补上。
小结
- 93 层 = 69 KDA(固定状态,不占缓存)+ 24 Gated MLA(精确检索,缓存已被 MLA 压过)+ 1 dense。
- 混合的理由是能力互补:线性层管「概要」,softmax 层管「原文」。
- 约 3:1 的比例直接对应「缓存降到约 1/4」。
注意力这条线还差最后一块:K3 在层与层之间还加了一条旁路。👉 Attention Residuals
参考文献
- [1] Moonshot AI. “Kimi Linear: An Expressive, Efficient Attention Architecture.” 2025. arXiv:2510.26692. —— 3:1 混合比例与 75% / 6× 的实验数据。
- [2] Hugging Face 模型卡:moonshotai/Kimi-K3 —— 69 + 24 + 1 的层数构成。
- [3] DeepSeek-AI. “DeepSeek-V2.” 2024. arXiv:2405.04434. —— MLA 的原始出处。