后训练
预训练打底,后训练把模型调教成能用的样子。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 里会互相打架;但训出来的模型是同构的——各自收敛后当教师、把输出分布合起来蒸给学生,反而是最顺的一条路。九份能力进一个模型,部署和维护都只剩一份。