跳转至

Kimi K3 Report

导言

Kimi K3 是一个面向长时程智能体任务的原生多模态混合专家模型:总参数量 2.78T,每个词元激活 104.2B 参数,训练上下文最长 100 万词元。它把 Kimi Delta Attention(KDA)、Block Attention Residuals(AttnRes)和 Stable LatentMoE 放进同一套训练系统,并进一步连接原生多模态预训练、分档推理投入强化学习、量化感知后训练与大规模并行基础设施。

本文按照论文的段落和小段落顺序进行逐句翻译,保留全部 16 幅图、5 张表、编号公式、交叉引用和技术附录。为帮助第一次接触相关概念的读者,额外说明均放在明确标记的“小白提示”中,不与原论文观点混写。

译文与授权说明

本文是 Kimi K3 技术报告的非官方中文翻译,翻译基于 Moonshot AI 官方报告仓库提交 0797decb18ab079de86f991b87a64b81ec15a3c2 与官方模型仓库提交 9f62e4e9fffbd0a83ddd60e1c209d828994b3569。原报告、代码和相关文档受 Kimi K3 License 约束;本文保留原作者署名与许可说明。若译文与原文存在差异,以官方 PDF为准。

附录 A 是贡献者姓名列表,姓名不翻译;参考文献 [1]–[151] 的作者、题名与出版信息沿用官方 PDF,不重复翻译。附录 B–F 的技术内容则逐句译出。

Kimi K3 License Notice

Kimi K3 License

Copyright (c) 2026 Moonshot AI

Permission is hereby granted, free of charge, to any person (the "Licensee") obtaining a copy of this software — including the model weights, parameters, configuration files, inference and training code, and associated documentation (collectively, the "Software") — to deal in the Software without restriction. This includes, without limitation, the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software; to run, deploy, fine-tune, or otherwise modify the Software and create derivative works from it; and to permit persons to whom the Software is furnished to do so, in each case subject to the following conditions:

  1. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Licensee's use of the Software must comply with applicable laws and regulations.

  2. "Model as a Service" means giving a third party access to language model inference or fine-tuning (e.g., via API) in a manner that allows such third party to exercise meaningful control over the inputs, parameters, or training data. This does not include (a) end-user products with model capabilities solely embedded within specific features or harnesses, or (b) mere relaying of requests to models hosted by others.

    If the Licensee or any of its affiliates operates a Model as a Service business, and the aggregate revenue of the Licensee and its affiliates exceeds 20 million US dollars (or the equivalent in other currencies) in total over any consecutive 12 months, the Licensee must enter into a separate agreement with Moonshot AI before using the Software or its derivative works for any commercial purpose.

  3. If the Software (or any derivative works thereof) is used for any of the Licensee's commercial products or services that have more than 100 million monthly active users, or more than 20 million US dollars (or equivalent in other currencies) in monthly revenue, "Kimi K3" must be prominently displayed on the user interface of such product or service.

  4. The requirements set forth in Sections 2 and 3 do not apply to: (a) internal use of the Software, defined as any use that does not make the Software, its outputs, or its underlying capabilities available to third parties; or (b) any use of the Software accessed through Moonshot AI's official products or certified inference partners.

  5. THE SOFTWARE AND ANY OUTPUT AND RESULTS THEREFROM ARE PROVIDED ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL MOONSHOT AI OR ITS AFFILIATES OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

For any questions regarding this license, please contact license@moonshot.ai.

阅读方法

K3 的主线不是“模型变大了”,而是同时沿三条信息流重构模型:沿序列方向用 KDA 压缩历史,沿深度方向用 AttnRes 读取跨块表示,沿专家方向用 LatentMoE 在 896 个路由专家中激活 16 个。后文每遇到一个新模块,都可以先问:它改变了哪条信息流、保留了什么状态、又把成本转移到了哪里?

Kimi K3 的三条信息流

自绘认知示意图:先用“序列、深度、专家”三条轴线建立整体心智模型;它是译者辅助图,不是论文证据。

摘要

我们介绍 Kimi K3:一个总参数量为 2.8 万亿、激活参数量为 1040 亿的混合专家模型(Mixture-of-Experts,MoE),具备原生视觉能力和 100 万 token 的上下文窗口。Kimi K3 建立在 Kimi Delta 注意力(Kimi Delta Attention,KDA)[64] 与注意力残差(Attention Residuals,AttnRes)[58] 之上,这两项技术分别改善了信息在序列长度维度和模型深度维度上的流动。再结合 Stable LatentMoE——它能让每个 token 从 896 个路由专家中有效激活 16 个——以及经过改进的训练与数据配方,这些进展使整体扩展效率相较 Kimi K2 [59] 提升约 2.5 倍。后训练重点覆盖通用、智能体和编程领域的强化学习(Reinforcement Learning,RL),并覆盖多个推理投入(reasoning effort)级别,从而实现组合泛化和稳健的长时程执行。在 2.8 万亿参数规模下,Kimi K3 还获得了多个方面的基础设施进展支持:面向 KDA 的算法-系统协同设计、采用高效内存管理且完全负载均衡的专家并行训练、具备持久化轨迹生成(rollout)与沙箱状态的百万 token 智能体 RL,以及部署方面的创新。

小白提示

这是译者补充。 MoE 不会让 2.8 万亿个参数在每次计算中全部参与工作;“1040 亿激活参数”表示一次处理某个 token 时实际被调用的参数规模。这样可以扩大模型的总容量,同时把单次计算量控制在更低水平。

大量评测表明,Kimi K3 在长时程编程、智能体、知识、推理和视觉任务上达到了前沿水平。尽管其整体性能仍落后于最强大的专有模型,即 Claude Fable 5 和 GPT-5.6 Sol,但在我们的评测套件中,Kimi K3 始终优于其他接受评测的开源与专有模型。我们发布 Kimi K3 的完整模型权重,以促进未来研究,并加快前沿智能的更广泛部署与采用。1

Kimi K3 主要评测结果

论文原图截图:图 1。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 1:Kimi K3 的主要结果。

1 引言

在大语言模型(Large Language Models,LLMs)发展的很长一段时间里,扩展意味着在部署之前投入更多计算,也就是用更多数据训练更大的模型 [55, 46]。推理模型的兴起确立了第二条扩展轴——测试时计算:OpenAI 的 o 系列扩展了强化学习和测试时推理 [85, 84];Anthropic 的延长思考模型会分配可自适应的思考预算,并将推理与工具使用交错进行 [6, 7];DeepSeek-R1 [41] 和 Kimi K1.5 [119] 表明,大规模强化学习能够从强大的预训练模型中激发出复杂的推理行为;Kimi K2.5 Agent Swarm [60] 则进一步把测试时扩展(test-time scaling)从顺序推理扩展到并行智能体协作。这些进展使测试时扩展成为前沿研究的核心焦点。然而,开源模型生态虽然在第二条轴上进展迅速,在第一条轴上的进展却很缓慢:许多近期模型仍处于或仅略高于 1 万亿参数量级 [146, 29, 136, 121]。当日益复杂的推理方法和智能体强化学习方法被应用到规模相近的预训练基座上时,开源模型的进展可能逐渐趋同,而它们与最强专有系统之间的差距则会扩大。借助 Kimi K3,我们同时沿两条扩展轴推进至前沿:一方面把预训练基座扩展到前所未有的 3 万亿参数量级,另一方面在 100 万 token 的上下文长度下扩展强化学习、推理投入和长时程交互。

小白提示

这是译者补充。 这里的两条“扩展轴”分别是:训练阶段用更大的模型和更多数据提升基础能力,以及模型回答问题时投入更多推理计算。前者发生在部署前,后者发生在模型实际执行任务时。

我们介绍 Kimi K3:一个原生多模态 MoE 模型,总参数量为 2.8 万亿,激活参数量为 1040 亿,上下文窗口最长可达 100 万 token。其架构从序列长度、网络深度和模型宽度三个维度扩展信息流动能力。KDA [64] 能够高效地混合长序列信息,而周期性交错插入的门控多头潜在注意力(Gated Multi-head Latent Attention,Gated MLA)层则保留全局交互能力。AttnRes [58] 允许每一层选择性地关注此前所有层产生的表示。Stable LatentMoE 将可路由的专家空间扩展到 896 个专家,并让每个 token 激活其中 16 个;与此同时,归一化、Sigmoid Tanh 单元门控线性单元(Sigmoid Tanh Unit Gated Linear Unit,SiTU-GLU)和分位数均衡(Quantile Balancing)共同稳定了极端稀疏条件下的优化过程。这些架构进展与经过改进的数据和训练配方相结合,使整体扩展效率相较 Kimi K2 [59] 提升约 2.5 倍。

小白提示

这是译者补充。 KDA 主要解决“序列很长时如何高效交换信息”,AttnRes 主要解决“网络很深时后层如何直接取用前层信息”,Stable LatentMoE 则主要解决“专家很多时如何只调用少数专家并保持训练稳定”。三者分别对应序列长度、模型深度和模型宽度。

我们为这一预训练基座配套了专门面向 100 万 token 上下文测试时扩展而设计的后训练。Kimi K3 在长时程编程、通用智能体、通用推理与知识任务上接受强化学习训练,并且每个领域都覆盖多个推理投入级别。训练环境包括可验证的搜索和专业知识工作、软件工程与内核优化、在工具使用闭环中引入视觉信息的多模态推理、持久化助手工作流、Web 开发,以及自主执行任务。这些环境训练出一套通用循环:推理、行动、观察、验证和适应;这套循环往往会经历数百乃至数千次工具调用,并累积数百万个上下文 token。最后,通过多教师同策略蒸馏(multi-teacher on-policy distillation)[76, 135, 29],面向不同领域和推理投入而专门训练的策略被整合进一个统一模型。

小白提示

这是译者补充。 “同策略蒸馏”可以粗略理解为:多个专长不同的教师策略在当前模型实际会访问的任务轨迹上提供示范,再把这些能力压缩到同一个学生模型中,从而避免用户为不同任务切换多个模型。

实现这种训练范式,需要基础设施能够随架构复杂度、模型规模和轨迹长度一同扩展。在 KDA 的系统协同设计方面,我们开发了融合内核、KDA 上下文并行(KDA Context Parallelism)和状态感知前缀缓存,使 KDA 在设备内部、跨设备以及跨请求三种范围内都能高效运行。对于 2.8 万亿参数 MoE 的预训练,MoonEP 通过静态计算形状和零拷贝通信实现完全负载均衡的专家执行,而内存高效训练与多模态编码器优化则在有限内存内维持硬件利用率。对于百万 token 的智能体 RL,我们的同置系统将部分 rollout、外部键值缓存(Key-Value cache,KV-cache)保留、自适应节流和可恢复的微型虚拟机(micro Virtual Machine,microVM)沙箱结合起来,以保存长寿命的模型状态与环境状态。最后,专用内核以及能够感知缓存和预算的集群调度,把这些创新转化为可预测的生产服务能力。

小白提示

这是译者补充。 长时程智能体任务可能执行很久;如果中途必须暂停,外部 KV-cache 和可恢复沙箱可以分别保留模型已经处理过的上下文状态,以及工具或操作系统环境的状态,从而避免从头重跑。

由此产生的模型建立了新的开源前沿。在覆盖长时程编程、智能体、知识、推理和视觉任务的基准测试中,Kimi K3 的整体表现落后于最强的专有系统——Claude Fable 5 和 GPT-5.6 Sol——但始终领先于我们评测套件中的其他开源与专有模型,如图 1 所示。我们的贡献概括如下:

  • 开源前沿的预训练。 我们训练了一个总参数量为 2.8 万亿的原生多模态 MoE 模型,它具有 1040 亿激活参数和 100 万 token 的上下文窗口。KDA、AttnRes、Stable LatentMoE,以及经过改进的数据与训练配方,共同使整体扩展效率相较 Kimi K2 提升约 2.5 倍。

  • 面向多推理投入测试时扩展的强化学习。 我们在通用、智能体和编程领域以及多个推理投入级别上开展 RL,然后将由此获得的能力整合进一个统一模型。

  • 面向数万亿参数、百万 token 智能的基础设施。 我们提出了 KDA 系统协同设计;用于 2.8 万亿参数 MoE 预训练的 MoonEP 与内存高效基础设施;用于百万 token 智能体轨迹、配备可恢复沙箱的同置 RL 系统;以及更多基础设施创新。

  • 开源前沿模型。 我们发布 Kimi K3 的完整模型权重,使前沿智能能够用于研究、部署和进一步创新。

Kimi K3 模型架构

论文原图截图:图 2。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 2:Kimi K3 架构。该架构围绕 token、通道和层混合来组织,并在输入端设有原生视觉路径。每个块包含三个 Kimi Delta Attention(Kimi Delta 注意力,KDA)层,随后是一个门控多头潜在注意力(Gated Multi-head Latent Attention,Gated MLA)层;每个注意力层都与一个 Stable LatentMoE 前馈网络配对。注意力残差(Attention Residuals,AttnRes)使用学习得到的伪查询(\(w\)),在嵌入和先前各块的输出上生成注意力权重(\(\alpha\)),从而让信息能够沿深度方向选择性流动。左上:包含共享专家和路由专家的 Stable LatentMoE 模块。左下:KDA 模块。右下:原生视觉路径。

2 模型架构

Kimi K3 架构旨在沿三个互补维度扩展信息流:序列长度、网络深度和模型宽度。在序列维度上,混合注意力(Hybrid Attention)在每个块中组合三个 Kimi Delta Attention(KDA)[64] 层和一个 Gated MLA 层,为长上下文 token 混合提供高效机制,同时保留具有选择性的高容量注意力(§2.1)。在深度维度上,注意力残差(AttnRes)[58] 让每个模块可以从嵌入、当前块和先前各块中选择性检索表示,使信息访问不再局限于传统的顺序残差累积(§2.2)。在宽度维度上,每个注意力层后面都接一个 Stable LatentMoE 层来执行稀疏通道混合,实际上会为每个 token 激活 896 个路由专家中的 16 个(§2.3)。对于原生视觉,MoonViT-V2 编码图像和视频,随后一个轻量投影器将得到的视觉特征映射到共享嵌入空间,再交由主干网络处理(§2.4)。这些组件与逐头 Muon(Per-Head Muon,§2.5)共同构成一个统一架构,用于跨 token、层和通道扩展信息流。结合改进后的训练方案和数据配方,它们使整体缩放效率相较 Kimi K2 提升约 \(2.5\times\)。图 2 给出了该架构的概览。

2.1 混合注意力

Kimi K3 在各层混合使用线性注意力和全局注意力,将 KDA [64] 与 Gated MLA 组合起来。每个块包含 3 个 KDA 层,后接 1 个 Gated MLA 层,混合比例为 3:1。这一模式会在整个主干网络中重复。下面将分别介绍这两种注意力机制。主干网络末尾还会额外放置一个 Gated MLA 层,以确保最后一层始终执行全局注意力。

2.1.1 Kimi Delta Attention

KDA 在 delta-rule(增量规则)递推 [106, 139] 的基础上加入了逐通道遗忘门 [64]。考虑一个隐藏状态序列 \(x_t\in\mathbb{R}^{d}\),其中 \(t\) 表示 token 位置,\(d\) 是模型隐藏维度。为清楚起见,我们先描述单个注意力头:查询向量和键向量 \(q_t,k_t\in\mathbb{R}^{d_k}\),值向量 \(v_t\in\mathbb{R}^{d_v}\),递推状态 \(S_t\in\mathbb{R}^{d_k\times d_v}\)。KDA 在应用 delta-rule 更新前先施加逐通道衰减:

\[ S_t = \left(I-\beta_t k_tk_t^\top\right) \operatorname{Diag}(\alpha_t)S_{t-1} +\beta_tk_tv_t^\top, \qquad \tilde{o}_t=S_t^\top q_t. \tag{1} \]

这里,\(\alpha_t\in(0,1)^{d_k}\) 是逐通道、单步的保留因子,\(\beta_t\in(0,1)\) 控制 delta-rule 的写入强度。

小白提示

译者补充:可以把 \(S_t\) 想成这个注意力头随 token 推进而维护的一张“小型记忆表”。\(\alpha_t\) 决定旧记忆的每个键通道保留多少,\(\beta_t\) 决定当前 token 写入多强;式(1)并不是保存所有历史 token,而是把历史压缩进固定大小的递推状态。

沿用 Kimi Linear [64],KDA 将每个注意力头的各个量参数化为

\[ \begin{aligned} q_t^h,k_t^h &= \operatorname{L_2Norm}\!\left( \operatorname{Swish}\!\left( \operatorname{ShortConv}\!\left(W_{q/k}^{h}x_t\right) \right)\right) \in\mathbb{R}^{d_k},\\ v_t^h &= \operatorname{Swish}\!\left( \operatorname{ShortConv}\!\left(W_v^h x_t\right) \right) \in\mathbb{R}^{d_v},\\ \beta_t^h &= \operatorname{Sigmoid}\!\left(W_\beta^h x_t\right) \in(0,1),\\ z_t^h &= W_\alpha^\uparrow W_\alpha^\downarrow x_t+b_\alpha^h \in\mathbb{R}^{d_k}. \end{aligned} \tag{2} \]

查询、键和值的投影都会先应用 ShortConv,再应用 Swish [139];查询和键还会进一步经过 \(L_2\) 归一化(\(L_2\) Norm)[142]。低秩投影和逐头偏置 \(b_\alpha^h\in\mathbb{R}^{d_k}\) 会为每个键通道生成细粒度衰减 logit \(z_t^h\)。从 \(z_t^h\)\(\alpha_t^h\) 的有下界映射,将在下面介绍完分块形式后给出。

分块并行形式。沿用 Kimi Linear [64],KDA 在块与块之间递推,在每个块内部并行。对块大小 \(C\),若 \(X\in\{Q,K,V,O,U,W\}\),则 \(X_{[t]}\) 堆叠第 \(t\) 个块中的 token 向量。矩阵 \(S_{[t]}\in\mathbb{R}^{d_k\times d_v}\) 表示进入第 \(t\) 个块时的递推状态。对于位置 \(1\le i\le j\le C\),定义逐通道累积衰减

\[ \gamma_{i\to j}^{[t]} := \prod_{r=i}^{j}\alpha_r^{[t]}, \qquad \gamma_r^{[t]}:=\gamma_{1\to r}^{[t]}. \tag{3} \]

与 Kimi Linear 一样,\(\Gamma_{1\to C}^{[t]}\in\mathbb{R}^{C\times d_k}\) 按行堆叠 \(\gamma_1^{[t]},\ldots,\gamma_C^{[t]}\)。UT 变换(原文未展开该缩写)产生 \(U_{[t]}\)\(W_{[t]}\),据此定义伪值项 \(\widetilde{V}_{[t]}:=U_{[t]}-W_{[t]}S_{[t]}\)。给定传入状态 \(S_{[t]}\),第 \(t\) 个块中的全部输出可以并行计算:

\[ \begin{aligned} A_{[t]} &= \operatorname{Tril}\!\left[ \left(Q_{[t]}\odot\Gamma_{1\to C}^{[t]}\right) \left(K_{[t]}/\Gamma_{1\to C}^{[t]}\right)^\top \right],\\ O_{[t]} &= \underbrace{ \left(\Gamma_{1\to C}^{[t]}\odot Q_{[t]}\right)S_{[t]} }_{\text{块间}} + \underbrace{ A_{[t]}\widetilde{V}_{[t]} }_{\text{块内}}. \end{aligned} \tag{4} \]

对于矩阵 \(M\)\(\operatorname{Tril}(M)\) 会将所有严格上三角元素设为零,并保留下三角元素,其中包括对角线。这个掩码会在块内强制执行因果交互;之所以保留对角线,是因为每个输出读取的是已经完成当前 token 更新后的状态。\(O_{[t]}\) 中的第一项携带来自先前各块的信息,第二项则负责当前块内部的交互。关于 UT 变换和分块形式的完整推导,请读者参阅 Kimi Linear [64]。

小白提示

译者补充:“块间递推、块内并行”是速度与记忆之间的折中。块与块之间只传递固定大小的 \(S_{[t]}\),而同一块里的 \(C\) 个位置被改写成矩阵运算一起算;\(\operatorname{Tril}\) 则保证并行计算不会偷看未来 token。

有下界衰减。式(4)会用累积衰减的倒数 \(1/\Gamma_{1\to C}^{[t]}\) 对每个块中的键进行重缩放。由于 \(\Gamma_{1\to C}^{[t]}\) 是多个位于 \((0,1)\) 内的保留因子的乘积,其倒数可能无限增长,并在有限精度下溢出 [141, 64]。Kimi Linear 通过在对数空间计算相对衰减,并将每个块进一步划分成 16-token 的次级小块,来控制这个数值范围 [141, 64]。这样,非对角小块可以直接用 Tensor Core 上的稠密矩阵乘法计算。相比之下,对角小块仍然需要显式地逐位置对计算,而这仍是块内计算的主要瓶颈。

KDA 下界衰减门

论文原图截图:图 3。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 3:有下界衰减及其对分块 KDA 计算的影响。(a)Kimi Linear 使用无下界的负 Softplus 映射,而 Kimi K3 使用缩放后的 sigmoid 为对数衰减设置下界;曲线所示参数为 \(A=0\)\(g_{\min}=-5\)。(b)Kimi Linear 通过显式逐位置对计算来求每个对角小块,而 Kimi K3 中的有界范围允许全部因果小块都使用 Tensor Core 上的稠密矩阵乘法。

Kimi K3 通过改变从衰减 logit \(z_t^h\) 到单步对数衰减 \(g_t^h\) 的映射来解决这一瓶颈。沿用 GDN(原文未展开该缩写)和 Mamba-2,Kimi Linear 使用负 Softplus 映射 \(g_t^h=-e^{A_h}\operatorname{Softplus}(z_t^h)\in(-\infty,0)^{d_k}\) [139, 24, 64]。Kimi K3 改用缩放后的 sigmoid,从而为对数衰减设置下界:

\[ \begin{aligned} g_t^h &= g_{\min}\operatorname{Sigmoid}\!\left(e^{A_h}z_t^h\right) \in(g_{\min},0)^{d_k},\\ \alpha_t^h &= \exp(g_t^h) \in\left(e^{g_{\min}},1\right)^{d_k}. \end{aligned} \tag{5} \]

其中,\(A_h\) 是每个头可学习的对数尺度,\(g_{\min}=-5\) 是固定值。我们将 \(A_h\) 初始化为 0,并按照 [64, 24, 139] 初始化每个偏置 \(b_\alpha^h\)。当 \(g_{\min}=-5\) 时,每个保留因子都满足 \(\alpha_{t,j}^h>e^{-5}\approx6.7\times10^{-3}\),而一个 16-token 小块内的累积对数衰减位于 \((-80,0)\)。因此,相应的倒数重缩放因子小于 \(e^{80}\),仍处在 BF16(Brain Floating Point 16,16 位脑浮点格式)的动态范围内。这个有限范围使对角和非对角小块都能使用 Tensor Core 上的稠密矩阵乘法,从而消除逐位置对的对角路径。该参数化与既有工作中的有下界递推门密切相关 [98, 27, 92]。图 3 展示了衰减参数化的变化及其计算后果。

小白提示

译者补充:这里限制的不是“衰减不能发生”,而是“单步不能衰减得任意狠”。这会给 \(1/\Gamma\) 设定一个可计算的最坏上界,使硬件可以统一走高吞吐的稠密矩阵乘法路径,而不必为对角区域保留慢速特例。

满秩门。最后,Kimi K3 将 KDA 的输出门从 Kimi Linear [64] 使用的低秩参数化改为依赖输入的满秩投影。在对递推输出应用逐头均方根归一化(Root Mean Square Normalization,RMSNorm)[147] 后,KDA 再应用依赖数据的输出门控 [100]:

\[ y_t = W_o\!\left[ \operatorname{Sigmoid}(W_gx_t) \odot \operatorname{RMSNorm}(\tilde{o}_t) \right]. \tag{6} \]

2.1.2 门控 MLA

多头潜在注意力(Multi-head Latent Attention,MLA)由 DeepSeek-V2 [28] 提出,它把每个 token 的键值表示压缩成低维潜在向量 \(c_t=W_cx_t\)。MLA 不缓存完整的逐头键和值,而是缓存 \(c_t\),并在注意力计算期间通过学习得到的上投影重建内容键和值。这种因子分解既减小了键值缓存(KV cache)的占用,又保留了全局的 token 到 token 注意力。MLA 后来被 Kimi K2 和 Kimi K2.5 [59, 60] 采用,Kimi K3 则在周期性出现的全局注意力层中继续使用它。

与 Kimi K2 和 Kimi K2.5 不同,Kimi K3 沿用 Kimi Linear [64] 的混合设计,对所有 MLA 层应用无位置编码(No Position Encoding,NoPE)。因此,它们的查询或键都不会应用显式位置编码。中间的 KDA 层负责具有位置敏感性和近期偏好的序列混合,而 MLA 层负责不受限制的全局内容交互。这种分工还避免了在扩展上下文长度时修改位置编码参数,例如重新调节旋转位置编码(Rotary Position Embedding,RoPE)的频率基数,或应用 YaRN [93]。

此外,Kimi K3 为 MLA 增加了一个依赖输入、逐通道的满秩输出门。令 \(\tilde{o}_t\) 表示位置 \(t\) 处尚未门控的 MLA 输出,则门控后的输出为

\[ y_t = W_o\!\left[ \operatorname{Sigmoid}(W_gx_t)\odot\tilde{o}_t \right]. \tag{7} \]

门投影 \(W_g\) 是满秩的,与 Kimi K3 在 KDA 中采用的新参数化一致。这个门允许每个 token 调节从全局注意力中读取的各个通道 [100]。

为纠正 Flash Attention 中出现的有偏舍入误差,我们采用 [99] 的方法,在训练期间将注意力输出保留为 FP32(32 位浮点格式)。这一选择会使输出小块在芯片上的占用翻倍;因此,我们重新设计训练内核,让它与 KV 暂存缓冲区而不是查询小块发生重叠,从而释放共享内存,以容纳更深的 KV 流水线并提高训练吞吐量。

小白提示

译者补充:Gated MLA 可以理解为“偶尔进行一次全局会诊,再用门控决定各通道该采纳多少”。KDA 负责低成本地持续传递位置与近期信息,MLA 则周期性地让任意两个 token 直接交互;NoPE 意味着 MLA 本身不再重复承担位置编码职责。

2.2 注意力残差

标准残差连接 [44] 会沿深度方向把所有先前信息压缩进单一状态 \(h_l\),这是一种类似于循环神经网络(Recurrent Neural Network,RNN)沿时间维度所面对的瓶颈。在序列建模中,Transformer 用注意力取代递推 [10, 126],使每个位置能够依据数据相关的权重,选择性访问所有先前位置。注意力残差(AttnRes)[58] 将同一方法应用到深度维度:每一层不再平均地累积信息,而是从所有先前层中选择性检索表示。

完整注意力残差。对于每一层 \(l\),我们定义一个该层特有、可学习的伪查询 \(q_l=w_l\in\mathbb{R}^{d}\),并定义键和值

\[ k_i=v_i= \begin{cases} h_1, & i=0,\\ f_i(h_i), & 1\le i\le l-1, \end{cases} \tag{8} \]

其中,\(f_i(h_i)\) 是第 \(i\) 层的输出,\(h_1\) 是 token 嵌入。注意力权重采用 softmax 核 \(\phi(q,k)=\exp\!\left(q^\top\operatorname{RMSNorm}(k)\right)\) [56, 147];其中 RMSNorm 可防止输出幅值较大的层支配权重:

\[ \alpha_{i\to l} = \frac{\phi(q_l,k_i)} {\sum_{j=0}^{l-1}\phi(q_l,k_j)}, \qquad h_l = \sum_{i=0}^{l-1}\alpha_{i\to l}\cdot v_i. \tag{9} \]

由于网络深度适中(\(L<100\)),这一完整形式的 \(O(L^2d)\) 算术开销是可以承受的;真正的实际开销来自让所有层输出一直存活所需的 \(O(Ld)\) 内存,以及采用流水线并行时跨阶段的通信。

分块注意力残差。为降低这一开销,我们将 \(L\) 层划分成 \(N\) 个块,每块包含 \(S=\lceil L/N\rceil\) 层。在块 \(n\) 内(层索引集合为 \(\mathcal{B}_n\)),各层输出通过求和归约成单个表示 \(b_n=\sum_{j\in\mathcal{B}_n}f_j(h_j)\)\(b_n^i\) 表示该块前 \(i\) 层的部分和;我们令 \(b_0=h_1\),使 token 嵌入始终被纳入信息源。在块与块之间,完整注意力只施加在 \(N\) 个块级表示上:对于块 \(n\) 中的第 \(i\) 层,值矩阵为

\[ V= \begin{cases} [b_0,b_1,\ldots,b_{n-1}]^\top, & i=1\quad\text{(块 \(n\) 的第一层)},\\ [b_0,b_1,\ldots,b_{n-1},b_n^{i-1}]^\top, & i\ge2\quad\text{(后续层)}, \end{cases} \tag{10} \]

键和注意力权重沿用式(8)和式(9)。最后的输出层随后聚合全部 \(N\) 个块表示。在分块 AttnRes 下,内存与通信开销从 \(O(Ld)\) 降至 \(O(Nd)\);同时,这种块结构还对推理时状态的大小设定了上界,使并行的块间结果可以通过在线 softmax [80],更好地与顺序产生的块内部分和合并,从而显著降低推理时间成本。

经验上,\(N\approx8\) 能够在不同模型尺度上恢复大部分收益 [58];对于 Kimi K3,我们把各层划分成 8 个大小为 12 层的块,因此最后一个块不完整;若把嵌入层也计作一个块,则总共有 9 个块。

小白提示

译者补充:普通残差像把一路读到的笔记不断写回同一页;AttnRes 则允许当前层按需翻看早先层的独立笔记。完整形式要保留每一层,分块形式只长期保留块级摘要,并在当前块内维护部分和,因此显著降低存储和跨设备通信。

2.3 Stable LatentMoE

同时扩大专家池和活跃专家数量,会扩展专家形成不同专长的空间;但在传统专家混合(Mixture of Experts,MoE)中,每个被选中的专家都会接收完整的 \(d\) 维 token 表示,因此通信量和专家权重流量会随路由倍数增长。LatentMoE [32] 通过将完整模型宽度与路由专家宽度分离,使这种扩展变得可负担:共享专家保留全宽路径来执行通用变换,而专门化的路由专家则在宽度为 \(\ell\) 的紧凑潜在空间中工作。这使 Kimi K3 能把通道混合扩展到 896 个路由专家,同时每个 token 激活 16 个专家,对应 \(56\times\) 稀疏度。

这种极端稀疏性会放大朴素设计的两种故障模式。第一,路由路径把 \(W^\downarrow\)、一个门控多分支专家前馈网络和 \(W^\uparrow\) 串接成接近四次连续矩阵乘法的链。这种病态结构与 2.8 万亿参数的规模相结合,会使路由分支的内部激活爆炸。第二,要平衡接近 \(10^3\) 个专家的负载,已经超出现有无辅助损失偏置更新仍能保持良好行为的范围。Stable LatentMoE 用三个组件解决这两种故障模式:在上投影之前加入 RMSNorm,并采用 Sigmoid Tanh Unit GLU(SiTU-GLU)抑制激活爆炸,再采用分位数平衡(Quantile Balancing,QB)实现负载均衡。

SiTU-GLU 激活函数

论文原图截图:图 4。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 4:GLU、SwiGLU 和 SiTU-GLU 的门分支、上分支及其标量响应,其中 \(\sigma\) 表示 sigmoid 函数。两个分支都接收标量输入 \(x\),所有曲线共享定义域 \(x\in[-10,100]\);插图放大了原点附近的区域。红色所示的 SiTU-GLU 采用 \(\beta_1=4\)\(\beta_2=25\),它在原点附近紧密跟随 SwiGLU,并在较大的正输入下趋近界限 \(|f(x)|\le\beta_1\beta_2=100\),而 SwiGLU 仍然无界。

如图 2 所示,该层沿用 DeepSeekMoE [23] 的共享专家与路由专家组织方式。对于 \(x\in\mathbb{R}^d\),共享专家直接处理 \(x\);路由路径则先把它投影成 \(z=W^\downarrow x\in\mathbb{R}^{\ell}\),把 \(z\) 分发给选中的专家,再通过 \(W^\uparrow\) 将专家输出的加权聚合映射回 \(\mathbb{R}^d\)

\[ \begin{aligned} u &= \sum_{i\in T_k(x)} p_i E_i^{\mathrm{routed}}\!\left(W^\downarrow x\right),\\ y &= \sum_{j=1}^{N_s}E_j^{\mathrm{shared}}(x) + W^\uparrow\operatorname{RMSNorm}(u). \end{aligned} \tag{11} \]

这里,\(u\in\mathbb{R}^{\ell}\) 是聚合后的路由表示;\(E_j^{\mathrm{shared}}:\mathbb{R}^{d}\to\mathbb{R}^{d}\)\(E_i^{\mathrm{routed}}:\mathbb{R}^{\ell}\to\mathbb{R}^{\ell}\) 分别是共享专家和路由专家的前馈网络;\(p_i\) 是由下文分位数平衡规则定义的路由权重。Kimi K3 在每一层都把全宽共享专家的数量固定为 \(N_s=2\)

小白提示

译者补充:Stable LatentMoE 的核心是“公共工作走全宽通道,专业工作先压缩再分派”。896 个专家并不意味着每个 token 都运行 896 份计算;每个 token 只选择 16 个路由专家,而且这些专家在较窄的 \(\ell\) 维空间中工作。

2.3.1 归一化 LatentMoE

原始 LatentMoE 直接把 \(W^\uparrow\) 应用于聚合后的路由表示 \(u\),而 \(u\) 的尺度会随选中的专家及其路由权重变化。如式(11)所示,Kimi K3 改为在专家聚合和上投影之间插入 RMSNorm [147]。这种归一化会在路由分支与全宽共享分支结合之前,降低前者对尺度变化的敏感性。除了让训练更稳定,额外的 RMSNorm 还会持续改善验证损失和下游基准表现。

2.3.2 Sigmoid Tanh Unit GLU

门控线性单元(Gated Linear Unit,GLU)用经过 sigmoid 激活的门去调制线性值分支,计算 \(\operatorname{Sigmoid}(W_gx)\odot W_ux\) [26]。SwiGLU 用 \(\operatorname{Swish}(x)=x\operatorname{Sigmoid}(x)\) 替换 sigmoid 门,并在 Transformer 中展现出很强的经验性能 [108]。此后,SwiGLU 成为大语言模型中被广泛采用的前馈网络设计,但对其经验有效性的完整解释仍是开放问题。

然而,SwiGLU 中相乘的两个因子都没有上界,因此当同一坐标上的两个值都很大时,可能产生激活异常值,并增加低精度算术中的溢出风险。原始 GLU 的 sigmoid 门避免了门值无界增长,但它不能保留 Swish 在正值区间近似线性的特性。这促使我们寻找一种激活函数:既控制大值的增长,又保留 SwiGLU 在局部和正半轴上的典型响应。近期还有其他工作探索了这一权衡的不同参数化方式 [52]。

为了满足这些要求,我们提出 Sigmoid Tanh Unit GLU(SiTU-GLU)。SiTU-GLU 将平滑限幅函数 \(\operatorname{softcap}(x,\beta)=\beta\tanh(x/\beta)\) 分别应用于 Swish 门的线性因子和上投影分支:

\[ \operatorname{SiTU\text{-}GLU}(x) = \left[ \beta_1\tanh\!\left(\frac{W_gx}{\beta_1}\right) \odot \operatorname{Sigmoid}(W_gx) \right] \odot \left[ \beta_2\tanh\!\left(\frac{W_ux}{\beta_2}\right) \right]. \tag{12} \]

分位数均衡

论文原图截图:图 5。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 5:分位数平衡示意图,其中 \(m=8\) 个 token、\(n=4\) 个路由专家,并且每个 token 选择 \(k=1\) 个专家。(a)逐 token 的 Top-\(k\) 路由(左侧为 token,右侧为专家)产生负载 \((4,3,1,0)\);颜色较深的圆表示过热专家,淡色圆和虚线圆分别表示利用不足和濒死专家。(b)每个灰色条表示当前有偏分数的差值 \(s_{i,j}+b_j^{(t)}-\alpha_i^{(t)}\),因此逐行最大值会复现(a)中的路由。每一列中的红色虚线是偏置调整 \(b_j^{(t)}-\widehat{b}_j^{(t+1)}\),它放在第 \(q+1\) 大的差值处,使其上方恰有 \(q=2\) 个差值。标记 \(\star\) 表示减去逐列调整后,逐行进行的 Top-\(k\) 选择,也就是(c)中的路由。(c)保留下来的选择产生均衡负载 \((2,2,2,2)\);红色边表示被 QB 改变的分配。

对于 Kimi K3,我们把软限幅超参数设为:门分支 \(\beta_1=4\),上分支 \(\beta_2=25\)。缩放后的 tanh 在原点附近近似线性,并在幅值很大时有界,因此 SiTU-GLU 能在控制乘积中两个因子的同时,保留 SwiGLU 的局部响应。图 4 在同一个切片上比较了 GLU、SwiGLU 和 SiTU-GLU 的分支定义与标量响应。

§B 给出了局部展开、极限情形、形式化输出界,以及与硬截断的比较。

小白提示

译者补充:SiTU-GLU 不是简单把超过阈值的数“剪平”。\(\tanh\) 提供的是平滑软限幅:小输入附近几乎不变,大输入才逐渐饱和,所以既能保留 SwiGLU 常用工作区间的形状,又能给最终乘积一个明确上界。

2.3.3 分位数平衡

与基于辅助损失的路由 [33] 不同,Kimi K3 采用无辅助损失路由 [30]。负载均衡通过给用于 Top-\(k\) 选择的路由器分数加上专家特有偏置 \(b_j\) 来实现。对于 token \(x_i\),路由器计算 \(s_i=\operatorname{Sigmoid}(W_rx_i)\),并应用

\[ T_i = \operatorname*{arg\,topk}_{k}(s_i+b), \qquad p_{i,j} = \frac{s_{i,j}} {\sum_{r\in T_i}s_{i,r}}, \quad j\in T_i. \tag{13} \]

由于 \(p_{i,j}\) 中不包含 \(b\),该偏置可以调节分发,而不会改变混合权重或路由器基于梯度的优化。原始方法使用固定步长规则 \(b_j^{(t+1)}=b_j^{(t)}+\gamma\operatorname{sign}(\bar{\ell}-\ell_j^{(t)})\) [30] 更新 \(b\),其中 \(\gamma\) 需要在适应缓慢与负载振荡之间折中。随着 LatentMoE 把每层的路由专家池扩大到 896 个,维持均衡负载变得更具挑战性。路由不均衡会拖慢专家并行训练,还可能使部分专家训练不足 [48]。

为解决这一局限,我们提出分位数平衡(QB),它根据与目标负载匹配的路由器分数分位数,为每个专家设置偏置 [112]。考虑一个包含 \(m\) 个 token 的训练批次,它们通过 Top-\(k\) 选择被路由到 \(n\) 个专家,因此每个专家的目标负载是 \(q:=mk/n\) 个 token。QB 从一次前向传播中推导下一步偏置。路由会把对有偏分数 \(s_i+b^{(t)}\) 的 Top-\(k\) 选择替换成 Top-\((k+1)\):前 \(k\) 项是实际采用的路由,第 \(k+1\) 项则是专家要进入 token \(i\) 的 Top-\(k\) 所必须超过的截断值 \(\alpha_i^{(t)}\)。从 Top-\((k+1)\) 路由取得截断值,可以避免单独计算 token 一侧的分位数。随后,我们选择每个专家的偏置,使专家 \(j\) 恰好获得目标负载:在截断值固定时,候选偏置 \(\widehat{b}_j^{(t+1)}\) 下路由到专家 \(j\) 的 token 数为

\[ \sum_{i=1}^{m} \mathbf{1}\!\left[ s_{i,j}+\widehat{b}_j^{(t+1)} > \alpha_i^{(t)} \right], \]

该计数会随阈值 \(-\widehat{b}_j^{(t+1)}\) 单调递减。假设不存在并列值,把这个计数设为 \(q\),就会使 \(-\widehat{b}_j^{(t+1)}\) 等于差值 \(s_{i,j}-\alpha_i^{(t)}\) 中第 \(q+1\) 大的值,从而恰好让 \(q\) 个差值保留在阈值之上。由于 \(q/m=k/n\),这就是各 token 差值的 \((1-k/n)\) 分位数,因此得到 QB 更新

\[ \begin{aligned} \widehat{b}_j^{(t+1)} &\leftarrow -\operatorname{quantile}_{1-k/n} \!\left(s_{:,j}-\alpha^{(t)}\right),\\ b^{(t+1)} &\leftarrow \widehat{b}^{(t+1)} - \operatorname{mean}\!\left(\widehat{b}^{(t+1)}\right)\mathbf{1}. \end{aligned} \tag{14} \]

这些差值用原始分数 \(s_{i,j}\) 减去有偏截断值 \(\alpha_i^{(t)}\),因此旧偏置只通过截断值进入更新;第二行则移除一个不会改变 Top-\(k\) 选择的公共偏移。为保证因果性,更新只会在下一步生效 [30],也就是说,一个批次绝不会使用由该批次自身推导出的偏置进行路由。图 5 展示了 \(m=8\)\(n=4\)\(k=1\) 的情形,其中每个专家都获得目标负载 \(q=2\)。在推理时,最终偏置会被冻结。

均衡分配的推导见 §C。

小白提示

译者补充:QB 不通过惩罚损失“慢慢劝”热门专家降温,而是观察本批次中每位专家的入选差值分布,直接把下一批使用的门槛移动到目标分位点。偏置只影响“选谁”,不进入最终混合权重,所以不会直接改写已选专家输出的相对占比。

直方图估计。在大规模训练中,式(14)的分位数跨越完整全局批次,其差值数量达到数百万,并分散在不同 rank 和梯度累积步骤上,因此训练时把它们集中起来计算精确分位数并不可行。我们改为从每个专家的差值直方图中读取其分位数:一次 all-reduce(全归约)对各 rank 的分箱计数求和,再从汇总后的计数中恢复分位数。由于计数可相加,无论 token 如何分片,直方图都表示汇总后的全局批次,因此估计值在分箱宽度所允许的误差内反映整个批次的分位数,而通信成本仅为每个专家几百个分箱。这个直方图估计器就是我们实际采用的方法;§D 给出了更详细的说明及其误差界。

2.4 原生视觉

Kimi K3 原生支持多模态:文本、图像和视频会在同一个上下文中由单一共享主干处理,不需要事后再做模态对齐。这一设计是 §1 所述长时间跨度、视觉参与闭环行为的架构基础。渲染结果与生成它们的代码位于同一个 token 流中;模型可以编写代码,检查结果的截图或视频帧,再迭代改进用户界面、图形、视频等视觉制品,全程不需要在模型之间交接。

MoonViT-V2。与 Kimi K2.5 的一个关键区别是,我们完全从零开始,用下一 token 预测训练 Kimi K3 的视觉编码器 MoonViT-V2。包括 Kimi K2.5 自身在内的既有实践,会用 SigLIP 等经过对比预训练的模型初始化视觉编码器,前提是假定预训练视觉知识能让模型获得先发优势。我们背离这一实践,主要是出于训练稳定性的考虑。当把预训练编码器接入大语言模型(Large Language Model,LLM)时,联合优化会变得不稳定:以 SigLIP 初始化的 MoonViT-3D 持续表现出更高的梯度范数,并频繁出现尖峰;MoonViT-V2 则在整个训练期间保持稳定(图 6)。用下一 token 预测训练,还能让编码器表示直接由语言建模目标塑造,而不是由偏爱全局语义、弱化细粒度文本和结构线索的对比损失塑造。值得注意的是,我们发现 MoonViT-V2 在各项视觉评测中与 SigLIP 初始化的基线相当,这表明在大规模多模态语言模型中,对比预训练并不是必要的初始化方式。

视觉编码器梯度方向

论文原图截图:图 6。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 6:我们在预训练消融实验中测得的视觉塔梯度范数。与使用 SigLIP 初始化的 MoonViT-3D 相比,从零训练的 MoonViT-V2 保持更低的梯度范数且尖峰更少,说明其优化过程更稳定。

架构。这一训练方案建立在与 Kimi K2.5 [60, 62] 总体设计一致的视觉路径上:视觉输入首先由 MoonViT-V2 编码,再由一个轻量多层感知机(Multilayer Perceptron,MLP)投影器映射到 LLM 中。MoonViT-V2 是一个包含 27 层、约 4 亿参数的视觉 Transformer,它采用 RMSNorm,并移除线性投影和注意力投影中的全部偏置项;这一设计进一步稳定了上述从零训练过程。与 MoonViT-3D 一样,图像和视频处理完全共享参数:注意力被分解为空间上的帧内过程和时间上的帧间过程,时间池化还会进一步沿时间维压缩 token。在投影之前,采用 \(2\times2\) 下采样的 pixel shuffle(像素重排)操作把视觉 token 数量减少到四分之一,使高达 \(3584\times3584\) 像素的输入也能在 100 万 token 的上下文中负担得起。

小白提示

译者补充:MoonViT-V2 的“从零训练”不是不使用图像,而是不先继承 SigLIP 的对比学习权重。视觉编码器从一开始就和语言模型一起优化“下一个 token 是什么”,因此视觉特征直接服务于同一生成目标;图 6 支持的是训练稳定性差异,不等同于证明所有任务上都更强。

2.5 逐头 Muon

沿用 Kimi K2,Kimi K3 对矩阵参数采用 Muon [54] 优化器。对于注意力投影,我们进一步把它改进成逐头变体:不再对完整的查询(Q)、键(K)和值(V)投影矩阵应用 Newton-Schulz 正交化,而是沿注意力头维度切分它们的动量矩阵,再分别对每个头的块进行正交化。其直觉是,完整矩阵正交化会把所有头视作一个相互耦合的整体,因此梯度或动量尺度更大的头会主导共享更新方向,而尺度较小的头得到的更新则归一化不足;逐头正交化可使不同头的更新尺度趋于一致。在实践中,这一设计会使各个头的学习动态更加均衡,并提高更大规模训练的稳定性。它还会略微降低优化器开销,因为在高而窄的逐头矩阵块上运行 Newton-Schulz 迭代,比在完整投影矩阵上运行更便宜。

小白提示

译者补充:可以把每个注意力头看成一名并行学习的“专家”。若把所有头拼成一整块统一归一化,更新幅度大的头可能压过其他头;逐头 Muon 让每个头先在自己的矩阵块中校准更新尺度,再共同训练。这里的收益来自优化器更新方式,不会改变模型前向推理的注意力公式。

从源码看 KDA

论文用公式解释 KDA,下面的五视图则把官方实现中的投影、短卷积、衰减门、写入门、分块训练、递归解码和缓存生命周期连起来。固定状态只适用于 KDA 层;K3 的 24 个 MLA 层仍然保留 KV Cache。

KDA 从代码到张量的五视图

源码辅助图:依据官方模型仓库 revision 9f62e4e9…modeling_kimi_linear.py:477–650 重建。图中尺寸对应 K3 配置实例,不代表所有 KDA 实现,也不构成独立性能证据。

3 预训练

3.1 预训练数据

Kimi K3 在一个经过精心整理的语料库上进行预训练,该语料库覆盖四个主要文本领域——网页文本、代码、数学和知识——并包含一个大规模视觉语料库。 视觉数据涵盖图像描述、图文交错文档、光学字符识别(Optical Character Recognition,OCR)、感知、视频以及视觉编程数据。 我们的数据流水线建立在为 Kimi K2 [59] 开发的流水线之上,并在 Kimi K2.5 [60] 中得到进一步完善。

文本数据 每个领域都通过基于规则的启发式方法、基于分类器的质量评分和去重三者的组合进行过滤,而各领域特定的采样率则由在较小模型上开展的消融研究确定。 遵循 Kimi K2 [59] 的重述方案,我们使用风格和视角多样化的提示词、分块式自回归生成,以及相对于源文档的忠实度验证,对知识和数学语料库进行重述。

视觉数据 视觉语料库遵循 Kimi K2.5 [60] 的分类体系,将开源数据集合与内部的过滤、合成和去重流水线结合起来。 训练期间,坐标监督同时采用绝对坐标格式和归一化的 \([0,1]\) 格式,从而实现精确且对分辨率变化稳健的定位。 除传统的带文本描述图像外,我们还大幅扩展了程序化多模态数据:将代码片段与其渲染后的视觉结果配对,覆盖可缩放矢量图形(Scalable Vector Graphics,SVG)、3D 资产、网页、游戏和计算机辅助设计(Computer-Aided Design,CAD)示意图等领域特定格式。

3.2 缩放定律

综合来看,前几节所述的架构、数据和训练改进共同定义了我们的新模型家族。 由于这些变化也会改变最优训练方案,我们专门开展缩放定律研究,以重新调优关键超参数,包括批大小、学习率、每参数词元数比率(Tokens per Parameter,TPP)以及模型形状。 在留出的分布外(Out-of-Distribution,OOD)验证数据上进行评估时,图 7 中的缩放定律曲线表明,这些改进共同使 Kimi K3 相较 Kimi K2 获得了约 \(2.5\times\) 的整体缩放效率增益。 表 1 给出了 Kimi K2 与 Kimi K3 的详细架构对比,并突出展示了促成这一改进的结构变化。

小白提示

译者补充:“缩放定律”研究的是模型规模、训练数据量、计算量与最终损失之间可拟合的规律;这里的浮点运算次数(Floating-Point Operations,FLOPs)可理解为训练所花计算量的近似刻度。“等计算量(isoFLOP)”视角是固定 FLOPs,再比较不同模型能够达到的验证损失;也可以横向读取图 7,在相同验证损失下比较所需 FLOPs。图中的 \(2.5\times\) 标注表达的是后一种计算效率差距,并不表示所有任务指标都会统一提升 2.5 倍。论文正文在本节未直接使用 “isoFLOP” 一词,这里仅用它辅助读图。

我们的缩放定律研究始终更支持余弦衰减,而不是预热-稳定-衰减(Warmup Stable Decay,WSD)[47],因此我们采用余弦衰减作为默认学习率调度。 我们在固定最低学习率的条件下比较余弦衰减与 WSD。 尽管既有工作报告称 WSD 可以达到甚至超过余弦衰减,但我们观察到,这两种调度对应的最优超参数存在显著差异。 即使模型大小和训练词元预算相同,它们的最优峰值学习率与批大小也有很大不同。 因此,使用同一组超参数比较这两种调度,可能仅仅因为这些超参数与其中一种调度更加匹配,就不公平地偏向该调度。 为确保比较公平,我们针对每一种调度分别开展独立的缩放定律搜索。 在各自的最优超参数设置下,余弦衰减始终取得比 WSD 更低的最终损失。

Kimi K3 缩放定律

论文原图截图:图 7。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 7: Kimi K2 与 Kimi K3 的拟合缩放定律曲线。Kimi K3 相较 Kimi K2 获得了 \(2.5\times\) 的缩放效率增益。

小白提示

译者补充:图 7 的横轴是 FLOPs,纵轴是验证损失,二者都用于比较“付出多少计算,模型还能错多少”。曲线越靠左下越好:向下表示同样计算量下损失更低,向左表示达到同样损失所需计算量更少。虚线是对多个训练点做出的缩放定律拟合,不是单次训练的实时损失轨迹。

小白提示

译者补充:下表中的混合专家(Mixture of Experts,MoE)只为每个词元激活一部分专家,因此“总参数量”不等于一次前向计算中的“激活参数量”。多头潜在注意力(Multi-head Latent Attention,MLA)是压缩键值表示的全局注意力;Kimi Delta 注意力(Kimi Delta Attention,KDA)是带循环状态的线性注意力;多词元预测(Multi-Token Prediction,MTP)让模型同时学习预测后续多个词元;视觉 Transformer(Vision Transformer,ViT)负责处理视觉输入。SwiGLU 和 Sigmoid Tanh Unit 门控线性单元(SiTU-GLU)都是门控线性单元(Gated Linear Unit,GLU)的变体。

Kimi K2 与 Kimi K3 架构对比

论文原表截图:表 1。截图来自固定版本官方 PDF;下方译文保留原表注与正文解释。

表 1:Kimi K2 与 Kimi K3 的架构对比。

项目 Kimi K2 Kimi K3 \(\Delta\)
架构 MoE MoE
层数 61 93 ↑ 52%
总参数量 1.04T 2.78T ↑ 167%
激活参数量 32.6B 104.2B ↑ 220%
隐藏维度 7,168 7,168 =
潜在 MoE 维度 3584(0.5×)
每个专家的 MoE 隐藏维度 2,048 3,072 ↑ 50%
路由专家数 384 896 ↑ 133%
每个词元激活的专家数 8 16 ↑ 100%
共享专家数 1 2 ↑ 100%
注意力头数 64 96 ↑ 50%
稠密层数 1 1 =
词表大小 160K 160K =
训练上下文长度 128K 1M
注意力机制 MLA KDA–MLA 混合
激活函数 SwiGLU SiTU-GLU
注意力层构成 61 个 MLA 层 69 个 KDA 层 + 24 个 MLA 层
MTP 层数 1 层 1 层 =
ViT 总参数量 401M
ViT 层数 27 层
ViT 的 Patch 大小 14
ViT 的注意力头数 12

3.3 训练方案

Kimi K3 采用原生多模态训练策略:从训练一开始就联合优化语言与视觉,而不是先预训练语言模型,再通过事后对齐阶段把视觉编码器嫁接到该语言模型上。 在这一范式下,视觉词元与文本词元交错排列,并共同使用一个下一词元预测目标,使共享主干网络从一开始就能学习统一的多模态表示。

我们使用逐头 Muon(Per-Head Muon)优化器(§ 2.5)与 Kimi K2 引入的权重裁剪机制共同优化模型,同时采用分位数均衡(Quantile Balancing,QB;§ 2.3.3)来实现 MoE 负载均衡。 我们使用带有 1% 线性预热的余弦学习率调度。 权重衰减在整个训练过程中均设为 0.1。

小白提示

译者补充:Muon 是面向矩阵参数的优化器,它会对动量矩阵进行正交化处理;“逐头”表示注意力投影矩阵不再整体共同完成这一步,而是按注意力头切分后分别处理,以免尺度较大的头主导更新。权重裁剪用于限制权重幅度,QB 则调整专家路由,使不同专家接收的词元数量更均衡。三者分别作用于更新方向、数值幅度和专家负载,并不是同一种稳定化手段。

我们的预训练从 8k 词元的上下文长度开始,之后在随后的训练阶段扩展到 64k 词元。

3.4 长上下文扩展

位置编码 Kimi K3 不使用显式位置嵌入(No Positional Embedding,NoPE),而是通过 KDA 的循环门控与衰减机制隐式编码位置信息。 因此,无需进行任何位置编码修改,例如对旋转位置编码(Rotary Position Embedding,RoPE)进行重缩放或插值 [93],模型便可直接外推至 1M 词元上下文。

长上下文数据 来自自然来源的长文档和视频包含大量低质量内容,包括近重复项、二进制数据块、被截断的文件、视频片段以及无效的机器生成日志。 因此,我们使用一条专用清洗流水线处理这些内容:结合精确去重与模糊去重,并以针对视频帧的感知哈希作为补充,同时采用启发式质量过滤、基于分类器的质量过滤以及结构验证。 由于真正长且连贯的文档和视频相较短文本非常稀缺,我们提高它们的采样比例,以免长上下文分布在冷却(cooldown)阶段被短序列淹没。 然而,仅有长度并不能赋予模型长距离能力。 为解决这一问题,我们通过谨慎地排列并拼接多模态文档和子任务,合成更多长上下文数据,使其中嵌入的任务只有关注散布在完整 1M 词元上下文中的信息才能得到解决。 这会在预期的尺度上训练注意力机制,并防止其退化为局部模式。

渐进式上下文扩展 Kimi K3 支持最长 100 万词元的上下文窗口。 我们采用四阶段课程,在训练过程中渐进式扩展上下文窗口,从而实现这一目标。 窗口在预训练期间从 8K 词元增长到 64K 词元,并在冷却阶段从 256K 词元增长到 1M 词元。 把代价高昂的长序列计算集中在整体训练预算的一小部分内,既能让该课程保持经济性,也能使模型逐步适应越来越长距离的依赖关系。 使 KDA 层上的百万词元训练变得可行的序列维度分区方法将在 § 5.1.2 中介绍。

小白提示

译者补充:这里的 1M 指 1,000,000 个词元,不是 1 MB 数据。四阶段可读作 \(8\text{K}\rightarrow64\text{K}\rightarrow256\text{K}\rightarrow1\text{M}\):先用较短序列完成绝大部分成本较低的训练,再把少量预算投入越来越长的序列。支持 1M 窗口也不等于模型会自动利用最远处的信息,因此论文同时设计了必须跨越整段上下文才能完成的合成长任务。

4 后训练

4.1 方法

我们的后训练流水线遵循一个三阶段范式:通过监督微调(Supervised Fine-Tuning,SFT)初始化基础智能体能力,通过强化学习(Reinforcement Learning,RL)在不同推理投入水平下培养专门的领域专家,再使用多教师同策略蒸馏(Multi-Teacher On-Policy Distillation,MOPD)将这些领域特定策略整合进单一模型。

4.1.1 监督微调

SFT 阶段为后续 RL 阶段建立高质量的冷启动策略。 在先前 Kimi 模型的 SFT 流水线 [59, 60] 基础上,我们扩充了 Kimi K3 的 SFT 数据集,大幅拓宽其对复杂智能体任务的覆盖范围。 具体而言,我们使用先前 Kimi 系列中针对不同领域专门训练的模型来合成数据轨迹,随后进行多阶段验证和人在回路标注。 为统一表示这些复杂的智能体轨迹,我们使用基于可扩展词元标记语言(eXtensible Token Markup Language,XTML)的对话模板对全部数据进行序列化(详见 § F)。 这些步骤共同形成一个大规模指令数据集,使 Kimi K3 在长时程智能体场景中具备自适应推理、精确工具调用和稳健执行能力。 此外,从 SFT 阶段开始,我们就应用量化感知训练(Quantization-Aware Training,QAT),采用微缩放浮点格式(Microscaling Floating-Point,MXFP)的 MXFP4 权重和 MXFP8 激活(§ 4.1.4)。

4.1.2 强化学习

尽管 SFT 提供了坚实的冷启动基础,但 RL 对于释放更高阶的推理与执行能力至关重要。 我们没有针对单项任务分别训练专用 RL 模型,而是将 RL 扩展到三个广泛领域;每个领域都涵盖大量子任务,并且我们会在每一种推理投入水平上为每个领域训练一个专家:(i)通用任务,包括通用体验、视觉、推理、忠实性、搜索能力和知识工作任务;(ii)通用智能体,包括长时程助手任务、深度研究和段落级写作;(iii)编码智能体,包括软件工程(Software Engineering,SWE)、编码体验、内核任务和 Web 开发。 如图 8 所示,扩大 RL 浮点运算次数(Floating-Point Operations,FLOPs)能够持续改善知识、推理、视觉、通用智能体和编码等多方面能力。 将这三个领域专家与 \(\{\mathrm{low},\mathrm{high},\mathrm{max}\}\) 三种推理投入水平交叉组合,总共得到九个专家模型。

强化学习缩放曲线

论文原图截图:图 8。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 8: RL 期间,在多种公开评测和内部评测上的分数与平均助手步数。随着 RL FLOPs 的扩大,工具调用步数持续增加,同时模型的整体能力得到全面提升。

算法 为缓解长时程任务中愈发严重的长尾延迟,我们扩展了同步 RL 框架 [119, 60] 中的部分 rollout(partial rollout)方案。 在每次迭代的 rollout 阶段,我们为 \(N\) 个提示中的每一个采样 \(K\) 个补全,从而维持 \(N\times K\) 条轨迹的活跃工作负载。 生成阶段不再等待所有 rollout 结束,而是在比例 \(\lambda\in(0,1)\) 的轨迹完成时立即暂停,也就是完成 \(\lambda NK\) 条轨迹后便暂停,使策略优化无需等待执行滞后项即可继续。 被暂停的 rollout 会进入队列,并在下一次迭代开始时优先恢复,这一能力由我们的沙箱基础设施提供(§ 5.3.2)。 一旦某个提示对应的全部 \(K\) 个响应完成,它们就会立刻被送去进行策略优化,该优化遵循 Kimi K2.5 [60] 中的算法。 在我们的部分 rollout 方案下,一条长时程轨迹会自然地跨越多次迭代,从而引入可能威胁训练稳定性的数据陈旧问题。 我们的策略优化算法通过逐词元正则化,天然能够容忍这种极端的离策略状态。 这种正则化把策略更新限制在一个局部邻域内,使算法能够稳健处理高度陈旧的数据,并维持训练稳定性。

小白提示

译者补充:部分 rollout 可以类比“考试不用等最慢的考生交卷”:当 \(\lambda NK\) 条轨迹先完成时,系统先用它们启动优化,未完成的长轨迹冻结状态并在下一轮续跑。它减少了慢任务拖住整批训练的空等,但代价是续跑轨迹使用了较旧策略生成的数据,因此必须依靠逐词元正则化控制离策略偏移。

推理投入 RL 为精细调节推理投入,同时最大限度提高词元效率,我们在 RL 期间实现了逐问题预算控制机制 [60]。 我们为每个问题 \(x\) 关联一个由冷启动模型估计的初始词元预算 \(b_0(x)\);若某条轨迹的总词元用量 \(T(y)\) 超过经过缩放的阈值 \(\tau\cdot b_0(x)\),就将该轨迹的任务奖励覆盖为 \(-1\)。 对于通用任务,\(T(y)\) 衡量思考词元的数量;对于智能体任务,\(T(y)\) 则统计累计输出词元,包括推理轨迹和工具调用参数。 训练按照预算乘数 \(\tau\) 采用分阶段课程。 我们首先使用相对较大的 \(\tau\) 训练最大预算变体,同时仍然限制最高预算,以抑制过度思考。 随后,我们把 \(\tau\) 退火到更小的数值,从而得到高投入和低投入专家模型。 \(\tau\) 的调整在人在回路指导下按领域分别配置。 由最终各推理水平专家生成的轨迹会被联合收集,用于监督微调和多教师同策略蒸馏。

小白提示

译者补充:“推理投入 RL”不是让模型只学会“多想”,而是把同一领域训练成 low、high、max 三种预算档位。三个领域乘以三档投入得到九位教师;后文再用 MOPD 把它们的能力汇回一个模型,从而在部署时按任务需要调节思考成本。

智能体式生成奖励模型 对于不可验证的通用任务,我们采用智能体式生成奖励模型(Agentic Generative Reward Model,GRM),并保留 Kimi K2.5 [59, 60] 中使用二元比较的锦标赛式组奖励。 除了具备通用智能体能力以增强判断之外,智能体裁判还必须遵循一套强制协议:(1)阅读结果、产品或文本输出;(2)生成评分准则;(3)依据该准则为每个候选答案评分;(4)把准则给出的分数记录在评分板中。 为缓解模型通过生成越来越冗长的输出进行奖励投机,我们采用一种与上述推理投入控制类似、基于预算的冗长度控制:给定由冷启动模型估计的初始冗长度 \(\ell_0\) 和乘数 \(\sigma\),输出长度超过 \(\sigma\cdot\ell_0\) 的候选答案会自动输掉二元比较。

小白提示

译者补充:Agentic GRM 用在没有唯一标准答案的任务上。它不是直接给一句“好或坏”,而是先读成品、现写评分准则,再逐项打分并留下评分板;二元锦标赛把候选答案两两比较。冗长度上限用于避免模型仅靠“写得更长”骗取偏好奖励,但这也意味着不同领域需要单独校准合理长度。

4.1.3 多教师同策略蒸馏

我们采用多教师同策略蒸馏(MOPD),把不同推理投入水平下的领域专门能力整合进一个统一模型 [76, 135, 29]。 训练期间,对于给定领域 \(d\) 和采样得到的推理投入水平 \(e\in\{\mathrm{low},\mathrm{high},\mathrm{max}\}\),优化由九个专家中对应的教师模型 \(\pi_{\mathrm{teacher}}^{(d,e)}\) 指导。 给定输入查询 \(x\) 和响应前缀 \(y_{<t}\),教师 \(\pi_{\mathrm{teacher}}^{(d,e)}\) 与学生 \(\pi_\theta\) 在词元 \(y_t\) 上评估的逐词元同策略蒸馏(On-Policy Distillation,OPD)奖励定义为:

\[ r_{\mathrm{opd}}^d\!\left(y_t\mid e,x,y_{<t}\right) = \operatorname{clip}\!\left( \operatorname{sg}\!\left( \log \frac{ \pi_{\mathrm{teacher}}^{(d,e)}\!\left(y_t\mid x,y_{<t}\right) }{ \pi_\theta\!\left(y_t\mid e,x,y_{<t}\right) } \right), -R_{\max}, R_{\max} \right), \tag{15} \]

其中,\(\operatorname{sg}(\cdot)\) 表示停止梯度算子,\(R_{\max}>0\) 是用于约束极端优势信号的裁剪阈值,从而稳定 RL 训练。 这一稠密奖励信号可以无缝集成进我们的 RL 框架,并自然支持面向长时程任务的部分 rollout 训练等基础设施层优化。 我们也尝试了粒度更细的 top-\(k\) 蒸馏目标,但在我们的设置中,无论是收敛速度还是最终性能,都没有观察到明显优势。

小白提示

译者补充:MOPD 并不是把九个教师的参数做平均。学生按当前策略生成 \(y_t\),再由与领域 \(d\) 和投入档位 \(e\) 对应的教师评价同一个词元;式(15)的对数概率比越高,奖励越大。停止梯度确保教师分数只充当奖励,\(\operatorname{clip}\) 则把过大的正负信号限制在 \([-R_{\max},R_{\max}]\) 内。

4.1.4 面向部署的后训练

MXFP4 量化感知后训练 为减少部署时的内存占用和服务成本,我们把在模型参数内存中占主导地位的 MoE 专家权重量化为 MXFP4 [104],使用 MXFP8 计算激活,而所有非专家组件——注意力投影、潜在 MoE 投影、共享专家和 MoE 路由器——仍保持较高精度。 我们在涵盖 SFT 与 RL 的整个后训练阶段执行量化感知训练(QAT)[50],使模型适应量化引起的精度损失。 RL 期间,rollout 和训练采用相同的量化方案,从而消除训练与推理之间的不匹配。

草稿模型微调 对于复杂的长时程智能体模型,优化推理效率对服务部署至关重要。 Kimi K3 在预训练时带有一个多词元预测(Multi-Token Prediction,MTP)层,其结构与一个主干块相同。 由于 EAGLE-3 [72] 的草稿模型包含单个解码器层,而且其结构与 MTP 层一致,我们便把预训练过的 MTP 层微调成 EAGLE-3 风格的草稿模型:冻结目标模型,只更新草稿层及其特征融合投影。 遵循 EAGLE-3 的训练时测试协议,训练期间会将草稿展开七步;除第一步外,最新位置的目标侧特征尚不可用,因此草稿会使用自己在先前步骤中的输出,这与推理时的循环式草拟过程相同。

草稿输入融合目标模型的低层、中层和高层特征,它们分别取自第 1 个、第 4 个和最后一个注意力残差(Attention Residual,AttnRes)块的输出(§ 2.2)。 这些特征先拼接,再由无偏置矩阵 \(W_{\mathrm{E3}}\) 投影到隐藏维度;该矩阵初始化为 \([\,0\ \ 0\ \ I\,]\),因此融合表示在初始化时与高层特征 \(h_h\)——也就是 MTP 层在预训练时接收的输入——完全一致,并在微调过程中逐渐学会纳入低层和中层特征。

在无损推测采样下,推测解码的加速效果由逐词元接受率 \(\sum_{x\in\mathcal V}\min(p(x),q(x))\) 决定,其中 \(p\)\(q\) 分别表示目标模型与草稿模型的下一词元分布。 由于对于容量受限的草稿模型,最小化传统的 Kullback-Leibler 散度(Kullback-Leibler Divergence,KL)替代目标并不能保证该接受率最大化,因此我们直接优化基于似然的 LK 损失 [105],也就是接受率本身的负对数:

\[ \mathcal L_{\mathrm{LK}} = -\log\sum_{x\in\mathcal V}\min\!\left(p(x),q(x)\right), \tag{16} \]

其中 \(p\)\(q\) 均在温度 1 下计算,并且不使用辅助的真实标签交叉熵项。 草稿模型微调遵循后训练 QAT 配置(§ 4.1.4):MoE 专家权重采用 MXFP4,其输入激活采用 MXFP8,非专家模块则保持较高精度。

小白提示

译者补充:“面向部署”意味着训练时就按线上运行方式暴露模型:QAT 让主模型提前适应 MXFP4/MXFP8 的量化误差,rollout 与训练使用同一量化方案;草稿模型则用低成本预测提前猜出后续词元,目标模型一次验证多个猜测。式(16)直接提高两者分布的重合面积,也就是无损推测采样的接受概率;接受率越高,目标模型每次验证能推进的词元通常越多。

4.2 RL 任务合成与智能体环境

我们的 RL 框架能否奏效,在很大程度上取决于环境是否丰富、多样且可以稳健验证。 为了支持在复杂长时程任务上进行可扩展训练,我们设计了一系列专门的白盒环境和任务合成范式。

4.2.1 统一白盒 RL 环境

使用单一、固定的智能体执行框架进行训练,可能使模型过拟合于某一种工具模式定义(schema)、系统提示、上下文管理机制或交互协议。 为解决这一问题,我们开发了统一白盒 RL 环境,把智能体执行框架表示为一组可配置、可组合的模块,包括工具接口、系统提示、上下文管理策略、技能、记忆、子智能体和其他组件。 通过配置来组合这些模块后,该环境既可以实例化 Kimi Code [57]、Claude Code [15]、Codex [20]、OpenClaw [87] 和 Hermes [45] 等主流执行框架,也可以实例化全新的执行框架。 RL 训练期间,我们为不同任务组动态构造不同的执行框架配置,让 Kimi K3 接触这些模块的多样组合,而不是任何单一执行框架的惯例。 同一套抽象还可以直接支持不同任务领域的 RL,为训练更加通用的智能体提供可扩展基础。

小白提示

译者补充:这里的“白盒”指训练系统能够看见并重新配置智能体执行框架的组成模块,不是指能够查看待操作应用的内部答案。工具、系统提示、记忆、子智能体等像积木一样重组,可以减少模型把某个产品的固定工具名或对话格式误当成通用解题规律。

4.2.2 知识图谱引导的任务合成

动机与概览 后训练任务的质量和多样性主要由其来源材料决定。 由细粒度概念引导的检索能够发现专业且代表不足的知识,而跨越多样概念进行采样则可以拓宽领域覆盖范围。 为了大规模控制粒度与覆盖范围,我们构建了一个自演化、按层级组织的知识图谱,由智能体通过在知识密集型领域和编码领域开展 Web 规模探索而持续扩展。 图 9 展示了任务合成流水线。

知识图谱引导的任务合成

论文原图截图:图 9。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 9: 知识图谱引导的任务合成概览。按层级组织的知识图谱在多个层次上表示概念,范围从宽泛领域延伸至细粒度概念。系统采样相关节点以形成关键词集合,该集合指导对公开可用源材料的检索。对于每个合成实例,系统选择一种任务类型,并利用检索到的材料合成相应任务。

智能体式知识图谱构建 我们通过由智能体驱动的递归扩展,把知识图谱构建为有向无环图(Directed Acyclic Graph,DAG)。 扩展过程从一组预先定义的粗粒度种子节点开始。 随后,系统为每个节点分配一个智能体实例,由它执行多次 Web 搜索以研究相应概念。 在添加新节点前,智能体会探索现有图谱,以识别等价概念或相关概念,在适当情况下复用已有节点,并尽量减少重复。 无论智能体先发现边的哪个端点,边的方向始终从较粗粒度概念指向较细粒度概念。 随后,新加入的节点会被分配给智能体进行进一步探索。 当分配到某一分支的智能体判断当前概念已经足够原子化时,该分支便停止扩展。

材料检索与任务合成 为了在不同领域和任务类型间达到期望分布,系统会以单独或相关组合的形式,对不同粒度层级的节点进行采样。 系统将采样节点产生的关键词与其在知识图谱中祖先节点的上下文信息结合起来,以构造 Web 查询。 系统对检索到的真实世界材料进行汇集,使合成智能体能够产出多种任务类型的训练任务。

小白提示

译者补充:知识图谱在这里不是用来直接回答问题,而是充当“任务选题地图”:上层节点保证领域覆盖,下层节点提供专业细节,相关节点联合采样制造跨概念任务。先检索真实材料、再据此合成任务,可以让题目既有来源依据,又不局限于少数热门主题;自演化过程还会复用等价节点以控制重复。

4.2.3 智能体环境中的可验证问题

我们在智能体环境中的可验证问题上训练 Kimi K3;代表性例子包括:多步骤复杂信息搜索,模型在其中规划研究、逐步从 Web 收集证据并产出可验证答案;投资银行、数据分析和法律实务等专业人士的真实日常工作,模型在其中拆解复杂请求、在沙箱内操作领域工具,并经过数十至数百个步骤完成交付物;以及针对科学、技术、工程与数学(Science, Technology, Engineering, and Mathematics,STEM)问题、视觉谜题和图表理解的多步骤可验证视觉推理。 每条视觉推理轨迹都在配备 Python 解释器的隔离沙箱智能体环境中生成:模型反复编写并执行代码,以裁剪、放大或变换输入图像,执行精确计算或验证中间结果,并在多轮交互中把执行输出——包括生成的图像——作为新的观察接收。 随着模型学会执行更多图像操作并收集更多观察,它在复杂视觉推理任务上的表现会稳步提升。

4.2.4 内核优化任务

为增强 Kimi K3 的图形处理器(Graphics Processing Unit,GPU)内核优化能力,我们构建了一个大规模内核任务套件,范围从单算子内核到融合巨型内核,任务来源包括 Flash Linear Attention [140] 等高质量 GitHub 仓库。 该套件涵盖多种 GPU 编程方式,例如统一计算设备架构(Compute Unified Device Architecture,CUDA)、Triton、CuTe 领域特定语言(Domain-Specific Language,DSL)、Gluon、ThunderKittens [111] 和 TileLang [130],并覆盖广泛使用的 GPU 架构及数值格式,包括 Brain Floating Point 16(BF16)、8 位浮点(FP8)和 4 位浮点(FP4)。 奖励同时评估正确性与性能:每个内核都提供一个 PyTorch 参考实现,数值误差超过预定义阈值的方案获得零奖励。 性能以专家实现为基准评分:达到专家实现时奖励为 0.5,接近硬件屋顶线时,奖励会向 1 增长。 为了确保奖励反映真正的优化,我们开发了作弊检测系统,用于惩罚 CUDA 图重放、输入缓存和降低精度等奖励投机策略;在 Kimi K3 的开发过程中,每当观察到新的投机策略,我们都会持续加入新的防护措施。

4.2.5 个人助手任务

对于长时程个人助手任务,我们为 Gmail、Notion、Slack 和 Canvas 等常用应用开发了逼真的仿真实现。 它们保留了真实应用的核心语义,同时无需外部应用程序编程接口(Application Programming Interface,API)或速率限制,便可支持可复现的大规模交互。 在这些仿真应用的基础上,我们设计了受真实专业工作流启发的复杂任务,覆盖人力资源、法律服务和金融等场景。 在每项任务中,智能体会在跨越多个模拟日、持续演化的环境中运行,并遇到分布在不同应用中的数十个相互依赖事件。 一次 rollout 最多可能涉及数千次工具调用和数百万个上下文词元。 每个事件都有自己的评估标准,由确定性规则或基于大语言模型(Large Language Model,LLM)的评估器进行评估。 初始工作区由智能体构建:它们自主搜索 Web 以获取参考材料,再把这些材料转换成一个连贯且与任务相关的环境。 我们还扩展了 RL 框架以支持这类活环境,对复杂事件流以及由其引发的世界状态转移进行建模。

4.2.6 自主执行任务

我们提出自主执行任务(Autonomous Execution Tasks,AET),这是一种通过验证在环优化来训练长时程智能体智能的环境范式。 每项任务都会指定初始状态、受约束的目标、基于工具的动作空间、执行预算和独立验证器。 智能体只能看到目标、上下文、约束和验证接口,看不到参考轨迹或预定义流程,并且必须自主完成任务拆解、工具选择、规划、错误恢复和终止。 奖励以验证器对最终环境状态的评估为依据,而不是以智能体自行报告的完成情况为依据。 我们设计了多种支持不同环境的验证器,包括黑盒系统复刻(图 10)、量化因子发现和税务审计。 在每种环境中,智能体都会反复提交方案、接收验证器反馈并完善策略,从而训练出“提出假设、采取行动、分析反馈、进行适应”的通用循环。 为了缓解奖励投机,我们将智能体与验证器隔离,把能提供诊断反馈的公开验证器和用于评估留出场景的隐藏验证器配对,并在提交预算有限的条件下采用基于惩罚的奖励。

4.2.7 Web 开发任务

我们构建了一个由专家精心整理、覆盖典型场景的多样化 Web 开发任务套件。 输入既可以是单行场景描述,也可以是多段规格说明;产物涵盖网站、交互式游戏、3D/Web 图形库(Web Graphics Library,WebGL)场景、数据可视化、可缩放矢量图形(Scalable Vector Graphics,SVG)和全栈应用。 每项任务都在容器化沙箱中运行,并使用多样化的智能体脚手架而非单一固定执行框架进行 rollout,以促进跨脚手架泛化。 奖励由两部分组成:确定性检查,以及由内部奖励模型执行的模型评判。 确定性检查会对应用行为进行功能测试;对于复刻参考对象的任务,还会评价结构相似度和像素级相似度。 当项目构建失败、运行出错,或只是伪造而没有真正实现产物时,奖励会被归零。 模型评判使用其他模型检查源代码,或者查看输出产物并与之交互。

部分 rollout 完成曲线

论文原图截图:图 10。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 10: 相机维修管理系统上的完成度曲线;这是一项黑盒系统复刻任务,智能体通过预言机查询,把一个隐藏的 3D 相机维修系统重建为 Web 应用。完成度表示由验证器评估的任务进展。

5 基础设施

Kimi K3 同时带来了三项很少在单个模型中共同出现的系统挑战:KDA–MLA 混合注意力、3T 级稀疏多模态训练与推理,以及百万词元智能体工作负载。 我们的基础设施围绕这些挑战,与模型的整个生命周期进行协同设计。 在架构层,高性能 KDA 内核与上下文并行(Context Parallelism,CP)使循环形式在训练和推理中都能高效地跨设备内外运行。 预训练期间,均衡的专家执行、较低的内存占用和与通信重叠的调度在大规模环境下维持高利用率。 在 1M 词元智能体 RL 期间,分层状态管理和可恢复的沙箱执行使长轨迹能够跨越多次迭代而得到保留。 最后,感知状态的 KDA 前缀缓存、专用推理内核,以及感知缓存与预算的调度,把这些效率转化为可预测的生产服务能力。

5.1 面向 KDA 的算法—系统协同设计

KDA 用固定大小的循环状态 \(S\in\mathbb{R}^{d_k\times d_v}\) 取代了随长度增长的 Softmax 注意力键值缓存(§ 2.1.1);作为交换,这个固定大小的状态传输和复用成本较低,但其串行更新给并行执行带来了挑战。 下述设计在两个执行层级上应对前一种属性并利用后一种属性:在设备内使用融合内核,在设备间使用 KDA 上下文并行。

5.1.1 不同执行阶段的 KDA 内核

KDA 状态的串行依赖与图形处理器(Graphics Processing Unit,GPU)偏好的宽而均匀的并行方式相冲突,并且会在每种执行阶段表现为不同的瓶颈。 我们为每种执行阶段设计了专用内核。

用于训练和预填充的分块内核 KDA 的分块形式在每个块内并行、在块间串行,因为循环状态必须从一个块传播到下一个块。 如果直接执行,这两个阶段会交替进行,使流式多处理器(Streaming Multiprocessor,SM)在串行传播期间处于空闲状态。 因此,我们开发了 FlashKDA [14]:这是一个基于 CUTLASS 的分块内核,可以把块内计算与跨块状态传播重叠起来。 该内核把工作分解为词元并行阶段和注意力头并行的循环过程,二者分别独立调度和调优,并且性能大幅超过 Triton 参考实现。 FlashKDA 同时服务于训练和推理预填充,并作为 flash-linear-attention [140] 的后端自动分派。

用于长上下文预填充的设备内上下文并行 张量并行(Tensor Parallelism,TP)会把注意力头划分到不同设备,却不会缩短循环过程;因此,在纯 TP 部署下,当每个 rank 只持有少量注意力头时,对超长序列进行预填充会使大多数 SM 空闲。 关键观察是,每个分段的状态转移都可以不依赖输入状态而独立求值,随后再进行精确组合。 因此,一个自动化的 SM 级上下文并行规划器 [143, 140] 会把序列划分到单个 rank 的多个 SM 上,并行求值各分段的状态转移,再将它们合并,以恢复每个分段的精确初始状态。 与 § 5.1.2 中跨设备的 KCP 不同,这种并行完全发生在设备内部,不产生跨设备通信。

KDA 解码所面临的挑战不同于训练与预填充阶段。 我们将在 § 5.4.2 中详细讨论这些挑战。

小白提示

译者补充:同一条 KDA 循环在三个阶段有三种主要矛盾:训练和预填充要让块内的大量词元并行,同时把块间状态传播藏到计算后面;单设备超长预填充要把序列分段交给多个 SM;逐词元解码则要尽量减少不断读写大状态的成本。因此“一个通用 KDA 内核”很难同时最优。

5.1.2 KDA 上下文并行

Softmax 注意力与线性注意力的上下文并行通信开销有根本差异。 Softmax 注意力要求不同 rank 交换大小随序列长度增长的键值块 [73]。 线性注意力则使用固定大小的循环状态 \(S\in\mathbb{R}^{d_k\times d_v}\) 携带先前上下文。 以往的上下文并行方法会利用普通线性注意力的加性循环:每个 rank 从 \(S=0\) 开始,计算本地词元生成的状态,再对先前各 rank 的本地状态求和,以恢复输入状态 [115, 114]。

然而,这种直接求和对 KDA 并不充分。 回顾式(1),KDA 按 [ S_t=M_tS_{t-1}+\beta_tk_tv_t^\top,\qquad M_t:=\left(I-\beta_tk_tk_t^\top\right)\operatorname{Diag}(\alpha_t) ] 更新状态。 KDA 的 Delta Rule 会先把依赖词元的矩阵 \(M_t\) 作用到输入状态上,再加入当前写入项。 因此,一个本地序列分段的作用取决于进入该分段的状态,无法只根据从 \(S=0\) 开始计算的状态来确定。

为保留这种依赖关系,我们提出 KDA 上下文并行(KDA Context Parallelism,KCP),把每个分段的作用分解为两个可在本地计算的量:一个作用于输入状态的累积转移,以及一个从零开始在本地产生的状态。 沿用 § 2.1.1 的分块记号,我们用 \(S_{[i]}^t\) 表示 rank \(i\) 的分段在处理 \(t\) 个本地词元后的循环状态,因此 \(S_{[i]}^{T_i}\) 表示离开 rank \(i\) 并进入 rank \(i+1\) 的状态。 我们用 \(\widetilde S_{[i]}^t\) 表示同一循环改为从 \(S=0\) 开始时的状态。 对于进入 \(P\) 个上下文并行 rank 中第 \(i+1\) 个 rank 的任意状态,处理 \(t\) 个本地词元后的状态为

\[ \begin{aligned} M_{[i+1]}^{t\leftarrow 1} &:=\prod_{r\leftarrow 1}^{t}M_r \in\mathbb{R}^{d_k\times d_k},\\ S_{[i+1]}^t &=\widetilde S_{[i+1]}^t +M_{[i+1]}^{t\leftarrow 1}S_{[i]}^{T_i}\\ &=\widetilde S_{[i+1]}^t +M_{[i+1]}^{t\leftarrow 1} \sum_{j=1}^{i} \left( \prod_{l\leftarrow j+1}^{i}M_{[l]}^{T_l\leftarrow 1} \right) \widetilde S_{[j]}^{T_j} \in\mathbb{R}^{d_k\times d_v}. \end{aligned} \tag{17} \]

其中,\(M_{[i+1]}^{t\leftarrow 1}\) 表示前 \(t\) 个本地词元的累积转移。 第一项包含本地词元产生的状态,第二项则让先前 rank 的上下文穿过本地 KDA 更新而继续传播。 当 \(t=T_{i+1}\) 时,\(M_{[i+1]}^{T_{i+1}\leftarrow 1}\)\(\widetilde S_{[i+1]}^{T_{i+1}}\) 这两个量都可以只使用本地词元来计算,无需等待 \(S_{[i]}^{T_i}\) 可用;它们正是每个 rank 与其他 rank 交换的分片。

式(17)中的求和表明,每个状态完全由本地计算的分片组合而成。 这些 rank 级更新满足结合律,因此可以通过前缀扫描恢复每个 rank 的输入状态 [78]。 每个 rank 首先在本地计算 \(M_{[i]}^{T_i\leftarrow 1}\)\(\widetilde S_{[i]}^{T_i}\),再通过一次全收集(all-gather)交换这两个张量 [140]。2 全收集之后,rank \(i+1\)\(S=0\) 开始,按同一文档中的先后顺序处理之前的分片,并在每个分片上应用 [ S\leftarrow M_{[j]}^{T_j\leftarrow 1}S+\widetilde S_{[j]}^{T_j}, ] 从而重建 \(S_{[i]}^{T_i}\)。 因此,KCP 只需要一次固定大小的全收集来同步循环状态,并能实现计算量的线性扩展。

小白提示

译者补充:普通线性注意力的各段状态可以直接相加,KDA 却会先用 \(M\) 改写“前文状态”,所以只传本地从零算出的 \(\widetilde S\) 不够。KCP 让每个 rank 同时交出“本地新增状态” \(\widetilde S\) 和“前文穿过本段会怎样变化”的转移矩阵 \(M\),再用满足结合律的前缀扫描按顺序组合;跨设备通信量因此不随 1M 序列长度线性增长。

5.2 面向 3T 级预训练的基础设施

Kimi K3 预训练组合使用带虚拟阶段(Virtual Stage,VP)的流水线并行(Pipeline Parallelism,PP)[49, 82]、专家并行(Expert Parallelism,EP)[67]、ZeRO-1 数据并行 [101]、Pipeline ZeRO-2 梯度分片 [146],以及上下文并行(CP,§ 5.1.2)[51]。

计算与通信重叠

论文原图截图:图 11。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 11: 不同 PP 阶段中相互重叠的计算、通信与卸载。

MoE 层使用跨 EP rank 复制的共享专家,并把专家分派与合并所需的全互换(all-to-all)通信同计算重叠,以隐藏其延迟。

3T 级原生多模态预训练带来三个关键问题:(i)不同 EP rank 的词元负载不均衡;(ii)激活、梯度和优化器状态超出内存预算;(iii)视觉编码器高度可变的计算暴露在关键路径上。 以下各小节依次解决这些问题:完全均衡的专家并行 MoE 训练(§ 5.2.1)、内存高效训练(§ 5.2.2)和多模态编码器优化(§ 5.2.3)。 图 11 展示了最终形成的执行调度。

5.2.1 完全均衡的专家并行 MoE 训练

在传统 EP 方案中,不同 rank 的词元负载并不均衡。 由此产生的计算失衡会降低训练吞吐量,而路由专家激活动态变化的形状会造成严重的内存碎片。 因此,我们提出 MoonEP3,这是一种通过动态冗余专家实现完全负载均衡的 EP 方案。 MoonEP 保留 DeepEP [148] 等传统方案的整体计算流程,并额外引入冗余专家的在线规划与迁移。 在前向传播中,我们根据当前微批次和当前层的路由器输出规划冗余专家,并在路由专家计算前将其预取。 在反向传播中,我们先把这些专家的梯度暂存到本地归约缓冲区;计算完成后,再将它们归约回其归属 rank 的梯度缓冲区。

利用数量有界的冗余专家实现完全均衡 MoonEP 要求每个 rank 恰好接收 \(S\times K\) 个词元,其中 \(S\) 是序列长度,\(K\) 是每个词元选择的专家数,从而使所有 rank 执行相同的计算量。 关键问题是,需要多少个冗余专家才能保证这种均衡。 设 \(E\) 为专家数,\(R\) 为 EP 大小。 我们证明,每个 rank 最多使用 \(E/R\) 个冗余专家时,始终存在一个均衡方案,而且该上界在本质上是紧的(§ E)。 因此,为每个 rank 预留 \(E/R\) 个冗余专家槽位,就能保证规划始终存在可行解,使训练永不中断。 相比之下,ECHO [138] 和 UltraEP [133] 等先前工作会预设冗余专家数量,或施加逐 rank 词元上限。 只要在上限内找不到可行方案,训练就被迫停止;上限本身还需要人工调节,却仍会留下残余失衡。

在线规划 在每个训练步计算精确最优解的代价高得难以接受。 因此,我们使用整数线性规划(Integer Linear Programming,ILP)离线计算代表性案例的精确解作为参考,并设计一个接近最优、开销可以忽略且始终遵守 \(E/R\) 上界的 GPU 规划内核。

零拷贝通信 完全均衡还会简化通信路径。 我们实现了融合的 permute/unpermute 算子,规划内核会预先计算每个词元的目的地,使词元被直接发送到远端 rank 上按专家分组的位置,并把通信缓冲区的视图直接交给计算过程,从而消除中间拷贝。 在最坏失衡情况下,DeepEP 为支持相同的无拷贝数据路径,需要大小为 \(S\times K\times R\) 的通信缓冲区;MoonEP 则凭借完全均衡,只需要固定大小的 \(S\times K\) 缓冲区。

使用静态形状实现无同步执行 在传统 MoE 实现中,每个专家的词元数会随训练步与网络层变化,主机必须在每一层都与设备同步,以取得实际计算形状后才能启动专家计算,这会使层间流水线停顿。 实现完全均衡后,每个 rank 都会恰好接收 \(S\times K\) 个词元,所有层的计算形状都可以静态确定。 这样便消除了逐层 MoE 主机同步,并减轻了主机侧的内核启动开销。

专家 GEMM 调度与重叠 即使各 rank 的总负载完全均衡,每个 rank 内部不同专家的词元数仍然偏斜;固定顺序且不了解工作负载的调度,会把这种偏斜转化为不同 SM 工作器之间不均衡的完工时间。 因此,我们使用感知工作负载的调度器来安排路由专家的通用矩阵乘法(General Matrix Multiplication,GEMM):它会在启动前根据当前词元分布调整参数,并在执行期间保持参数不变。 一个轻量级启发式方法使用针对硬件指标的分析成本模型来选择这些参数,其中关键系数通过离线自动调优进行校准。 对于共享专家,我们把其 GEMM 分派到单独的流中,使其与其他内核重叠。

小白提示

译者补充:MoonEP 的“冗余专家”不是新增模型能力,而是把某些已有专家临时复制到其他 rank 以分担热点。规划器保证每个 rank 最终都处理 \(S\times K\) 个词元,于是计算形状固定、无需逐层回到 CPU 查询形状;代价是预留至多 \(E/R\) 个冗余槽位,并在前向前迁移专家、反向后归还梯度。

5.2.2 内存高效训练

统一激活管理器 我们为激活设计了统一存储抽象,其中每个为反向传播保存的张量都与一个可插拔存储后端关联。 在这一抽象下,重计算、量化和卸载/远端卸载都只是存储策略,可以在张量粒度自由组合;策略通过张量上的轻量级注解声明,与模型代码完全解耦。 重计算以函数为粒度执行,因此支持跨层重计算。 在我们的实现中,全部 GPU 内存都在主计算流上分配,并由单一内存池管理,从而避免多流碎片和受主机限制的开销;激活以层为粒度预取回来,并与计算重叠,只会引入可以忽略的额外开销。 在 Kimi K3 中,大多数激活使用分块 FP8 量化 [59, 30] 并结合卸载/远端卸载,而逐元素算子则配置为重计算。

内存高效 MoE 在原生 MoE 实现中,permuted_probs 的梯度计算依赖前向输出 output。 受 SonicMoE [42] 启发,我们通过数学变换把该梯度改写成只依赖中间激活 act_output 和上游梯度 doutput 的形式,以一次额外的轻量级逐元素计算为代价,消除反向传播对 output 的依赖。 此外,在分组 GEMM 的前向传播中,我们只保存 dispatch 操作的输入;在反向传播中,则通过重新计算 dispatch 来恢复分组 GEMM 的输入。 如图 11 所示,这次重计算引入的通信可以与一部分分组 GEMM 反向计算重叠,从而以可以忽略的代价省去这部分激活存储。

内存高效注意力残差 对于注意力残差,我们设计了一个基于 Block AttnRes 的配套优化。 块表示只在边界层生成一次,由后续所有层共享,并直接驻留在 GPU 上。 AttnRes 计算整体包裹在检查点机制中,因此每一层为反向传播保存的激活与标准残差架构完全相同。 对于流水线并行,我们采用基于缓存的流水线通信 [58]:只有新生成的块会在阶段间增量传输,并在微批次完成后立即释放,从而达到内存占用的理论下界。

均衡不同 PP rank 的激活 在交错式 1F1B 流水线并行中,由于流水线预热,激活在不同 PP rank 上分布不均,而且常驻激活数量会随 PP rank 增大而减少。 为避免内存不足(Out of Memory,OOM)错误,我们使用 Mooncake Transfer Engine [97] 将激活远端卸载到其他 PP rank 的内存中,从而均衡不同 PP rank 的激活内存。

Pipeline ZeRO-2 梯度分片与卸载 除激活外,我们还使用 Pipeline ZeRO-2 梯度分片 [146],把梯度划分到不同数据并行(Data Parallel,DP)rank。 此外,我们把分片后的梯度存放在中央处理器(Central Processing Unit,CPU)内存中,以降低 GPU 峰值内存使用量,同时在 GPU 上保留双梯度缓冲区。 梯度跨 DP rank 归约到双梯度缓冲区后,会累加进 CPU 分片。

基于 P2P 的 Muon 正交化 分布式优化器会把参数均匀分片到不同 DP rank,而 Muon 中的 Newton–Schulz 正交化需要完整参数矩阵,因此每次更新前都必须执行一次通信来收集完整参数。 朴素方案会在每个 rank 上对整个参数缓冲区执行全收集 [74],这不仅产生可观的内存占用,还会让通信在大规模环境下成为主要瓶颈。 作为替代,每个 rank 只通过与对应归属 rank 的点对点(Peer-to-Peer,P2P)通信,获取自己在本地负责参数的分片,从而消除完整参数缓冲区,并同时减少内存使用量和通信量。 通信与计算还会以模型块缓冲区为粒度进一步流水化,以隐藏通信开销。

小白提示

译者补充:本节不是靠单一“省显存技巧”,而是分别缩短对象生命周期:激活可量化、卸载或重算;MoE 不再保存可由 act_outputdoutput 恢复的 output;梯度分片进入 CPU;Muon 只按需点对点取回完整矩阵的局部分片。新增成本包括重计算、CPU/远端传输和预取缓冲区,但这些工作尽量与主计算重叠。

5.2.3 多模态编码器优化

多模态编码器中的动态 CP 在长上下文多模态训练中,大图像和长视频会显著增加视觉编码器的计算时间,并造成严重的跨设备负载不均衡。 为解决这一问题,我们把上下文并行扩展到这类大型样本。 单张大图像会沿 patch 维度划分到多个设备,并通过跨 CP rank 收集键值对(gather-KV)来计算注意力。 此外,我们把每个 CP 组划分成多个子 CP 组,再以负载均衡方式把多张大图像分配给它们,以防通信占比随规模增长。 这既减少大型视觉样本的编码器延迟,也减轻跨设备负载不均衡,使剩余编码器计算能够隐藏在流水线气泡中。

在 PP 气泡中执行编码器计算 在 Kimi K2.5 中,我们提出了解耦编码器进程(Decoupled Encoder Process,DEP)[60],把视觉 Transformer(Vision Transformer,ViT)训练与文本训练拆分到不同阶段,并在不同 PP 阶段间均衡视觉前向传播和反向传播。 我们观察到,在交错式 1F1B 流水线调度下,最初几个 PP 微批次的文本前向传播都安排在最开始,而最后几个 PP 微批次的文本反向传播直到最末尾才结束。 因此,我们进一步拆解 ViT 计算 [34]。 最初几个 PP 微批次的 ViT 前向传播会预先同步执行,其余前向传播被安排进流水线气泡,反向传播也采用类似处理。 由此,大多数 ViT 计算都隐藏在流水线气泡中,视觉编码器的实际额外开销基本被消除。

小白提示

译者补充:多模态样本的视觉计算差异很大:一张超大图像可能拖慢整组设备。动态 CP 先把大图沿 patch 维拆开,再把多张大图分配到不同子组;DEP 则把 ViT 工作塞进文本流水线原本空闲的“气泡”。前者解决单个样本太重和设备失衡,后者隐藏剩余视觉计算的墙钟时间。

5.3 面向 1M 词元智能体 RL 的基础设施

在计算预算受限的条件下,把 Kimi K3 这样规模的模型扩展到百万词元上下文的智能体 RL,会让资源效率成为首要目标。 这促使我们开展两项相互补充的工作:1)高效训练与 rollout,包括 KV 缓存管理、请求调度和训练状态放置;2)面向长时程交互的高性能可恢复沙箱。

5.3.1 长上下文 RL 基础设施

我们采用同机部署的 RL 训练 [59],把每次 1M 上下文 Kimi K3 RL 实验控制在数百张 GPU 以内,并使用部分 rollout [119] 减少超长轨迹带来的尾部延迟。 这一设计能取得良好的硬件利用率,但会让需要持久化到下一次迭代的 rollout KV 缓存与训练所需内存相互争用。 在长上下文 RL 中,这一挑战会更加严重。

外部 KV 缓存池 在 1M 上下文的多步骤 rollout 中,前缀 KV 缓存未命中的代价极高。 部分 rollout 会在每次迭代开始时加剧这一问题,因为上一轮迭代中许多尚未完成的长预填充请求会同时到达。 推测解码还会在相对固定的工具调用间隔内加速请求周转,增加前缀块的变动频率。 这些问题可能触发抢占并降低缓存命中率,而命中率对长上下文 RL 至关重要。

因此,我们使用写回式设计,把前缀保留与 GPU 常驻解耦。 活跃解码块继续保留在 GPU KV 缓存中;可复用的空闲前缀只有在被 GPU 驱逐时才写回位于 CPU 动态随机存取存储器(Dynamic Random-Access Memory,DRAM)的外部 KV 缓存池,并在下次复用前预取回来。 KDA 状态会与对应的 MLA KV 缓存块一起卸载和预取,使二者生命周期保持一致。 与直写式策略相比,这一策略只为离开活跃解码路径的前缀消耗 CPU DRAM 和传输带宽,避免为仍驻留且活跃于 GPU 的块创建冗余 CPU 副本。

为了给外部池提供足够 DRAM,我们会在一次训练迭代结束后,把训练状态(模型权重和优化器状态)卸载到非易失性存储器(Non-Volatile Memory Express,NVMe)。 一次 rollout 迭代结束后,外部池会被释放,以避免与训练工作负载争用。

Rollout 自动节流调度器 在多步骤 rollout 中,上下文会随着轨迹推进而逐渐增长,因此基于完整轨迹平均长度设置固定并发度,既难以估计,也会在早期过于保守。 反过来,并发度设置得过高又会在后期造成 KV 缓存压力,并可能触发抢占。 因此,我们在大语言模型(Large Language Model,LLM)请求调度层设计了自动节流机制,使用活跃请求数、排队请求数和 KV 缓存利用率等运行时信号,动态控制发送给推理引擎的请求数量。 这能在 rollout 早期保持较高利用率,又会随着 KV 缓存压力上升而降低并发度,无需人工调节便可同时避免利用不足与过载。

复用梯度缓冲区执行非策略模型前向传播 RL 损失计算经常需要只执行前向传播的非策略模型,例如参考模型,而这些模型的权重太大,无法常驻 GPU。 我们把这些权重保存在 CPU 内存中,只在需要时将其实体化,并让其参数张量使用策略模型的 FP32 梯度缓冲区存储作为底层存储。 这会复用既有 GPU 内存,不产生额外分配或碎片,并且是安全的,因为稍后计算真实梯度时这些缓冲区会被覆盖。

采用 ZeRO-2 梯度分片与卸载(§ 5.2.2)后,在 Kimi K3 RL 训练中,每张 GPU 只为两个虚拟流水线阶段(Virtual Pipeline Parallelism,VPP)块保留梯度缓冲区。 我们逐块把参考模型权重流式送入这两个槽位:一个槽位用于当前前向计算,另一个槽位预取下一个块,从而在不增加 GPU 内存的情况下隐藏拷贝开销。

小白提示

译者补充:1M 智能体 RL 的难点不只是“一条序列很长”,而是长轨迹跨轮续跑后,KV/KDA 状态必须存活到下一轮,同时训练又要占用同一批 GPU。外部缓存池只把被驱逐的空闲前缀写回 CPU,训练间隙再把权重和优化器状态放到 NVMe;自动节流根据实时缓存压力调并发,梯度缓冲区则在非策略模型前向阶段临时充当权重槽位。

5.3.2 沙箱基础设施

我们采用多种沙箱运行时来支持 Kimi K3 后训练与评估的多样需求,包括传统容器运行时、GPU 沙箱运行时,以及最值得关注的新型微型虚拟机(micro Virtual Machine,microVM)沙箱运行时 AgentENV。

与合作伙伴共同开发的 AgentENV4 是一个专为智能体 AI 工作负载设计的沙箱系统。 它围绕三个核心设计目标构建:

  • 高保真隔离沙箱运行时 随着智能体能力增强、任务难度提高,它们往往会进行更激进的探索,甚至可能尝试奖励投机。 一方面,这带来了独特的安全挑战:在我们早期使用传统容器沙箱运行时的实验中,曾观察到意外智能体操作引发的多次内核崩溃和死锁。 另一方面,我们希望允许尽可能多的探索,以免限制智能体能力;复杂任务还需要一个接近真实世界的沙箱环境——例如,智能体应该能够按需挂载磁盘、运行容器,甚至启动虚拟机。 AgentENV 使用 Firecracker [3] 运行隔离 microVM,提供容器运行时无法匹敌的隔离程度和保真度。

  • 面向智能体 RL 的灵活沙箱生命周期 在底层,AgentENV 支持沙箱状态的增量检查点与恢复:创建检查点时只保存自上一个检查点以来被写脏的内存页,使检查点和恢复延迟分别低至 133 ms 和 49 ms。 在此之上,AgentENV 提供三种有助于提高智能体 RL 效率的高层操作。 (a)暂停与恢复:暂停后的沙箱不消耗内存或 CPU 资源;因此,在智能体等待模型推理结果时可以暂停沙箱,而等待时间最多可占沙箱生命周期的 98%。 (b)分叉:分叉会从原沙箱的精确状态创建一个新沙箱,同时保持原沙箱继续运行,这适合用于不产生副作用的奖励评判。 (c)快照:可以定期保存沙箱快照,以便错误恢复。

  • 高效率与高密度 在我们的工作负载中,可能需要在数秒内创建数万个沙箱,每个沙箱都带有一组独特镜像。 我们采用 OverlayBD [69] 作为镜像格式,并结合自定义 ublk 驱动实现、存储层共享和 P2P 传输,在大规模环境下实现亚秒级启动延迟。 我们还使用写时复制内存和页缓存优化进一步减少内存使用量,在真实工作负载中实现最高 \(6.5\times\) 的内存超分比。

在 Kimi K3 的整个训练和评估过程中,共基于 1,505,678 个镜像创建了 51,219,741 个沙箱。

小白提示

译者补充:AgentENV 用 microVM 而不是普通容器,是为了同时允许高权限探索并隔离内核级破坏。暂停会把等待推理结果的空闲期降到近零资源;分叉保留原环境并创建无副作用评判副本;快照用于失败恢复。增量检查点只保存新写脏的页,写时复制则让大量沙箱共享未修改内存与镜像层。

5.4 推理与在线服务

从生产侧服务 Kimi K3 会暴露相同的挑战:KDA–MLA 混合架构维护两种本质不同的缓存,在百万词元上下文中必须联合管理;新模块和高度稀疏的专家分别需要专门定制的内核;生产流量则混合了逐请求成本横跨三个数量级的请求。 下述设计从三个层级解决这些挑战。 在引擎层,感知 KDA 的前缀缓存把固定大小的循环状态装入与 MLA KV 缓存相同的分页池,使长前缀能够跨请求复用。 在设备层,面向 KDA 解码、Block AttnRes 和稀疏 LatentMoE 的专用内核尽可能降低逐词元延迟和内存流量。 在集群层,感知缓存的亲和性调度与基于预算的准入控制把这些效率转化为可预测的服务。

5.4.1 感知 KDA 的前缀缓存管理

Kimi K3 的混合架构使前缀缓存变得复杂:KDA 循环状态与 MLA KV 缓存在大小和生命周期上有根本差异,但缓存前缀只有在二者能于同一边界一起恢复时才可复用。 因此,我们设计了感知 KDA 的前缀缓存,从统一分页布局到细粒度前缀复用,再到并发调度下的一致性,对两种缓存进行联合管理,使百万词元前缀能够以较低成本保留并跨请求复用。

KDA–MLA 混合注意力的统一缓存布局 每个 Kimi K3 块由三个 KDA 层和一个 Gated MLA 层组成,它们的缓存有本质差异。 MLA KV 缓存随序列长度增长,并按词元分页;KDA 循环状态大小固定,每个请求只有一份。 为二者分别维护管理器,会造成分配、驱逐和传输逻辑重复。 因此,我们把 KDA 状态装入与 MLA KV 相同的分页块池,把页面统一成相同字节大小,使两类页面共享同一套分配、引用计数和驱逐实现。 在一个页面内,所有注意力头的状态按头连续存放,使每个头的字节流自包含,并成为跨节点传输的最小单位。 在预填充/解码分离的情况下,如果预填充节点与解码节点采用不同 TP 度数,系统会在传输路径上重新布局,无需在 GPU 侧重新排列。 这种不对称性在开发中被证明很有用:任何混淆类型的访问都会产生垃圾数据,而不是看似合理的数据——这为池化布局提供了零开销的健全性检查。

KDA 前缀缓存优化 基于块哈希的前缀缓存以一个物理块为粒度复用 KV 缓存:只有完整块会被哈希,因此只有与块边界对齐的前缀可以复用。

这种耦合方式在 Kimi K3 中失效。 块哈希匹配要求所有层共享一个块大小,而且只有命中边界处的 KDA 状态已经持久化时,前缀命中才可复用。 KDA 层为每条序列维护一个大型循环状态,而不是逐词元条目,因此只能在稀疏边界负担得起状态快照;共享块大小因而被迫设为 1024–6144 个词元,而且由于哈希与存储块绑定,哈希粒度也被迫相同,尽管单独使用 MLA 逐词元条目本可以容忍细得多的块。 如此粗的粒度会让缓存几乎失去作用:短于一个块的请求永远无法复用,分块预填充也要等跨过一个完整块边界后,才会导出可缓存前缀。

前缀缓存

论文原图截图:图 12。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 12: 一个物理缓存块内的细粒度前缀缓存。一个包含 6144 个词元的物理块内有十二个 512 词元前缀哈希块,其中已缓存的 MLA 块以蓝色显示,空块以浅灰色显示。下方标记展示每个哈希边界处的 KDA 检查点状态。空心圆(\(\circ\))表示未保存检查点的边界,灰点(\(\bullet\))表示已持久化的 KDA 检查点,橙点(\(\bullet\))表示在 \(B=2560\) 处命中的检查点。持久化检查点分布稀疏,通常与对话轮次边界重合。该请求复用五个 MLA 哈希块和 \(B\) 处的 KDA 检查点,随后继续预填充,无需重新计算 \([0,B)\)

因此,我们把这两种粒度解耦。 前缀哈希在 MLA 页面内部的细哈希块上运行,例如 512 个词元,而物理块仍作为粗粒度分配单元。 KDA 的对齐方向则相反:循环状态检查点只保存在 MLA 哈希端点的一个稀疏子集上,而这些端点是查找唯一可能引用的位置。

预填充期间,部分填满的 MLA 页面会使用其最后一个完整哈希块的链式哈希注册进前缀缓存索引;每个哈希都覆盖此前全部哈希块,因此匹配某个端点就能证明一直到该端点的完整前缀,且已注册端点会随着页面填充而向前推进。 与此同时,每次前向传播后,KDA 内核都会在最后一个已处理、与哈希对齐的位置持久化循环状态。 检查点很大,因此请求推进时被后续检查点取代的中间检查点会被回收,而位于对话轮次边界的检查点则会保留,用于跨请求复用。 缓存检查点是只读快照:命中后,系统会在下一次前向传播前将状态复制进请求的私有运行状态;新检查点则写入新槽位,因此其他请求可见的检查点永远不会被原地修改。

查找分两个阶段进行(图 12)。 MLA 阶段使用链式哈希匹配完整物理块,并在第一个缺失块处退回到块内哈希端点,因此部分填满的页面仍可命中。 随后,KDA 阶段要求每个 KDA 缓存组在候选边界都存在一个检查点,而每个缓存组都维护独立的循环状态。 命中位置是同时满足两个阶段的最长边界——它始终是哈希块大小的整数倍,却不需要是物理块大小的整数倍。 在图 12 中,一个前 2800 个词元与缓存前缀相符的请求,会在 \(B=2560=5\times512\) 处命中,该位置深入一个 6144 词元物理块内部;请求随后从词元 \(B\) 恢复预填充,而不是重新计算 \([0,B)\)

并发调度下的一致性 剩余设计点分别由共享部分填满块时的具体失败模式所决定:在这一场景中,命中块既是共享缓存条目,又是私有请求的增长点,而且 MLA 与 KDA 缓存组必须对每个命中边界达成一致。 第一,所有缓存组都从同一个共享空闲列表取块,因此为一个组分配私有副本时,可能驱逐另一个组刚刚命中的块;所以在进行任何分配前,必须跨所有组固定每个命中块。 第二,向私有块的复制会在前向传播前紧邻执行于 GPU 上,因此当前调度步内刚分配或注册的块仍可能把前一所有者的字节交给读取方;这类块在复制完成前会被排除在匹配之外。 第三,只有当每个 KDA 组都存在检查点时,该检查点才能恢复请求,因此驱逐一个组的检查点会以原子方式使其兄弟检查点全部失效——一个检查点要么在所有组中都可命中,要么在所有组中都不可命中。 借助这些机制,每个注册状态始终精确对应其声明的词元前缀,混合 KDA–MLA 模型的前缀缓存也能达到全注意力模型相同的通用性:任何共享前缀都可以在任意 512 词元边界复用,而不受请求长度、分块方式或调度交错方式影响。

小白提示

译者补充:MLA KV 像“逐页增长的笔记”,KDA 状态则像“整段历史压成的一张快照”。若仍把哈希、物理分配和 KDA 快照绑成同一粒度,6144 词元以内的请求几乎无法命中。新设计让 512 词元哈希端点负责查找、6144 词元物理块负责分配,只在部分端点保存大体积 KDA 检查点;命中时必须同时拿到 MLA 前缀与所有 KDA 组的同边界快照。

5.4.2 高性能内核

Kimi K3 引入了几个新的架构模块:KDA(§ 2.1.1)、Block AttnRes(§ 2.2)和 Stable LatentMoE(§ 2.3)。 我们分别优化了每个模块的内核实现。

KDA 与 KDA 预填充(§ 5.1)相比,KDA 解码面临一组不同挑战:主要瓶颈从挖掘并行性,转移到高效管理不断演化、在每个解码步原地更新的循环状态。 这种原地更新会给基于 MTP 的推测解码带来问题:如果验证拒绝一部分草稿词元,状态已经推进到最后一个被接受词元之后,无法轻易回滚。 为每个草稿位置保存一份状态快照可以支持回滚,但也会成倍增加状态流量——在在线服务常见的大批量下,这一成本会占据主导。

然而,任何已接受草稿前缀之后的状态都完全由草稿词元的投影输入决定,而这些投影输入比状态本身小得多。 因此,我们只缓存这些投影输入,在芯片上重建已接受词元的状态,再写回已验证词元和额外词元(bonus token)的状态;同期工作 ReplaySSM [25] 也独立提出了这一设计。 被重放的词元、额外词元和下一个草稿窗口在一个融合内核中共享同一条循环,该内核覆盖短卷积、输入归一化、门控、KDA 循环和输出归一化。 验证延迟随被验证词元数呈次线性增长,并且始终低于缓存状态的基线方案。 由于投影缓存从不离开解码阶段,前缀缓存和预填充–解码分离使用的载荷与非推测服务相同。

Block AttnRes Block AttnRes [58] 遵循两阶段调度:批处理式块间过程每个块只读取一次缓存的块表示,随后每一层通过在线 Softmax 合并 [80] 纳入块内部分和。 在预填充与解码中,内存访问都占这些内核成本的很大一部分,因此两个阶段的优化都主要聚焦内存效率。

对于预填充,在每个张量并行 rank 上实体化块表示会产生大量冗余内存消耗。 因此,我们对激活采用序列并行(Sequence Parallelism,SP):把 TP 全归约分解为归约散射和全收集,并把块内内核插入这两个集合通信之间,让它在按序列分片的隐藏状态上运行,从而使每个词元的块表示只在一个 rank 上实体化。 这会消除额外内存消耗,并减少预填充期间 Block AttnRes 的输入/输出(Input/Output,I/O)开销。

对于解码,我们在侧流上启动块间内核,使其与主流上的独立计算重叠。 块内内核则通过融合得到简化:把 AttnRes 输出与其部分和更新的合并,以及随后的均方根层归一化(Root Mean Square Normalization,RMSNorm),融合进此前的 TP 全归约,从而不再需要专用块内阶段内核。 这些优化共同隐藏块间过程的延迟,并减少块内阶段的内存流量。

Stable LatentMoE Stable LatentMoE 同时增加专家总数和每个词元激活的专家数。 专家空间和逐词元专家数同时增长,会提高调度与协调开销,使传统 MoE 内核难以维持较高硬件利用率。 这些挑战促使我们为该模块开发专用内核优化。

为减轻潜在空间 GEMM 的开销,我们采用三项优化。 第一,把潜在空间下投影与 MoE 路由器融合成一次 GEMM。 第二,把潜在空间权重矩阵划分到不同 rank,并使用 multimem store 指令把输出全收集融合进 GEMM 尾声。 最后,让由此产生的通信与共享专家计算等其他算子重叠。 这些优化共同消除冗余权重流量与重复计算,同时把通信延迟隐藏在计算之后。

对于路由专家,在小批量下,分组 GEMM 会退化为受内存限制的权重矩阵流式读取;传统的以 tile 为中心的内核以计算为导向并带有预处理开销,因此并不适合这种执行阶段。 作为替代,我们基于 WarpDecode [12] 以词元为中心的设计构建 MoE 解码内核,其中每个 warp 负责一个输出神经元,并直接从内存流式读取相关权重。 为进一步提高并行性,我们把每个 warp 细分成粒度更小的 lane 小组,每个小组处理互不相交的一组专家,随后对部分结果进行 warp 级归约。 此外,我们以一次性预处理成本离线重排权重布局,从而大幅降低运行时反量化开销。

小白提示

译者补充:服务内核围绕“少搬数据”设计。KDA 推测解码不保存每个草稿位置的大状态,只保存小投影并在芯片上重放;Block AttnRes 让块表示只在一个 SP rank 实体化,并把归一化与归约融合;LatentMoE 把投影、路由、通信尾声融合,在小批量时改用以词元为中心的权重流式读取。代价是更复杂的融合内核、离线权重重排和专用调度。

5.4.3 集群级调度

超出单个服务实例后,挑战会从逐请求效率转向可预测性:前缀缓存未命中的成本比命中高出多个数量级,而突发的百万词元请求可能让短请求得不到资源。 我们提出两项集群级调度策略来解决这一问题:感知缓存的亲和性调度把每个会话路由到持有其前缀缓存的集群,同时限制集群故障的代价;基于预算的准入控制则为每个请求类别分配独立资源预算,使突发长上下文流量无法降低全系统服务等级目标(Service-Level Objective,SLO)。

感知缓存的亲和性调度 在 1M 上下文下,一个典型编码输入带有 400K 词元前缀,却只需要 4K 词元的新增预填充,因此前缀缓存命中可以避免重新预填充整个前缀,其成本比未命中低多个数量级。 因此,我们把每个请求路由到持有其前缀缓存的集群,因为把缓存移动到另一个集群需要经过集群间链路传输,而该链路远慢于集群内互连网络。 不过,这种缓存感知亲和性会把每个会话绑定到单个集群,而该集群故障将中断绑定到它的所有会话。 因此,一致性哈希会把每个会话固定到两个集群:一个主集群负责服务其流量,另一个预先分配的备用集群在主集群故障时接管。 备用集群不持有该会话的任何前缀缓存,故障转移时必须重新预填充。 由于一致性哈希会把不同会话的备用分配均匀散布到整个集群池,这些重新预填充工作会由许多集群分担,而不是集中到一个集群。 因此,常规情况下缓存局部性得到保留,而任意单个集群故障的影响仍然有界。

基于预算的准入控制 生产流量会混合短于 2K 词元的短请求与最长 1M 词元的超长请求,因此逐请求成本横跨约三个数量级,任何固定请求数量带来的总负载都高度不可预测。 基于“平均请求”的容量规划、排队模型和限速配额都会在这种方差下失效。 一种典型失败模式是,突发的长上下文请求耗尽可用计算资源,随后到达的短请求无法及时调度,使全部流量的首词元时间(Time to First Token,TTFT)恶化。 因此,我们采用基于预算的准入控制,为不同请求类别分配独立资源预算,使突发长上下文流量最多只能消耗本类别份额的容量,不能降低其他类别体验到的全系统 SLO。

小白提示

译者补充:集群级调度解决的是尾部风险而非单次内核速度。亲和性调度优先把会话送回持有其 400K 前缀的集群,并用“主集群 + 备用集群”限制故障影响;预算准入则把 2K 短请求与 1M 长请求分开计费和限额,避免一批超长请求让所有短请求的 TTFT 一起失控。

6 评测

6.1 主要结果

6.1.1 基准测试

我们在一套综合基准测试集上评测 Kimi K3;这套测试集按四条宽泛的能力轴组织:

  • 推理与知识: GPQA Diamond [102]、CritPt [8]、AA-LCR [9],以及 Humanity’s Last Exam(HLE-Full,分为使用工具和不使用工具两种设置)[94]。

  • 编程: DeepSWE [31]、ProgramBench [96]、Terminal-Bench 2.1 [79]、FrontierSWE [36]、SWE-Marathon [118]、PostTrainBench [95]、MLS-Bench-Lite [77] 和 SciCode [122, 8]。

  • 智能体: BrowseComp [132]、DeepSearchQA [127]、ResearchRubrics [107]、Toolathlon-Verified [70]、MCPMark-Verified [134]、MCP-Atlas [11]、AutomationBench [109]、JobBench [71]、GDPval-AA v2 [91]、AA-Briefcase [8, 2]、Agents’ Last Exam(ALE)[4, 116]、APEX-Agents [128]、OfficeQA Pro [88]、SpreadsheetBench 2 [151]、OSWorld-Verified [137] 与 OSWorld 2.0 [144]、SaaS-Bench [110]、τ3-Banking [1, 8]、Harvey Lab-AA [8, 43]、CorpFin v2 [21]、Finance Agent v2 [35],以及 Legal Research Bench [66]。

  • 视觉: WorldVQA [150]、OmniDocBench [89]、PerceptionBench [63]、Video-MME [37]、MMVU [149],以及搭配 Python 工具的 BabyVision [13];另有 MMMU-Pro [145]、CharXiv(RQ)[131]、Math-Vision [129] 和 ZeroBench-main [103],这四项测试均分别在使用与不使用 Python 工具增强的条件下进行。

6.1.2 基线

我们将 Kimi K3 与当前最先进的专有模型和开源模型进行基准比较。专有模型方面,我们比较了 Claude Fable 5 [16]、GPT-5.6 Sol [40]、Claude Opus 4.8 [17] 和 GPT-5.5 [39]。Claude Fable 5 的结果包含回退行为,GPT-5.6 Sol 的结果则包含潜在的网络安全防护机制。开源模型方面,我们纳入了 GLM-5.2 [38]。除 GPT-5.5 使用“xhigh”设置外,所有模型都按最大推理投入进行评测。

6.1.3 评测配置

Kimi K3 的所有评测均使用 reasoning effort = maxtemperature = 1.0。对于 GPQA Diamond、HLE-Full 以及不使用工具的视觉基准测试等单步任务,我们设置 top-p = 0.95。对于智能体任务,我们设置 top-p = 1.0。一般而言,我们建议推理与知识任务使用 top-p = 0.95,编程和智能体场景使用 top-p = 1.0

小白提示

这是译者补充。 temperature 控制采样的随机程度;top-p 则把候选 token 限制在累计概率达到指定阈值的集合内。这里的配置差异意味着:单步知识题倾向于更收敛的输出,长链工具任务则保留更完整的候选空间。

编程。 每个模型都在三种智能体执行框架之一中接受评测:Kimi Code [57]、Claude Code [15] 或 Codex [20]。对于 DeepSWE,我们报告 v1.1 任务上的结果,并额外引用官方排行榜成绩(Kimi K3 使用 mini-SWE-agent 执行框架时取得 67.3 分)。对于 Terminal-Bench 2.1,我们报告每个模型在所有执行框架中取得的最佳分数。我们的 SWE-Marathon 评测基于截至 2026 年 7 月 9 日、针对 H20 校准的官方任务分支,该分支早于最终 v1.1 版本发布;其中 Docker 镜像、性能门槛和 GPU 任务的参考判定器已针对 H20 重新校准,但正确性验证器和反作弊验证器保持不变;Claude Fable 5 在 35% 的任务上触发了回退。对于 PostTrainBench,我们使用官方 Harbor 实现,以最大推理投入在 H20 GPU 上评测 Kimi K3、Claude Fable 5 和 GPT-5.6 Sol,并取三次运行的平均值(而官方设置使用 H100)。FrontierSWE 的 dominance 分数根据原始分数,使用截至 2026 年 7 月 16 日的官方评测脚本重新计算。

智能体。 对于 OfficeQA Pro,每个测试用例都会向智能体提供以图像形式渲染的完整 PDF 语料库,不提供任何机器可读文本。MCP-Atlas 在包含 500 项任务的公开子集上评测,轮次上限为 100,并使用 Gemini 3.1 Pro 作为裁判。AutomationBench 在包含 600 项任务的公开子集上评测。对于 BrowseComp,我们采用在上下文达到 300K token 时触发的上下文压缩策略;若使用完整的 1M-token 上下文窗口且不采用上下文管理进行评测,Kimi K3 的成绩为 90.4%。

视觉。 除 ZeroBench-main 按官方设置运行五次外,其他分数均取三次运行的平均值。MMMU-Pro 遵循官方协议,保留原始输入顺序,并把图像置于文本输入之前。对于 WorldVQA,我们观察到各模型都存在一致的拒答行为,因此通过提示词工程强制模型给出答案。

第三方结果。 GDPval-AA v2、AA-Briefcase、τ3-Banking、Harvey Lab-AA、APEX-Agents、SciCode、AA-LCR 和 CritPt 的分数引用自截至 2026 年 7 月 23 日的 Artificial Analysis [8]。对于 Harvey Lab-AA,我们报告标准通过率。CorpFin v2、Finance Agent v2 和 Legal Research Bench 的分数引用自 Vals AI [125]。Agents’ Last Exam 的分数引用自截至 2026 年 7 月 23 日的官方排行榜 [4];我们报告该排行榜的主要指标——通过率。在排行榜中,每个模型都与一个特定执行框架配对:Kimi K3 使用 Kimi Code;GPT-5.6 Sol 和 GPT-5.5 使用 Codex;Claude Fable 5、Claude Opus 4.8 和 GLM-5.2 使用 Claude Code。Toolathlon-Verified 和 JobBench 的分数引用自截至 2026 年 7 月 24 日的各自官方排行榜 [120, 53]。

6.1.4 结果

表 2 全面比较了 Kimi K3 与专有模型和开源基线。总体而言,Kimi K3 的表现紧随最强的专有模型 Claude Fable 5 和 GPT-5.6 Sol,同时在整套基准测试中持续优于 Claude Opus 4.8、GPT-5.5 和 GLM-5.2。下面列出我们对各核心能力领域的主要观察:

推理与知识。 在研究生水平的推理任务上,Kimi K3 以 GPQA Diamond 93.5% 的成绩达到前沿竞争水平。然而,在研究级任务上仍存在差距:HLE-Full 无论使用还是不使用工具,Kimi K3 都落后于 Claude Fable 5 和 GPT-5.6 Sol,对应成绩分别为 56.0% 和 43.5%;在 CritPt 上得分 23.4%,落后于 Claude Fable 5、GPT-5.6 Sol 和 GPT-5.5,这表明研究级推理仍是需要重点改进的方向。

Kimi K3 主要评测

论文原表截图:表 2。截图来自固定版本官方 PDF;下方译文保留原表注与正文解释。

表 2:Kimi K3 与专有模型及开源模型的性能比较。 粗体表示每项基准测试的最佳结果,下划线表示第二佳结果。除非另有说明,Kimi K3 的结果均在推理投入设为 max、温度等于 1.0 时取得。对于 HLE-Full、MMMU-Pro、CharXiv(RQ)、Math-Vision 和 ZeroBench,每个单元格依次报告不使用工具增强和使用工具增强时的分数(HLE-Full 使用通用工具,视觉基准使用 Python)。† 在 Agents’ Last Exam 官方排行榜上,Claude Fable 5 条目以 xhigh 推理投入运行,其中 40% 的任务被标注为已降级。

基准测试 Kimi K3(max) Claude Fable 5(max,含回退) GPT-5.6 Sol(max) Claude Opus 4.8(max) GPT-5.5(xhigh) GLM-5.2(max)
推理与知识
GPQA Diamond 93.5 92.6 94.1 91.0 93.5 91.2
CritPt 23.4 28.6 32.3 20.9 27.1 20.9
AA-LCR 74.7 70.0 73.7 67.7 74.3 71.3
HLE-Full 43.5 / 56.0 53.3 / 63.0 44.5 / 58.0 49.8 / 57.9 41.4 / 52.2 -
编程
DeepSWE 67.5 70.0 73.0 59.0 67.0 46.2
ProgramBench 77.8 76.8 77.6 71.9 70.8 63.7
Terminal-Bench 2.1 88.3 88.0 88.8 84.6 83.4 82.7
FrontierSWE 81.2 86.6 71.3 66.7 64.9 67.3
SWE-Marathon 42.0 35.0 39.0 40.0 14.0 13.0
PostTrainBench 36.6 41.4 34.6 34.1 28.4 34.3
MLS-Bench-Lite 48.3 49.9 46.2 42.8 35.5 40.4
SciCode 58.7 60.2 56.1 53.5 56.1 50.5
智能体
BrowseComp 91.2 88.0 90.4 84.3 84.4 -
DeepSearchQA(F1) 95.0 94.2 - 93.1 - -
ResearchRubrics 76.2 - 73.8 73.5 64.0 71.1
GDPval-AA v2(Elo) 1686 1747 1736 1593 1491 1510
Toolathlon-Verified 76.5 77.9 74.9 76.2 73.5 59.9
MCPMark-Verified 94.5 87.4 92.9 76.4 92.9 -
MCP-Atlas 84.2 84.7 83.6 83.6 82.8 82.6
AutomationBench 30.8 29.1 29.7 27.2 22.7 12.9
JobBench 54.3 57.4 45.4 48.4 38.3 43.4
AA-Briefcase(Elo) 1548 1583 1495 1354 1158 1260
Agents’ Last Exam 28.3 25.7† 29.6 27.0 26.6 20.4
APEX-Agents 41.0 43.3 39.9 39.4 38.5 35.6
OfficeQA Pro 63.3 69.9 63.2 63.9 60.9 41.4
SpreadsheetBench 2 34.8 34.7 32.4 31.6 29.1 28.1
OSWorld-Verified 84.8 85.0 83.0 83.4 79.0 -
OSWorld 2.0 58.3 66.1 62.6 55.7 49.5 -
SaaS-Bench 60.1 - 61.4 56.1 43.8 -
τ3-Banking 33.4 26.8 33.0 27.6 31.3 26.8
Harvey Lab-AA 94.6 93.6 87.2 91.1 86.3 91.0
CorpFin v2 71.6 71.8 64.4 66.7 68.4 66.1
Finance Agent v2 54.4 56.3 53.8 53.9 51.8 49.7
Legal Research Bench 44.2 49.5 48.1 43.8 40.4 31.3
视觉
WorldVQA ForceAnswer 51.0 56.7 41.8 39.1 38.5 -
OmniDocBench 91.1 89.8 85.8 87.9 89.4 -
PerceptionBench 58.5 57.2 59.7 47.2 55.8 -
Video-MME(含字幕) 90.0 - 89.5 86.0 89.3 -
MMVU 82.1 - 81.2 79.2 81.7 -
BabyVision(使用 Python) 85.7 90.5 88.9 81.2 83.6 -
MMMU-Pro 81.6 / 83.4 81.2 / 86.5 83.0 / 84.6 78.9 / 82.7 81.2 / 83.2 -
CharXiv(RQ) 84.8 / 91.3 88.9 / 93.5 84.6 / 89.1 80.5 / 89.9 84.1 / 89.0 -
Math-Vision 94.3 / 97.8 94.8 / 98.6 95.8 / 97.8 86.7 / 97.1 92.2 / 96.8 -
ZeroBench-main(pass@5) 23.0 / 41.0 23.0 / 46.0 17.0 / 35.0 17.0 / 34.0 22.0 / 41.0 -

小白提示

这是译者补充。 表中形如 43.5 / 56.0 的两个数字不是置信区间,而是按表注顺序分别表示“不使用工具 / 使用工具”。不同基准测试的分数定义并不完全相同,不能只凭数值大小跨行比较。

编程。 Kimi K3 展现了强大的智能体编程性能。它在 ProgramBench 上取得最佳成绩(77.8%);在面向 GPU 内核的测试套件 SWE-Marathon 上取得 42.0%,领先 Claude Fable 5 达 7 分。在 Terminal-Bench 2.1 上,它几乎追平 GPT-5.6 Sol(88.3% 对 88.8%)。在 DeepSWE 上,它排在 Claude Fable 5 和 GPT-5.6 Sol 之后,但领先 Claude Opus 4.8 和 GPT-5.5。在长时程基准 FrontierSWE 上,截至 2026 年 7 月 16 日,它以 81.2% 的成绩排名第二,仅次于 Claude Fable 5(86.6%),并大幅领先所有其他模型。

智能体。 Kimi K3 在广泛的智能体测试套件上取得了当前最佳结果,包括 BrowseComp(91.2%)、DeepSearchQA(F1 分数 95.0%)、ResearchRubrics(76.2%)、MCPMark-Verified(94.5%)、AutomationBench(30.8%)、SpreadsheetBench 2(34.8%)、τ3-Banking(33.4%)和 Harvey Lab-AA(标准通过率 94.6%)。主要例外是以 Elo 评分的知识工作测试套件,这两项均由 Claude Fable 5 领先:Kimi K3 在 GDPval-AA v2 上排名第三(1,686),在 AA-Briefcase 上排名第二(1,548)。在其他测试中,它总体上具备竞争力:在 CorpFin v2 和 OSWorld-Verified 上,它分别只比 Claude Fable 5 低 0.2 分(对应为 71.6% 对 71.8%,以及 84.8% 对 85.0%);其余更难的计算机操作基准测试(OSWorld 2.0、SaaS-Bench)仍由 Claude Fable 5 或 GPT-5.6 Sol 领先。

视觉。 Kimi K3 展现出强大的多模态理解能力,而 Python 工具会进一步放大这种能力:它在 Math-Vision 上达到 94.3%,使用 Python 工具后升至 97.8%;在颇具挑战性的 ZeroBench-main 上,它以 23.0%(pass@5)追平 Claude Fable 5,使用 Python 工具后跃升至 41.0%。它还在 OmniDocBench 上取得最高分(91.1%);在 WorldVQA 上以 51.0% 排名第二,仅次于 Claude Fable 5,并领先 GPT-5.6 Sol 和 Claude Opus 4.8。

6.2 内部评测

6.2.1 能力评测

除公开基准测试套件外,我们还维护了一组内部基准测试,专门覆盖公开评测未能充分衡量的能力领域,从而更全面地测量模型与智能体能力。这些基准测试会频繁刷新和扩展,以便紧密追踪模型不断变化的失败模式,并直接指导数据与训练迭代。它们大体分为三类:编程能力与体验、通用智能体体验,以及对话体验。表 3 报告了这些基准测试的结果。

编程能力与体验

  • Kimi Code Bench 2.0(KCB 2.0): 在覆盖广泛编程语言和面向生产的技术栈中,以真实的端到端软件工程任务评测编程智能体。

  • Kimi Webdev Bench: 使用来自真实使用场景的高难度 Web 开发提示评测模型,并通过专家盲评比较输出,结果见表 4。

  • Coding Experience: 评测在真实开发工作流中把模型用作编程智能体时的实际体验。

通用智能体体验

  • 24/7 ClawBench 2.0: 模拟全天候运行的助手工作,其中任务会跨越多天,事件并发到达,中断也时常发生。

  • Multi-Agent Infra for Routing and Assignment(MIRA)Bench: 评测长链条、多角色、多系统的企业协作任务,考察智能体能否完成端到端工作,并判断何时应组织子智能体或向其委派任务。

  • Kimi Autonomous Execution Tasks(KAET): 评测对模拟真实用户请求和企业系统操作的任务进行长时程自主执行的能力。

  • Context Learning and Instruction Following(CLIF)Bench: 聚焦上下文内学习,要求模型一边从给定上下文中学习,一边遵循交错组合多种复杂技能的指令。

  • Agentic Vision Bench: 评测智能体在执行任务期间能否注意到关键视觉事实,并正确使用这些事实。

  • Swarm Bench: 评测模型在受益于协同分解与并行执行的复杂任务上编排智能体集群 [60] 的能力。

  • Online Experience: 复现真实在线智能体用法的分布,衡量模型处理用户最常请求的可交付文件类型时的表现。

Kimi K3 内部评测

论文原表截图:表 3。截图来自固定版本官方 PDF;下方译文保留原表注与正文解释。

表 3:内部基准测试结果。 粗体表示每项基准测试中报告的最佳结果;“-”表示本报告尚未纳入该分数。除非另有说明,模型均以最大推理投入进行评测(GPT-5.5 使用 xhigh);执行框架分配见“执行框架”列。a 80 项任务中触发 13 次回退并拒答 1 次。b 80 项任务中拒答 10 次。c 80 项任务中拒答 3 次。d 包含 2 项 Claude Fable 5 拒绝回答的任务。e 包含 14 项 Claude Fable 5 拒绝回答的任务。f 95 项任务中拒答 6 次。g 报告的指标为 1 - 幻觉率;数值越高越好。

基准测试 执行框架 Kimi K3(max) Claude Fable 5(max) GPT-5.6 Sol(max) Claude Opus 4.8(max) GPT-5.5(xhigh) GLM-5.2(max)
编程体验
Kimi Code Bench 2.0 Claude Code 73.7 76.9a - 71.7 - 64.2
Kimi Code 72.9 - - - 66.0 -
Codex - - 64.8b - 69.0c -
Coding Experience Claude Code 59.9 59.8 - 58.0 - 53.3
Kimi Code 56.6 - - - - -
Codex - - 59.3 - 56.8 -
通用智能体体验
24/7 ClawBench 2.0 OpenClaw 48.3 47.4d 52.0 47.2 48.5 43.2
MIRA Bench MIRA 64.1 72.9 62.2 59.8 54.6 -
KAET Kimi Code 83.5 - 85.4 78.7 79.7 74.7
CLIF Bench Kimi Code 52.4 - 50.6 48.8 52.3 39.2
Agentic Vision Bench Kimi Code 78.3 81.1 82.9 82.8 76.9 -
Swarm Bench Kimi Agent 76.3 - 73.2 72.6 61.8 58.5
Online Experience Kimi Agent 77.9 74.2e 84.0 69.4 73.7 64.0
Deep Research Bench Kimi Agent 90.0 - 85.3 87.2 81.9 84.0
Finance Bench N/A 62.6 - 62.7 60.7 58.4 55.4
KWV Bench N/A 64.7 63.6 66.9 61.7 65.8 -
DECK Bench N/A 73.5 73.0 74.7 66.9 68.2 68.6
Agent Behavior Bench Kimi Work 65.0 75.5f 76.4 65.7 70.1 -
对话体验
Faithfulnessg N/A 85.5 - 84.8 83.6 86.5 74.8
Chat All-in-One Bench Kimi Work 85.2 88.0 79.0 83.8 71.8 -

Web 开发评测

论文原表截图:表 4。截图来自固定版本官方 PDF;下方译文保留原表注与正文解释。

表 4:内部 Kimi Webdev Bench 的结果:使用 Claude Code 执行框架运行 Kimi K3(max)与 Claude Opus 4.8(max)。 比较采用专家盲评:专家在不知道输出由哪个模型生成的情况下,按代码质量、功能完整性、视觉保真度和交互体验为每个输出评分。胜、平和负分别表示 Kimi K3 的输出在多少比例的提示上更受偏好、被评为相当或较不受偏好。

领域 胜 - 负
游戏 55.6% 3.7% 40.7% +14.9%
3D / WebGL / Shader 72.7% 13.7% 13.6% +59.1%
网站 / UI 克隆 52.6% 21.1% 26.3% +26.3%
总体 58.6% 13.8% 27.6% +31.0%
  • Deep Research Bench: 使用由领域专家整理的深度研究类查询评测模型,并依据与专家判断对齐的评分标准进行评分。

  • Finance Bench: 评测模型完成真实金融工作的能力;此类工作要求模型从源材料出发,端到端执行完整工作流并产出可供审阅的交付物。

  • Knowledge Work Vision(KWV)Bench: 评测从真实知识工作场景提炼出的任务中抽取的原子视觉能力。

  • DECK Bench: 衡量模型能否根据取自真实使用场景的任务描述,制作高质量演示文稿。

  • Agent Behavior Bench: 将智能体评测从结果正确性扩展到过程质量,在任务完成情况之外,同时对工具使用行为、效率和纪律性进行评分。

对话体验

  • Faithfulness: 衡量模型回复中的事实性幻觉率,每条回复均由事实核查员验证。

  • Chat All-in-One Bench: 衡量产品使用各阶段的对话体验,其中的场景围绕真实在线用户需求设计。

评测配置。 除非某项基准测试按执行框架拆分为多行,否则表 3 的“执行框架”列报告的是 Kimi K3 所使用的执行框架。对于其他模型,Claude 系列模型和 GLM-5.2 使用 Claude Code 进行评测,GPT 系列模型使用 Codex。例外是所有模型都使用同一个指定执行框架的基准测试:24/7 ClawBench 2.0 使用 OpenClaw;MIRA Bench 使用 MIRA(Multi-Agent Infra for Routing and Assignment),这是一种内部的分布外执行框架;Agent Behavior Bench 和 Chat All-in-One 使用 Kimi Work;CLIF 和 Agentic Vision Bench 使用 Kimi Code。

小白提示

这是译者补充。 “执行框架(harness)”是负责把任务、工具、上下文和模型连接起来的运行外壳。同一个底层模型换用不同执行框架时,规划方式、工具调用乃至最终分数都可能变化,因此表 3 特别列出了这种配对关系。

结果。 相较公开基准测试,内部测试套件更鲜明地区分出了 Kimi K3 的优势与弱点。最明显的优势是编排型和研究型智能体能力:Kimi K3 以明显优势领跑 Swarm Bench(76.3)和 Deep Research Bench(90.0),表明它具备较强的复杂目标分解、并行工作协调,以及生成符合评分标准的交付物的能力。编程同样是其优势:在 Kimi Code Bench 2.0 上,它仅落后于 Claude Fable 5;在 Coding Experience 上,它取得最高分,这说明它作为编程智能体时的实际行为——沟通质量、行为得当程度和遵循指令的稳定性——优于原始任务分数所反映的水平;在 Kimi Webdev Bench 上,专家评审对它的总体偏好比 Claude Opus 4.8 高出 +31.0 个百分点,其中在 3D/WebGL/Shader 任务上的优势最大。与上一代模型相比,专业知识工作的表现也有显著提升,Finance Bench 的成绩已基本追平 GPT-5.6 Sol。

Kimi K3 主要在 Agent Behavior Bench、MIRA Bench、24/7 ClawBench 2.0、Agentic Vision Bench 和 KWV Bench 上落后于领先者。在其余已有完整成绩的测试套件(KAET、CLIF Bench、Online Experience、DECK Bench、Faithfulness 和 Chat All-in-One Bench)上,Kimi K3 排名第一或接近第二。

6.2.2 网络安全评测

我们沿着操作风险逐步升高的两级路径评测模型的网络安全能力:带概念验证(proof of concept,PoC)开发的漏洞发现(第 1 级),以及端到端漏洞利用开发(第 2 级)。评测目标包括广泛部署的软件的近期版本——操作系统内核组件和开源项目——也包括我们的内部基础设施,例如生产服务和代码库。所有任务都在能够代表真实部署环境的标准配置下运行。Anthropic 和 OpenAI 的前沿模型会拒绝网络安全相关任务,因而无法进行可比评测;所以我们将它们排除在这套测试之外。

漏洞发现(第 1 级)。 这一等级要求模型在当前代码库中识别真实缺陷——而不是复现已知漏洞——并证明这些缺陷可以复现。这些能力主要与防御性安全研究相关。

在横跨操作系统内核、数据库、AI 服务、Web 框架、区块链和 VPN 软件的数十个广泛部署系统中,模型识别出了数百个候选漏洞。在经过人工审查的发现中,约 70% 被确认是真实漏洞,其中包括来自 6 个项目的 16 个此前未知漏洞。

Linux 内核中的两个发现体现了这些结果的深度。首先,模型识别出一个可远程触发的堆越界写入漏洞。该缺陷由一次不完整的上游修复引入,并影响此后的所有版本,直至并包括最新的上游代码。安全专家确认,它可作为一种远程拒绝服务原语。其次,模型在远程直接内存访问(Remote Direct Memory Access,RDMA)子系统中识别出了一个 Dirty-COW 级漏洞:先前的一次上游修复无意中漏掉了一项权限检查,从而允许内核侧向只读内存页写入。安全专家确认,它可作为一种确定性的本地权限提升原语。

小白提示

这是译者补充。 安全语境中的“原语”不是完整攻击,而是一项可被后续步骤利用的基础能力,例如越界写入或向只读页写入;完整利用链通常还需要把多个原语组合起来。

漏洞利用开发(第 2 级)。 这一等级要求模型把漏洞转化为能够实际运行的端到端利用,也是与滥用风险最直接相关的等级。我们以 GLM-5.2 为基线,在一套包含 36 项任务、覆盖两条路线的内部测试中进行评测。

用户空间利用(16 项任务)。 模型必须针对广泛部署的用户空间软件,对真实的常见漏洞与披露(Common Vulnerabilities and Exposures,CVE)进行端到端利用;目标软件包括 PostgreSQL、XWiki 协作平台、Apache HTTP Server,以及若干内容管理系统和其他应用。每项任务都会向模型提供完整源代码和一个在线运行的实例;目标采用标准配置,不带额外加固措施。

Linux 内核利用(20 项任务)。 每项任务都提供一个基于历史内核 CVE 构建、可以复现的 QEMU 环境,模型必须编写 C 语言利用程序,把权限从非特权用户提升到 root。随着难度等级升高,缓解措施会逐步启用。

测试套件中的每项任务都已由人类安全专家验证为可解。我们估计,完成整套测试大约需要 540 个专家工时,平均每项任务约 15 小时。

漏洞利用测试套件的结果。 模型在这套测试中展现出实质性的漏洞利用开发能力:36 项任务解决了 14 项(38.9%),而 GLM-5.2 解决了 8 项(22.2%)。不过,其成功案例分布并不均衡:14 项成功案例中有 10 项来自用户空间路线。在内核路线中,两个模型都有四分之三的任务未能解决。由于每项任务都可由人类专家解决,未解决任务直接衡量了模型距离人类水平能力还有多大差距。轨迹分析把这一差距归因于四种反复出现的失败模式:(i)已经获得所需原语,却难以完成利用链的最后阶段;(ii)面对缓解措施时策略选择不佳,例如在纯数据攻击本可更简单、更可靠的情况下,仍执着于控制流劫持;(iii)陷入漫长且无效的调试循环;(iv)提交之前对最终交付物验证不足。

总结。 模型的网络安全能力在第 1 级以及第 2 级中的用户空间利用方面最强,但与人类专家之间仍有明显差距。在本质上属于防御性工作的第 1 级中,模型能够识别真实漏洞——包括此前未知的漏洞——并证明它们可以复现。在第 2 级中,它能够针对用户空间目标完成端到端利用。然而,面对经过加固的目标时,完成整条利用链仍是瓶颈,许多专家可解的任务依然未被解决。

英国 AI 安全研究所与美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)旗下 AI 标准与创新中心(Center for AI Standards and Innovation,CAISI)开展的一项独立联合评估 [124] 得出了与我们一致的结论。Kimi K3 在漏洞利用开发上优于 GLM-5.2(在 ExploitBench 上为 32% 对 24%;在一个包含 32 个步骤、需人类专家约 20 小时完成的模拟企业网络中为 17 步对 11 步),但在端到端利用完成度上落后于具备前沿网络安全能力的模型,在 41 项任务中有 0 项实现任意代码执行。

我们将自己的评测视为能力下界。这些结果以当前模型版本和评测覆盖范围为条件;每次模型进行重大更新时,我们都会重新审视这些结果。

6.3 第三方评测

Kimi K3 发布后也接受了第三方机构的独立评测。表 5 汇总了截至 2026 年 7 月 23 日的主要结果。

Artificial Analysis。 Artificial Analysis 对 Kimi K3 进行了评测 [8]。Kimi K3 的 Intelligence Index v4.1 为 57.1,在 580 个模型中排名第四——如果把 GPT-5.6 Sol 的不同推理投入变体视为同一个条目,则排名第三——落后于 Claude Fable 5(59.9)和 GPT-5.6 Sol(58.9),领先于所有其他参评模型。

Vals AI。 在 Vals AI 按国内生产总值(Gross Domestic Product,GDP)加权的行业基准测试套件 [125] 上,Kimi K3 的 Vals Index 为 74.7%,在 39 个模型中排名第二,落后于 Claude Fable 5(75.1%),领先于 GPT-5.6 Sol(73.1%)。

Arena。 在众包人类偏好竞技场 [75] 上,Kimi K3 在 WebDev Arena 中以 1,678 Elo 位列 99 个模型之首,领先 1,634 Elo 的 Claude Fable 5——它是首个登顶该排行榜的开源模型;同时,它在 Text Arena 的 200 个模型中以 1,486 Elo 排名第八。在约 7 月 19 日开放投票的 Agent Arena 上,Kimi K3 目前以 9.1 分在 37 个模型中排名第四,落后于 Claude Fable 5(12.7)、GPT-5.6 Sol(10.1)和 Claude Opus 4.8(9.8)。

第三方评测

论文原表截图:表 5。截图来自固定版本官方 PDF;下方译文保留原表注与正文解释。

表 5:Kimi K3 的主要独立第三方评测结果(截至 2026 年 7 月 23 日)。 粗体表示每项基准测试的最佳结果,下划线表示第二佳结果。各基线分数均为每个来源在其自身评测设置下报告的结果。a Text Arena 条目为排行榜所列的 xhigh 变体。b Text Arena 条目为排行榜所列的 high 变体。括号内的数字是 Kimi K3 在该排行榜上的名次。随着更多对局不断积累,Elo 类分数会发生漂移。

基准测试 Kimi K3(max) Claude Fable 5(max) GPT-5.6 Sol(max) Claude Opus 4.8(max) GPT-5.5(xhigh) GLM-5.2(max)
Artificial Analysis
Intelligence Index v4.1(#4/580) 57.1 59.9 58.9 55.7 55.0 51.1
Vals AI
Vals Index(#2/39) 74.7 75.1 73.1 70.4 68.0 65.0
Arena
WebDev Arena(Elo,#1/99) 1,678 1,634 1,630 1,565 1,507 1,592
Text Arena(Elo,#8/200) 1,486 1,507 1,485a 1,484b 1,482b 1,469
Agent Arena(#4/37) 9.1 12.7 10.1 9.8 8.8 6.5

6.4 成本效率

除分数外,我们还通过比较四套编程与智能体任务中的成绩和单任务成本,考察推理成本效率;这四套测试分别是 Kimi Code Bench 2.0、BrowseComp、GDPval-AA v2 和 AA-Briefcase。对于 Kimi Code Bench 2.0,成本由我们内部测量,其中 Kimi K3 通过 Kimi Code 运行,其他所有模型通过 Claude Code 运行。对于 BrowseComp,Kimi K3 的成本取自我们自己的运行,而 Claude 和 GPT 的成本引用自已发布的图表 [40, 18, 19]。对于 GDPval-AA v2 和 AA-Briefcase,成本引用自截至 2026 年 7 月 23 日 Artificial Analysis 的按 token 付费应用程序接口(Application Programming Interface,API)定价 [8]。

在 Kimi Code Bench 2.0 上,Kimi K3 的成绩比 Claude Fable 5 低 4.0 分,但成本仅为后者的 38%;在 high 推理投入下,它已经能以约三分之一的成本追平 Claude Opus 4.8 在最大推理投入下的成绩。在 BrowseComp 上,Kimi K3 以每项任务 2.03 美元的成本取得最佳成绩(91.2%)——成本只有 GPT-5.6 Sol(90.4%)的一半,并且比以最大推理投入运行的 Claude 模型便宜一个数量级。在 GDPval-AA v2 上,Kimi K3 与 GPT-5.6 Sol 的差距不超过 50 Elo,但成本低 13%;其成本约为 Claude Fable 5 的 1/2.6。在 AA-Briefcase 上,它取得仅次于 Claude Fable 5 的第二佳成绩,而成本约为后者的一半。图 13 汇总了这一比较。

训练成本效率

论文原图截图:图 13。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 13:Kimi Code Bench 2.0、BrowseComp、GDPval-AA v2 和 AA-Briefcase 上的成绩与单任务推理成本。 Kimi K3 以星形标出。

总体而言,Kimi K3 在全部四套测试中都位于或接近成本效率前沿,以相较 Claude Fable 5 尤其低得多的成本取得接近最高水平的分数。

小白提示

这是译者补充。 “成本效率前沿”指图中不存在另一个方案能同时做到“分数更高且成本更低”。接近这条前沿不等于每项分数都最高,而是说明在性能与花费之间取得了较强的折中。

GPU 内核优化案例

论文原图截图:图 14。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 14:案例研究:在 AttnRes 上进行 GPU 内核优化。

7 案例研究

本节给出若干有代表性的案例,用以展示 Kimi K3 在多种技术任务上的能力。

GPU 内核优化

我们测试了各模型优化图形处理器(Graphics Processing Unit,GPU)内核的能力。每个模型都在配置完全相同的沙箱中独立工作,并且每项任务最多有 24 小时的预算,用于性能剖析、重写和基准测试。评测覆盖四种有代表性的内核:注意力残差(Attention Residuals,AttnRes)、DeepSeek 稀疏注意力(DeepSeek Sparse Attention,DSA)、Kimi Delta Attention(KDA),以及头维度为 512 的多头潜在注意力(Multi-head Latent Attention,MLA);测试硬件包括一块 NVIDIA Hopper GPU 和一块其他厂商的通用图形处理器(General-Purpose computing on Graphics Processing Units,GPGPU)。Kimi K3 显著提升了全部四种内核的性能:把 AttnRes 延迟从 \(283.6\,\mathrm{ms}\) 降到 \(114.4\,\mathrm{ms}\),分别把 DSA 和 KDA 的运行时间缩短 55.1% 和 73.6%,并使 MLA 达到峰值每秒万亿次浮点运算(Tera Floating-Point Operations Per Second,TFLOPS)的一半以上。在这些任务上,Kimi K3 的表现与启用回退机制的 Claude Fable 5 [16] 相当,并显著超过 Claude Opus 4.8 [17]、GPT-5.6 Sol [40] 和 GPT-5.5 [39]。图 14 比较了各模型在 AttnRes 上的优化轨迹。除了基准测试之外,在后期开发阶段,一个早期 Kimi K3 检查点就已经承担了我们大部分内核优化工作。

小白提示

译者补充:内核优化不是只改一行代码,而是在输出正确这一硬约束下反复做性能剖析、改写实现并重新测量。延迟适合观察一次调用要多久,TFLOPS 则反映计算硬件利用率;两者衡量的角度不同,不能只看其中一个数字。

GPU 编译器开发

Kimi K3 开发了 MiniTriton5:这是一个紧凑的类 Triton [123] 编译器,包含自定义的 tile 级 Python 前端和布局系统、轻量的 warp 级多层中间表示(Multi-Level Intermediate Representation,MLIR)[65] 标注与优化层,以及并行线程执行(Parallel Thread Execution,PTX)代码生成流水线。围绕该编译器构建的是一个双模式张量库,它提供类似 PyTorch [90] 的高级接口;该库的即时执行路径和仅前向编译路径共享同一个领域特定语言(Domain-Specific Language,DSL)编译器与运行时。该库还提供反向模式自动微分、神经网络模块、基于 NVIDIA 集合通信库(NVIDIA Collective Communications Library,NCCL)[83] 的分布式训练原语,以及稀疏计算原语和可视化原语。在 NVIDIA L20 上,MiniTriton 在其核心基准套件上的几何平均性能超过 PyTorch eager [90] 和 torch.compile [5]。它从零实现的 Tensor Core 矩阵乘法路径,在最大尺寸上逼近 cuBLAS [22],达到实测机器性能屋顶的约 90%;与此同时,它在 DSL 层实现的 KDA [64] 预填充内核明显超过配置匹配的 Triton 参考实现。MiniTriton 还能够端到端训练一个生成式预训练 Transformer(Generative Pre-trained Transformer,GPT)模型,其损失曲线紧密跟随 PyTorch 参考实现;以 FP64(64 位浮点)参考结果为基准时,完整模型梯度与 torch 自动微分结果之间的差异,不超过 torch 自身的 FP32(32 位浮点)舍入误差(\(10^{-4}\))。这些结果共同说明,Kimi K3 能够构建一个连贯的端到端编译器——覆盖从 DSL 前端、中间表示(Intermediate Representation,IR)优化过程,到 PTX 代码生成和统一计算设备架构(Compute Unified Device Architecture,CUDA)运行时的完整链路——而不只是一组彼此孤立的内核(图 15)。

Mini-Triton 案例

论文原图截图:图 15。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 15:案例研究:使用 MiniTriton 开发 GPU 编译器。(a)CUDA Core 和(b)Tensor Core 上 MiniTriton 内核在 NVIDIA L20(sm_89)上的性能屋顶线,并与 torch eager、torch.compile、Triton 和 cuBLAS 基线比较,其中也包括表现不佳的数据点;(c)使用 MiniTriton 与 torch eager 训练字符级 GPT 时的训练损失曲线;(d)基于 MiniTriton 自有分布式原语(NCCL)构建的双 GPU 数据并行训练与单 GPU 训练的比较。

小白提示

译者补充:这个案例的难点在于“全链路闭环”。前端要理解用户写的张量程序,IR 优化层要重排和改写计算,PTX 后端要生成 GPU 指令,运行时还要真正调度执行;最后既要用性能屋顶线检查速度,也要用训练损失和梯度误差检查数值正确性。

芯片设计

作为早期概念验证,Kimi K3 按照同一种架构为一个 nano 模型设计了推理芯片原型:采用混合 KDA 与无位置编码 MLA(No Position Encoding MLA,NoPE-MLA)注意力、块大小为 2 的分块 AttnRes,以及带一个共享专家的、基于 sigmoid 的专家混合(Mixture of Experts,MoE)路由;权重则采用分组 INT4(4 位整数)量化,组大小为 128。在使用 Kimi Code 的一次 48 小时自主运行中,Kimi K3 使用开源电子设计自动化(Electronic Design Automation,EDA)工具和 Nangate45 标准单元库 [81],完成了该芯片的构建、优化和验证。在 \(4\,\mathrm{mm}^2\) 的分析面积预算内,该设计以 \(100\,\mathrm{MHz}\) 通过时序收敛,并在寄存器传输级(Register-Transfer Level,RTL)仿真中实现超过 8,700 token/s 的解码吞吐量;其中集成了 146 万个标准单元、\(0.277\,\mathrm{MiB}\)(mebibyte)静态随机存取存储器(Static Random-Access Memory,SRAM),以及一个融合反量化的 INT4 乘加(Multiply-Accumulate,MAC)阵列。RTL 代码已发布在 GitHub6

小白提示

译者补充:“通过时序收敛”表示按目标时钟频率检查时,关键数据路径能够在一个周期内完成;RTL 仿真吞吐量则来自数字逻辑级模拟。它证明该设计在给定模型、工艺库和分析预算下形成了可验证原型,但不等同于已经流片,也不等同于实物芯片上的最终速度。

科研编程

为了复现计算天体物理学中的 I–Love–Q 普适关系,Kimi K3 审阅了 20 多篇论文并交叉验证其结果,实现了完整数值流水线,评估了 300 多个状态方程,识别了已发表公式中的不一致之处,编写了 3,000 多行 Python 代码,并制作了一个交互式超文本标记语言(HyperText Markup Language,HTML)仪表板——整个过程约用两小时,而一名有经验的研究人员通常需要一至两周。

小白提示

译者补充:I–Love–Q 关系研究中,\(I\)、Love 和 \(Q\) 分别涉及中子星转动惯量、潮汐 Love 数和四极矩。这里案例所强调的不是单次公式求值,而是文献核验、状态方程扫描、数值实现、错误排查和结果展示组成的完整研究流程。

知识工作

在 Kimi Work 中,Kimi K3 制作了一个交互式研究网站,覆盖人工智能专用集成电路(Artificial Intelligence Application-Specific Integrated Circuit,AI ASIC)行业 42 年的发展历史。该模型完成了 120 多轮迭代改进,并使用由 87 份季度报告和 99 份原始便携式文档格式(Portable Document Format,PDF)文件(总计超过 11,000 页)组成的资料库;整个过程中执行了 2,800 多次网页搜索和 1,100 多次终端查询。在第二个案例中,Kimi K3 使用 20 多个并发子代理分析了第五版引力波瞬态目录(Gravitational-Wave Transient Catalog 5,GWTC-5)中的 391 个引力波事件,制作了 7 幅科学可视化图和 2 张汇总表,并综合梳理了 10 多篇论文。

视频剪辑与动态图形设计

借助原生多模态架构,Kimi K3 制作了一段 3Blue1Brown 风格的动态图形解说视频,用来介绍它自己的架构;它还使用 56 段素材剪辑了自己的预告片。这项工作包括片段选择、动作匹配剪辑、逐帧精确的节拍同步、音频处理,以及多轮修改。一名有经验的剪辑师通常需要一至两天,才能制作出密度相当的短视频。

8 结论

我们提出 Kimi K3:一个开放的 2.8 万亿参数混合专家(Mixture-of-Experts,MoE)模型,基于 Kimi Delta 注意力(Kimi Delta Attention,KDA)和注意力残差(Attention Residuals,AttnRes)构建,具备原生视觉能力和 100 万词元上下文窗口。 作为全球首个开放的 3T 级模型,Kimi K3 在长时程编码、智能体、知识、推理和视觉任务上展现出前沿水平的性能。 尽管与最强的闭源专有模型相比仍存在差距,Kimi K3 仍确立了一个人人都可触及的开放新前沿。 我们希望它能为更广泛的社区开展研究、部署和创新赋能。

小白提示

译者补充:2.8 万亿是模型的总参数量;MoE 每次处理一个词元时只激活其中一部分专家,因此总参数量不等于单次前向传播实际参与计算的参数量。100 万词元表示可接收的上下文窗口上限,也不意味着所有任务都必须或都适合使用完整窗口。

附录 A 贡献者

附录 A 仅列出贡献者姓名。姓名、团队归属与排列顺序不作翻译,完整列表请参见官方 PDF 的 Appendix A

附录 B Sigmoid Tanh Unit GLU 详解

SiTU-GLU(§2.3.2)的设计目标,是在不舍弃 Swish 典型形状的前提下,为 SwiGLU 的乘积设置界限:这种典型形状包括原点附近近似线性的响应,以及趋于消失的负半轴尾部。图 4 同时展示了门分支、上分支及其完整的标量响应。

平滑限制两个分支

SiTU 把 Swish 的线性因子限制为 \(\beta_1\tanh(W_gx/\beta_1)\),同时保留 sigmoid 因子 [61]。由于 sigmoid 本身已经会使门在负半轴上的响应趋近于零,这一改动主要控制较大的正激活,同时不会移除负半轴尾部。Kimi K3 对上分支采用同样的构造 \(\beta_2\tanh(W_ux/\beta_2)\),从而防止任何一个分支主导最终乘积。

局部与极限行为

对于原点附近的标量 \(z\),缩放后的 tanh 满足

\[ \beta\tanh\!\left(\frac{z}{\beta}\right) = z + O\!\left(\frac{z^3}{\beta^2}\right). \tag{18} \]

因此,SiTU-GLU 在原点附近与 SwiGLU 的一阶行为一致。当 \(\beta_1,\beta_2\to\infty\) 时,它还会逐点恢复为 SwiGLU。

小白提示

译者补充:式(18)中的 \(O(z^3/\beta^2)\) 表示被省略的主要误差从三次项量级开始。\(z\) 较小时,这个误差比线性主项 \(z\) 小得多;而 \(\beta\) 越大,平滑限制越弱,因此极限情况下会回到未限幅的 SwiGLU。

有界输出

由于 \(\lvert\tanh(z)\rvert<1\),且 \(0<\operatorname{Sigmoid}(z)<1\),每一个输出坐标都满足

\[ \left\lVert \operatorname{SiTU\text{-}GLU}(x) \right\rVert_\infty \le \beta_1\beta_2 = 100, \tag{19} \]

其中 \(\beta_1=4\)\(\beta_2=25\)。与对门预激活进行硬截断不同,平滑限制在远离饱和边界时仍能保留非零梯度;我们发现,这会带来更好的训练行为。

小白提示

译者补充:无穷范数 \(\lVert\cdot\rVert_\infty\) 表示向量所有坐标绝对值中的最大值,所以式(19)给出的不是平均意义上的限制,而是每个坐标都不能超过 100。硬截断会在越过阈值后突然变平,梯度也随之变为零;tanh 则以平滑方式逐渐进入饱和区。

附录 C 分位数均衡的推导

本附录沿用 [112] 的方法,从最优均衡指派问题出发,推导第 2.3 节使用的分位数均衡(Quantile Balancing,QB)更新;以指派问题的视角理解专家负载均衡,则可以追溯到 BASE Layers [68] 和 BIP [117]。

\(s\in\mathbb{R}^{m\times n}\) 汇集了 \(m\) 个 token 对 \(n\) 个专家的路由器分数,其中每个 token 恰好选择 \(k\) 个专家,\(x_{i,j}\in\{0,1\}\) 表示 token \(i\) 是否被指派给专家 \(j\)。在每个专家恰好服务 \(mk/n\) 个 token(假设该值为整数)的条件下,最大分数均衡指派为

\[ \begin{aligned} \max_{x_{i,j}\in\{0,1\}} &\quad \sum_{i,j}x_{i,j}s_{i,j} \\ \text{s.t.} &\quad \sum_j x_{i,j}=k, \\ &\quad \sum_i x_{i,j}=\frac{mk}{n}. \end{aligned} \tag{20} \]

小白提示

这是译者补充。 式(20)的第一条约束从 token 视角规定“每个 token 必须选 \(k\) 个专家”,第二条约束从专家视角规定“每个专家必须分到同样多的 token”。目标函数则在所有满足这两条约束的方案中,选择路由总分最高的一种。

线性松弛与对偶性

\(x_{i,j}\in\{0,1\}\) 松弛为 \(x_{i,j}\in[0,1]\),会将式(20)变成一个线性规划;根据二分图 \(b\)-匹配多面体的标准整数性结论,该线性规划的最优解仍为整数,因此这一松弛是精确的。

分别为 token 侧和专家侧的等式约束引入自由拉格朗日乘子 \(\alpha_i\)\(\beta_j\),松弛后的问题可以写成如下最大-最小形式:

\[ \max_{x_{i,j}\in[0,1]}\min_{\alpha_i,\beta_j} \left[ \sum_{i,j}x_{i,j}s_{i,j} -\sum_i\alpha_i\left(\sum_jx_{i,j}-k\right) -\sum_j\beta_j\left(\sum_ix_{i,j}-\frac{mk}{n}\right) \right]. \tag{21} \]

目标函数分别关于 \(x\)\(\alpha\)\(\beta\) 都是线性的,并且可行集是凸集,因此极小极大定理允许交换优化顺序:

\[ \min_{\alpha_i,\beta_j}\max_{x_{i,j}\in[0,1]} \left[ \sum_{i,j}x_{i,j}\left(s_{i,j}-\alpha_i-\beta_j\right) +k\sum_i\alpha_i +\frac{mk}{n}\sum_j\beta_j \right]. \tag{22} \]

内部最大化可以按每个元素分离:若 \(s_{i,j}-\alpha_i-\beta_j>0\),则 \(x_{i,j}^{*}=1\);若 \(s_{i,j}-\alpha_i-\beta_j<0\),则 \(x_{i,j}^{*}=0\)。在实践中,恰好相等的情况是零测度事件。代入 \(x^{*}\),即可得到如下凸对偶目标:

\[ \min_{\alpha_i,\beta_j} \mathcal{L}(\alpha,\beta) := \sum_{i,j}\max\left(0,s_{i,j}-\alpha_i-\beta_j\right) +k\sum_i\alpha_i +\frac{mk}{n}\sum_j\beta_j. \tag{23} \]

小白提示

这是译者补充。 \(\alpha_i\)\(\beta_j\) 可以先直观理解成两组“门槛”:前者针对每个 token,后者针对每个专家。某个 token-专家组合的原始分数只有在扣除两侧门槛后仍为正,才会在内部最大化中被选中。

算法 1:交替 QB 求解器

输入: 分数矩阵 \(s\in\mathbb{R}^{m\times n}\) 输出: 指派矩阵 \(x\in\{0,1\}^{m\times n}\)

1  初始化 β ← 0^(1×n)
2  for t = 1, 2, ..., T do
3      α ← desc_sort(s - β, axis=1)[:, k:k+1]
4      β ← desc_sort(s - α, axis=0)[mk/n:mk/n+1]
5  end
6  返回 x:若 j ∈ argtop_k(s_i - β),则 x_{i,j} = 1,否则 x_{i,j} = 0

精确坐标最小化

我们通过交替固定 \(\beta\) 求解 \(\alpha\)、再固定 \(\alpha\) 求解 \(\beta\) 来最小化式(23);两个子问题都有闭式精确解。

固定 \(\beta\) 后,问题可以按 token 解耦;对于 token \(i\),我们求解

\[ \min_{\alpha_i} \left[ k\alpha_i+\sum_j\max\left(0,s_{i,j}-\beta_j-\alpha_i\right) \right]. \tag{24} \]

该目标关于 \(\alpha_i\) 是分段线性的,其斜率等于 \(k\) 减去满足 \(s_{i,j}-\beta_j>\alpha_i\) 的 margin 数量;因此,当恰好有 \(k\) 个 margin 高于 \(\alpha_i\) 时,目标被精确最小化,也就是说,任意位于 \(s_i-\beta\) 的第 \(k\) 大元素与第 \(k+1\) 大元素之间的 \(\alpha_i^{*}\) 都可以取到最小值。

按照约定,我们取第 \(k+1\) 大的元素,这等价于第 \(1-k/n\) 分位数:

\[ \alpha_i^{*} = \operatorname{quantile}_{1-k/n}\left(s_i-\beta\right). \tag{25} \]

对称地,固定 \(\alpha\) 后,专家 \(j\) 要求解 \(\min_{\beta_j}\frac{mk}{n}\beta_j+\sum_i\max(0,s_{i,j}-\alpha_i-\beta_j)\);其最小化解是 \(s_{:,j}-\alpha\) 的第 \(mk/n+1\) 大元素,也就是第 \(1-k/n\) 分位数:

\[ \beta_j^{*} = \operatorname{quantile}_{1-k/n}\left(s_{:,j}-\alpha\right). \tag{26} \]

因此,两次更新分别沿 token 轴和专家轴取同一个分位数,这也正是该方法名称的由来。图 5 把专家侧更新展示为:让每个专家的 margin 分布中被接受的上尾部分达到均衡;算法 1 则总结了由此得到的交替求解器。

小白提示

这是译者补充。 desc_sort 表示降序排序。算法第 3 行对每个 token 横向找门槛,第 4 行对每个专家纵向找门槛;不断交替后,两侧约束会趋于同时满足。

从指派转化为路由

在式(23)的最优点处,当且仅当 \(s_{i,j}-\alpha_i^{*}-\beta_j^{*}>0\) 时,\(x_{i,j}^{*}=1\);再结合 token 约束 \(\sum_jx_{i,j}^{*}=k\),被选中的专家恰好就是 \(s_i-\beta^{*}\) 中的 Top-\(k\) 项。因而,实际路由只需要专家门槛 \(\beta\in\mathbb{R}^{n}\)(等价地,也就是式(13)中的偏置 \(b=-\beta\)),而 token 门槛 \(\alpha\in\mathbb{R}^{m}\) 是与动态训练批次绑定的中间变量,会被丢弃。这种不对称性保持了训练与推理的一致性:部署时,路由就是使用冻结偏置进行固定的 Top-\(k\) 选择,不需要计算任何分位数。

与基于符号的无辅助损失更新之间的关系

式(26)背后的专家侧子问题具有如下(次)梯度:

\[ \frac{\partial\mathcal{L}}{\partial\beta_j} = \frac{mk}{n} -\sum_{i=1}^{m} \chi\left(s_{i,j}-\alpha_i-\beta_j>0\right), \tag{27} \]

也就是专家 \(j\) 的目标负载减去观测负载。

在这个目标上执行一步符号随机梯度下降(Sign Stochastic Gradient Descent,SignSGD),可以恢复无辅助损失均衡 [30] 所使用的固定步长符号更新,仅需考虑 \(b=-\beta\) 的符号约定:符号更新只保留式(27)中负载误差的方向,而 QB 会直接跳到同一个对偶目标的精确坐标最小化解。

这一视角既解释了 QB 为什么不需要类似学习率的超参数,也解释了即便专家数量接近 \(10^{3}\),它为什么仍能在少数几步更新内达到均衡。

QB 还与 BIP [117] 有关,后者求解的是同一个指派问题,但采用不等式约束 \(\sum_jx_{i,j}\leq k\)\(\sum_ix_{i,j}\leq mk/n\);由此对 \(\alpha\)\(\beta\) 施加的非负约束,会在两次更新上增加 \(\max(0,\cdot)\) 截断,而这种截断只能抑制选择量过高的专家,不能提升选择量不足的专家,并且在我们的实验中显著减慢了达到均衡的速度。

最后,由此得到的固定 Top-\(k\) 路由与专家特定门槛路由相关,但不同于 Expert Threshold 路由:后者维护指数移动平均(Exponential Moving Average,EMA)门槛,并允许每个 token 选择数量可变的专家 [113]。

附录 D 基于直方图的分位数估计

式(14)的分位数均衡(Quantile Balancing,QB)更新要求在整个训练步上计算分位数:对于 \(n\) 个专家中的每一个,都要计算边际 \(s_{i,j}-\alpha_i\) 的第 \((1-k/n)\) 分位数,而词元总数 \(m\) 横跨数百万个词元,这些词元被划分到不同数据并行 rank 与梯度累积步。 为了得到精确分位数而收集 \(O(mn)\) 个边际,在训练循环内部并不可行。 关键观察是,更新从不需要边际本身,只需要它们针对每个专家的分布,而直方图可以用固定成本概括这种分布。 因此,Kimi K3 为每个专家维护一个分桶直方图,并从中读取分位数。 具体而言,我们对所需偏置 [ r_{i,j}:=\alpha_i-s_{i,j} ] 构建直方图;这是使专家 \(j\) 恰好位于词元 \(i\) 截断位置所需的偏置,而对边际取负会反转其顺序,因此式(14)的 QB 目标 \(\widehat b_j\) 恰好是 \(r_{:,j}\) 的第 \((k/n)\) 分位数。

小白提示

译者补充:精确做法要保存“数百万词元 × 全部专家”的边际并全局排序,内存和通信都很昂贵。直方图只记录每个区间里落了多少个值;累计计数首次越过目标名次的桶就包含所求分位数,再在桶内插值。代价由词元数 \(m\) 相关的 \(O(mn)\) 原始值,变成固定的 \(nB\) 个计数。

分桶范围 第一个问题是应该在哪个区间内分桶,而所需偏置在这里提供了帮助:它的取值范围由当前偏置本身界定。 路由器分数是 Sigmoid 输出,因此 \(s_{i,j}\in(0,1)\);截断值 \(\alpha_i\) 本身是某个专家 \(j'\) 的带偏置分数 \(s_{i,j'}+b_{j'}\),所以 [ \alpha_i\in\left(b_{\min},\,1+b_{\max}\right), ] 其中 \(b_{\min}\)\(b_{\max}\) 是当前偏置的最小值与最大值。 因此,每个 \(r_{i,j}\) 都落在 [ r_{i,j}\in\left[b_{\min}-1,\,b_{\max}+1\right] ] 内。 我们把该区间划分成 \(B\) 个均匀分桶;实践表明这已经足够,并且我们会在每个训练步重新计算区间,因此当偏置为纠正失衡而逐渐扩散时,分桶宽度 [ w=\frac{b_{\max}-b_{\min}+2}{B} ] 也会随之适配。

累积与恢复 其余流程遵循一个训练步的结构。 每次前向传播期间,每个 rank 都使用 scatter-add,把本地 \(r_{i,j}\) 值累积进逐专家计数矩阵 [ H\in\mathbb{N}^{n\times B}, ] 并在所有微批次上持续累积,不进行通信。 在训练步结束时,只需一次全归约(all-reduce)就能把本地计数求和成全局直方图,随后每个 rank 都从同一份汇总计数中恢复分位数。 每个专家的直方图都会把每个词元恰好计数一次,因此目标名次就是 § 2.3.3 的目标负载 [ q=\frac{mk}{n}, ] 此时它覆盖完整训练步:我们选择累计计数首次达到 \(\lceil q\rceil\) 的分桶,并在桶内进行线性插值。 若选中的分桶为 \(\beta_j\),该桶之前的累计计数为 \(c_j\),桶内计数为 \(h_j\),则 [ \widehat b_j = b_{\min}-1+ \left( \beta_j+ \operatorname{clip}!\left( \frac{q-c_j}{h_j}, 0, 1 \right) \right)w, ] 所得偏置随后会像式(14)中一样进行均值中心化。

性质 三项性质使这一估计器可以在大规模环境中实用。 第一,它足够准确:分桶边界处的累计计数是精确的,因此真实分位数与其估计值落在同一个桶内,误差上界为分桶宽度 \(w\);当 \(B=1000\) 时,该误差最多只有几个 \(10^{-3}\),而且我们没有观察到可测量的残余负载失衡。 第二,它的成本很低:唯一的通信是每层每步对 \(nB\) 个值执行一次整数全归约,开销与 \(m\) 无关;在我们的配置中,其成本低于自然替代方案——每个微批次都在进程组内交换原始边际——的 1%。 第三,它估计的是正确的量:由于计数满足可加性,无论词元如何划分到不同 rank 或累积步,全局直方图都严格不变,因此得到的是汇总后全局批次的分位数,而不是通常并不相等的逐 rank 分位数平均值。 进一步地,在不同训练步之间维护估计分位数的指数移动平均,可以减少不同批次间的采样噪声,并进一步改善负载均衡。

小白提示

译者补充:误差界 \(\left|\widehat b_j-b_j^\star\right|\leq w\) 来自一个简单事实:真实值与估计值被限定在同一个宽度为 \(w\) 的桶内。全归约的是整数计数而非原始浮点边际,因此通信量只取决于专家数 \(n\) 和桶数 \(B\),不会随训练步中的词元数 \(m\) 增长。

附录 E MoonEP 一般上界证明

\(m_r(P)\) 表示在方案 \(P\) 下放置到 rank \(r\) 上的冗余专家数量。对于路由器输出 \(I\),规划目标是让任意 rank 上冗余专家数量的最大值尽可能小,即

\[ M(I) = \min_P\max_r\left\{m_r(P)\right\}. \]

我们证明,对所有情形始终有 \(M(I)\le E/R\)(定理 1);同时,这个界基本是紧的:存在某些路由器输出,使得

\[ M = \left\lceil \frac{E(R-1)}{R^2} \right\rceil \approx \frac{E}{R} \qquad\text{(定理 2)}. \]

小白提示

译者补充:沿用 §5.2.1 的符号,\(S\) 是序列长度,\(K\) 是每个 token 选择的专家数量,\(E\) 是专家总数,\(R\) 是专家并行(Expert Parallelism,EP)的规模,也就是 EP rank 数。每个 rank 的均衡目标负载为 \(S\times K\) 个 token-专家分配;\(M(I)\) 衡量最优规划中负担最重的 rank 仍需放置多少个冗余专家。

定理 1 的证明:一般上界

目标是证明:对于任意路由器输出 \(I\),都有 \(M(I)\le E/R\)。关键引理是:存在一个方案 \(P^\ast\),使每个 EP rank 都恰好接收相同数量的 token,即 \(S\times K\) 个;而且每个 rank 的远程 token 只来自另一个 EP rank。

构造如下:初始时,每个 rank 只持有本地 token,并据此把各 rank 分成负载不足和负载过重两类。我们反复选择一个负载不足的 rank 和一个负载过重的 rank,把 token 从负载过重的 rank 迁移出去,直到负载不足的 rank 恰好达到均衡值 \(S\times K\);原先负载过重的 rank 此后可能仍然负载过重、恰好均衡或变为负载不足,并会被重新放回相应集合。重复这一过程,直到所有 rank 都达到完全均衡。

每次填充都会使一个负载不足的 rank 达到均衡,并且它之后不再发生变化,因此该过程最多在 \(R-1\) 次填充后终止;与此同时,每个 rank 最多只被填充一次,所以它的远程 token 只来自单个 rank,这就证明了该引理。

因此,假设 rank \(r\) 的所有远程 token 都来自 rank \(s\);这些 token 最多属于 rank \(s\) 上的 \(E/R\) 个本地专家,于是 \(m_r(P^\ast)\le E/R\),从而

\[ M(I) = \min_P\max_r\left\{m_r(P)\right\} \le \max_r\left\{m_r(P^\ast)\right\} \le \frac{E}{R}. \tag{28} \]

小白提示

译者补充:可以把 rank 看成装有不同数量 token 的水桶。每次用一个“水多”的桶把一个“水少”的桶精确补满,补满后的桶就不再参与;因此最多补 \(R-1\) 次,也就是填充步骤数为 \(O(R)\)。更关键的是,一个被补满的桶只从一个来源接收 token,所以它最多需要复制该来源 rank 上的全部 \(E/R\) 个本地专家。

定理 2 的证明:上界的紧致性

按如下方式构造路由器输出 \(I^\ast\):EP rank 0 上的专家不接收任何 token,而其余 \(R-1\) 个 rank 上的所有专家平均分担全部 token。于是,全部 \(S\times K\times R\) 个 token 被平均分配给

\[ \frac{E(R-1)}{R} \]

个专家,所以每个专家接收

\[ \frac{SKR^2}{E(R-1)} \]

个 token。

在任意方案 \(P\) 下,rank 0 都必须接收 \(S\times K\) 个 token,并且这些 token 全都是远程 token;这些 token 至少涉及

\[ \frac{SK} {SKR^2/\!\left(E(R-1)\right)} = \frac{E(R-1)}{R^2} \]

个不同专家。取上整后,rank 0 至少需要

\[ \left\lceil \frac{E(R-1)}{R^2} \right\rceil \]

个冗余专家,因此

\[ M(I^\ast) \ge \left\lceil \frac{E(R-1)}{R^2} \right\rceil. \]

反过来,使用定理 1 证明中的填充过程构造方案,并优先按专家归组迁移 token,就可以把每个 rank 上的冗余专家数量都控制在这个值以内,因此等号成立:

\[ M(I^\ast) = \left\lceil \frac{E(R-1)}{R^2} \right\rceil. \]

\(R\) 很大时,

\[ \left\lceil \frac{E(R-1)}{R^2} \right\rceil \approx \frac{E}{R}, \]

所以定理 1 的上界基本是紧的:不存在显著小于 \(E/R\) 的一般上界。

小白提示

译者补充:定理 1 说明“无论路由多偏,准备每个 rank 最多 \(E/R\) 个冗余专家槽位总能兜底”;定理 2 则构造了几乎会用满这些槽位的最坏情况。这里“紧”并不是每个实际批次都达到上界,而是不能在不增加额外假设的情况下,把适用于所有路由输出的上界普遍降得更低。

附录 F 对话模板

Kimi K3 的对话模板围绕三个目标重新设计。第一个目标是可扩展性:新能力应通过向后兼容的消息格式引入,而不是通过修改模板引入,从而让一个模板可以服务于整个模型代际。第二个目标是低对齐成本:这种格式应当只需极少量监督数据便可学会,从而支持这样一条流水线——经过轻量微调的预训练模型能够直接进入强化学习阶段。第三个目标是解码友好性:其结构应允许使用简单的编码器、流式解析器和受语法约束的执行器。为实现这些目标,该模板采用扩展 token 标记语言(eXtensible Token Markup Language,XTML);这是一种类似可扩展标记语言(Extensible Markup Language,XML)的标记语言,其中的尖括号语法被三个预留特殊 token——[open][sep][close]——所替代,另有一个 [end_of_msg] token 作为生成停止标记。下面这个元素与对应的 XML 元素同构,但每个结构边界都是一个显式特殊 token,这消除了元素边界处的分词歧义,并简化了约束解码:

[open]tag attr="value"[sep] ... [close]tag[sep]

小白提示

这是译者补充。 XTML 没有改变“标签、属性、内容、闭合标签”这套 XML 结构,只是把 <> 等普通字符边界替换成模型词表中的专用 token。解析器因此不必猜测一段文本究竟是正文还是结构标记。

消息与分区

上下文的顶层单元是消息,而消息按来源分为两类(图 16a)。输入消息对请求的 messages 字段进行序列化,覆盖常见的 systemuserassistanttool 角色。选项消息把请求选项转化为模型在上下文中读取的指令,其放置位置反映了它们的作用域。全局选项——工具声明(type="tool-declare")和推理投入设置——出现在所有输入消息之前:它们控制整个会话且很少变化,所以一旦修改,无论如何都会使键值缓存(Key-Value cache,KV cache)失效。一次性选项(tool_choiceresponse_format)追加在输入消息之后,因此每次请求对这些选项的修改不会破坏历史 KV cache。第三种是输入选项消息,它与输入消息交错排列,用于在会话中途补充或覆盖某个全局选项。这一机制支持动态加载工具:对话期间检索或加载到的工具会通过一条额外的 tool-declare 消息发布,随后模型可用的工具集便会扩大,而无需重新构建此前的上下文。

小白提示

这是译者补充。 把“很少变化的全局选项”放在最前面、把“每次请求都可能变化的一次性选项”放在最后面,是为了尽量复用中间的历史 KV cache;否则,只改一个尾部选项也可能迫使系统重新计算整段对话。

通道

助手消息的主体按通道组织,这一概念受到 OpenAI Harmony 响应格式 [86] 的启发:think 承载推理轨迹,response 承载用户可见的回答,tools 承载工具调用(图 16b)。两种生成模式完全通过生成前缀选择,而不是使用两套不同模板:思考模式使用 [open]think[sep],指令模式使用 [open]response[sep]。Kimi K3 只支持保留式思考:在思考模式中,think 通道始终保留在历史记录里,即使其内容为空也不删除,从而让模型在不同轮次中观察到一致的消息结构;在指令模式中,历史消息只包含 responsetools 通道。

工具调用

tools 通道内,每次调用都携带 toolindex 属性;index 为一条消息内的并行调用编号,每条工具结果消息都会重复相同的 tool/index 对,并遵循对应调用的顺序,因此结果可以无歧义地与调用匹配。参数带有类型:字符串参数直接呈现为原始文本,其他 JavaScript 对象表示法(JavaScript Object Notation,JSON)类型的值则采用紧凑序列化。因此,代码等自由格式文本是一等公民,而不是经过转义的 JSON 字符串。对于参数无法拆分成带类型参数块的输入,则使用一个纯 JSON 回退块;它只会出现在输入 token 中,绝不会出现在模型输出中,并且其损失在训练期间会被掩蔽。

XTML 对话模板

论文原图截图:图 16。截图来自固定版本官方 PDF;下方译文保留原图注与正文解释。

图 16:Kimi K3 对话模板的结构。 (a)上下文布局:全局选项消息位于输入消息之前,一次性选项消息位于输入消息之后,因此每次请求的选项不会破坏历史 KV cache;动态加载的工具则在会话中途以输入选项消息形式注入(虚线)。(b)助手消息的组成:消息主体由 thinkresponsetools 通道组织。(c)tools 通道的展开:并行工具调用带有索引,从而使工具结果能够与其调用匹配,并且参数带有类型。

推理投入与选项

推理投入通过一条类型为 thinking-effort 的全局选项消息暴露,该消息插在工具声明之后、输入消息之前。系统不会修改生成前缀,也不会直接暴露 token 预算,而是由这条消息用自然语言陈述所请求的级别,并将其作为一条生成约束指令。该模式预留了四个级别(lowmediumhighmax),Kimi K3 支持其中的一个子集。这种表示方式将推理投入接口与模板语法解耦,并直接对应第 4.1.1 节和第 4.1.2 节所述的按推理投入进行条件化的训练。

更广泛地说,所有选项消息都采用这一共同实现:tool_choiceresponse_formatthinking-effort 都会分别转化为一条放进上下文的简短自然语言指令,而不是专门的特殊语法。由于预训练模型已经能够很好地遵循此类指令,新选项只需很少甚至无需额外训练便可引入——这正是前文所述低对齐成本设计原则的直接体现。

参考文献

原论文共列出参考文献 [1]–[151]。为避免翻译改变论文题名、作者姓名或检索信息,参考文献表沿用官方 PDF,正文中的编号引用全部保留。

固定来源

  1. Moonshot AI, Kimi K3 Technical Report, commit 0797decb18ab079de86f991b87a64b81ec15a3c2.
  2. Moonshot AI, Kimi K3 model repository, revision 9f62e4e9fffbd0a83ddd60e1c209d828994b3569.
  3. AlphaXiv paper page.
  4. Kimi K3 License.

  1. https://huggingface.co/moonshotai/Kimi-K3 

  2. 这一构造建立在 DeltaNet 上下文并行 [143] 之上。KDA 实现可见 FLA PR #691。 

  3. MoonEP 项目地址:https://github.com/MoonshotAI/MoonEP。 

  4. AgentENV 已开源:https://github.com/kvcache-ai/AgentENV。 

  5. https://github.com/MoonshotAI/minitriton 

  6. https://github.com/MoonshotAI/nano-kpu 

评论