昨天,月之暗面把 Kimi K3 的完整模型权重和技术报告一并放了出来。报告是一份 2.5MB 的 PDF,我花了一段时间读完。
在这里插入图片描述

先说结论:这份报告不像一篇"模型宣传稿",更像一份"路线宣言"。它通篇在回答一个问题——“开源模型要追上闭源前沿,到底差在哪、该怎么补”。下面我按"从报告里读到了什么"的思路拆一遍,尽量讲那些参数表以外的、真正值钱的工程判断。


一、题眼:开源模型缺的不是"会推理",是"够大"

报告开篇第一段就把基调定死了。它说,过去两年 frontier 研究的重心都在 test-time scaling(推理时计算) 这一轴上——o 系列、Claude 的 extended thinking、DeepSeek-R1、Kimi K1.5 都在把"推理"当第二增长曲线。开源社区在这条轴上追得很快。

但另一条轴——pre-training 参数规模——开源阵营普遍还卡在 1T 量级附近没动。报告的原话是:当越来越复杂的推理/agent RL 方法被套在"差不多规模的预训练底座"上时,开源的进步会收敛,而和最强闭源的差距反而越拉越大

K3 的做法是直接把两条轴一起推到前沿:预训练底座干到 2.8T 参数(3T 级),同时在 1M 上下文上做推理时 scaling。
在这里插入图片描述

我的感觉这其实是给"开源路线"定了一个判断——光堆推理技巧补不了底座的代差。要么上参数,要么接受被甩开。DeepSeek 之后,Kimi 是把这个判断落到实处的第二家。


二、架构不是单点创新,是"三维信息流"的协同设计

很多人看 K3 只盯着"2.8T、896 专家"这些数。但报告反复强调的一个词是 information flow(信息流)——它要在三个维度上同时把信息打通:

  • 序列维(sequence length):用 KDA(Kimi Delta Attention) 做高效长序列混合,再周期性插入 Gated MLA 保住全局交互。每块 3 个 KDA + 1 个 MLA(3:1),最后一层强制全局注意力。
  • 深度维(network depth):用 AttnRes(注意力残差) 让每层能"选择性回看"前面所有层,而不是像普通残差那样把所有前层信息压成一个 state。
  • 宽度维(model width):每个注意力层后接 Stable LatentMoE,每 token 只激活 896 个路由专家里的 16 个。

三者合起来,配 refine 过的数据和训练配方,相对 K2 拿到约 2.5× 的 scaling efficiency(把算力转成智能的效率)

原文
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这代架构的核心思想不是"某个模块多牛",而是用不同机制分别照顾序列、深度、宽度三个方向的信息瓶颈。这是系统级架构,不是魔改一层。


三、最被低估的工程细节:KDA 的"下界衰减"

KDA 本质是带 channel-wise 遗忘门的 delta-rule 线性递归。但报告里最值得工程师记笔记的,是一个看起来很小的改动——下界衰减(lower-bounded decay)
在这里插入图片描述
在这里插入图片描述

KDA 在 chunk 内要用累计衰减的倒数去重缩放 key,而这个倒数在有限精度下会溢出。Kimi Linear 原来的做法是负 Softplus 无界映射,导致对角 tile 必须走显式的 position-pair 计算(这是性能瓶颈)。

K3 改成用 scaled sigmoid 把 log-decay 从下方封死(gmin = -5)。这样一来,每个保留因子都大于 e^-5 ≈ 6.7e-3,16-token tile 的累计对数衰减落在 (-80, 0),倒数小于 e^80刚好落在 BF16 动态范围内。于是对角和斜对角 tile 全都能用 dense Tensor Core 矩阵乘,那条 position-pair 的慢路径被彻底消掉。

所以线性注意力能不能上规模,瓶颈往往在数值稳定性而不在算法表达力。一个 gmin=-5 的小改,把"能不能吃满 Tensor Core"这个工程天花板直接抬高了。这呼应了报告里反复提的"算法-系统协同设计(algorithm-system co-design)"。


四、AttnRes:把"注意力"装到深度方向

标准残差连接把所有前层信息压进一个 h_l,本质上是个沿深度方向的 RNN 瓶颈。Transformer 当年是把"注意力"引入了序列方向(每个位置能看所有前序位置),AttnRes 干的是同样的事、但放在深度方向:每层用一个可学习的伪查询,对所有前层表示做 softmax 加权回看。
在这里插入图片描述
直接全量做是 O(L²d) 算力 + O(Ld) 内存(要留住所有层输出)。K3 用 Block AttnRes 把 L 层分成 N 个 block,块内求和、块间才做注意力,内存从 O(Ld) 降到 O(Nd)。报告说 N=8 就能恢复大部分收益,K3 实际用 8 个 block(含 embedding 共 9 个)。KDA的整体运行流程如下所示,左上角:带有共享和路由专家的稳定隐式MoE模块。左下角:KDA模块。右下角:原生视觉通路。
在这里插入图片描述

相对而言一般的残差链路是会"遗忘/混淆"的。给深度方向也装一个注意力,等于让深层能直接"调取"浅层特征,而不是靠一层层残差慢慢渗。做深网络的都该留意这个思路。


五、NoPE + 递归门控:1M 上下文不用动 RoPE

位置编码这事,K3 走了一条很省心的路:KDA 用递归门控和衰减隐式编码位置(NoPE),MLA 层也跟着用 NoPE,不显式加位置编码。
在这里插入图片描述

好处是外推到 1M 上下文时,完全不用改位置编码超参——不用重调 RoPE 频率基、不用 YaRN 插值。配合四阶段课程(8K→64K 预训练,256K→1M cooldown),把最贵的超长序列计算集中在训练预算很小的一部分里,既省钱又让模型渐进适应长依赖。

这里我的看法是很多模型的"长上下文"是后期硬拗出来的(改 RoPE、加插值),容易掉链子。K3 把位置信息长在机制里,扩展长度几乎是"免费"的。这解释了它为什么能稳吃百万 token 而不崩。


六、Stable LatentMoE:极端稀疏下的两个坑,怎么填

把路由专家池拉到 896、每 token 只激活 16(稀疏度 56),会放大两个 vanilla 设计的失败模式:

  1. 激活爆炸:路由分支是"门控 GLU + 多分支专家 FFN + 上投影"近四个矩阵乘的链式结构,在 2.8T 规模下内部激活会爆。
  2. 负载不均:近千个专家,传统辅助损失均衡法管不住。

K3 的解法三件套:

  • Normalized LatentMoE:专家聚合和上投影之间插一层 RMSNorm,压住尺度抖动(还顺手提升了验证集 loss 和下游榜)。
  • SiTU-GLU:用 tanh 软封顶的 GLU,近端近似 SwiGLU、远端有界,杜绝大坐标下溢/溢出。
  • Quantile Balancing(分位数均衡):免辅助损失路由,给每个专家的偏置直接取"匹配目标负载的分位数"。工程上还用直方图估计代替全局精确分位数(一次 all-reduce 几百个 bin 就够),把通信成本压到极低。
    在这里插入图片描述
    在这里插入图片描述

而 MoE 上规模后,"均衡"和"稳定"才是真难题,不是容量。QB 这套"用分位数定偏置 + 直方图近似"的思路,对任何人训大 MoE 都有直接参考价值。


七、训练方法的真经:9 个专家,再蒸馏成一个

Post-training 是三段式:SFT 冷启动 → RL 训出领域专家 → 多教师在线蒸馏(MOPD)合并

关键是 RL 的切法:跨 3 个领域(通用 / 通用 agent / 编码 agent)× 3 档推理力度(low / high / max)= 9 个专家模型。然后这 9 个专家通过 on-policy 蒸馏合并回一个统一模型。

几个工程亮点:

  • Partial Rollout(部分回滚):长程任务一个 trajectory 可能跨多个训练迭代,天然产生"陈旧数据(off-policy)"。他们用 per-token 正则 容忍极端陈旧,稳住训练——这是个很反直觉但很实用的设计。
  • 推理力度预算控制:每个问题估个初始 token 预算 b0,超了直接给 -1 奖励,逼模型别 overthinking。再分阶段退火出 high/low 档专家。
  • 白盒 RL 环境:把 agent harness 拆成可配置模块(工具接口、system prompt、上下文管理、skills、memory、subagents…),能动态实例化出 Kimi Code / Claude Code / Codex / OpenClaw / Hermes 等不同 harness——专门为了防止模型过拟合某一种工具 schema。
    在这里插入图片描述

我的读数:有意思的是,报告点名的"主流 harness"里就有 OpenClaw(我们正在做的方向)。这侧面说明"可插拔 harness"已经是 agent 训练的基础设施共识了。另外,"先训多个专家再蒸馏"比"硬训一个全能模型"更稳,这条对做垂直 agent 的人很值钱。


八、任务从哪来?知识图谱引导的合成

RL 效果好不好,七分看环境。K3 建了一套自演化的分层知识图谱(DAG):从粗粒度种子节点出发,agent 递归做网络检索、扩展出更细的节点(边永远从粗指向细),采样相关概念组合成关键词 → 检索真实公开材料(论文、博客、代码库)→ 合成任务。

我的读数:这是"训练数据从哪来"的工业级答案——不是堆语料,而是用知识图谱保证覆盖度和细粒度,再挂钩真实材料保证任务可验证。做垂直领域 agent 训练的人,这套 pipeline 比模型本身更值得抄。


九、部署感知:训练和推理用同一套量化

K3 从 SFT 阶段起就做 MXFP4 量化感知训练(QAT):专家权重压到 MXFP4、激活用 MXFP8,非专家部分保持高精度。关键是 rollout 和 training 用同一套量化方案,消除 train-inference mismatch。

推理加速上,把预训练的 MTP 层 fine-tune 成 EAGLE-3 风格的草稿模型,并且直接优化投机解码的接受率(LK loss),而不是常规 KL 散度——因为 KL 不保证小容量草稿模型的接受率最大。

我的读数:2.8T 模型不把"部署成本"当后处理,而是从训练第一天就耦合进去。这点对"开源模型能不能真用得起"是决定性的一笔。


十、报告自己说了实话

最让我高看一眼的,是报告的诚实。它明确写:“整体表现仍落后于最强的专有系统——Claude Fable 5 和 GPT-5.6 Sol——但稳定领先我们评测套件里的其他开源与闭源模型。”

没有"全面超越",只有"在开源前沿里带头、逼近闭源天花板"。这种定位反而体现了Kimi开源工作者的不骄不躁的性格,我相信在以后开源模型一定会交一份更满意的答卷。


写在最后:对我们意味着什么

把这份报告连起来看,K3 给的不是一个"更强模型",而是一张开源追前沿的施工图

  1. 底座不够大,推理技巧补不上代差;
  2. 架构要按"序列 / 深度 / 宽度"三个信息瓶颈分别设计;
  3. 上规模后,数值稳定、负载均衡、off-policy 陈旧这些"工程脏活"才是胜负手;
  4. 训练数据要用知识图谱+真实材料自动合成,而不是靠人工堆;
  5. 部署成本要从训练第一天就耦合。

如果我们自己做 OpenClaw 这类 agent 框架时,第 7 节的"白盒 harness + 多专家蒸馏"和第 8 节的"知识图谱任务合成"是最能直接平移的两块。模型会一代代换,但这套训练/架构的方法论,才是能留下来复用的东西。

更多推荐