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

后训练

SFT 冷启动,RL 训九专家,蒸馏回一个

预训练打底,后训练把模型调教成能用的样子。K3 的后训练分成 SFT、RL、多教师在线蒸馏三段,层层递进。

预训练怎么收尾 · 学习率。 K3 用 cosine 衰减,不用 WSD。WSD(warmup–stable–decay)有它的好:decay 阶段学得快,好数据可以攒着放到 decay 段喂,token 量中途想加也来得及。但最优学习率本来就会随 token 量变,WSD 还要多调一个「decay 占比」;cosine 只有初始学习率和总 token 数两个参数——K3 选了更好调的那条路。

SFT · 冷启动。 SFT 负责冷启动能力,数据来自上一代 Kimi 领域模型合成,再做多阶段验证和人工标注,重点补充复杂 Agent 任务、长程工具调用和执行轨迹。对话模板用的是基于 XTML 的格式。

RL · 3×3 九个专家。 强化学习用 3×3 的方式,一共训练 9 个专家模型。3 个任务维度:General Tasks 覆盖通用体验、视觉、推理、忠实性、搜索和知识工作;General Agents 覆盖长程助理、Deep Research 和长篇写作;Coding Agents 覆盖软件工程、Coding Experience、Kernel 和 Web 开发。3 个难度维度:low、high、max 三种 Reasoning Effort。两两组合,每个格子训出一个专家。

Partial Rollout 缓解长尾延迟。 长程 Agent RL 里,有些轨迹要生成很久。每轮对多个 Prompt 各采样多条轨迹,当一定比例的轨迹完成后就暂停生成——已经完成的进策略优化,没完成的连同 Sandbox 状态放进队列,下一轮优先恢复。这样不让慢的轨迹拖死整轮。

Token Budget 控推理强度。 冷启动模型为每个问题估计一个基础 Token Budget,如果轨迹消耗超过预算,Reward 直接变成 −1。通用任务只统计 Thinking Token,Agent 任务统计推理、回答和 Tool-call Argument 在内的全部输出。先用较大预算训练 max 模型,再逐步降低预算,得到 high 和 low。

多教师蒸馏九归一。 最后采用多教师在线蒸馏策略,把这 9 个专家模型蒸馏到一个学生模型里——学生同时学习 9 个教师的输出分布,不直接学某一位教师。这样 9 个专家的能力被浓缩进一个模型,部署时只跑这一个,既保留了各任务的能力,又不用维护 9 个模型。

全程 MXFP4 QAT。 从 SFT 开始,K3 就使用 MXFP4 Quantization-aware Training,避免训练时看到高精度模型、真正生成轨迹时却换成低精度模型的行为偏差。

蒸馏为什么是 on-policy(OPD)。 思路来自 MiniLLM 的反向蒸馏:不是学生看着题抄教师的答案,而是学生自己生成、教师再针对学生的输出给分布——错在哪、当场纠哪,弱点暴露出来才有机会被纠正。九位教师全程在线陪着学生做题,这是「在线」两个字的由来。

为什么训 9 个再合回 1 个。 9 个专家的 RL 范式和 reward 各不相同,塞进同一个 RL run 里会互相打架;但训出来的模型是同构的——各自收敛后当教师、把输出分布合起来蒸给学生,反而是最顺的一条路。九份能力进一个模型,部署和维护都只剩一份。

SFT → RL 3×3 → 蒸馏
SFT · 冷启动 上一代合成数据 XTML 模板 RL · 3×3 九专家 3 任务 × 3 难度 蒸馏 9 → 1 多教师在线 → 学生模型 Partial Rollout 解长尾 · Token Budget 控强度 · 全程 MXFP4 QAT
三段层层递进,最后只部署一个学生模型。
9 个专家待命 多教师在线蒸馏
学生模型 · 一处同步匹配九处
对下一个 token 的预测概率 · 现在接近均匀
注意亮灯的时机——九个同时,不是依次
九位教师同时给分布 · 学生的分布条同步形变
RL · 9 专家 + Partial Rollout + Token Budget
3 任务 × 3 难度训出 9 个专家。Partial Rollout 不让慢轨迹拖死整轮,Token Budget 超额 reward 直接 −1 控推理强度。
蒸馏 9 归 1 · 全程 MXFP4 QAT
一个学生同时学 9 个教师的输出分布,浓缩进一个模型。从 SFT 起就量化感知训练,训练推理同精度。