Kimi K3: Open Frontier Intelligence

发表时间: 2026-07 · Tech report by Moonshot AI (github.com/MoonshotAI/Kimi-K3)

原文: https://github.com/MoonshotAI/Kimi-K3

KIMI K3:开放的前沿智能
作者/机构: Kimi Team

速读

一句话结论 本文推出了拥有2.8T参数和1M上下文窗口的原生多模态MoE模型Kimi K3,通过架构创新和强化学习,在将预训练规模扩展到前沿水平的同时提升了测试时计算能力,其综合性能逼近最强的专有模型。

要解决什么问题 开源大语言模型在测试时计算上进展迅速,但预训练规模大多停留在1T参数级别,导致与最强专有系统的差距日益扩大。要将预训练基础模型扩展到前所未有的3T参数级别,并在1M上下文长度下扩展强化学习与长程交互,原有的做法面临多维度的机制卡点。首先,传统的softmax注意力在处理百万令牌时键值缓存会无限增长,导致显存溢出和计算瓶颈。其次,在极度稀疏的混合专家架构中,将通道混合扩展到近千个专家会引发路由分支的内部激活爆炸,且传统的无辅助损失偏置更新方法无法处理如此大规模的专家负载均衡。在多模态融合方面,依赖对比预训练模型初始化视觉编码器会导致联合优化时的梯度范数持续偏高并伴随频繁尖峰,引发训练不稳定。最后,在系统层面,传统的专家并行方案会导致计算节点间的令牌负载不平衡,引发严重的显存碎片化;而长上下文强化学习中的多步展开也会带来极高的尾部延迟和外部键值缓存池的读写冲突。

怎么做的 核心思路是沿序列长度、网络深度和模型宽度三个维度重构信息流,并辅以算法与系统的协同设计。在序列维度,模型采用混合注意力机制,将Kimi Delta Attention与Gated MLA按3:1交替。KDA通过分块并行的递归更新机制压缩历史信息,其核心是将衰减因子通过缩放的sigmoid函数设定下界: $$ \pmb{\mathscr{g}}_t^h = g_{\min} \mathrm{Sigmoid} \bigl( e^{A_h} \pmb{z}_t^h \bigr) \in (g_{\min}, 0)^{d_k} $$ 这使得累积衰减的倒数保持在有限的动态范围内,从而允许所有因果瓦片使用密集的Tensor Core矩阵乘法,彻底消除了对角线位置对计算的瓶颈;而MLA层则应用无位置编码以避免扩展上下文时修改位置参数。在深度维度,引入块注意力残差,每一层通过学习到的伪查询选择性地从先前所有块的输出中检索表示,打破了传统残差连接的深度信息瓶颈。在宽度维度,采用Stable LatentMoE,包含896个路由专家。为抑制激活爆炸,设计了SiTU-GLU激活函数,对门控和上行分支均应用平滑上限函数,在保留局部线性响应的同时限制了大数值增长。为解决负载均衡,引入分位数平衡机制,通过单次前向传播推导出偏置更新: $$ \widehat{b}_j^{(t+1)} \gets -\mathrm{quantile}_{1-k/n} \Big( s_{:,j} - \alpha^{(t)} \Big) $$ 该规则根据目标负载匹配路由器分数分位数,无需辅助损失即可实现近千个专家的完美均衡。在视觉端,放弃预训练初始化,完全从零开始通过下一代令牌预测训练MoonViT-V2以保证稳定性。在后训练阶段,通过多教师在线策略蒸馏将不同推理努力级别的领域专家能力整合到统一模型中。在系统基础设施上,开发了MoonEP专家并行方案,通过动态规划冗余专家保证每个计算节点接收完全相同的令牌数;同时为百万上下文强化学习构建了支持部分展开和增量检查点的AgentENV沙箱系统。

效果如何 模型规模为2.8T总参数和104B激活参数,支持1M上下文,训练数据涵盖网络文本、代码、数学、知识及大规模视觉语料,并在部署时采用MXFP4量化感知后训练以降低显存占用。对比基线包括代表最强专有路线的Claude Fable 5和GPT-5.6 Sol,以及上一代专有模型Claude Opus 4.8、GPT-5.5和代表开源路线的GLM-5.2。在最大思考努力设置下,Kimi K3在多项任务中持续优于所有开源及上一代专有基线。在长程编码基准FrontierSWE上取得81.2%的得分,在GPU内核优化SWE-Marathon上以42.0%击败Claude Fable 5。在智能体任务BrowseComp中得分91.2%,在多模态数学Math-Vision结合Python工具后达到97.8%。此外,模型展现出极高的成本效率,在Kimi Code Bench 2.0上仅用Claude Fable 5约38%的成本就达到了其95%的性能。作者承认的局限在于,尽管全面超越了开源竞品,但其整体绝对性能在部分研究级推理任务(如HLE-Full)和复杂智能体行为上,仍略微落后于带有潜在回退机制或网络守卫的最强专有模型Claude Fable 5和GPT-5.6 Sol。

A1 主要贡献

大型语言模型(LLM)的发展长期以来主要通过在部署前投入更多计算资源,即在更多数据上训练更大的模型来实现扩展。然而,推理模型的兴起开辟了第二个扩展维度:测试时计算。OpenAI的o系列、Anthropic的扩展思维模型、DeepSeek-R1、Kimi K1.5以及Kimi K2.5 Agent Swarm等研究表明,通过强化学习和增加测试时推理,可以从强大的预训练模型中引出复杂的推理行为。尽管开源模型在测试时计算方面取得了快速进展,但在预训练规模上却进展缓慢,大多停留在1T参数级别,这导致与最强专有系统(如Claude Fable 5和GPT-5.6 Sol)的差距日益扩大。

为同时推进这两个扩展维度,本文介绍了Kimi K3模型。其核心研究目标是:在将预训练基础模型扩展到前所未有的3T参数级别的同时,在1M上下文长度下扩展强化学习、推理努力和长程交互。

主要贡献如下

  1. 开放前沿的预训练:训练了一个2.8T参数的原生多模态MoE模型,该模型具有104B激活参数和1M令牌的上下文窗口。通过引入Kimi Delta Attention (KDA)、Attention Residuals (AttnRes)、Stable LatentMoE以及优化的数据和训练方案,整体扩展效率相比Kimi K2提升了约2.5倍。

  2. 面向多级努力测试时扩展的强化学习:在通用、智能体和编码等领域,以及多个推理努力级别上进行了强化学习,并将这些能力整合到一个统一的模型中。

  3. 支持万亿参数、百万令牌智能的基础设施

    • 为KDA进行了算法-系统协同设计。
    • 为2.8T参数的MoE预训练开发了MoonEP(实现完美平衡的专家并行训练)和内存高效的基础设施。
    • 为百万令牌的智能体强化学习构建了具有可恢复沙箱的协同定位RL系统。
    • 开发了其他基础设施创新,如用于部署的专用内核和调度策略。
  4. 一个开放的前沿模型:发布了完整的Kimi K3模型权重,使前沿智能可用于研究、部署和进一步创新。

Kimi K3在长程编码、智能体、知识、推理和视觉任务上取得了前沿水平的性能。虽然其整体性能仍落后于最强大的专有模型(Claude Fable 5和GPT-5.6 Sol),但它持续优于评估套件中的其他所有开放和专有模型。


编码任务,所有模型均使用最大思考努力:max或xhigh。


通用与视觉智能体,所有模型均使用最大思考努力:max或xhigh。
注意:所有Fable 5的结果均包含潜在的回退机制。所有GPT-5.6 Sol的结果均包含潜在的网络守卫。
图1:Kimi K3主要结果。

A2 方法细节

Kimi K3的架构旨在沿三个互补的维度扩展信息流:序列长度、网络深度和模型宽度。在序列维度上,混合注意力(Hybrid Attention)在每个块中结合了三个Kimi Delta Attention (KDA)层和一个Gated MLA层,为长上下文令牌混合提供了高效机制,同时保留了选择性的高容量注意力(§2.1)。在深度维度上,注意力残差(Attention Residuals, AttnRes)使每个模块能够选择性地从嵌入层、当前块和先前块中检索表示,将信息访问范围扩展到传统的顺序残差累积之外(§2.2)。在宽度维度上,每个注意力层后都跟着一个Stable LatentMoE层,该层执行稀疏的通道混合,为每个令牌有效激活896个路由专家中的16个(§2.3)。对于原生视觉能力,MoonViT-V2编码图像和视频,一个轻量级投影器将产生的视觉特征映射到共享的嵌入空间,然后由主干网络处理(§2.4)。这些组件与Per-Head Muon(§2.5)一起,提供了一个统一的架构,用于扩展跨令牌、层和通道的信息流。结合优化的训练和数据配方,它们相较于Kimi K2带来了约2.5倍的整体扩展效率提升。图2概述了该架构。


图2:Kimi K3架构,围绕令牌、通道和层混合进行组织,输入端具有原生视觉通路。每个块包含三个Kimi Delta Attention (KDA)层,后跟一个Gated MLA层,每个注意力层都与一个Stable LatentMoE前馈网络配对。注意力残差(AttnRes)使用学习的伪查询($\pmb{w}$)来推导对嵌入和先前块输出的注意力权重($\alpha$),从而实现跨深度的选择性信息流。左上:带有共享和路由专家的Stable LatentMoE模块。左下:KDA模块。右下:原生视觉通路。

2.1 混合注意力

Kimi K3的混合注意力机制。Kimi K3在层级上使用了线性和全局注意力的混合,将KDA【索引63,Kimi Team et al. Kimi Linear: An Expressive, Efficient Attention Architecture. 2025. arXiv: 2510.26692 [http://cs.CL]】与Gated MLA相结合。每个块包含3个KDA层,后跟1个Gated MLA层,混合比例为3:1。这种模式在整个主干网络中重复。这两种注意力机制将在下面分别描述。在主干网络的末尾额外放置了一个Gated MLA层,以确保最后一层始终执行全局注意力。

2.1.1 Kimi Delta Attention

KDA的递归更新机制。KDA通过一个通道维度的遗忘门【索引63,Kimi Team et al. Kimi Linear: An Expressive, Efficient Attention Architecture. 2025. arXiv: 2510.26692 [http://cs.CL]】扩展了delta法则递归【索引105,Imanol Schlag, Kazuki Irie, and Jürgen Schmidhuber. “Linear Transformers Are Secretly Fast Weight Programmers”. In: Proceedings of ICML. 2021】、【索引138,Songlin Yang, Jan Kautz, and Ali Hatamizadeh. “Gated Delta Networks: Improving Mamba2 with Delta Rule”. In: Proceedings of ICLR. 2025】。考虑一个隐藏状态序列$\pmb{x}_t \in \mathbb{R}^d$,其中$t$是令牌位置索引,$d$是模型隐藏维度。为清晰起见,我们首先描述单个注意力头,其查询和键向量为$\boldsymbol{q}_t, \boldsymbol{k}_t \in \mathbb{R}^{d_k}$,值向量为$\pmb{v}_t \in \mathbb{R}^{d_v}$,递归状态为$\mathbf{S}_t \in \mathbb{R}^{d_k \times d_v}$。KDA在delta法则更新前应用通道维度衰减:

$$ \mathbf { S } _ { t } = \left( \mathbf { I } - \beta _ { t } \pmb { k } _ { t } \pmb { k } _ { t } ^ { \top } \right) \mathrm { D i a g } ( \pmb { \alpha } _ { t } ) \mathbf { S } _ { t - 1 } + \beta _ { t } \pmb { k } _ { t } \pmb { v } _ { t } ^ { \top } , \qquad \tilde { \pmb { o } } _ { t } = \mathbf { S } _ { t } ^ { \top } \pmb { q } _ { t } . $$


这里,$\pmb{\alpha}_t \in (0, 1)^{d_k}$是通道维度的单步保留因子,$\beta_t \in (0, 1)$控制delta法则的写入强度。遵循Kimi Linear【索引63,Kimi Team et al. Kimi Linear: An Expressive, Efficient Attention Architecture. 2025. arXiv: 2510.26692 [http://cs.CL]】,KDA将每个头的量参数化为:

$$\begin{aligned} \begin{array} { r l } & { \pmb { q } _ { t } ^ { h } , \pmb { k } _ { t } ^ { h } = \mathrm { L } _ { 2 } \mathrm { N o r m } \Bigl ( \mathrm { S w i s h } \Bigl ( \mathrm { S h o r t C o n v } \Bigl ( \mathbf { W } _ { q / k } ^ { h } \pmb { x } _ { t } \Bigr ) \Bigr ) \Bigr ) \in \mathbb { R } ^ { d _ { k } } , } \\ & { \qquad \pmb { v } _ { t } ^ { h } = \mathrm { S w i s h } \bigl ( \mathrm { S h o r t C o n v } \bigl ( \mathbf { W } _ { v } ^ { h } \pmb { x } _ { t } \bigr ) \bigr ) \in \mathbb { R } ^ { d _ { v } } , } \\ & { \qquad \beta _ { t } ^ { h } = \mathrm { S i g m o i d } \bigl ( \mathbf { W } _ { \beta } ^ { h } \pmb { x } _ { t } \bigr ) \in ( 0 , 1 ) , } \\ & { \qquad \pmb { z } _ { t } ^ { h } = \mathbf { W } _ { \alpha } ^ { \uparrow } \mathbf { W } _ { \alpha } ^ { \downarrow } \pmb { x } _ { t } + b _ { \alpha } ^ { h } \in \mathbb { R } ^ { d _ { k } } . } \end{array} \end{aligned}$$
查询、键和值的投影应用了ShortConv后接Swish【索引138,Songlin Yang, Jan Kautz, and Ali Hatamizadeh. “Gated Delta Networks: Improving Mamba2 with Delta Rule”. In: Proceedings of ICLR. 2025】,并且查询和键进一步使用$\mathrm{L_2Norm}$进行归一化【索引141,Songlin Yang et al. “Parallelizing Linear Transformers with the Delta Rule over Sequence Length”. In: Proceedings of NeurIPS. 2024】。低秩投影和特定于头的偏置$b_\alpha^h \in \mathbb{R}^{d_k^•}$为每个键通道生成一个细粒度的衰减logit $\boldsymbol{z}_t^h$。从$\boldsymbol{z}_t^h$到$\alpha_t^h$的下界映射将在下文的分块公式之后介绍。

KDA的分块并行形式。遵循Kimi Linear【索引63,Kimi Team et al. Kimi Linear: An Expressive, Efficient Attention Architecture. 2025. arXiv: 2510.26692 [http://cs.CL]】,KDA在块之间是递归的,在每个块内部是并行的。对于块大小为$C$,$\mathbf{X}_{[t]}$堆叠了第$t$个块中的令牌向量,其中$\mathbf{X} \in \{\mathbf{Q}, \mathbf{K}, \mathbf{V}, \mathbf{O}, \mathbf{\bar{U}}, \mathbf{W}\}$。矩阵$\mathbf{S}_{[t]} \in \mathbb{R}^{d_k \times d_v}$表示进入块$t$的递归状态。对于位置$1 \leq i \leq j \leq C$,定义通道维度的累积衰减为:

$$ \gamma _ { [ t ] } ^ { i \to j } : = \prod _ { r = i } ^ { j } \alpha _ { [ t ] } ^ { r } , \qquad \gamma _ { [ t ] } ^ { r } : = \gamma _ { [ t ] } ^ { 1 \to r } . $$


与Kimi Linear一样,$\Gamma_{[t]}^{1 \ C} \in \mathbb{R}^{C \times d_k}$逐行堆叠$\gamma_{[t]}^1, \ldots, \gamma_{[t]}^C$。UT变换产生$\mathbf{U}_{[t]}$和$\mathbf{W}_{[t]}$,由此我们定义伪值项$\widetilde{\mathbf{V}}_{[t]} := \mathbf{U}_{[t]} - \mathbf{W}_{[t]}\mathbf{S}_{[t]}$。给定输入状态$\mathbf{S}_{[t]}$,块$t$中的所有输出都并行计算如下:

$$\begin{aligned} \begin{array} { r l } & { \mathbf { A } _ { [ t ] } = \mathrm { T r i l } \Big [ ( \mathbf { Q } _ { [ t ] } \odot \mathbf { \Gamma } _ { [ t ] } ^ { 1 C } ) ( \mathbf { K } _ { [ t ] } / \mathbf { \Gamma } _ { [ t ] } ^ { 1 C } ) ^ { \top } \Big ] , } \\ & { \mathbf { O } _ { [ t ] } = \underbrace { ( \mathbf { \Gamma } _ { [ t ] } ^ { 1 C } \odot \mathbf { Q } _ { [ t ] } ) \mathbf { S } _ { [ t ] } } _ { \mathrm { i n t e r - c h u n k } } + \underbrace { \mathbf { A } _ { [ t ] } \widetilde { \mathbf { V } } _ { [ t ] } } _ { \mathrm { i n t r a - c h u n k } } . } \end{array} \end{aligned}$$
对于矩阵M,$\mathrm{Tril}(\mathbf{M})$将其所有严格上三角元素设为零,并保留包括对角线在内的下三角元素。这个掩码强制了块内的因果交互,保留对角线是因为每个输出都会读取当前令牌更新后的状态。$\mathbf{O}_{[t]}$中的第一项携带了来自先前块的信息,而第二项则处理当前块内的交互。读者可以参考Kimi Linear【索引63,Kimi Team et al. Kimi Linear: An Expressive, Efficient Attention Architecture. 2025. arXiv: 2510.26692 [http://cs.CL]】了解UT变换和分块形式的完整推导。

下界衰减以稳定计算。公式4中,每个块的键被累积衰减的倒数$1 / \Gamma_{[t]}^{1 \ C}$重新缩放。由于$\Gamma_{[t]}^{1 \ C}$是(0, 1)区间内保留因子的乘积,其倒数可能无界增长并在有限精度下溢出【索引140,Songlin Yang et al. “Gated Linear Attention Transformers with Hardware-Efficient Training”. In: Proceedings of ICML. PMLR, 2024】、【索引63,Kimi Team et al. Kimi Linear: An Expressive, Efficient Attention Architecture. 2025. arXiv: 2510.26692 [http://cs.CL]】。Kimi Linear通过在对数空间中计算相对衰减并将每个块划分为16个令牌的次级瓦片(tile)来控制这个数值范围【索引140,Songlin Yang et al. “Gated Linear Attention Transformers with Hardware-Efficient Training”. In: Proceedings of ICML. PMLR, 2024】、【索引63,Kimi Team et al. Kimi Linear: An Expressive, Efficient Attention Architecture. 2025. arXiv: 2510.26692 [http://cs.CL]】。非对角线瓦片可以直接在Tensor Core上使用密集矩阵乘法计算。然而,对角线瓦片仍需要显式的位置对计算,这仍然是块内计算的主要瓶颈。


图3:下界衰减及其对分块KDA计算的影响。(a) Kimi Linear使用无界的负Softplus映射,而Kimi K3使用缩放的sigmoid函数来限制对数衰减;曲线显示了$A = 0$和$g_{min} = -5$的情况。(b) Kimi Linear使用显式的位置对计算来评估每个对角线瓦片,而Kimi K3中的有界范围允许所有因果瓦片使用密集的Tensor Core矩阵乘法。

Kimi K3的下界衰减参数化。Kimi K3通过改变从衰减logit $\boldsymbol{z}_t^h$到每步对数衰减$\pmb{g}_t^h$的映射来解决这一瓶颈。遵循GDN和Mamba-2,Kimi Linear使用负Softplus映射$g_t^h = -e^{A_h} \mathrm{Softplus}(z_t^h) \in (-\infty, 0)^{d_k}$【索引138,Songlin Yang, Jan Kautz, and Ali Hatamizadeh. “Gated Delta Networks: Improving Mamba2 with Delta Rule”. In: Proceedings of ICLR. 2025】、【索引24,Tri Dao and Albert Gu. “Transformers are SSMs: Generalized Models and Efficient Algorithms Through Structured State Space Duality”. In: CoRR abs/2405.21060 (2024)】、【索引63,Kimi Team et al. Kimi Linear: An Expressive, Efficient Attention Architecture. 2025. arXiv: 2510.26692 [http://cs.CL]】。Kimi K3则使用一个缩放的sigmoid函数来为对数衰减设置下界:

$$\begin{aligned} \begin{array} { r l } & { \pmb { \mathscr { g } } _ { t } ^ { h } = g _ { \operatorname* { m i n } } \mathrm { S i g m o i d } \bigl ( e ^ { A _ { h } } \pmb { z } _ { t } ^ { h } \bigr ) \in ( g _ { \operatorname* { m i n } } , 0 ) ^ { d _ { k } } , } \\ & { \pmb { \alpha } _ { t } ^ { h } = \exp ( \pmb { g } _ { t } ^ { h } ) \in ( e ^ { g _ { \operatorname* { m i n } } } , 1 ) ^ { d _ { k } } , } \end{array} \end{aligned}$$


其中$A_h$是可学习的每头对数尺度,$g_{min} = -5$是固定的。我们初始化$A_h = 0$,每个偏置$b_\alpha^h$遵循【索引63,Kimi Team et al. Kimi Linear: An Expressive, Efficient Attention Architecture. 2025. arXiv: 2510.26692 [http://cs.CL]】、【索引24,Tri Dao and Albert Gu. “Transformers are SSMs: Generalized Models and Efficient Algorithms Through Structured State Space Duality”. In: CoRR abs/2405.21060 (2024)】、【索引138,Songlin Yang, Jan Kautz, and Ali Hatamizadeh. “Gated Delta Networks: Improving Mamba2 with Delta Rule”. In: Proceedings of ICLR. 2025】进行初始化。当$g_{min} = -5$时,每个保留因子都满足$\alpha_{t,j}^h > e^{-5} \approx 6.7 \times 10^{-3}$,一个16令牌瓦片上的累积对数衰减在$(-80, 0)$范围内。相应的倒数重缩放因子因此小于$e^{80}$,并保持在BF16的动态范围内。这个有限范围使得对角线和非对角线瓦片都可以使用密集的Tensor Core矩阵乘法,消除了位置对的对角线计算路径。这种参数化与先前工作中的下界递归门密切相关【索引97,Zhen Qin et al. HGRN2: Gated Linear RNNs with State Expansion. 2024. arXiv: 2404.07904 [http://cs.CL]】、【索引27,Soham De et al. Griffin: Mixing Gated Linear Recurrences with Local Attention for Efficient Language Models. 2024. arXiv: 2402.19427 [cs.LG]】、【索引91,Bo Peng et al. RWKV-7 "Goose" with Expressive Dynamic State Evolution. 2025. arXiv: 2503.14456 [http://cs.CL]】。图3展示了衰减参数化的变化及其计算上的影响。

全秩输出门。最后,Kimi K3将KDA的输出门从Kimi Linear【索引63,Kimi Team et al. Kimi Linear: An Expressive, Efficient Attention Architecture. 2025. arXiv: 2510.26692 [http://cs.CL]】使用的低秩参数化改为依赖于输入的全秩投影。在对递归输出应用了逐头的RMSNorm【索引146,Biao Zhang and Rico Sennrich. “Root mean square layer normalization”. In: Advances in NeurIPS 32 (2019)】之后,KDA应用了数据依赖的输出门控【索引99,Zihan Qiu et al. Gated Attention for Large Language Models: Non-linearity, Sparsity, and Attention-Sink-Free. 2025. arXiv: 2505.06708 [http://cs.CL]】:

$$ \begin{array} { r } { \pmb { y } _ { t } = \mathbf { W } _ { o } [ \mathrm { S i g m o i d } ( \mathbf { W } _ { g } \pmb { x } _ { t } ) \odot \mathrm { R M S N o r m } ( \tilde { \tilde { o } } _ { t } ) ] . } \end{array} $$

2.1.2 Gated MLA

Gated MLA的机制与改进。多头潜在注意力(Multi-head Latent Attention, MLA),由DeepSeek-V2【索引28,DeepSeek-AI. DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model. 2024. arXiv: 2405.04434 [http://cs.CL]】引入,将每个令牌的键值表示压缩成一个低维潜在向量$\pmb{c}_t = \mathbf{W}_c \pmb{x}_t$。MLA不缓存完整的、特定于头的键和值,而是缓存$c_t$,并在注意力计算期间通过学习的上投影重构内容键和值。这种分解减少了KV缓存的占用,同时保留了全局的令牌到令牌注意力。MLA随后被Kimi K2和Kimi K2.5采用【索引58,Kimi Team. Kimi K2: Open Agentic Intelligence. 2025. arXiv: 2507.20534 [cs.LG]】、【索引59,Kimi Team. “Kimi K2.5: Visual Agentic Intelligence”. In: arXiv preprint arXiv:2602.02276 (2026)】,Kimi K3在周期性的全局注意力层中保留了它。

NoPE与Gated MLA的结合。与Kimi K2和Kimi K2.5不同,Kimi K3遵循Kimi Linear【索引63,Kimi Team et al. Kimi Linear: An Expressive, Efficient Attention Architecture. 2025. arXiv: 2510.26692 [http://cs.CL]】的混合设计,对所有MLA层应用无位置编码(No Position Encoding, NoPE)。因此,它们的查询或键没有应用任何显式的位置编码。中间的KDA层提供了位置敏感和新近度感知的序列混合,而MLA层则提供无限制的全局内容交互。这种分离也避免了在扩展上下文长度时修改位置编码参数,例如重新调整RoPE频率基或应用YaRN【索引92,Bowen Peng et al. “Yarn: Efficient context window extension of large language models”. In: arXiv preprint arXiv:2309.00071 (2023)】。

Gated MLA的输出门。此外,Kimi K3为MLA增加了一个依赖于输入的、通道维度的全秩输出门。设$\tilde{o}_t$表示位置$t$处未门控的MLA输出;门控后的输出为:

$$ { \pmb y } _ { t } = { \mathbf W } _ { o } [ \mathrm { S i g m o i d } ( { \mathbf W } _ { g } { \pmb x } _ { t } ) \odot \tilde { { \pmb \sigma } } _ { t } ] . $$


门投影$\mathbf{W}_g$是全秩的,与Kimi K3中KDA使用的新参数化相匹配。这个门允许每个令牌调节从全局注意力中读取的通道【索引99,Zihan Qiu et al. Gated Attention for Large Language Models: Non-linearity, Sparsity, and Attention-Sink-Free. 2025. arXiv: 2505.06708 [http://cs.CL]】。

Flash Attention的舍入误差修正。为了修正Flash Attention中出现的有偏舍入误差,我们采用了【索引98,Haiquan Qiu and Quanming Yao. “Why Low-Precision Transformer Training Fails: An Analysis on Flash Attention”. In: International Conference on Learning Representations (ICLR). 2026】的方法,在训练期间保持注意力输出为FP32格式。这一选择使输出瓦片的片上占用空间增加了一倍;因此,我们重新设计了训练内核,将其与KV暂存缓冲区重叠,而不是与查询瓦片重叠,从而为更深的KV流水线和更高的训练吞吐量释放了共享内存。

2.2 注意力残差

注意力残差的设计动机。标准的残差连接【索引43,Kaiming He et al. Deep Residual Learning for Image Recognition. 2015. arXiv: 1512.03385 [http://cs.CV]】将所有先前信息压缩到单个状态$h_l$中,这在深度上形成了一个瓶颈,类似于RNN在时间上的瓶颈。对于序列建模,Transformer用注意力取代了递归【索引10,Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. Neural Machine Translation by Jointly Learning to Align and Translate. 2014. arXiv: 1409.0473 [http://cs.CL]】、【索引125,Ashish Vaswani et al. “Attention is All you Need”. In: Advances in NeurIPS. 2017】,允许每个位置以数据依赖的权重选择性地访问所有先前位置。注意力残差(AttnRes)【索引57,Kimi Team. Attention Residuals. Preprint. 2026】将同样的方法应用于深度:每一层选择性地从所有先前的层中检索表示,而不是统一地累积它们。

全注意力残差(Full Attention Residuals)。对于每一层$l$,我们定义一个特定于层的可学习伪查询$\pmb{q}_l = \pmb{w}_l \in \mathbb{R}^d$,以及键和值:

$$\begin{aligned} \pmb { k } _ { i } = \pmb { v } _ { i } = \left\{ { \begin{array} { l l } { { \pmb h } _ { 1 } } & { i = 0 } \\ { f _ { i } ( { \pmb h } _ { i } ) } & { 1 \leq i \leq l - 1 } \end{array} } \right. \end{aligned}$$


其中$f_i(h_i)$是第$i$层的输出,$\pmb{h}_1$是令牌嵌入。注意力权重遵循一个softmax核$\phi(\mathbf{q}, \mathbf{k}) = \exp(\mathbf{q}^\top \mathrm{RMSNorm}(\mathbf{k}))$【索引55,Angelos Katharopoulos et al. “Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention”. In: Proceedings of ICML. 2020】、【索引146,Biao Zhang and Rico Sennrich. “Root mean square layer normalization”. In: Advances in NeurIPS 32 (2019)】,其中RMSNorm防止具有大范数输出的层主导权重:

$$ \alpha _ { i 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 l } \cdot { { v } _ { i } } . $$
由于网络深度适中($L < 100$),这种完整形式的$O(L^2d)$计算量是可以承受的;实际的开销是$O(Ld)$的内存(以及流水线并行下的跨阶段通信),用于保持所有层输出的活跃状态。

块注意力残差(Block Attention Residuals)。为了减少这种开销,我们将$L$层划分为$N$个块,每个块包含$S = L/N$层。在块$n$(层索引$B_n$)内,层输出通过求和被简化为单个表示$b_n = \sum_{j \in B_n} f_j(h_j)$,其中$b_n^i$表示块中前$i$层的部分和;我们设置$b_0 = h_1$,以便令牌嵌入始终作为源被包含。在块之间,全注意力仅应用于$N$个块级表示:对于块$n$中的第$i$层,值矩阵为:

$$\begin{aligned} \mathbf { V } = \left\{ { \begin{array} { l l } { [ b _ { 0 } , b _ { 1 } , \dots , b _ { n - 1 } ] ^ { \top } } & { { \mathrm { i f ~ } } i = 1 ( { \mathrm { f i r s t ~ l a y e r ~ o f ~ b l o c k ~ } } n ) } \\ { [ b _ { 0 } , b _ { 1 } , \dots , b _ { n - 1 } , b _ { n } ^ { i - 1 } ] ^ { \top } } & { { \mathrm { i f ~ } } i \geq 2 ( { \mathrm { s u b s e q u e n t ~ l a y e r s } } ) } \end{array} } \right. \end{aligned}$$


键和注意力权重遵循公式8和公式9。然后,最终的输出层聚合所有$N$个块的表示。在块注意力残差下,内存和通信开销从$O(Ld)$下降到$\bar{O}(Nd)$,同时这种块结构也限制了推理时的状态大小,使得并行的块间结果能更好地通过在线softmax【索引79,Maxim Milakov and Natalia Gimelshein. Online normalizer calculation for softmax. 2018. arXiv: 1805.02867 [http://cs.PF]】与顺序的块内部分和合并,显著降低了推理时间成本。

Kimi K3中的块注意力残差配置。经验上,$N \approx 8$可以在不同模型规模下恢复大部分收益【索引57,Kimi Team. Attention Residuals. Preprint. 2026】;对于Kimi K3,我们将其层划分为8个大小为12层的块,最后一个块为部分块,加上嵌入层,总共有9个块。

2.3 Stable LatentMoE

LatentMoE的动机与扩展。增加专家池和活跃专家的数量可以扩展专家专业化的空间,但在传统的MoE中,每个选定的专家都会接收完整的$d$维令牌表示,因此通信和专家权重流量会随着路由多样性的增加而增长。LatentMoE【索引32,Venmugil Elango et al. LatentMoE: Toward Optimal Accuracy per FLOP and Parameter in Mixture of Experts. 2026. arXiv: 2601.18089 [cs.LG]】通过将完整模型宽度与路由专家宽度分离,使得这种扩展变得经济:共享专家保留一个用于常见转换的全宽度路径,而专门的路由专家则在一个宽度为ℓ的紧凑潜在空间中操作。这使得Kimi K3能够将通道混合扩展到896个路由专家,每个令牌激活16个专家,对应56的稀疏度。

LatentMoE的稳定性挑战与解决方案。这种极端的稀疏性放大了原始设计的两种失败模式。首先,路由路径将$\mathbf{W}^\downarrow$、一个门控的多分支专家前馈网络和$\mathbf{W}^\uparrow$组成一个接近四个连续矩阵乘法的链条。这种病态结构,加上2.8万亿参数的规模,会在路由分支中产生爆炸性的内部激活。其次,平衡近$10^3$个专家的负载超出了现有无辅助损失的偏置更新方法能良好处理的范围。Stable LatentMoE通过三个组件解决这两个失败模式:在上投影前使用RMSNorm和Sigmoid Tanh Unit GLU (SiTU-GLU)来抑制激活爆炸,以及使用分位数平衡(Quantile Balancing, QB)来进行负载均衡。


图4:GLU、SwiGLU和SiTU-GLU的门(gate)和上(up)分支,以及它们的标量响应,其中$\sigma$表示sigmoid函数。两个分支都接收标量输入$x$,所有曲线的定义域均为$x \in [-10, 100]$;插图放大了原点附近的区域。SiTU-GLU以红色显示,其中$\beta_1 = 4$和$\beta_2 = 25$,它在原点附近紧密跟随SwiGLU,并在大的正输入时接近边界$|\bar{f}(x)| \leq \beta_1\beta_2 = 100$,而SwiGLU则保持无界。

Stable LatentMoE的结构。如图2所示,该层遵循DeepSeekMoE【索引23,Damai Dai et al. DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models. 2024. arXiv: 2401.06066 [http://cs.CL]】的共享和路由专家组织结构。对于$\pmb{x} \in \mathbb{R}^d$,共享专家直接处理$\pmb{x}$,而路由路径将其投影到$z = \mathbf{W}^\downarrow x \in \mathbb{R}^\ell$,将$z$分派给选定的专家,并通过$\mathbf{W}^\uparrow$将其加权聚合结果映射回$\mathbb{R}^d$:

$$\begin{aligned} \begin{array} { r l } & { \displaystyle \boldsymbol { u } = \sum _ { i \in \mathcal { T } _ { k } ( \boldsymbol { x } ) } p _ { i } E _ { i } ^ { \mathrm { r o u t e d } } ( \mathbf { W } ^ { \downarrow } \boldsymbol { x } ) , } \\ & { } \\ & { \displaystyle \boldsymbol { y } = \sum _ { j = 1 } ^ { N _ { s } } E _ { j } ^ { \mathrm { s h a r e d } } ( \boldsymbol { x } ) + \mathbf { W } ^ { \uparrow } \mathrm { R M S N o r m } ( \boldsymbol { u } ) . } \end{array} \end{aligned}$$


这里,$\boldsymbol{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$。

2.3.1 Normalized LatentMoE

归一化LatentMoE。原始的LatentMoE直接将$\mathbf{W}^\uparrow$应用于聚合的路由表示$\boldsymbol{u}$,其尺度可能随所选专家及其路由权重而变化。如公式11所示,Kimi K3在专家聚合和上投影之间插入了RMSNorm【索引146,Biao Zhang and Rico Sennrich. “Root mean square layer normalization”. In: Advances in NeurIPS 32 (2019)】。这种归一化在路由分支与全宽度共享分支结合之前,降低了其对尺度变化的敏感性。除了稳定训练外,额外的RMSNorm还能持续改善验证损失和下游基准测试表现。

2.3.2 Sigmoid Tanh Unit GLU

SiTU-GLU的设计动机。门控线性单元(Gated Linear Units, GLUs)用一个sigmoid激活的门来调节一个线性值分支,计算$\text{Sigmoid}(\mathbf{W}_g \pmb{x}) \odot \mathbf{W}_u \mathbf{x}$【索引26,Yann N. Dauphin et al. “Language Modeling with Gated Convolutional Networks”. In: Proceedings of the 34th International Conference on Machine Learning. 2017】。SwiGLU用$\mathrm{Swish}(x) = x \cdot \mathrm{Sigmoid}(x)$替换了sigmoid门,并在Transformer中取得了很好的经验性能【索引107,Noam Shazeer. GLU Variants Improve Transformer. 2020. arXiv: 2002.05202 [cs.LG]】。SwiGLU随后成为大型语言模型中广泛采用的FFN设计,尽管对其经验有效性的完整解释仍有待研究。

SwiGLU的局限性。然而,SwiGLU中的两个乘法因子都是无界的,因此重合的大坐标值可能会产生激活异常值,并增加低精度算术中的溢出风险。原始GLU的sigmoid门避免了无界的门增长,但它没有保留Swish近似线性的正值区域。这促使我们设计一种激活函数,既能控制大值增长,又能保留SwiGLU特有的局部和正侧响应。最近的其他工作也探索了这种权衡的其他参数化方法【索引51,Peijie Jiang et al. PowLU: An Activation Function for Stable Pre-Training of LLMs. 2026. arXiv: 2605.25704 [http://cs.CL]】。

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

$$ \mathrm { S i T U - G L U } ( \pmb x ) = \left[ \beta _ { 1 } \operatorname { t a n h } \left( \frac { \mathbf { W } _ { g } \pmb x } { \beta _ { 1 } } \right) \odot \mathrm { S i g m o i d } ( \mathbf { W } _ { g } \pmb x ) \right] \odot \left[ \beta _ { 2 } \operatorname { t a n h } \left( \frac { \mathbf { W } _ { u } \pmb x } { \beta _ { 2 } } \right) \right] , $$


图5:分位数平衡(Quantile Balancing)的图示,其中有$m=8$个令牌,$n=4$个路由专家,每个令牌选择$k=1$个专家。(a) 令牌级别的Top-k路由(左侧为令牌,右侧为专家)产生负载(4, 3, 1, 0);深色圆圈表示过热的专家,而褪色和虚线圆圈分别表示未充分利用和死掉的专家。(b) 每个灰色条是当前带偏置的分数$s_{i,j} + b_j^{(t)}$的边际值,因此行最大值重现了(a)中的路由。每列中的红色虚线是偏置调整$b_j^{(t)} - \widehat{b}_j^{(t+1)}$,放置在第$(q+1)$大的边际值处,以便恰好有$q=2$个边际值超过它。标记$\star$表示减去列调整后行级别的Top-k选择,即(c)中的路由。(c) 保留的选择产生了平衡的负载(2, 2, 2, 2);红色边表示通过QB改变的分配。

SiTU-GLU的超参数与特性。对于Kimi K3,我们将软上限超参数设置为门分支的$\beta_1 = 4$和上分支的$\beta_2 = 25$。缩放的tanh函数在原点附近近似线性,并在大数值时有界,这使得SiTU-GLU能够在保留SwiGLU局部响应的同时,控制乘积中的两个因子。图4比较了GLU、SwiGLU和SiTU-GLU的分支定义和标量响应。附录B给出了局部展开、极限情况、形式化输出界限以及与硬截断的比较。

2.3.3 Quantile Balancing

分位数平衡(QB)的路由机制。与基于辅助损失的路由【索引33,William Fedus, Barret Zoph, and Noam Shazeer. “Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity”. In: Journal of Machine Learning Research 23.120 (2022)】不同,Kimi K3采用无辅助损失的路由【索引30,DeepSeek-AI et al. DeepSeek-V3 Technical Report. 2024. arXiv: 2412.19437 [http://cs.CL]】。负载均衡通过向用于Top-k选择的路由器分数中添加一个特定于专家的偏置$b_j$来实现。对于令牌$\pmb{x}_i$,路由器计算$\pmb{s}_i = \mathrm{Sigmoid}(\mathbf{W}_r \pmb{x}_i)$并应用:

$$ \mathcal { T } _ { i } = \mathrm { a r g t o p } _ { k } ( s _ { i } + b ) , \qquad p _ { i , j } = \frac { s _ { i , j } } { \sum _ { r \in \mathcal { T } _ { i } } s _ { i , r } } , \quad j \in \mathcal { T } _ { i } . $$


因为$b$从$p_{i,j}$中省略,它调节分派而不改变混合权重或路由器的基于梯度的优化。原始方法使用固定步长规则$b_j^{(t+1)} = b_j^{(t)} + \gamma \mathrm{sign}(\bar{\ell} - \ell_j^{(t)})$来更新$b$【索引30,DeepSeek-AI et al. DeepSeek-V3 Technical Report. 2024. arXiv: 2412.19437 [http://cs.CL]】,其中$\gamma$在缓慢适应和负载振荡之间进行权衡。随着LatentMoE将每层的路由专家池增加到896个,维持负载均衡变得更具挑战性。不均衡的路由会减慢专家并行训练的速度,并可能导致一些专家训练不足【索引47,Ailin Huang, Ang Li, Aobo Kong, et al. “Step 3.5 Flash: Open Frontier-Level Intelligence with 11B Active Parameters”. In: arXiv preprint arXiv:2602.10604 (2026)】。

QB的偏置更新规则。为了解决这个限制,我们引入了分位数平衡(Quantile Balancing, QB),它根据与目标负载匹配的路由器分数分位数来设置每个专家的偏置【索引111,Jianlin Su. Travels in MoE: 6. Promoting Load Balance via Optimal Assignment. Blog post (in Chinese). Feb. 2026】。考虑一个训练批次,其中$m$个令牌被路由到$n$个专家,采用Top-k选择,因此目标负载是每个专家$q := mk/n$个令牌。QB通过单次前向传播推导出下一个偏置。路由将Top-k选择替换为对带偏置分数$s_i + b^{(t)}$的Top-$(k+1)$选择:前$k$个条目是实际采取的路由,而第$(k+1)$个条目是截止值$\alpha_i^{(t)}$,专家必须超过这个值才能进入令牌$i$的Top-k。从Top-$(k+1)$路由中获取截止值避免了单独的令牌侧分位数计算。然后我们选择每个专家的偏置,使得专家$j$接收其目标负载:在截止值固定的情况下,候选偏置$\widehat{b}_j^{(t+1)}$下路由到专家$j$的令牌计数为:

$$ \sum _ { i = 1 } ^ { m } \mathbf { 1 } \Bigl [ s _ { i , j } + \widehat { b } _ { j } ^ { ( t + 1 ) } > \alpha _ { i } ^ { ( t ) } \Bigr ] , $$


这在阈值$-\widehat{b}_j^{(t+1)}$上是单调递减的。假设没有平局,将此计数设置为$q$使得$-\widehat{b}_j^{(t+1)}$成为第$(q+1)$大的边际值$s_{i,j} - \alpha_i^{(t)}$,这样恰好有$q$个边际值保持在阈值之上。由于$q/m = k/n$,这是跨令牌边际值的$(1-k/n)$-分位数,从而得到QB更新:

$$\begin{aligned} \begin{array} { r l } & { \widehat { b } _ { j } ^ { ( t + 1 ) } \gets - \mathrm { q u a n t i l e } _ { 1 - k / n } \Big ( s _ { : , j } - \alpha ^ { ( t ) } \Big ) , } \\ & { \pmb { b } ^ { ( t + 1 ) } \gets \widehat { \pmb { b } } ^ { ( t + 1 ) } - \mathrm { m e a n } \Big ( \widehat { \pmb { b } } ^ { ( t + 1 ) } \Big ) \mathbf { 1 } . } \end{array} \end{aligned}$$
边际值从原始分数$s_{i,j}$中减去带偏置的截止值$\alpha_i^{(t)}$,因此旧偏置仅通过截止值进入更新,第二行移除了一个不改变Top-k选择的公共偏移。为了保证因果性,更新仅在下一步生效【索引30,DeepSeek-AI et al. DeepSeek-V3 Technical Report. 2024. arXiv: 2412.19437 [http://cs.CL]】,即一个批次永远不会用从自身推导出的偏置进行路由。图5展示了$m=8, n=4, k=1$的情况,其中每个专家接收到目标负载$q=2$。最终的偏置在推理时被冻结。平衡分配的推导见附录C。

基于直方图的大规模分位数估计。在大规模训练中,公式14中的分位数计算跨越了整个全局批次,其边际值数量达数百万,并分布在不同的计算节点(rank)和累积步骤中,因此在训练时收集它们以进行精确的分位数计算是不可行的。我们转而从每个专家的边际值直方图中读取分位数:一次all-reduce操作对每个节点的区间计数值进行求和,然后从汇总的计数值中恢复分位数。由于计数值是可加的,无论令牌如何分片,直方图都代表了汇集的全局批次,因此估计值反映了整个批次的分位数,误差在区间宽度之内,而通信成本仅为每个专家几百个区间。这个直方图估计器是我们实际使用的方法;我们在附录D中对其及其误差界限进行了更详细的描述。

2.4 Native Vision

原生多模态设计。Kimi K3是原生多模态的:文本、图像和视频由单一共享主干网络在同一上下文中处理,没有后期的模态对齐阶段。这种设计是§1中描述的长程、视觉在环行为的架构基础。渲染的输出和产生它们的代码存在于同一个令牌流中,模型可以编写代码,检查结果的截图或视频帧,并迭代地优化视觉产物——用户界面、图形、视频——而无需跨模型交接。

MoonViT-V2的从零训练。与Kimi K2.5的一个关键区别是,我们完全从头开始通过下一代令牌预测来训练Kimi K3的视觉编码器MoonViT-V2。以前的做法,包括Kimi K2.5本身,都是从对比预训练模型(如SigLIP)初始化视觉编码器,前提是预训练的视觉知识能给模型一个领先优势。我们放弃这种做法主要是为了训练稳定性。当一个预训练的编码器连接到LLM时,联合优化变得不稳定:SigLIP初始化的MoonViT-3D显示出持续较高的梯度范数并伴有频繁的尖峰,而MoonViT-V2在整个训练过程中保持稳定(图6)。通过下一代令牌预测进行训练还允许编码器的表示直接由语言建模目标塑造,而不是由偏爱全局语义而非细粒度文本和结构线索的对比损失塑造。值得注意的是,我们发现MoonViT-V2在各种视觉评估中与SigLIP初始化的基线相当,这表明对比预训练作为大规模多模态语言模型的初始化并非必要。


图6:我们预训练消融实验中视觉塔的梯度范数。与SigLIP初始化的MoonViT-3D相比,从零开始训练的MoonViT-V2保持了较低的梯度范数和较少的尖峰,表明优化过程更稳定。

MoonViT-V2架构。这种训练方法建立在一个视觉通路上,该通路遵循Kimi K2.5的总体设计【索引59,Kimi Team. “Kimi K2.5: Visual Agentic Intelligence”. In: arXiv preprint arXiv:2602.02276 (2026)】、【索引61,Kimi Team. “Kimi-vl technical report”. In: arXiv preprint arXiv:2504.07491 (2025)】:视觉输入首先由MoonViT-V2编码,然后由一个轻量级MLP投影器映射到LLM中。MoonViT-V2是一个27层的视觉Transformer,拥有约0.4B参数,采用RMSNorm并从其线性和注意力投影中移除了所有偏置项,这种设计进一步稳定了上述的从头优化。图像和视频使用完全共享的参数进行处理,如同MoonViT-3D:注意力被分解为帧内空间和帧间时间两个过程,时间池化进一步沿时间维度压缩令牌。在投影之前,一个$2 \times 2$下采样的像素重排操作将视觉令牌的数量减少了四倍,使得在1M令牌上下文中处理高达$3584 \times 3584$像素的输入成为可能。

2.5 Per-Head Muon

Per-Head Muon优化器。继Kimi K2之后,Kimi K3采用Muon【索引53,Keller Jordan et al. Muon: An Optimizer for Hidden Layers in Neural Networks. 2024】作为其矩阵参数的优化器。对于注意力投影,我们进一步将其细化为逐头(per-head)变体:我们不是对完整的Q、K和V投影矩阵应用Newton–Schulz正交化,而是沿头部维度划分它们的动量矩阵,并分别对每个头部的块进行正交化。其直觉是,全矩阵正交化将所有头部视为一个耦合的块,因此具有较大梯度或动量尺度的头部会主导共享的更新方向,而较小尺度的头部则接收到未充分归一化的更新;逐头正交化则均衡了各头部的更新尺度。在实践中,这种设计在各头部之间产生了更平衡的学习动态,并提高了在更大规模下的训练稳定性。它还略微减少了优化器的开销,因为对高瘦的逐头块进行Newton–Schulz迭代比对完整投影矩阵进行迭代更便宜。

A3 背景知识/关键Observation/设计原则

3 预训练

3.1 预训练数据

Kimi K3的预训练数据构成。Kimi K3在一个精心策划的语料库上进行预训练,该语料库涵盖四个主要的文本领域——网络文本、代码、数学和知识——以及一个大规模的视觉语料库。视觉数据覆盖了字幕、图文交错文档、OCR、感知、视频和视觉编码数据。我们的数据管道建立在为Kimi K2开发【索引58,Kimi Team. Kimi K2: Open Agentic Intelligence. 2025. arXiv: 2507.20534 [cs.LG]】并由Kimi K2.5【索引59,Kimi Team. “Kimi K2.5: Visual Agentic Intelligence”. In: arXiv preprint arXiv:2602.02276 (2026)】完善的管道之上。

文本数据处理。每个领域的数据都通过基于规则的启发式方法、基于分类器的质量评分和去重相结合的方式进行过滤,领域特定的采样率由在较小模型上进行的消融研究确定。遵循Kimi K2的改写配方【索引58,Kimi Team. Kimi K2: Open Agentic Intelligence. 2025. arXiv: 2507.20534 [cs.LG]】,我们使用风格和视角多样化的提示、分块自回归生成以及对源文档的保真度验证来改写知识和数学语料库。

视觉数据处理。视觉语料库遵循Kimi K2.5的分类法【索引59,Kimi Team. “Kimi K2.5: Visual Agentic Intelligence”. In: arXiv preprint arXiv:2602.02276 (2026)】,结合了开源数据集和内部的过滤、合成及去重管道。在训练期间,坐标监督以绝对和归一化([0,1])两种格式提供,从而实现精确且分辨率稳健的定位。除了经典的带文本字幕的图像,我们还大幅扩展了程序化的多模态数据,将代码片段与其在特定领域格式(包括SVG、3D资产、网页、游戏和CAD示意图)中渲染的视觉效果相结合。

3.2 缩放定律

模型改进带来的效率提升。总的来说,前面章节描述的架构、数据和训练改进定义了我们新的模型家族。由于这些变化也改变了最佳训练方案,我们进行了专门的缩放定律研究来重新调整关键超参数,包括批量大小、学习率、每参数令牌比(TPP)和模型形状。在留存的OOD验证数据上评估,图7中的缩放定律曲线显示,这些改进共同为Kimi K3带来了相较于Kimi K2约2.5倍的整体缩放效率增益。表1提供了Kimi K2和Kimi K3之间详细的架构比较,突出了促成这一改进的结构性变化。

学习率调度方案的选择。我们的缩放定律研究一致倾向于余弦衰减(cosine decay)而非Warmup Stable Decay (WSD)【索引46,Shengding Hu, Yuge Tu, Xu Han, et al. “MiniCPM: Unveiling the Potential of Small Language Models with Scalable Training Strategies”. In: (2024)】,这使我们采用余弦衰减作为默认的学习率调度方案。我们在固定的最小学习率下比较了余弦衰减和WSD。尽管先前的工作报告称WSD可以匹配甚至优于余弦衰减,但我们观察到这两种调度方案表现出截然不同的最优超参数。即使在相同的模型大小和训练令牌预算下,它们的最优峰值学习率和批量大小也大相径庭。因此,使用一套共享的超参数来比较这两种调度方案可能会不公平地偏向其中一种,仅仅因为那些超参数更适合它。为确保公平比较,我们为每种调度方案进行了独立的缩放定律搜索。在各自的最优超参数设置下,余弦衰减始终比WSD获得更低的最终损失。


图7:Kimi K2和Kimi K3的拟合缩放定律曲线。Kimi K3的缩放效率比Kimi K2提升了2.5倍。

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

Kimi K2 Kimi K3
架构 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采用了一种原生多模态训练策略,即从训练开始就联合优化语言和视觉,而不是通过后期的对齐阶段将视觉编码器嫁接到预训练的语言模型上。在这种范式下,视觉和文本令牌在单一的下一代令牌预测目标中交错出现,使得共享的主干网络从一开始就能学习统一的多模态表示。

优化器和学习率调度。我们使用Per-Head Muon优化器(§2.5)以及Kimi K2中引入的权重裁剪机制来优化模型,同时采用QB(§2.3.3)进行MoE负载均衡。我们使用带有1%线性预热的余弦学习率调度。整个过程中的权重衰减设置为0.1。

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

3.4 长上下文扩展

位置编码。Kimi K3不使用显式的位置嵌入(NoPE),而是通过KDA的递归门控和衰减机制隐式地编码位置信息。因此,模型可以直接外推到1M令牌的上下文,而无需任何位置编码的修改,例如RoPE的重新缩放或插值【索引92,Bowen Peng et al. “Yarn: Efficient context window extension of large language models”. In: arXiv preprint arXiv:2309.00071 (2023)】。

长上下文数据处理。来自自然来源的长文档和视频包含大量低质量内容,包括近似重复、二进制大对象、截断文件、视频剪辑和无效的机器生成日志。因此,我们通过一个专门的清洗管道来处理它们,该管道结合了精确和模糊去重,对视频辅以帧上的感知哈希,以及基于启发式和分类器的质量过滤和结构验证。由于真正长而连贯的文档和视频相对于短文本来说是稀缺的,我们对其进行上采样,以便在冷却阶段长上下文分布不被短序列所淹没。然而,仅有长度并不能赋予长程能力。为了解决这个问题,我们通过仔细排列和连接多模态文档及子任务来合成额外的长上下文数据,使得嵌入的任务只有通过关注分布在整个1M令牌上下文中的信息才能解决。这在预期的尺度上训练了注意力机制,并防止其退化为局部模式。

渐进式上下文扩展。Kimi K3支持高达100万令牌的上下文窗口。我们通过在训练过程中逐步扩展上下文窗口来实现这一点,遵循一个四阶段的课程。在预训练期间,窗口从8K增长到64K令牌,在冷却阶段从256K增长到1M令牌。将昂贵的长序列计算集中在整个训练预算的一小部分内,使得该课程在经济上可行,同时仍允许模型逐渐适应日益增长的长程依赖。使得百万令牌训练对KDA层可行的序列维度划分在§5.1.2中描述。

4 后训练

4.1 方法

后训练三阶段范式。我们的后训练流程遵循一个三阶段范式:通过监督微调(SFT)初始化基线智能体能力,通过强化学习(RL)在不同推理努力程度上发展专门的领域专家,并使用多教师在线策略蒸馏(MOPD)将这些特定领域的策略整合到一个单一模型中。

4.1.1 监督微调

SFT阶段的目标与方法。SFT阶段为后续的RL阶段建立了一个高质量的冷启动策略。在先前Kimi模型【索引58,Kimi Team. Kimi K2: Open Agentic Intelligence. 2025. arXiv: 2507.20534 [cs.LG]】、【索引59,Kimi Team. “Kimi K2.5: Visual Agentic Intelligence”. In: arXiv preprint arXiv:2602.02276 (2026)】的SFT管道基础上,我们为Kimi K3扩展了SFT数据集,大幅拓宽了其对复杂智能体任务的覆盖范围。具体来说,我们使用先前Kimi系列中的领域专用模型合成数据轨迹,然后进行多阶段验证和人机协同标注。为了统一表示这些复杂的智能体轨迹,我们使用基于XTML的聊天模板(可扩展令牌标记语言;详见附录F)序列化所有数据。总的来说,这些步骤产生了一个大规模的指令数据集,赋予Kimi K3在长程智能体场景中自适应推理、精确工具调用和稳健执行的能力。此外,我们从SFT阶段开始就应用了量化感知训练(QAT),采用MXFP4权重和MXFP8激活(见§4.1.4)。

4.1.2 强化学习

跨领域、多努力级别的RL。虽然SFT提供了坚实的冷启动基础,但RL对于解锁更高阶的推理和执行能力至关重要。我们没有为单个任务训练专门的RL模型,而是在三个广泛的领域中扩展RL,每个领域都包含广泛的子任务,并为每个领域在每个推理努力级别上训练一个专家:(i)通用任务,涵盖通用经验、视觉、推理、忠实度、搜索能力和知识工作任务;(ii)通用智能体,涵盖长程助手任务、深度研究和段落级写作;(iii)编码智能体,涵盖软件工程(SWE)、编码经验、内核任务和Web开发。如图8所示,扩展RL的浮点运算量(FLOPs)能够持续提升知识、推理、视觉、通用智能体和编码等多种能力。将这三个领域专家与{low, high, max}三个推理努力级别交叉,共产生九个专家模型。


图8:在RL过程中,各种公共和内部评估的分数以及平均助手步骤。通过扩展RL FLOPs,工具调用步骤持续增加,伴随着模型整体能力的全面提升。

RL算法与部分展开(Partial Rollout)。为了缓解在长程任务中加剧的长尾延迟问题,我们从同步RL框架【索引118,Kimi Team. Kimi k1.5: Scaling Reinforcement Learning with LLMs. 2025. arXiv: 2501.12599 [http://cs.AI]】、【索引59,Kimi Team. “Kimi K2.5: Visual Agentic Intelligence”. In: arXiv preprint arXiv:2602.02276 (2026)】中扩展了部分展开(partial rollout)方案。在每次迭代的展开阶段,我们为$N$个提示采样$K$个补全,维持一个$N \times K$个轨迹的活动工作负载。我们不等待所有展开都终止,而是在一部分轨迹(即$\lambda NK$个,其中$\lambda \in (0, 1)$)完成后暂停生成阶段,从而允许策略优化在没有执行掉队者的情况下进行。暂停的展开会被排队,并在下一次迭代开始时优先恢复,这由我们的沙箱基础设施(§5.3.2)提供支持。一旦某个提示的所有$K$个响应完成,它们会立即被分派用于策略优化,该优化遵循Kimi K2.5【索引59,Kimi Team. “Kimi K2.5: Visual Agentic Intelligence”. In: arXiv preprint arXiv:2602.02276 (2026)】中的算法。在我们的部分展开方案下,单个长程轨迹自然会跨越多次迭代,引入了可能威胁训练稳定性的数据陈旧性。我们的策略优化算法通过逐令牌的正则化,天生就能容忍这种极端的离策略(off-policy)情况。通过将策略更新限制在一个局部邻域内,这种正则化使算法能够稳健地处理高度陈旧的数据并维持训练稳定性。

推理努力RL(Reasoning Effort RL)。为了在最大化令牌效率的同时微调推理努力,我们在RL期间实现了一个逐问题的预算控制机制【索引59,Kimi Team. “Kimi K2.5: Visual Agentic Intelligence”. In: arXiv preprint arXiv:2602.02276 (2026)】。我们为每个问题$x$关联一个从冷启动模型估计的初始令牌预算$b_0(x)$,并对总令牌预算$T(y)$超过缩放阈值$\tau \cdot b_0(x)$的轨迹,将其任务奖励覆盖为-1。对于通用任务,$T(y)$衡量思考令牌的数量;而对于智能体任务,$T(y)$则计算累积的输出令牌,包括推理轨迹和工具调用参数。训练遵循一个关于预算乘数$\tau$的阶段性课程。我们首先用一个相对较大的$\tau$训练一个最大预算变体,同时仍然限制最大预算以抑制过度的过度思考。然后,我们逐渐减小$\tau$以获得高努力和低努力的专家模型。$\tau$的调整是在人机协同指导下按领域配置的。所有推理级别上产生的专家轨迹被共同收集,用于监督微调和多教师在线策略蒸馏。

智能体生成式奖励模型(Agentic GRM)。对于不可验证的通用任务,我们采用了一个智能体生成式奖励模型(Agentic Generative Reward Model, GRM),保留了Kimi K2.5【索引58,Kimi Team. Kimi K2: Open Agentic Intelligence. 2025. arXiv: 2507.20534 [cs.LG]】、【索引59,Kimi Team. “Kimi K2.5: Visual Agentic Intelligence”. In: arXiv preprint arXiv:2602.02276 (2026)】中带有二元比较的锦标赛式分组奖励。除了用于增强判断力的通用智能体能力外,智能体评判员被要求遵循一个强制性协议:(1)阅读结果、产品或文本输出;(2)生成一个评分标准(rubric);(3)根据评分标准为每个候选者打分;(4)将评分标准分配的分数记录在记分板上。为了减轻对日益冗长输出的奖励攻击(reward hacking),我们应用了类似于上述推理努力控制的基于预算的冗长控制:给定一个从冷启动模型估计的初始冗长度$\ell_0$和一个乘数$\sigma$,如果候选者的输出长度超过$\sigma \cdot \ell_0$,它将自动在二元比较中失败。

4.1.3 多教师在线策略蒸馏

MOPD方法。我们采用多教师在线策略蒸馏(Multi-Teacher On-Policy Distillation, MOPD)将这些在不同推理努力下的领域专业能力整合到一个统一的模型中【索引75,Kevin Lu and Thinking Machines Lab. On-policy distillation. Thinking Machines Lab: Connectionism. 2025】、【索引134,B. Xiao et al. “MiMo-V2-Flash Technical Report”. In: arXiv preprint arXiv:2601.02780 (2026)】、【索引29,DeepSeek-AI. “DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence”. In: arXiv preprint arXiv:2606.19348 (2026)】。在训练期间,对于给定的领域$d$和采样的推理努力级别$e \in \{\mathrm{low}, \mathrm{high}, \mathrm{max}\}$,优化由九个专家中对应的教师模型$\pi_{\mathrm{teacher}}^{(d, e)}$指导。给定输入查询$x$和前缀响应$y_{<t}$,在$y_t$上评估的教师$\pi_{\text{teacher}}^{(d,e)}$和学生$\pi_\theta$之间的逐令牌OPD奖励定义为:<br />

$$ r _ { \mathrm { o p d } } ^ { d } \left( y _ { t } \mid e , x , y _ { < t } \right) = \mathrm { c l i p } \left( \mathrm { s g } \left( \log \frac { \pi _ { \mathrm { t e a c h e r } } ^ { \left( d , e \right) } \left( y _ { t } \mid x , y _ { < t } \right) } { \pi _ { \theta } \left( y _ { t } \mid e , x , y _ { < t } \right) } \right) , - R _ { \mathrm { m a x } } , R _ { \mathrm { m a x } } \right) , $$


其中$\mathrm{sg}(\cdot)$表示停止梯度操作符,$R_{\mathrm{max}} > 0$是一个裁剪阈值,用于限制极端的优势信号,从而稳定RL训练。这种密集的奖励信号无缝集成到我们的RL框架中,自然地支持了如部分展开训练等基础设施级别的优化,以应对长程任务。虽然我们也尝试了更细粒度的top-k蒸馏目标,但在我们的设置中,无论是在收敛速度还是最终性能上,都没有观察到明显的优势。

4.1.4 部署感知后训练

MXFP4量化感知后训练。为了在部署时减少内存占用和服务器成本,我们将主导模型参数内存的MoE专家权重——量化为MXFP4【索引103,Bita Darvish Rouhani et al. “Microscaling Data Formats for Deep Learning”. In: arXiv preprint arXiv:2310.10537 (22023)】,激活值以MXFP8计算,而所有非专家组件(注意力投影、潜在MoE投影、共享专家和MoE路由器)则保持在更高精度。我们在整个后训练阶段(包括SFT和RL)进行量化感知训练(QAT)【索引49,Benoit Jacob et al. “Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference”. In: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2018】,以便模型能适应量化引起的精度损失。在RL期间,展开和训练共享相同的量化方案,消除了训练-推理不匹配的问题。

草稿模型微调。优化推理效率对于服务复杂、长程的智能体模型至关重要。Kimi K3预训练了一个多令牌预测(MTP)层,其结构与主干网络的一个块相仿。由于EAGLE-3【索引71,Yuhui Li et al. EAGLE-3: Scaling up Inference Acceleration of Large Language Models via Training-Time Test. 2025. arXiv: 2503.01840 [http://cs.CL]】的草稿模型包含一个与MTP层结构匹配的单解码器层,我们微调预训练的MTP层,使其成为一个EAGLE-3风格的草稿模型,此时目标模型被冻结,只更新草稿层及其特征融合投影。遵循EAGLE-3的训练时测试协议,草稿在训练期间展开七步;在第一步之后,由于最新位置的目标侧特征不可用,草稿会消耗其自身在前面步骤的输出,这与推理时的递归草稿过程相呼应。

草稿模型输入与损失函数。草稿输入融合了目标模型的低、中、高级特征,分别取自第1、第4和最后一个AttnRes块的输出(§2.2)。这些特征被连接并通过一个无偏置矩阵$W_{\mathrm{E3}}$投影到隐藏层大小,该矩阵初始化为$[\mathbf{00}I]$,使得融合表示在初始化时与高级特征$h_h$(MTP层预训练时的输入)一致,并在微调期间逐渐学习融合低级和中级特征。

LK损失优化。推测解码的加速由逐令牌接受率$\sum_{x \in \mathcal{V}} \min(p(x), q(x))$决定,其中$p$和$q$分别表示目标模型和草稿模型的下一令牌分布。由于最小化传统的KL散度代理并不能保证为容量有限的草稿模型最大化此速率,我们直接优化基于似然的LK损失【索引104,Alexander Samarin et al. LK Losses: Direct Acceptance Rate Optimization for Speculative Decoding. 2026. arXiv: 2602.23881 [cs.LG]】,即接受率本身的负对数:

$$ \mathcal { L } _ { \mathrm { L K } } = - \log \sum _ { x \in \mathcal { V } } \operatorname* { m i n } ( p ( x ) , q ( x ) ) , $$


其中$p$和$q$在温度为1时评估,且没有辅助的真实标签交叉熵项。草稿微调遵循后训练的QAT配置(§4.1.4),MoE专家权重为MXFP4,其输入激活值为MXFP8,而非专家模块保持更高精度。

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

RL环境的重要性。我们的RL框架的有效性在很大程度上依赖于丰富、多样且可稳健验证的环境。为了支持在复杂长程任务上的可扩展训练,我们设计了一系列专门的白盒环境和任务合成范式。

4.2.1 统一白盒RL环境

可配置的RL环境。使用单一固定的智能体框架进行训练可能导致模型过拟合特定的工具模式、系统提示、上下文管理机制或交互协议。为了解决这个问题,我们开发了一个统一的白盒RL环境,该环境将智能体框架表示为一组可配置、可组合的模块集合,包括工具接口、系统提示、上下文管理策略、技能、记忆、子智能体及其他组件。通过配置组合这些模块,该环境可以实例化主流框架,如Kimi Code【索引56,Kimi CLI. Moonshot AI. 2026】、Claude Code【索引15,Claude Code. Anthropic. 2026】、Codex【索引20,Codex. OpenAI. 2026】、OpenClaw【索引86,OpenClaw. OpenClaw. 2026】和Hermes【索引44,Hermes Agent. Nous Research. 2026】,以及全新的框架。在RL训练期间,我们为不同的任务组动态构建不同的框架配置,使Kimi K3接触到这些模块的多样化组合,而不是任何单一框架的惯例。同样的抽象也轻松支持跨不同任务领域的RL,为训练更通用的智能体提供了可扩展的基础。

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

动机与概览。后训练任务的质量和多样性在很大程度上取决于其源材料。由细粒度概念引导的检索能够浮现专业化和代表性不足的知识,而跨多样化概念的采样则能拓宽领域覆盖面。为了在规模上控制粒度和覆盖面,我们构建了一个自进化、层次化组织的知识图谱,智能体通过在知识密集型和编码领域进行网络规模的探索来不断扩展该图谱。图9展示了任务合成的流程。


图9:知识图谱引导的任务合成概览。层次化组织的知识图谱表示了从广泛领域到细粒度概念的多个层级的概念。相关的节点被采样以形成一个关键词集,用于指导从公开可用的源材料中进行检索。对于每个合成实例,系统选择一个任务类型,并使用检索到的材料来合成相应的任务。

智能体驱动的知识图谱构建。我们通过递归的、智能体驱动的扩展过程,将知识图谱构建为一个有向无环图。扩展过程从一组预定义的粗粒度种子节点开始。然后为每个节点分配一个智能体实例,并执行多次网络搜索来研究相应的概念。在添加新节点之前,智能体探索现有图谱以识别等效或相关的概念,在适当的情况下重用现有节点,并最小化重复。边始终从较粗糙的概念指向较精细的概念,无论智能体首先发现哪个端点。新添加的节点随后被分配给智能体进行进一步探索。当分配的智能体确定当前概念足够原子化时,一个分支停止扩展。

材料检索与任务合成。为了在领域和任务类型上达到期望的分布,系统在不同粒度级别上采样节点,可以是单个节点,也可以是相关的组合。从采样节点派生的关键词与它们在知识图谱中祖先的上下文信息相结合,以构建网络查询。检索到的真实世界材料被组合起来,以便合成智能体能够生成各种任务类型的训练任务。

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

可验证问题示例。我们在智能体环境中对Kimi K3进行可验证问题的训练;代表性例子包括多步复杂信息搜索,模型规划其研究,逐步从网络收集证据,并产生一个可验证的答案;专业人士的日常实际工作,如投资银行、数据分析和法律实践,模型分解复杂请求,在沙箱中操作领域工具,并在数十到数百步内完成交付物;以及对STEM问题、视觉谜题和图表理解的多步可验证视觉推理。每个视觉推理轨迹都在一个配备了隔离沙箱中Python解释器的智能体环境中生成:模型迭代地编写和执行代码来裁剪、缩放或变换输入图像,执行精确计算,或验证中间结果,并在多个交互步骤中接收执行输出——包括生成的图像——作为新的观察。随着模型学会执行更多的图像操作和收集更多的观察,其在复杂视觉推理任务上的表现稳步提升。

4.2.4 内核优化任务

GPU内核优化任务套件。为了加强Kimi K3的GPU内核优化能力,我们构建了一个大规模的内核任务套件,范围从单操作符内核到融合的大型内核,源自高质量的GitHub仓库,如Flash Linear Attention【索引139,Songlin Yang and Yu Zhang. FLA: A Triton-Based Library for Hardware-Efficient Implementations of Linear Attention Mechanism. Jan. 2024】。该套件涵盖了多种GPU编程方法,如CUDA、Triton、CuTe DSL、Gluon、ThunderKittens【索引110,Benjamin F. Spector et al. “ThunderKittens: Simple, Fast, and Adorable Kernels”. In: The Thirteenth International Conference on Learning Representations. 2025】和TileLang【索引129,Lei Wang et al. “TileLang: A Composable Tiled Programming Model for AI Systems”. In: arXiv preprint arXiv:2504.17577 (2025)】,并覆盖了广泛使用的GPU架构和数值格式,包括BF16、FP8和FP4。奖励评估正确性和性能:每个内核提供一个PyTorch参考实现,超过预定义数值误差阈值的解决方案将获得零奖励。性能根据专家实现进行评分,匹配专家实现可获得0.5的奖励,接近硬件性能上限则奖励趋向于1。为确保奖励反映真正的优化,我们开发了一个作弊检测系统,惩罚CUDA图重放、输入缓存和精度降低等作弊策略,并随着Kimi K3开发过程中观察到的新作弊策略不断扩展其保障措施。

4.2.5 个人助理任务

模拟现实应用的个人助理任务。对于长程个人助理任务,我们为广泛使用的应用程序(如Gmail、Notion、Slack和Canvas)开发了逼真的模拟实现。它们保留了其现实世界对应物的核心语义,同时实现了可复现、大规模的交互,而无需外部API或速率限制。基于这些模拟应用程序,我们设计了受人力资源、法律服务和金融等场景中真实专业工作流启发的复杂任务。在每个任务中,智能体在一个持续演化的环境中操作多个模拟日,并遇到分布在各个应用程序中的数十个相互依赖的事件。单次展开可能涉及多达数千次工具调用和数百万上下文令牌。每个事件都有其自身的评估标准,由确定性规则或基于LLM的评估器进行评估。初始工作区由智能体构建,它们自主搜索网络以获取参考资料,并将其转化为一个连贯的、与任务相关的环境。我们还扩展了我们的RL框架以支持这种“活”环境,对复杂的事件流和由此引发的世界状态转换进行建模。

4.2.6 自主执行任务

AET环境范式。我们引入了自主执行任务(Autonomous Execution Tasks, AET),这是一种通过“验证在环”优化来训练长程智能体智能的环境范式。每个任务指定一个初始状态、一个受约束的目标、一个基于工具的动作空间、执行预算和一个独立的验证器。智能体只能看到目标、上下文、约束和验证接口,没有参考轨迹或预定义程序,并且必须自主执行任务分解、工具选择、规划、错误恢复和终止。奖励基于验证器对最终环境状态的评估,而不是智能体自我报告的完成情况。我们设计了多种类型的验证器,支持多样化的环境,包括黑盒系统复制(图10)、量化因子发现和税务审计。在每个环境中,智能体迭代地提交解决方案,接收验证器反馈,并完善其策略,从而训练一个假设、行动、分析反馈和适应的通用循环。通过将智能体与验证器隔离,将提供诊断反馈的公共验证器与评估未见场景的隐藏验证器配对,以及在有限提交预算下应用基于惩罚的奖励,来减轻奖励作弊。

4.2.7 Web开发任务

Web开发任务套件。我们构建了一个由专家策划的多样化Web开发任务套件,涵盖了典型场景。输入范围从单行场景描述到多段落规范;产出物涵盖网站、互动游戏、3D/WebGL场景、数据可视化、SVG和全栈应用程序。每个任务都在一个容器化的沙箱中运行,并在多样化的智能体脚手架下展开,而不是单一固定的框架,以促进跨脚手架的泛化。奖励由两部分组成:确定性检查和由内部奖励模型进行的模型评判。确定性检查功能性地测试应用程序行为,并对复制参考的任务进行结构和像素级别的相似性评分。当项目构建失败、运行时出错或伪造而非实现产出物时,奖励为零。模型评判使用其他模型来执行源代码检查或查看并与输出产出物进行交互。


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

5 基础设施

Kimi K3面临的系统挑战。Kimi K3在一个模型中结合了三个罕见的系统挑战:混合KDA注意力、3T级稀疏多模态训练与推理,以及百万令牌的智能体工作负载。我们的基础设施在模型生命周期的各个阶段都与这些挑战进行了协同设计。在架构层面,高性能的KDA内核和上下文并行(Context Parallelism)使得递归公式在设备内部和设备之间,无论是在训练还是推理中都高效。在预训练期间,平衡的专家执行、减少的内存占用以及通信重叠的调度,在大规模下保持了高利用率。在百万令牌的智能体RL期间,分层的状态管理和可恢复的沙箱执行,在迭代之间保留了长轨迹。最后,状态感知的KDA前缀缓存、专门的推理内核以及缓存和预算感知的调度,将这些效率转化为可预测的生产服务。

5.1 KDA的算法-系统协同设计

KDA的并行化挑战与解决方案。KDA用一个固定大小的递归状态$\mathbf{S} \in \mathbb{R}^{d_k \times d_v}$(§2.1.1)取代了softmax注意力中不断增长的键值缓存,其串行更新给并行执行带来了挑战,但换来的是一个易于传输和重用的固定大小状态。以下设计在两个执行层面解决了第一个问题并利用了第二个特性:在设备内部使用融合内核,在设备之间使用KDA上下文并行。

5.1.1 跨不同场景的KDA内核

针对不同执行场景的专用KDA内核。KDA状态的串行依赖性与GPU偏爱宽泛、统一的并行性相悖,并且在每个执行场景中表现为不同的瓶颈。我们为每个场景设计了专用的内核。

  • 用于训练和预填充的分块内核:KDA的分块形式在每个块内部是并行的,但在块之间是串行的,因为递归状态必须从一个块传播到下一个块。如果直接执行,这两个阶段会交替进行,导致SM在串行传播期间空闲。因此,我们开发了FlashKDA【索引14,Yutian Chen et al. FlashKDA: Flash Kimi Delta Attention. 2026】,一个基于CUTLASS的分块内核,它将块内计算与跨块状态传播重叠。该内核将工作分解为令牌并行的阶段和一个头部并行的递归,每个阶段都独立调度和调优,并且性能显著优于Triton参考实现。FlashKDA服务于训练和推理预填充,并作为flash-linear-attention【索引139,Songlin Yang and Yu Zhang. FLA: A Triton-Based Library for Hardware-Efficient Implementations of Linear Attention Mechanism. Jan. 2024】的后端自动分派。
  • 用于长上下文预填充的设备内上下文并行:张量并行(TP)将头部划分到不同设备上,但从不缩短递归长度,因此在纯TP部署下,预填充一个超长序列会导致大多数SM在每个rank只持有少数头部时处于空闲状态。关键观察是,每个段的状态转移可以独立于输入状态进行评估,并在之后精确地组合。因此,一个自动的SM级上下文并行(CP)规划器【索引142,Yaoyu Wang. Context Parallelism for DeltaNet. 2025】、【索引139,Songlin Yang and Yu Zhang. FLA: A Triton-Based Library for Hardware-Efficient Implementations of Linear Attention Mechanism. Jan. 2024】将序列划分到单个rank的SM上,并行评估段的转移,然后合并它们以恢复每个段的精确初始状态。与§5.1.2的跨设备KCP相比,这种并行完全在设备内部,不产生跨设备通信。
  • KDA解码:KDA解码面临着与训练和预填充不同的挑战。我们在§5.4.2中详细讨论这些挑战。
5.1.2 KDA上下文并行

KDA上下文并行(KCP)。上下文并行的通信开销在softmax和线性注意力之间有根本不同。Softmax注意力要求计算节点(rank)交换随序列长度增长的键值块【索引72,Hao Liu, Matei Zaharia, and Pieter Abbeel. “Ring Attention with Blockwise Transformers for Near-Infinite Context”. In: (2023)】。而线性注意力则将先前的上下文携带在一个固定大小的递归状态$\breve{\mathbf{S}} \in \mathbb{R}^{d_k \times d_v}$中。先前的上下文并行方法利用了普通线性注意力的可加递归性,通过在每个rank上计算本地令牌从$\mathbf{S} = \mathbf{0}$开始生成的状态,然后将这些本地状态在前序rank上求和来恢复输入状态【索引114,Weigao Sun et al. “Linear Attention Sequence Parallelism”. In: (2024)】、【索引113,Weigao Sun et al. “LASP-2: Rethinking Sequence Parallelism for Linear Attention and Its Hybrid”. In: (2025)】。

KCP的数学原理。然而,这种直接求和对于KDA来说是不够的。回顾公式1,KDA的状态更新为$\mathbf{S}_t = \mathbf{M}_t \mathbf{S}_{t-1} + \beta_t k_t \pmb{v}_t^\top$,其中$\mathbf{M}_t := (\mathbf{I} - \beta_t \pmb{k}_t \pmb{k}_t^\top) \mathrm{Diag}(\pmb{\alpha}_t)$。KDA的delta法则在添加当前写入之前,将依赖于令牌的矩阵$\mathbf{M}_t$应用于输入状态。因此,一个本地序列段的效果取决于进入该段的状态,不能仅从以$\mathbf{S} = \mathbf{0}$计算的状态来确定。

KCP的实现。为了保留这种依赖性,我们引入了KDA上下文并行(KCP),它将每个段的效果分解为两个可在本地计算的量:一个作用于输入状态的累积转移矩阵和一个从零开始在本地生成的状态。遵循§2.1.1的分块表示法,我们用$\mathbf{S}_{[i]}^t$表示在rank $i$的段内经过$t$个本地令牌后的递归状态,因此$\mathbf{S}_{[i]}^{T_i}$表示离开rank $i$并进入rank $i+1$的状态。我们用$\widetilde{\mathbf{S}}_{[i]}^t$表示从$\mathbf{S} = \mathbf{0}$开始的相同递归的状态。对于进入$P$个上下文并行rank中的第$(i+1)$个rank的任意状态,经过$t$个本地令牌后的状态是:

其中$\mathbf{M}_{[i+1]}^{t \ 1}$表示前$t$个本地令牌的累积转移。第一项包含由本地令牌生成的状态,而第二项则通过本地转移矩阵$\mathbf{M}_{[i+1]}^{T_{i+1} \leftarrow 1}$传播来自先前rank的上下文。这两个量——$\mathbf{M}_{[i+1]}^{T_{i+1} \leftarrow 1}$和$\widetilde{\mathbf{S}}_{[i+1]}^{T_{i+1}}$——都可以在$\mathbf{S}_{[i]}^{T_i}$可用之前,仅使用本地令牌计算,并且是每个rank与其他rank交换的片段。

KCP的通信与计算。公式17表明,每个状态都纯粹由本地计算的片段组成。每个rank在本地计算$\mathbf{M}_{[i]}^{T_i \leftarrow 1}$和$\widetilde{\mathbf{S}}_{[i]}^{T_i}$,然后通过一次all-gather与所有其他rank交换这两个张量【索引139,Songlin Yang and Yu Zhang. FLA: A Triton-Based Library for Hardware-Efficient Implementations of Linear Attention Mechanism. Jan. 2024】。在all-gather之后,每个rank通过按顺序处理来自同一文档的前序片段来重构其最终状态$\mathbf{S}_{[i]}^{T_i}$,从$\mathbf{S} = \mathbf{0}$开始,在每个片段$j$上应用$\mathbf{S} \gets \mathbf{M}_{[j]}^{T_j} \mathbf{S} + \widetilde{\mathbf{S}}_{[j]}^{T_j}$。因此,KCP仅需要一次固定大小的all-gather来进行递归状态同步,并实现了线性的计算扩展。

5.2 3T级预训练基础设施

Kimi K3的并行化策略。Kimi K3的预训练结合了流水线并行(PP)与虚拟阶段(VP)【索引48,Yanping Huang et al. “Gpipe: Efficient training of giant neural networks using pipeline parallelism”. In: Advances in neural information processing systems 32 (2019)】、【索引81,Deepak Narayanan et al. “Efficient large-scale language model training on gpu clusters using megatron-lm”. In: Proceedings of the international conference for high performance computing, networking, storage and analysis. 2021】,专家并行(EP)【索引66,Dmitry Lepikhin et al. “Gshard: Scaling giant models with conditional computation and automatic sharding”. In: arXiv preprint arXiv:2006.16668 (2020)】,ZeRO-1数据并行【索引100,Samyam Rajbhandari et al. “Zero: Memory optimizations toward training trillion parameter models”. In: SC20: International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE. 2020】,流水线ZeRO-2梯度分片【索引145,Aohan Zeng et al. GLM-5: from Vibe Coding to Agentic Engineering. 2026. arXiv: 2602.15763 [cs.LG]】,以及上下文并行(CP, §5.1.2)【索引50,Sam Ade Jacobs et al. DeepSpeed Ulysses: System Optimizations for Enabling Training of Extreme Long Sequence Transformer Models. 2023. arXiv: 2309.14509 [cs.LG]】。


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

MoE层的并行化。MoE层采用在EP ranks之间复制的共享专家,并且用于专家分派和组合的all-to-all通信与计算重叠以隐藏其延迟。

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

5.2.1 完美平衡的专家并行MoE训练

MoonEP:完美负载均衡的EP方案。在传统的EP方案中,令牌负载在各个rank之间是不平衡的。由此产生的计算不平衡降低了训练吞吐量,并且路由专家激活值的动态变化形状导致了严重的内存碎片化。因此,我们提出了MoonEP,一种通过动态冗余专家实现完美负载均衡的EP方案。MoonEP保留了传统方案(如DeepEP【索引147,Chenggang Zhao et al. DeepEP: an efficient expert-parallel communication library. 2025】)的整体计算流程,并额外引入了冗余专家的在线规划和迁移。在前向传播中,我们根据当前微批次和层的路由器输出来规划冗余专家,并在路由专家计算之前预取它们。在反向传播中,我们将它们的梯度暂存到本地的reduce缓冲区中,一旦计算完成,就将它们reduce回其所属rank的梯度缓冲区。

  • 有界冗余专家下的完美平衡:MoonEP要求每个rank接收完全相同的令牌数($S \times K$),其中$S$是序列长度,$K$是每个令牌选择的专家数,这样所有rank都执行相同的计算量。关键问题是需要多少冗余专家才能保证这种平衡。设$E$为专家数,$R$为EP大小。我们证明,每个rank最多有$E/R$个冗余专家时,总能存在一个平衡方案,并且这个界限基本上是紧的(见附录E)。因此,为每个rank保留$E/R$个冗余专家槽位保证了规划总能有可行解,训练永远不会中断。相比之下,先前的工作如ECHO【索引137,Zijie Yan et al. Scalable Training of Mixture-of-Experts Models with Megatron Core. 2026. arXiv: 2603.07685 [cs.DC]】和UltraEP【索引132,Xinming Wei et al. UltraEP: Unleash MoE Training and Inference on Rack-Scale Nodes with Near-Optimal Load Balancing. 2026. arXiv: 2606.04101 [cs.DC]】预设了冗余专家的数量或施加了每个rank的令牌上限。当在上限内不存在可行方案时,训练被迫停止,而且上限本身需要手动调整,同时仍会留下残余的不平衡。
  • 在线规划:在每个训练步骤计算精确的最优解成本过高。因此,我们使用整数线性规划(ILP)为代表性案例离线计算精确解作为参考,并设计了一个近乎最优、开销可忽略且始终遵守$E/R$上限的GPU规划内核。
  • 零拷贝通信:完美平衡也简化了通信路径。我们实现了一个融合的置换/反置换操作符,其中规划内核预先计算每个令牌的目的地,因此令牌被直接发送到远程rank上按专家分组的位置,通信缓冲区的视图直接返回给计算,消除了中间拷贝。在最坏的不平衡情况下,在DeepEP中支持相同的无拷贝数据路径需要一个大小为$S \times K \times R$的通信缓冲区,而由于完美平衡,MoonEP只需要一个固定的$S \times K$缓冲区。
  • 无同步执行与静态形状:在传统的MoE实现中,每个专家的令牌计数在不同步骤和层之间变化,主机必须在每一层与设备同步以获取实际的计算形状,然后才能启动专家计算,这会使层间的流水线停顿。通过完美平衡,每个rank接收完全相同的$S \times K$个令牌,所有层的计算形状都是静态已知的。这消除了每层MoE的主机同步,并减轻了主机端的内核启动开销。
  • 专家GEMM调度与重叠:即使在ranks之间总负载完美平衡,每个rank内的每个专家的令牌计数仍然是倾斜的,固定的、与工作负载无关的调度会将这种倾斜转化为SM工作者之间不平衡的完工时间。因此,我们使用一个工作负载感知的调度器来调度路由专家的GEMM,该调度器在启动前根据当前的令牌分布调整其参数,并在执行期间保持固定。一个轻量级的启发式方法使用硬件指标的分析成本模型来选择这些参数,关键系数通过离线自动调优进行校准。对于共享专家,我们将其GEMM分派到单独的流中,以便它们与其他内核重叠。
5.2.2 内存高效的训练

统一激活管理器。我们设计了一个统一的激活存储抽象,其中为反向传播保存的每个张量都与一个可插拔的存储后端相关联。重计算、量化和卸载/远程卸载只是该抽象下的存储策略,并且可以在张量粒度上自由组合;策略通过对张量的轻量级注释来声明,与模型代码完全解耦。重计算在函数粒度上执行,支持跨层重计算。在我们的实现中,所有GPU内存都在主计算流上分配,并在单个内存池中管理,避免了多流碎片化和主机绑定的开销;激活在层粒度上被预取回并与计算重叠,引入的额外开销可忽略不计。在Kimi K3中,大多数激活使用块级FP8量化【索引58,Kimi Team. Kimi K2: Open Agentic Intelligence. 2025. arXiv: 2507.20534 [cs.LG]】、【索引30,DeepSeek-AI et al. DeepSeek-V3 Technical Report. 2024. arXiv: 2412.19437 [http://cs.CL]】结合卸载/远程卸载,而逐元素操作符则配置为重计算。

内存高效的MoE。在原生的MoE实现中,置换概率(permuted probs)的梯度计算依赖于前向输出(output)。受SonicMoE【索引41,Wentao Guo et al. SonicMoE: Accelerating MoE with IO and Tile-aware Optimizations. 2025. arXiv: 2512.14080 [cs.LG]】的启发,我们通过数学变换将这个梯度重写为一个仅依赖于中间激活(act_output)和上游梯度(doutput)的形式,消除了对output的反向依赖,代价是增加了一个轻量级的逐元素计算。此外,在分组GEMM的前向传播中,我们只保存分派操作的输入;在反向传播期间,通过重计算分派来恢复分组GEMM的输入。如图11所示,这种重计算引入的通信可以与分组GEMM反向计算的一部分重叠,以可忽略的成本消除了这部分激活存储。

内存高效的注意力残差。对于注意力残差,我们设计了一个基于块注意力残差(Block AttnRes)的配套优化。块表示在边界层生成一次,并由所有后续层共享,直接驻留在GPU上。AttnRes计算完全用检查点(checkpointing)包裹,因此每层为反向传播保存的激活与标准残差架构的激活相同。对于流水线并行,我们采用基于缓存的流水线通信【索引57,Kimi Team. Attention Residuals. Preprint. 2026】,其中只有新生成的块被增量地在阶段间传输,并在微批次完成后立即释放,达到了内存占用的理论下限。

跨PP ranks平衡激活。在交错的1F1B流水线并行下,由于流水线预热,激活在PP ranks之间分布不均,驻留激活的数量随着PP rank的增加而减少。为避免内存溢出(OOM)错误,我们使用Mooncake传输引擎【索引96,Ruoyu Qin et al. Mooncake: A KVCache-centric Disaggregated Architecture for LLM Serving. 2024. arXiv: 2407.00079 [cs.DC]】将激活远程卸载到其他PP ranks的内存中,实现了跨PP ranks的激活内存平衡。

流水线ZeRO-2梯度分片和卸载。除了激活,我们使用流水线ZeRO-2梯度分片【索引145,Aohan Zeng et al. GLM-5: from Vibe Coding to Agentic Engineering. 2026. arXiv: 2602.15763 [cs.LG]】将梯度分片到数据并行(DP)ranks上。此外,我们将分片的梯度存储在CPU内存中以减少峰值GPU内存使用,同时在GPU上保留双梯度缓冲区。在梯度跨DP ranks reduce到双梯度缓冲区后,它们被累积到CPU分片中。

基于P2P的Muon正交化。分布式优化器将参数均匀地分片到DP ranks上,而Muon中的Newton-Schulz正交化需要完整的参数矩阵,这需要在每次更新前进行通信步骤以收集完整的参数。朴素的方法在每个rank上对整个参数缓冲区执行all-gather【索引73,Jingyuan Liu et al. Muon is Scalable for LLM Training. 2025. arXiv: 2502.16982 [cs.LG]】,这除了使通信成为大规模下的主要瓶颈外,还产生了巨大的内存占用。相反,每个rank仅通过与相应所有者rank的点对点(P2P)通信来检索其本地拥有的参数分片,消除了全参数缓冲区,并减少了内存使用和通信量。通信和计算在模型块缓冲区的粒度上进一步流水线化,隐藏了通信开销。

5.2.3 多模态编码器优化

多模态编码器中的动态CP。在长上下文多模态训练中,大图像和长视频显著增加了视觉编码器的计算时间,并导致设备间的严重负载不平衡。为了解决这个问题,我们将上下文并行扩展到这类大样本。单个大图像沿patch维度在多个设备上分区,并通过在CP ranks之间收集键值对(gather-KV)来计算注意力。此外,我们将每个CP组划分为几个子CP组,并在它们之间以负载均衡的方式分发多个大图像,防止通信比例随规模增长。这既减少了大视觉样本的编码器延迟,也减少了跨设备的负载不平衡,使得剩余的编码器计算可以隐藏在流水线气泡中。

PP气泡中的编码器计算。在Kimi K2.5中,我们引入了解耦编码器进程(Decoupled Encoder Process, DEP)【索引59,Kimi Team. “Kimi K2.5: Visual Agentic Intelligence”. In: arXiv preprint arXiv:2602.02276 (2026)】,它将ViT和文本训练分成不同阶段,并在PP阶段之间平衡视觉的前向和反向传播。我们观察到,在交错的1F1B流水线调度下,第一个PP微批次的文本前向传播都在最开始调度,而最后一个PP微批次的文本反向传播直到最后才完成。因此,我们进一步分解了ViT的计算。第一个PP微批次的ViT前向传播被同步地预先执行,剩余的前向传播被调度到流水线气泡中,反向传播也类似处理。结果是,大部分ViT计算被隐藏在流水线气泡内,大大消除了视觉编码器的有效开销。

5.3 百万令牌智能体RL基础设施

百万令牌智能体RL的资源效率。在有限的计算预算下,为像Kimi K3这样大的模型扩展到百万令牌上下文的智能体RL,使资源效率成为首要目标。这推动了两项互补的工作:1)高效的训练和展开,包括KV缓存管理、请求调度和训练状态放置;2)用于长程交互的高性能可恢复沙箱。

5.3.1 长上下文RL基础设施

协同定位RL与部分展开。我们采用协同定位的RL训练【索引58,Kimi Team. Kimi K2: Open Agentic Intelligence. 2025. arXiv: 2507.20534 [cs.LG]】将每个1M上下文的Kimi K3 RL实验保持在几百个GPU内,并使用部分展开【索引118,Kimi Team. Kimi k1.5: Scaling Reinforcement Learning with LLMs. 2025. arXiv: 2501.12599 [http://cs.AI]】来减少超长轨迹的尾部延迟。这种设计实现了良好的硬件利用率,但引入了需要为下一次迭代持久化的展开KV缓存与训练所需内存之间的内存使用冲突。在长上下文RL中,这一挑战变得更加严峻。

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

写回式外部KV缓存池。因此,我们通过写回设计将前缀保留与GPU驻留解耦。活跃的解码块保留在GPU KV缓存中,而可重用的空闲前缀仅在从GPU中被驱逐时才写回到CPU DRAM中的外部KV缓存池,并在下次重用前预取回来。KDA状态与相应的MLA KV缓存块一起卸载和预取,保持其生命周期一致。与写通策略相比,此策略仅对离开活跃解码路径的前缀产生CPU DRAM使用和传输带宽,避免了对仍在GPU上驻留和活跃的块进行冗余的CPU拷贝。

训练状态卸载。为了为外部池提供足够的DRAM,我们在训练迭代结束后将训练状态(模型权重和优化器状态)卸载到NVMe。在展开迭代后,该池被释放以避免与训练工作负载的冲突。

展开自动节流调度器。在多步展开中,上下文随着轨迹的推进而逐渐增长,使得基于完整轨迹平均长度的固定并发度既难以估计,又在早期过于保守。相反,设置过高的并发度会在后期阶段产生KV缓存压力,并可能引发抢占。因此,我们在LLM请求调度层设计了一个自动节流机制,使用运行时信号(如活动请求数、排队请求数和KV缓存利用率)来动态控制发送到推理引擎的请求数量。这使得早期展开得到充分利用,同时随着KV缓存压力的增加而降低并发度,避免了欠饱和和过载,无需手动调整。

非策略模型前向传播的梯度缓冲区重用。RL损失计算通常需要仅前向传播的非策略模型,如参考模型,其权重太大而无法常驻GPU。我们将这些权重保存在CPU内存中,仅在需要时才实例化它们,用策略模型的FP32梯度缓冲区存储来支持它们的参数张量。这重用了现有的GPU内存,无需额外分配或碎片化,并且是安全的,因为当稍后计算真实梯度时,这些缓冲区会被覆盖。

流式加载参考模型权重。通过ZeRO-2梯度分片和卸载(§5.2.2),每个GPU在Kimi K3 RL训练中仅保留两个VPP块的梯度缓冲区。我们以块为单位将参考权重流式传输到这些槽位中:一个槽位用于当前的前向计算,而另一个预取下一个块,隐藏了拷贝开销,而没有增加GPU内存。

5.3.2 沙箱基础设施

多种沙箱运行时。我们采用多种沙箱运行时来支持Kimi K3后训练和评估的多样化需求,包括传统的基于容器的运行时、GPU沙箱运行时,以及最值得注意的、一个名为AgentENV的新的基于microVM的沙箱运行时。

AgentENV的设计目标。AgentENV是与我们的合作伙伴合作开发的,是一个专门为智能体AI工作负载设计的沙箱系统。它围绕三个核心设计目标构建:
* 高保真隔离沙箱运行时:随着智能体能力越来越强,任务越来越难,它们倾向于更具攻击性地探索,甚至可能尝试奖励作弊。一方面,这带来了独特的安全挑战:在我们早期使用传统基于容器的沙箱运行时的实验中,我们观察到几次由意外的智能体操作引起的内核恐慌和死锁。另一方面,我们希望允许尽可能多的探索,以免限制智能体能力,而复杂任务需要一个接近真实世界环境的沙箱——例如,智能体应该能够随意挂载磁盘、运行容器,甚至启动虚拟机。通过运行带有Firecracker【索引3,Alexandru Agache et al. “Firecracker: Lightweight Virtualization for Serverless Applications”. In: 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI). 2020】的隔离microVM,AgentENV提供了基于容器的运行时无法比拟的隔离和保真度。
* 为智能体RL设计的灵活沙箱生命周期:在底层,AgentENV支持沙箱状态的增量检查点和恢复,其中在检查点期间只保存自上次检查点以来被弄脏的内存页,实现了低至133ms的检查点延迟和49ms的恢复延迟。在此之上,AgentENV提供了三个有助于提高智能体RL效率的高级操作。(a) 暂停和恢复:暂停的沙箱不消耗内存或CPU资源;因此,当智能体等待模型的推理结果时,可以暂停沙箱,这可以占到沙箱生命周期的98%。(b) 分叉(Fork):分叉从原始沙箱的精确状态创建一个新的沙箱,同时保持原始沙箱运行,这对于无副作用的奖励评判很有用。(c) 快照:可以定期保存沙箱的快照以进行错误恢复。
* 高效率和高密度:在我们的工作负载中,可能需要在几秒钟内创建数万个沙箱,每个沙箱都有一组独特的镜像。我们采用OverlayBD【索引68,Huiba Li et al. “DADI: Block-Level Image Service for Agile and Elastic Application Deployment”. In: 2020 USENIX Annual Technical Conference (USENIX ATC). 2020】作为镜像格式,结合自定义的ublk驱动程序实现、存储层共享和P2P传输,实现了大规模下的亚秒级启动延迟。我们通过写时复制内存和页缓存优化进一步减少了内存使用,在实际工作负载中实现了高达6.5倍的内存超售比。

沙箱使用规模。在Kimi K3的整个训练和评估过程中,总共创建了51,219,741个沙箱,跨越1,505,678个镜像。

5.4 推理和在线服务

生产服务面临的挑战。服务Kimi K3从生产方面暴露了与训练相同的挑战:混合的KDA-MLA架构维护着两种根本不同的缓存,必须在百万令牌上下文中联合管理;其新模块和高度稀疏的专家需要为每个模块量身定制的内核;生产流量混合了每个请求成本跨越三个数量级的请求。以下设计在三个层面解决了这些挑战。在引擎层面,一个KDA感知的前缀缓存将固定大小的递归状态打包到与MLA KV缓存相同的分页池中,并保持长前缀在请求之间可重用。在设备层面,用于KDA解码、块注意力残差和稀疏潜在MoE的专用内核最小化了每个令牌的延迟和内存流量。在集群层面,缓存感知的亲和性调度和基于预算的准入控制将这些效率转化为可预测的服务。

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:物理缓存块内的细粒度前缀缓存。一个6144令牌的物理块包含12个512令牌的哈希块,缓存的MLA块以蓝色显示,空块以浅灰色显示。下面的标记显示了每个哈希边界处的KDA检查点状态。空心圆(◦)表示没有存储检查点的边界,灰色点(•)表示持久化的KDA检查点,橙色点(•)标记了在$B=2560$处的检查点命中。持久化的检查点是稀疏的,通常与对话轮次的边界重合。该请求重用了五个MLA哈希块和在$B$处的KDA检查点,然后从该处恢复预填充,而无需重新计算$[0, B)$。

解耦哈希与分配粒度。因此,我们解耦了这两种粒度。前缀哈希在MLA页面内的细粒度哈希块(例如512个令牌)上运行,而物理块仍然是粗粒度的分配单元。对于KDA,对齐方式则相反:递归状态的检查点仅保存在MLA哈希端点的一个稀疏子集上——这是查找唯一可以引用的位置。

细粒度缓存的实现细节。在预填充期间,一个部分填充的MLA页面在其最后一个完整哈希块的链式哈希下注册到前缀缓存索引中,其中每个哈希覆盖所有先前的哈希块,以便匹配一个端点可以证明直到该点的整个前缀;注册的端点随着页面的填充而前进。同时,在每次前向传播后,KDA内核在处理的最后一个哈希对齐位置持久化递归状态。检查点很大,因此随着请求前进而被取代的中间检查点会被回收,而对话轮次边界的检查点则被保留以供跨请求重用。缓存的检查点是只读快照:一次命中通过将其复制到请求的私有运行状态中来恢复状态,然后在下一次前向传播之前,新的检查点被写入新的槽位,因此对其他请求可见的检查点永远不会被就地修改。

两阶段查找过程。查找分两个阶段进行(图12)。MLA阶段通过链式哈希匹配整个物理块,并在第一个缺失的块处,回退到其内部的哈希端点,因此部分填充的页面仍然可以命中。然后,KDA阶段要求在每个KDA缓存组的候选边界处都有一个检查点,每个缓存组维护一个独立的递归状态。命中是满足这两个阶段的最长边界——总是哈希块的倍数,并且从不要求是物理块的倍数。在图12中,一个前2800个令牌与缓存前缀匹配的请求在$B=2560 = 5 \times 512$处命中,该位置在一个6144令牌的物理块深处,并从令牌$B$开始恢复预填充,而不是重新计算$[0, B)$。

并发调度下的一致性。其余的设计要点都是由共享部分填充块的具体失败模式决定的,在这种情况下,一个命中块既是共享缓存条目,又是私有请求的增长点,并且MLA和KDA缓存组必须在每个命中边界上达成一致。首先,所有缓存组都从一个共享的空闲列表中获取块,因此为一个组分配一个私有副本可能会驱逐另一个组刚刚命中的块;因此,在分配任何东西之前,每个命中块都在所有组中被钉住。其次,复制到私有块的操作在GPU上紧接在前向传播之前执行,因此在当前调度步骤内分配或注册的块仍会将前一个所有者的字节交给读取者;此类块在复制完成之前被排除在匹配之外。第三,一个检查点只有在每个KDA组中都存在时才能恢复一个请求,因此驱逐一个组的检查点会原子地使其兄弟检查点失效——一个检查点要么在每个组中都可命中,要么在任何组中都不可命中。通过这些机制,每个注册的状态总是精确地对应其声明的令牌前缀,混合KDA-MLA模型的前缀缓存达到了与全注意力模型相同的通用性:任何共享前缀都可以在任何512令牌边界上重用,与请求长度、分块或调度交错无关。

5.4.2 高性能内核

新架构模块的内核优化。Kimi K3引入了几个新的架构模块:KDA(§2.1.1)、块注意力残差(§2.2)和Stable LatentMoE(§2.3)。我们为每个模块优化了内核实现。

  • KDA解码内核:与KDA预填充(§5.1)相比,KDA解码提出了一系列不同的挑战:主要瓶颈从利用并行性转移到有效管理演进的递归状态,该状态在每个解码步骤中就地更新。这种就地更新在基于MTP的推测解码中变得有问题:如果验证拒绝了草稿令牌的一个子集,状态已经前进到最后一个接受的令牌之后,无法轻易回滚。为每个草稿位置维护一个状态快照可以实现回滚,但也会增加状态流量——这在在线服务典型的大批量下成本高昂。
    ReplaySSM方法:我们转而只缓存草稿令牌的投影输入,这些输入比状态本身小得多,在片上重建接受令牌的状态,并写回已验证和奖励令牌的状态,这一设计在并发工作ReplaySSM【索引25,Dao AI Lab. ReplaySSM: Cache SSM Inputs, Not State. June 2026】中被独立提出。重放的令牌、奖励令牌和下一个草稿窗口共享一个递归循环,该循环在一个融合内核内,涵盖了短卷积、输入归一化、门控、KDA递归和输出归一化。验证延迟随验证的令牌数量次线性增长,并保持低于状态缓存基线。由于投影缓存从未离开解码阶段,前缀缓存和预填充-解码分离在与非推测服务相同的有效载荷上操作。

  • 块注意力残差内核:块注意力残差(Block AttnRes)【索引57,Kimi Team. Attention Residuals. Preprint. 2026】遵循一个两阶段调度:一个批处理的块间传递为每个块读取一次缓存的块表示,之后每个层通过在线softmax合并【索引79,Maxim Milakov and Natalia Gimelshein. Online normalizer calculation for softmax. 2018. arXiv: 1805.02867 [http://cs.PF]】将块内部分和折叠进去。在预填充和解码中,内存访问占这些内核成本的很大一部分,因此我们在这两个阶段的优化主要集中在内存效率上。
    预填充优化:对于预填充,在每个张量并行(TP)rank上实例化块表示会产生大量的冗余内存消耗。因此,我们对激活采用序列并行(SP):TP all-reduce被分解为reduce-scatter和all-gather,块内内核插入到这两个集合操作之间,对序列分片的隐藏状态进行操作,以便每个令牌的块表示仅在一个rank上实例化。这消除了额外的内存消耗,并减少了预填充期间块注意力残差的I/O开销。
    解码优化:对于解码,我们在一个侧流上启动块间内核,以便它与主流上的独立计算重叠。块内内核则通过融合进行简化:AttnRes输出与其部分和更新的合并,以及随后的RMSNorm,被融合到前面的TP all-reduce中,消除了块内阶段的专用内核。这些优化共同隐藏了块间传递的延迟,并减少了块内阶段的内存流量。

  • Stable LatentMoE内核:Stable LatentMoE增加了专家的总数和每个令牌激活的专家数量。由此导致的专家空间和每令牌专家计数的增长,增加了调度和协调开销,使得传统的MoE内核难以维持高硬件利用率。这些挑战促使我们对该模块进行专门的内核优化。
    潜在GEMM优化:为了减轻潜在GEMM的开销,我们采用了三种优化。首先,我们将潜在下投影与MoE路由器融合成一个单一的GEMM。其次,我们在ranks之间分片潜在权重矩阵,并使用多内存存储指令将输出的all-gather融合到GEMM的结尾部分。最后,我们将由此产生的通信与其他操作符(如共享专家计算)重叠。这些优化共同消除了冗余的权重流量和重复的计算,同时将通信延迟隐藏在计算之后。
    路由专家优化:对于路由专家,在小批量下,分组GEMM退化为内存绑定的权重矩阵流式传输——在这种情况下,传统的以瓦片为中心的内核由于其面向计算的设计和预处理开销而表现不佳。我们转而基于WarpDecode【索引12,Better MoE Model Inference with Warp Decode. Cursor. 2026】的以令牌为中心的设计来构建MoE解码内核,其中每个warp负责一个输出神经元,并直接从内存中流式传输相关权重。为了进一步增加并行性,我们将每个warp细分为更细粒度的通道(lane)团队,每个团队处理一个不相交的专家子集,然后对部分结果进行warp范围的规约。此外,权重布局在一次性预处理成本下离线置换,大大减少了运行时的反量化开销。

5.4.3 集群级调度

生产服务中的调度挑战。在单个服务实例之外,挑战从单请求效率转向可预测性:前缀缓存未命中的成本比命中高出几个数量级,而百万令牌请求的突发可能会饿死短请求。我们提出了两种集群级调度策略来解决这个问题:缓存感知的亲和性调度将每个会话路由到持有其前缀缓存的集群,同时限制集群故障的成本;基于预算的准入控制为每个请求类别授予其自己的资源预算,以便突发的长上下文流量不会降低系统范围的服务等级目标(SLO)。

  • 缓存感知的亲和性调度:在1M上下文中,一个典型的编码输入带有400K令牌的前缀,但只需要4K令牌的预填充增量,因此前缀缓存命中避免了重新预填充整个前缀,比未命中便宜几个数量级。因此,我们将每个请求路由到持有其前缀缓存的集群,因为将缓存移动到另一个集群需要通过比集群内网络慢得多的集群间链路进行传输。然而,这种缓存感知的亲和性将每个会话绑定到单个集群,其故障将中断所有绑定到它的会话。因此,一致性哈希将每个会话固定到两个集群:一个主集群为其提供服务,一个预先分配的备用集群在主集群失败时接管。备用集群不持有会话的任何前缀缓存,并且必须在故障转移时重新预填充它。由于一致性哈希将不同会话的备用分配均匀地分布在整个集群中,这种重新预填充工作被分散到许多集群上,而不是集中在一个集群上。因此,在通常情况下保留了缓存局部性,同时任何单个集群故障的影响仍然是有限的。

  • 基于预算的准入控制:生产流量混合了低于2K令牌的短请求和高达1M令牌的超长请求,因此每个请求的成本跨越大约三个数量级,任何固定数量请求施加的总负载都高度不可预测。基于“平均请求”的容量规划、排队模型和速率限制配额在这种方差下都会失效。在典型的失败模式中,长上下文请求的突发会饱和可用的计算资源,之后到达的短请求无法及时调度,从而降低了所有流量的首个令牌生成时间(TTFT)。因此,我们采用基于预算的准入控制,为不同的请求类别分配独立的资源预算,以便突发的长上下文流量最多消耗其自身的容量份额,而不会降低其他类别体验到的系统范围SLO。

A4 实验环境

  • 模型架构:Kimi K3是一个拥有2.8万亿总参数和1042亿激活参数的混合专家(MoE)模型,支持100万令牌的上下文窗口。其架构基于Kimi Delta Attention (KDA)和Gated Multi-head Latent Attention (MLA)的混合注意力机制、注意力残差(Attention Residuals)、Stable LatentMoE(896个路由专家,每个令牌激活16个)以及原生视觉模块MoonViT-V2(0.4B参数)。具体参数对比见表1。
  • 硬件配置:训练和评估在多种GPU上进行,包括NVIDIA H100、H20、L20以及Hopper架构GPU。RL训练在“数百个GPU”规模的集群上进行。基础设施利用了P2P通信和NVMe存储进行状态卸载。
  • 软件配置

    • 实现:基于PyTorch【索引89,Adam Paszke et al. PyTorch: An Imperative Style, High-Performance Deep Learning Library. 2019】,并使用了多种自研和开源库。
    • 核心库:KDA内核基于CUTLASS【索引14,Yutian Chen et al. FlashKDA: Flash Kimi Delta Attention. 2026】和Triton【索引139,Songlin Yang and Yu Zhang. FLA: A Triton-Based Library for Hardware-Efficient Implementations of Linear Attention Mechanism. Jan. 2024】。分布式训练使用NCCL【索引82,NCCL: The NVIDIA Collective Communications Library. NVIDIA. 2026】。沙箱环境基于Firecracker【索引3,Alexandru Agache et al. “Firecracker: Lightweight Virtualization for Serverless Applications”. In: 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI). 2020】和OverlayBD【索引68,Huiba Li et al. “DADI: Block-Level Image Service for Agile and Elastic Application Deployment”. In: 2020 USENIX Annual Technical Conference (USENIX ATC). 2020】。
    • 代码:模型权重和部分基础设施代码(如FlashKDA)已开源。
  • 数据集

    • 预训练:使用了覆盖网络文本、代码、数学和知识的大规模文本语料库,以及包含字幕、图文文档、OCR、感知、视频和视觉编码数据的大规模视觉语料库。数据经过了复杂的清洗、去重和合成流程。
    • 后训练与评估:使用了广泛的公共和内部基准测试集,涵盖推理、知识、编码、智能体和视觉等多个维度。公共基准包括GPQA、DeepSWE、BrowseComp、MMMU-Pro等。内部基准包括Kimi Code Bench 2.0、24/7 ClawBench 2.0等,旨在评估更贴近真实世界应用的复杂能力。

A4 实验结果

6.1 主要结果

基准测试与对比模型:Kimi K3在一系列涵盖推理与知识、编码、智能体和视觉四大能力的基准上进行了评估。对比模型包括最强的专有模型(Claude Fable 5, GPT-5.6 Sol, Claude Opus 4.8, GPT-5.5)和开源模型(GLM-5.2)。

评估结果总结(见表2)

  • 总体表现:Kimi K3的性能紧随最顶尖的专有模型Claude Fable 5和GPT-5.6 Sol,同时在评估套件中持续优于Claude Opus 4.8, GPT-5.5和GLM-5.2。
  • 推理与知识:在研究生水平的推理任务(GPQA Diamond)上,Kimi K3表现出色(93.5%),与前沿水平相当。但在研究级别的任务(如HLE-Full, CritPt)上仍存在差距。
  • 编码:Kimi K3展现了强大的智能体编码能力。在ProgramBench上得分最高(77.8%),在面向GPU内核的SWE-Marathon上领先Claude Fable 5(42.0% vs 35.0%),在长程编码基准FrontierSWE上排名第二(81.2%),仅次于Claude Fable 5。
  • 智能体:Kimi K3在一系列智能体任务上取得了SOTA结果,包括BrowseComp (91.2%)、DeepSearchQA (95.0% F1)、MCPMark-Verified (94.5%)等。在知识工作类套件(GDPval-AA v2, AA-Briefcase)上,表现有竞争力,但略逊于Claude Fable 5。
  • 视觉:Kimi K3表现出强大的多模态理解能力,尤其在结合Python工具后能力得到放大。在Math-Vision上,使用工具后得分达97.8%;在ZeroBench-main上,使用工具后得分从23.0%跃升至41.0%。它还在OmniDocBench上得分最高(91.1%)。

表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%的任务被标注为降级。

BenchmarkKimi K3 (max)ProprietaryOpen Weight
Claude Fable 5 (max, w/ fallback)GPT-5.6 Sol (max)Claude Opus 4.8 (max)GPT-5.5 (xhigh)GLM-5.2 (max)
Reasoning & Knowledge
GPQA Diamond93.592.694.191.093.591.2
CritPt23.428.632.320.927.120.9
AA-LCR74.770.073.767.774.371.3
HLE-Full43.5 / 56.053.3 / 63.044.5 / 58.049.8 /57.941.4/52.2-
Coding
DeepSWE67.570.073.059.067.046.2
ProgramBench77.876.877.671.970.863.7
Terminal-Bench 2.188.388.088.884.683.482.7
FrontierSWE81.286.671.366.764.967.3
SWE-Marathon42.035.039.040.014.013.0
PostTrainBench36.641.434.634.128.434.3
MLS-Bench-Lite48.349.946.242.835.540.4
SciCode58.760.256.153.556.150.5
Agentic
BrowseComp91.288.090.484.384.4-
DeepSearchQA (F1)95.094.2-93.1--
ResearchRubrics76.2-73.873.564.071.1
GDPval-AA v2 (Elo)168617471736159314911510
Toolathlon-Verified76.577.974.976.273.559.9
MCPMark-Verified94.587.492.976.492.9
MCP-Atlas84.284.783.683.682.882.6
AutomationBench30.829.129.727.222.712.9
JobBench54.357.4 158345.448.438.343.4
AA-Briefcase (Elo)154825.7†1495135411581260
Agents' Last Exam28.343.329.627.026.620.4
APEX-Agents41.069.939.9 63.239.438.535.6
OfficeQA Pro63.334.732.463.9 31.660.9 29.141.4
SpreadsheetBench 234.885.083.083.479.028.1
OSWorld-Verifi ed84.8 58.366.162.655.749.5-
OSWorld 2.0-
SaaS-Bench60.161.456.143.8-
τ3-Banking33.426.833.027.631.326.8
Harvey Lab-AA94.693.687.291.186.391.0
CorpFin v271.671.864.466.768.466.1
Finance Agent v254.456.353.853.951.849.7
Legal Research Bench44.249.548.143.840.431.3
Vision
WorldVQA ForceAnswer51.056.741.839.138.5
OmniDocBench91.189.885.887.989.4
PerceptionBench Video-MME (w/ sub)58.5 90.057.259.747.255.8
-89.586.089.3
MMVU82.181.279.281.7
BabyVision w/ Python85.790.588.981.283.6
MMMU-Pro81.6/83.481.2 / 86.583.0/ 84.678.9/82.781.2/83.2
CharXiv (RQ)84.8/91.388.9 / 93.584.6 / 89.180.5 /89.984.1 / 89.0
Math-Vision94.3 / 97.894.8 / 98.695.8/ 97.886.7/97.192.2 / 96.8
ZeroBench-main (pass@5)23.0 / 41.023.0 / 46.017.0 / 35.017.0 / 34.022.0/41.0

6.2 内部评估

内部评估套件:除了公共基准,团队还维护了一套内部基准,覆盖编码能力与体验、通用智能体体验和对话体验三大类,以更全面地衡量模型能力并指导迭代。

结果分析(见表3和表4)
- 优势领域:Kimi K3在编排和研究型智能体任务上表现出明显优势,如在Swarm Bench (76.3) 和Deep Research Bench (90.0) 上领先。编码也是其强项,在Kimi Webdev Bench上,专家盲评中以+31.0的优势胜过Claude Opus 4.8,尤其在3D/WebGL/Shader任务上表现突出。
- 待提升领域:Kimi K3主要在Agent Behavior Bench, MIRA Bench, 24/7 ClawBench 2.0等任务上落后于领先模型,这表明在智能体行为质量、多智能体协作等方面还有提升空间。
- 其他领域:在KAET、CLIF Bench、Online Experience、DECK Bench、Faithfulness和Chat All-in-One Bench等其余套件中,Kimi K3排名第一或紧随其后。

6.3 第三方评估

独立评估结果(见表5)
- Artificial Analysis:Kimi K3的智能指数v4.1为57.1,在580个模型中排名第四,仅次于Claude Fable 5和GPT-5.6 Sol。
- Vals AI:在GDP加权的行业基准套件上,Kimi K3的Vals指数为74.7%,在39个模型中排名第二,仅次于Claude Fable 5。
- Arena:在众包的人类偏好竞技场中,Kimi K3在WebDev Arena上排名第一(1,678 Elo),成为首个登顶该榜单的开放模型;在Text Arena上排名第八。

6.4 成本效率

性价比分析(见图13)
- Kimi K3在多个基准(Kimi Code Bench 2.0, BrowseComp, GDPval-AA v2, AA-Briefcase)上展现了极高的成本效率。
- 例如,在Kimi Code Bench 2.0上,Kimi K3以Claude Fable 5 38%的成本达到了其95%的性能。在BrowseComp上,Kimi K3以最低的成本($2.03/任务)取得了最高的得分(91.2%)。 - 总体而言,Kimi K3在所有四个套件中都位于或接近成本效率前沿,以远低于顶级专有模型的成本提供了接近顶级的性能。 图13:在Kimi Code Bench 2.0、BrowseComp、GDPval-AA v2和AA-Briefcase上的得分与每任务推理成本对比。Kimi K3用星号标记。 ## A7 补充细节 ### 7 案例研究 本节展示了Kimi K3在不同技术任务中的代表性案例,以证明其能力。 **GPU内核优化**。我们测试了模型优化GPU内核的能力。每个模型在相同的沙箱中独立工作,每个任务预算长达24小时。评估涵盖了四个代表性内核:AttnRes、DeepSeek稀疏注意力(DSA)、KDA和MLA,并在NVIDIA Hopper GPU和另一家供应商的GPGPU上进行。Kimi K3显著提升了所有四个内核的性能,将AttnRes的延迟从283.6ms降低到114.4ms,将DSA和KDA的运行时间分别减少了55.1%和73.6%,并在MLA上达到了超过一半的峰值TFLOPS。在这些任务中,Kimi K3与Claude Fable 5【索引16,Claude Fable 5. Anthropic. 2026】(带回退)相当,并显著优于Claude Opus 4.8【索引17,Claude Opus 4.8. Anthropic. 2026】、GPT-5.6 Sol【索引39,GPT-5.6 Sol. OpenAI. 2026】和GPT-5.5【索引38,GPT-5.5. OpenAI. 2026】。图14比较了各模型在AttnRes上的优化轨迹。在基准测试之外,一个早期的Kimi K3检查点在开发后期已经承担了我们大部分的内核优化工作。 图14:案例研究:AttnRes的GPU内核优化。 **GPU编译器开发**。Kimi K3开发了MiniTriton,一个类似Triton【索引122,Philippe Tillet, Hsiang-Tsung Kung, and David Cox. “Triton: An Intermediate Language and Compiler for Tiled Neural Network Computations”. In: Proceedings of the 3rd ACM SIGPLAN International Workshop on Machine Learning and Programming Languages (MAPL). 2019】的紧凑型编译器,具有自定义的tile级Python前端和布局系统,一个轻量级的warp级MLIR【索引64,Chris Lattner et al. “MLIR: Scaling Compiler Infrastructure for Domain Specific Computation”. In: 2021 IEEE/ACM International Symposium on Code Generation and Optimization (CGO). 2021】注释和优化层,以及一个并行线程执行(PTX)代码生成管道。围绕该编译器构建了一个双模态张量库,具有类似PyTorch【索引89,Adam Paszke et al. PyTorch: An Imperative Style, High-Performance Deep Learning Library. 2019】的高级接口,其eager模式和仅前向的编译路径共享相同的DSL编译器和运行时。该库还提供了反向模式自动求导、神经网络模块、基于NCCL【索引82,NCCL: The NVIDIA Collective Communications Library. NVIDIA. 2026】的分布式训练原语,以及稀疏和可视化原语。在NVIDIA L20上,MiniTriton在其核心基准套件的几何平均性能上优于PyTorch eager【索引89,Adam Paszke et al. PyTorch: An Imperative Style, High-Performance Deep Learning Library. 2019】和torch.compile【索引5,Jason Ansel et al. “PyTorch 2: Faster Machine Learning Through Dynamic Python Bytecode Transformation and Graph Compilation”. In: Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). 2024】。其从零开始的张量核矩阵乘法路径在最大形状下接近cuBLAS【索引22,cuBLAS. NVIDIA. 2026】,达到了约90%的实测机器性能上限,而其DSL级的KDA【索引63,Kimi Team et al. Kimi Linear: An Expressive, Efficient Attention Architecture. 2025. arXiv: 2510.26692 [http://cs.CL]】预填充内核性能明显优于匹配的Triton参考。MiniTriton还能端到端地训练一个GPT模型,其损失曲线与PyTorch参考紧密跟踪,全模型梯度与torch autograd的差异不超过torch自身的fp32舍入误差($10^{-4}$),这是与fp64参考相比测得的。这些结果共同证明,Kimi K3可以构建一个连贯的端到端编译器——从DSL前端和IR遍(pass)到PTX代码生成和CUDA运行时——而不仅仅是一堆孤立的内核(图15)。 图15:案例研究:使用MiniTriton进行GPU编译器开发。(a) NVIDIA L20 (sm_89)上MiniTriton内核的CUDA核和(b)张量核性能上限线,对比torch eager、torch.compile、Triton和cuBLAS基线(包括失败点);(c) 使用MiniTriton与torch eager训练的字符级GPT的训练损失曲线;(d) 基于MiniTriton自身分布式原语(NCCL)的双GPU数据并行训练与单GPU训练的对比。 **芯片设计**。作为一个早期的概念验证,Kimi K3设计了一个用于nano模型的推理芯片原型,该模型遵循相同的架构——混合KDA和NoPE-MLA注意力,块大小为2的Block AttnRes,基于sigmoid的MoE路由和一个共享专家——并采用分组INT4权重 quantization(组大小128)。在一次48小时的自主运行中,Kimi K3使用Kimi Code,利用开源EDA工具和Nangate45标准单元库【索引80,Nangate, Inc. Nangate 45nm Open Cell Library. 2010】,构建、优化并验证了该芯片。在$4mm^2$的分析面积预算内,该设计在100 MHz下满足时序要求,并实现了超过8,700 tokens/s的RTL模拟解码吞吐量,集成了146万个标准单元、0.277 MiB的SRAM和一个带有融合反量化的INT4 MAC阵列。RTL代码已在GitHub上提供。 **科研编码**。为了在计算天体物理学中复现I-Love-Q普适关系,Kimi K3审阅了20多篇论文并交叉验证了它们的结果,实现了完整的数值计算流程,评估了300多个状态方程,识别了已发表公式中的不一致之处,编写了超过3000行Python代码,并生成了一个交互式HTML仪表板——整个过程耗时约两小时,而经验丰富的研究人员通常需要一到两周。 **知识工作**。在Kimi Work中,Kimi K3制作了一个交互式研究网站,涵盖了AI ASIC行业42年的发展。模型完成了超过120轮的迭代优化,利用了87份季度报告和99份原始PDF(超过11000页)的语料库,通过超过2800次网络搜索和1100多次终端查询。在另一个案例中,Kimi K3使用超过20个并发子智能体分析了GWTC-5中的391个引力波事件,生成了七个科学可视化图表、两个总结表格和一份超过十篇论文的文献综述。 **视频编辑与动态设计**。利用其原生多模态架构,Kimi K3创作了一个3Blue1Brown风格的动态图形解说视频,解释其自身架构,并从56个源剪辑中剪辑了其预告片。这包括剪辑选择、运动匹配剪辑、帧级精确的节拍同步、音频处理和多轮修改。制作一个类似的高密度短视频通常需要经验丰富的编辑一到两天的时间。 ## A5 结论 我们介绍了Kimi K3,一个开放的、拥有2.8万亿参数的混合专家(Mixture-of-Experts)模型,具备原生视觉能力和一百万令牌的上下文窗口,构建于Kimi Delta Attention和Attention Residuals之上。作为全球首个开放的3T级模型,Kimi K3在长程编码、智能体、知识、推理和视觉任务上展现了前沿水平的性能。尽管与最强的专有模型之间仍存在差距,但Kimi K3建立了一个人人可及的新的开放前沿。我们希望它能为更广泛的社区在研究、部署和创新方面赋能。 ## A6 附录 ### B Sigmoid Tanh Unit GLU 详情 **SiTU-GLU的设计目标**。SiTU-GLU(§2.3.2)的设计目标是在不丢弃Swish特有形状(原点附近的近似线性响应和消失的负尾部)的情况下,对SwiGLU的乘积进行有界限制。图4展示了门控分支和上行分支及其完整的标量响应。 **平滑地限制两个分支**。SiTU对Swish的线性因子进行限制,形式为$\beta_1 \tanh(\mathbf{W}_g \pmb{x} / \beta_1)$,同时保留了sigmoid因子【索引60,Kimi Team. Kimi K3: Open Frontier Intelligence. Moonshot AI. July 16, 2026】。由于sigmoid已经将负向的门控响应驱动至零,这一改变主要控制了大的正向激活,而没有移除负尾部。Kimi K3对上行分支应用了相同的构造,形式为$\beta_2 \tanh(\mathbf{W}_u \pmb{x} / \beta_2)$,防止任一分支在乘积中占主导地位。 **局部和极限行为**。对于原点附近的标量$z$,缩放的tanh满足:

$$ \beta \operatorname { t a n h } \left( \frac { z } { \beta } \right) = z + O \left( \frac { z ^ { 3 } } { \beta ^ { 2 } } \right) . $$

因此,SiTU-GLU在原点附近与SwiGLU一阶匹配。当$\beta_1, \beta_2 \to \infty$时,它也逐点恢复为SwiGLU。 **有界输出**。由于$|\tanh(z)| < 1$且$0 < \mathrm{Sigmoid}(z) < 1$,每个输出坐标都满足:

$$ \begin{array} { r } { \left. \mathrm { S i T U - G L U } ( \pmb { x } ) \right. _ { \infty } \leq \beta _ { 1 } \beta _ { 2 } = 1 0 0 , } \end{array} $$
对于$\beta_1 = 4$和$\beta_2 = 25$。与对门控预激活进行硬性截断不同,平滑限制在远离饱和边界处保留了非零梯度,我们发现这能带来更好的训练行为。 ### C 分位数平衡的推导 **从最优平衡分配推导QB**。本附录从最优平衡分配推导了§2.3中使用的分位数平衡(QB)更新,遵循了【索引111,Jianlin Su. Travels in MoE: 6. Promoting Load Balance via Optimal Assignment. Blog post (in Chinese). Feb. 2026】;将专家负载均衡视为分配问题的观点可以追溯到BASE Layers【索引67,Mike Lewis et al. “BASE Layers: Simplifying Training of Large, Sparse Models”. In: Proceedings of ICML. 2021】和BIP【索引116,Yuan Sun. Binary-Integer-Programming Based Algorithm for Expert Load Balancing in Mixture-of-Experts Models. 2025. arXiv: 2502.15451 [cs.LG]】。设$\pmb{s} \in \mathbb{R}^{m \times n}$收集了$m$个令牌对$n$个专家的路由器分数,其中每个令牌选择$k$个专家,$x_^} \in {0, 1}$表示令牌$i$是否分配给专家$j$。最大分数平衡分配问题,其中每个专家恰好服务$mk/n$个令牌(假设为整数),是:
$$ \operatorname* { m a x } _ { x _ { i , j } \in \{ 0 , 1 \} } \sum _ { i , j } x _ { i , j } s _ { i , j } \qquad \mathrm { s . t . } \qquad \sum _ { j } x _ { i , j } = k , \qquad \sum _ { i } x _ { i , j } = { \frac { m k } { n } } . $$
**线性松弛与对偶**。将$x_{i,j} \in {0, 1}$松弛为$x_{i,j} \in [0, 1]$,将公式20转化为一个线性规划问题,其最优解由于二分$b$-匹配多面体的标准整性而是整数解;因此松弛是精确的。为令牌和专家侧的等式约束分别引入自由乘子$\alpha_i$和$\beta_j$,松弛问题可以写成最大-最小形式:
$$ \operatorname* { m a x } _ { x _ { i , j } \in [ 0 , 1 ] } \operatorname* { m i n } _ { \alpha _ { i } , \beta _ { j } } \sum _ { i , j } x _ { i , j } s _ { i , j } - \sum _ { i } \alpha _ { i } \Big ( \sum _ { j } x _ { i , j } - k \Big ) - \sum _ { j } \beta _ { j } \Big ( \sum _ { i } x _ { i , j } - \frac { m k } { n } \Big ) . $$
目标函数在$x, \alpha, \beta$中都是线性的,且可行集是凸的,因此极小极大定理允许交换优化顺序:
$$ \operatorname* { m i n } _ { \alpha _ { i } , \beta _ { j } } \operatorname* { m a x } _ { x _ { i , j } \in [ 0 , 1 ] } \sum _ { i , j } x _ { i , j } \big ( s _ { i , j } - \alpha _ { i } - \beta _ { j } \big ) + k \sum _ { i } \alpha _ { i } + \frac { m k } { n } \sum _ { j } \beta _ { j } . $$
内部最大化问题在各个条目上是可分的,当$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^$得到凸对偶目标函数:
$$ \operatorname* { m i n } _ { \alpha _ { i } , \beta _ { j } } \ \mathcal { L } ( \alpha , \beta ) : = \sum _ { i , j } \operatorname* { m a x } \left( 0 , \ s _ { i , j } - \alpha _ { i } - \beta _ { j } \right) + k \sum _ { i } \alpha _ { i } + \frac { m k } { n } \sum _ { j } \beta _ { j } . $$
算法1:交替QB求解器。 | | 输入: 分数矩阵 s ∈ Rm × n 输出: 分配 x ∈ {0, 1} m × n | | :--- | :--- | | | 初始化 β = 01×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 return x with xi,j = 1 if j ∈ argtopk(si − β), and 0 otherwise | **精确坐标最小化**。我们通过交替求解$\alpha$(固定$\beta$)和$\beta$(固定$\alpha$)来最小化公式23;每个子问题都有一个封闭形式的精确解。当$\beta$固定时,问题在令牌上解耦,对于令牌$i$,我们求解:
$$ \operatorname* { m i n } _ { \alpha } { k \alpha } + \sum _ { j } \operatorname* { m a x } { \big ( } 0 , \ : s _ { i , j } - \beta _ { j } - \alpha { \big ) } . $$
该目标函数在$\alpha$上是分段线性的,斜率为$k$减去超过$\alpha$的边际值$s_{i,j} - \beta_j$的数量;因此,当有$k$个边际值位于$\alpha$之上时,它被精确最小化,即对于任何介于$s_i - \beta$的第$k$大和第$(k+1)$大条目之间的$\alpha_i^_$。按照惯例,我们取第$(k+1)$大的条目,这等价于$(1-k/n)$-分位数:
$$ \alpha _ { i } ^ { * } = \mathrm { q u a n t i l e } _ { 1 - k / n } \left( \pmb { s } _ { i } - \beta \right) . $$
对称地,当$\alpha$固定时,专家$j$求解$\min_\beta \frac{mk}{n}\beta + \sum_i \max(0, s_{i,j} - \alpha_i - \beta)$,其最小化器是$s_{:,j} - \alpha$的第$(mk/n+1)$大条目,同样是$(1-k/n)$-分位数:
$$ \beta _ { j } ^ { * } = \mathrm { q u a n t i l e } _ { 1 - k / n } \left( s _ { : , j } - \alpha \right) . $$
因此,两个更新分别是沿令牌轴和专家轴的相同分位数,这也是该方法名称的由来。图5将专家侧的更新描绘为均衡每个专家边际分布的上尾部,算法1总结了由此产生的交替求解器。 **从分配到路由**。在公式23的最优解处,$x_{i,j}^ = 1$当且仅当$s_{i,j} - \alpha_i^_ - \beta_j^_ > 0$;结合令牌约束$\sum_j x_{i,j}^_ = k$,选定的专家恰好是$s_i - \beta^_$的Top-k条目。因此,路由只需要专家阈值$\beta \in \mathbb{R}^n$(等价于公式13中的偏置$\boldsymbol{b} = -\boldsymbol{\beta}$),而令牌阈值$\pmb{\alpha} \in \mathbb{R}^m$是与动态训练批次相关的中间变量,并被丢弃。这种不对称性保持了训练-推理的一致性:在部署时,路由是一个带有冻结偏置的固定Top-k选择,不需要计算分位数。 **与基于符号的无损失更新的关系**。公式26背后的专家侧子问题的(子)梯度为:
$$ \frac { \partial \mathcal { L } } { \partial \beta _ { j } } = \frac { m k } { n } - \sum _ { i = 1 } ^ { m } \chi \big ( s _ { i , j } - \alpha _ { i } - \beta _ { j } > 0 \big ) , $$
即目标负载减去专家$j$的观察负载。对此目标函数的一个SignSGD步骤恢复了无辅助损失平衡的固定步长符号更新【索引30,DeepSeek-AI et al. DeepSeek-V3 Technical Report. 2024. arXiv: 2412.19437 [http://cs.CL]】,除了符号约定$\boldsymbol{b} = -\beta$:符号更新只保留了公式27中负载误差的方向,而QB直接跳到相同对偶目标函数的精确坐标最小化器。这一观点解释了为什么QB不需要类似学习率的超参数,以及为什么即使对于近$10^3$个专家,它也能在几次更新步骤内达到平衡。QB同样与BIP【索引116,Yuan Sun. Binary-Integer-Programming Based Algorithm for Expert Load Balancing in Mixture-of-Experts Models. 2025. arXiv: 2502.15451 [cs.LG]】相关,后者用不等式约束$\sum_j x_{i,j} \leq k$和$\sum_i x_{i,j} \leq mk/n$解决相同的分配问题;对$\alpha$和$\beta$引入的非负性约束为两个更新都增加了一个$\max(0, \cdot)$裁剪,这只能抑制被过度选择的专家而不能提升被欠选择的专家,在我们的实验中显著减慢了平衡速度。最后,由此产生的固定Top-k路由与专家特定阈值路由相关,但不同于专家阈值路由,后者维护EMA阈值并允许每个令牌选择可变数量的专家【索引112,Hanchi Sun et al. Expert Threshold Routing for Autoregressive Language Modeling with Dynamic Computation Allocation and Load Balancing. 2026. arXiv: 2603.11535 [http://cs.AI]】。 ### D 基于直方图的分位数估计 **大规模分位数估计的挑战与解决方案**。公式14中的QB更新要求在整个训练步骤上取分位数:对于$n$个专家中的每一个,取边际值$s_{i,j} - \alpha_i$的$(1-k/n)$-分位数,其中令牌数$m$跨越数百万个令牌,分片在数据并行ranks和梯度累积步骤中。在训练循环内收集$O(mn)$个边际值以进行精确分位数计算是不切实际的。关键的观察是,更新从不需要边际值本身,只需要它们每个专家的分布,而直方图以固定成本总结了这一点。因此,Kimi K3为每个专家维护一个分箱直方图,并从中读取分位数。具体来说,我们对所需的偏置$r_{i,j} := \alpha_i - s_{i,j}$进行直方图统计,这个偏置能将专家$j$恰好置于令牌$i$的截止点;对边际值取反会颠倒它们的顺序,因此公式14中的QB目标$\widehat{b}_j$恰好是$r
$,我们没有观察到可测量的残余负载不平衡。其次,它成本低廉:唯一的通信是每层每步对$nB$个值进行一次整数all-reduce,与$m$无关,在我们的配置中,这低于每微批次在进程组上交换原始边际值成本的1%,后者是自然的替代方案。第三,它估计了正确的量:因为计数是可加的,所以全局直方图对于令牌如何在ranks或累积步骤之间划分是完全不变的,估计值是汇集的全局批次的分位数,而不是每个rank分位数的平均值,后者通常不同。作为进一步的改进,维护跨步骤估计分位数的指数移动平均可以减少批次间的采样噪声,并能进一步改善负载均衡。 ### E MoonEP通用上界证明 **MoonEP的理论界限**。设$m_r(P)$表示在计划$P$下放置在rank $r$上的冗余专家数量。对于一个路由器输出$I$,规划目标是最小化任何rank上的最大冗余专家数量,即$M(I) = \min_P \max_r {m_r(P)}$。我们证明了$M(I) \leq E/R$始终成立(定理1),并且这个界限基本上是紧的:存在路由器输出使得$M = \lceil E(R-1)/R^2 \rceil \approx E/R$(定理2)。 **定理1的证明(通用上界)**。目标是证明对于任何路由器输出$I$,$M(I) \leq E/R$都成立。关键引理:存在一个计划$P^}$的$(k/n)$-分位数。 **分箱范围**。第一个问题是在哪个区间进行分箱,这里所需的偏置有所帮助:其范围受当前偏置本身的限制。路由器分数是sigmoid输出,所以$s_{i,j} \in (0, 1)$,而截止值$\alpha_i$本身是某个专家$j'$的带偏置分数$s_{i,j'} + b_{j'}$,所以它位于$(b_{\mathrm{min}}, 1 + b_{\mathrm{max}})$之间,其中$b_{\mathrm{min}}$和$b_{\mathrm{max}}$是当前偏置的极值。因此,每个$r_{i,j}$都落在$[b_{\mathrm{min}} - 1, b_{\mathrm{max}} + 1]$内。我们将这个区间划分为$B$个均匀的箱子,我们发现在实践中这已足够,并且每一步都重新计算范围,因此箱宽$w = (b_{\mathrm{max}} - b_{\mathrm{min}} + 2) / B$会随着偏置为纠正不平衡而扩散时保持适应。 **累积和恢复**。过程的其余部分遵循训练步骤的结构。在每次前向传播期间,每个rank将其本地的$r_{i,j}$值散点加到每个专家的计数矩阵$\mathbf{H} \in \mathbb{N}^{n \times B}$中,在所有微批次上累积而无需通信。在步骤结束时,一次all-reduce将本地计数求和为全局直方图,每个rank从相同的汇集计数中恢复分位数。每个专家的直方图对每个令牌计数一次,因此目标秩恰好是§2.3.3中的目标负载$q = mk/n$,现在是在整个步骤上取的:我们选择第一个累积计数达到$\lceil q \rceil$的箱子,并在其中进行线性插值。如果选择了箱子$\beta_j$,其前的累积计数为$c_j$,内部计数为$h_j$,则:
$$ \begin{array} { r } { \widehat { b } _ { j } = b _ { \mathrm { m i n } } - 1 + \Bigl ( \beta _ { j } + \mathrm { c l i p } \bigl ( \frac { q - c _ { j } } { h _ { j } } , 0 , 1 \bigr ) \Bigr ) w , } \end{array} $$
并且得到的偏置如公式14中一样进行均值中心化。 **估计器的性质**。三个特性使得这个估计器在大规模下实用。首先,它是准确的:累积计数在箱子边缘是精确的,因此真实分位数及其估计值位于同一个箱子内,误差受箱宽$w$的限制;当$B=1000$时,这最多是几个$10^{-3
$,使得每个EP rank接收完全相同数量的令牌($S \times K$),并且每个rank的远程令牌仅来自另一个EP rank。构造如下:最初,每个rank只持有本地令牌,ranks相应地被分类为欠载或过载。我们重复选择一个欠载rank和一个过载rank,并将令牌从过载rank迁移以精确地将欠载rank填充到平衡值$S \times K$;过载rank可能仍然过载,变得恰好平衡,或变得欠载,并被放回相应的集合中。这个过程重复进行,直到所有ranks都完美平衡。每次填充都使一个欠载rank变得平衡,并且之后不再改变,因此该过程在最多$R-1$次填充后终止;同时,每个rank最多被填充一次,因此其远程令牌来自单个rank,这证明了该引理。因此,假设rank $r$的所有远程令牌都来自rank $s$;这些令牌属于rank $s$上最多$E/R$个本地专家,因此$m_r(P^_) \leq E/R$,所以:
$$ M ( I ) = \operatorname* { m i n } _ { P } \operatorname* { m a x } _ { r } \left\{ m _ { r } ( P ) \right\} \leq \operatorname* { m a x } _ { r } \left\{ m _ { r } ( P ^ { * } ) \right\} \leq \frac { E } { R } $$
图16:Kimi K3聊天模板的结构。(a) 上下文布局:全局选项消息位于输入消息之前,而单次选项消息位于其后,这样每次请求的选项不会影响历史KV缓存;动态加载的工具作为输入选项消息(虚线)在会话中注入。(b) 助手消息的剖析:主体分为思考、响应和工具三个通道。(c) 工具通道的展开:并行工具调用被索引,以便工具结果可以与其调用匹配,并且参数是类型化的。 **定理2的证明(上界的紧性)**。构造一个路由器输出$I^
$如下:EP rank 0上的专家不接收任何令牌,而其他$R-1$个ranks上的所有专家平均共享所有令牌。那么所有$S \times K \times R$个令牌被平均分配给$E(R-1)/R$个专家,所以每个专家接收$\frac{SKR^2}{E(R-1)}$个令牌。在任何计划$P$下,rank 0必须接收$S \times K$个令牌,所有这些都是远程的,这些令牌涉及至少$\frac{SK}{\frac{SKR^2}{E(R-1)}} = \frac{E(R-1)}{R^2}$个不同的专家;取整,rank 0需要至少$\lceil \frac{E(R-1)}{R^2} \rceil$个冗余专家,因此$M(I^*) \geq \lceil \frac{E(R-1)}{R^2} \rceil$。反之,通过使用定理1证明中的填充过程并优先按专家迁移令牌来构造一个计划,每个rank上的冗余专家数量可以保持在此值内,因此等式成立。由于当$R$很大时,$\lceil \frac{E(R-1)}{R^2} \rceil \approx \frac{E}{R}$,定理1中的上界基本上是紧的:不存在明显小于$E/R$的通用上界。

F 聊天模板

Kimi K3聊天模板的设计目标。Kimi K3的聊天模板围绕三个目标重新设计。第一个是可扩展性:新功能应通过向后兼容的消息格式引入,而不是通过模板修订,以便单个模板服务于整个模型代。第二个是低对齐税:格式应能用最少的监督数据学习,支持一个轻度微调的预训练模型可以直接进入强化学习的流程。第三个是解码友好性:结构应支持简单的编码器、流式解析器和语法约束的执行器。为此,模板采用了XTML(可扩展令牌标记语言),这是一种类似XML的标记语言,其中尖括号语法被三个保留的特殊令牌替换:[open], [sep] 和 [close],还有一个额外的[end_of_msg]令牌作为生成停止标记。一个元素[open]tag attr="value"[sep] ... [close]tag[sep]与其XML对应物是同构的,但每个结构边界都是一个显式的特殊令牌,这消除了元素边界处的标记化歧义,并简化了约束解码。

消息和区域。上下文的顶层单位是消息,消息按来源分为两类(图16a)。输入消息序列化请求的messages字段,涵盖了熟悉的system, user, assistant, 和 tool角色。选项消息将请求选项翻译成模型在上下文中读取的指令,其位置反映了它们的作用域。全局选项——工具声明(type:="tool-declare")和推理努力设置——出现在所有输入消息之前:它们管理整个会话并且很少改变,因此修改它们无论如何都会使KV缓存失效。一次性选项(tool_choice, response_format)附加在输入消息之后,因此每次请求的更改都使历史KV缓存保持完整。第三种是输入选项消息,它与输入消息交错,以在会话中补充或覆盖全局选项。此机制支持动态加载的工具:在对话期间检索或加载的工具通过一个额外的tool-declare消息宣布,之后模型的可用工具集在不重建先前上下文的情况下扩展。

通道。助手消息的主体被组织成通道,这个概念受到OpenAI的Harmony响应格式【索引85,OpenAI Harmony Response Format. OpenAI. 2025】的启发:think携带推理轨迹,response携带用户可见的答案,tools携带工具调用(图16b)。两种生成模式纯粹通过生成前缀选择——[open]think[sep]用于思考模式,[open]response[sep]用于指令模式——而不是通过单独的模板。Kimi K3仅支持保留思考:在思考模式下,think通道始终保留在历史记录中——即使其内容为空也保留——以便模型在各轮次中观察到一致的消息结构;在指令模式下,历史消息仅包含responsetools通道。

工具调用。在tools通道内,每个调用都带有toolindex属性;索引对消息内的并行调用进行编号,每个工具结果消息重复相同的tool/index对,并遵循其调用的顺序,因此结果与调用明确关联。参数是类型化的:字符串参数显示为原始文本,而其他JSON类型的值则被紧凑地序列化。因此,自由格式的文本(如代码)是一等公民,而不是转义的JSON字符串。一个纯JSON的回退块覆盖了其参数无法分解为类型化参数块的输入;它只出现在输入令牌中,从不出现在模型输出中,并且其损失在训练期间被屏蔽。

推理努力和选项。推理努力作为类型为thinking-effort的全局选项消息公开,插入在工具声明之后和输入消息之前。该消息不是修改生成前缀或公开令牌预算,而是用自然语言陈述请求的级别,并作为生成约束指令。模式保留了四个级别(low, medium, high, and max),Kimi K3支持其中的一个子集。这种表示将努力接口与模板语法解耦,并直接与§4.1.1和§4.1.2中描述的条件化努力训练对齐。

选项消息的通用实现。更广泛地说,这是所有选项消息的通用实现:tool_choice, response_format, 和 thinking-effort 都被翻译成放置在上下文中的简短自然语言指令,而不是专用的特殊语法。由于预训练模型已经能很好地遵循这些指令,因此可以在很少或没有额外训练的情况下引入新选项——这直接体现了上述的低对齐税设计原则。