详解 Kimi K3 技术报告
赛博浮世绘 · 晓风乾 · 20 站拆解
回首页
详解 Kimi K3 多模态·训练·工程 5.4 · 训练与推理工程
篇章五 · 5.4 · 完结

训练与推理工程

机制决定上限,工程决定下限

前面各站讲的都是「设计成什么样」,这一站讲这些设计怎么在大规模硬件上真正跑起来——长序列怎么切、专家怎么摆、显存怎么省。也是全教程最后一站。

推理 · 长序列
KDA 的双层 Chunk 切法
100 万 token · 跨机切成 8K chunk(卡间递归传状态) 8K8K8K 8K8K GPU 0GPU 1GPU 2 GPU 3GPU 4 每张卡内部 · kernel 再切 16-token tile(tile 内并行) 161616 1616 161616 1616 chunk 切多大在数学上完全等价(512 也行、8K 也行)——所以跨机一层、机内一层,想怎么切就怎么切。
两层拼起来就是线性注意力的超大 Context Parallelism:卡间按 chunk 递归,卡内按 tile 并行。

前缀缓存要改做法。 全注意力每一步的 KV cache 都是上一步的简单增量,prefix cache 顺理成章;线性注意力每一步都在上一步状态上「复写」,每一步的前缀状态都不一样——全存下来,省显存的好处就没了;不存,prefix cache 的加速又享受不到。折中是按 block 粒度缓存。vLLM 按 page 管理 KV 的那套默认层层同构,对 KDA 这种没有长驻 KV 的层要做专门的兼容——混合架构接进现有推理引擎,不是即插即用。

推理 · MoE 部署

MoonEP · 冗余专家在线规划。 Dropless EP 下每个 token 想去哪个专家就去哪个,不同卡分到的 token 数不一样——执行时间不齐、互相干等,通信前还得先广播一遍「你要收多少」。MoonEP 加少量冗余专家,并从数学上证明:存在一种放置策略能让每张卡的 token 数完全对齐;再用 online planning 提前规划哪些卡放哪些冗余专家。保证的是卡级均衡,专家级均衡只能靠有损手段——上限就卡在这里。

为什么不像 DeepSeek V3 那样优化
V3 的 MoE 通信量大,要把本 batch 的前后向和下一个 batch 拼起来精细重排(DualPipe)才能藏住 dispatch/combine 通信。K3 的 LatentMoE 把通信量本身压小了——单个 batch 内部,MoE 前后向的通信和 shared expert 的计算重叠就够了。推理关键路径上的通信延迟近乎免费,也不用把软件工程做得那么重。
训练 · 显存与流水线

大规模 CPU offload · 全 FP8。 中间计算结果 offload 到 CPU 内存,CPU 和 GPU 一起干活。要不拖慢训练,通信带宽得满足一个不等式——K3 把所有可 offload 的数据都用 FP8 存,体积砍半,正好从「overlap 不动」跨到「overlap 得动」的边界这边。

PP 转存代替 DualPipe。 单向流水线里,靠前的 PP rank 进得早、攒下的 activation 多。K3 不搞复杂的双流水线排布,而是把高显存 rank 的 activation 直接转存到低占用的 rank——用轻量方案规避了 DualPipe 的复杂度。

μon 要整矩阵。 Newton–Schulz 迭代作用在完整矩阵上——不像 Adam 是逐元素优化、参数摊平了随便切。μon 要求每个 rank 把整块矩阵保存下来,在 Megatron 这类切分框架里得专门处理才能用。

多模态的流水线难题。 视觉 token 接入主干前压到 8K,但 encoder 内部按 32K 原长算——就算主干不开 CP,encoder 也得开。VL 数据里有的卡纯文本、有的卡全视觉,PP 各段不均会把流水线打不满;K3 把 encoder 放在 PP 中后段,前段跑浅层主干时,中间闲置的 rank 提前把 encoder 后面的活干掉。

RL 的两个省法。 每条轨迹一个独立 docker,大规模调度本身就是工程活;显存上,reference model 求 objective 时不需要梯度、出梯度之后也不再上场——把它的显存和 policy 模型的 gradient buffer 合起来复用,一个坑两个用法。

效率结论
2.8T
总参数
K2 是 1T
104B
激活参数
K2 是 32.6B
2.5×
Scaling Efficiency
K3 相对 K2

这个 2.5× 怎么读。 它不是固定数据集下测的——K2、K3 的数据配方不可能相同。所以 2.5× 是「架构 + 训练配方 + 数据策略」一起换代的综合结果,不是单归因于某个设计。

全教程回顾地图
全教程结语 · 忒修斯之船。 2017 年下水的那条 Transformer,是用 attention 和残差拼起来的——这些零件当年也不是全新的。九年行驶,船板一块块换掉:KDA 换掉注意力、C²GLU 换掉 FFN、QB 换掉负载均衡……到 K3,它和原始 Transformer 的相似度已经很低很低,但大家还是叫它 Transformer。回头看 3.6 的谱系图:K3 的每个部件都是前人验证过的增量,把这些改良同时装上同一条船还能开得更快——这个时代的创新,不是颠覆,是把改良做到底。点上面地图可回看任意部分。
© 2026 晓风乾 · 赛博浮世绘