苏剑林复盘 Kimi K3:896 个专家背后的关键技术取舍
Kimi 研究员苏剑林发文复盘 K3 的 MoE 与注意力设计。K3 总参数达 2.8 万亿、配置 896 个路由专家,但每个 Token 仅激活 16 个;通过 LatentMoE、Stable LatentMoE、KDA 与 NoPE MLA 等机制,在扩大参数容量的同时控制计算与通信成本。文章同时揭示了低精度训练、负载均衡和工程复用等方面的取舍。
事件概述
苏剑林(Kimi 研究员,RoPE 提出者)发布文章《简单谈谈 K3 的 MoE 和 Attention》,围绕 Kimi K3 的专家架构、训练稳定性和注意力设计展开复盘。K3 总参数达 2.8 万亿,配置 896 个路由专家,每个 Token 只激活 16 个,并交替使用 KDA 和 Gated MLA 注意力结构。整体设计目标是:在继续扩大参数容量的同时,避免计算成本随参数和上下文长度同步增长。
核心信息
LatentMoE:降低专家计算与通信成本,扩大专家池
传统 MoE 在专家分布在多卡时,Token 隐藏状态传输成本高。K3 将主隐藏维度 7168 压缩到 3584 维的潜在空间后再送入路由专家,计算完成后恢复。降维减少了专家权重读取、激活处理和跨设备通信的开销。原本可采用“448 选 8”的配置,最终扩展为“896 选 16”,激活比例相同但可组合的专家更多。另保留 2 个共享专家,承担语言结构、基础语义等通用能力,路由专家则专注细分能力。
Stable LatentMoE:数值稳定与负载均衡
LatentMoE 计算路径更长,数值波动风险上升。K3 引入三类机制:
- RMSNorm 放在专家结果聚合后、升维前,校准专家分支的整体尺度。
- SiTU-GLU 使用 Soft Cap 限制激活数值增长,避免 BF16/FP8 低精度训练中极端值挤占动态范围。
- Quantile Balancing(QB)用于负载均衡。相比 K2 的固定步长偏置更新,QB 直接观察 Router 分数与 Top-K 门槛之间的分布,估计每个专家的选择门槛位置,使近千个专家按目标数量接收 Token,防止少数专家持续过载。
KDA 与 NoPE MLA:分工处理记忆与检索
K3 约每 3 层 KDA 插入 1 层 Gated MLA。MLA 保留全局检索能力,可将 KV Cache 压缩到潜在空间,按 Query 回查历史;KDA 不保存完整历史,将过去信息持续写入固定大小状态并递归更新。KDA 承担连续状态维护,MLA 周期性补充关键信息。由于 KDA 按 Token 顺序更新,位置信息已隐含在状态演化中,MLA 因此可移除 RoPE。MLA 输出后还有 Gate,控制检索结果写回主干的强度。
Per-Head Muon 与工程约束
K3 继续使用 Muon 优化器,但按不同 Attention Head 分开处理参数,避免统一归一化时梯度较大的 Head 影响其他 Head 的更新尺度。NoPE MLA 仍保留原本用于 RoPE 的额外 64 维分支,虽然理论上可删除,但删除会改变 Query/Key 张量形状,影响 KV Cache 布局、Attention Kernel、通信逻辑和推理框架,因此保留以复用成熟的 MLA 基础设施,属于最小改动原则。
值得关注
K3 的最终架构并非只由理论效果决定,还受通信成本、低精度数值、Kernel 复用、框架兼容和工程风险影响。模型仍面临潜在空间信息损失、KDA 固定容量遗忘细节、更多专家不必然形成同等数量清晰能力等未完全解决的问题。其路线表明:当模型进入万亿参数和百万上下文阶段,Scaling 的重点已不只是扩大容量,而是建立更有效的参数、记忆与计算调度机制。
