Kimi K3 技术报告全文
本文译自 Kimi Team 的技术报告 Kimi K3: Open Frontier Intelligence1,2026 年 7 月 27 日发布于 arXiv。原文 47 页,这里是全文翻译,覆盖摘要、引言、§2 模型架构、§3 预训练、§4 后训练、§5 Infrastructure、§6 评测、§7 案例研究、§8 结论。附录(贡献者名单、SiTU-GLU 与 Quantile Balancing 的推导、MoonEP 上界证明、chat template)不在译文范围内。
摘要
我们推出 Kimi K3,一个 2.8T 参数的 Mixture-of-Experts 模型,激活参数 1040 亿,具备原生视觉能力和 100 万 token 的上下文窗口。Kimi K3 建立在 Kimi Delta Attention2 和 Attention Residuals3 之上,二者分别改善了信息在序列长度方向和模型深度方向上的流动。再加上 Stable LatentMoE——它让每个 token 有效激活 896 个 routed expert 中的 16 个——以及经过打磨的训练与数据配方,这些改进使整体 scaling 效率相比 Kimi K24 提升约 $2.5\times$。后训练的重点是在通用、agentic 和 coding 三个领域、以及多个 reasoning-effort 档位上做强化学习,从而获得组合泛化能力和稳健的长程执行能力。在 2.8T 这个规模上,Kimi K3 依托多个方面的基础设施进展:面向 KDA 的算法—系统协同设计、带高效内存管理的完美均衡 expert 并行训练、具备持久化 rollout 与 sandbox 状态的百万 token agentic RL,以及部署层面的创新。
大量评测显示,Kimi K3 在长程 coding、agentic、知识、推理和视觉任务上都达到了前沿水平。虽然整体表现仍落后于最强的闭源模型——即 Claude Fable 5 和 GPT-5.6 Sol——但 Kimi K3 稳定地优于我们评测集里其他所有开源和闭源模型。我们完整开放 Kimi K3 的模型权重,以促进后续研究、加速前沿智能的更广泛部署与采用5。
1 引言
在大语言模型(LLM)发展的很长一段时间里,scaling 意味着在部署之前投入更多算力:用更多数据训练更大的模型67。推理模型的兴起确立了 test-time 计算作为第二条 scaling 轴:OpenAI 的 o 系列 scale 强化学习和 test-time 推理89;Anthropic 的 extended-thinking 模型分配自适应的思考预算,并把推理与工具调用交织起来1011;DeepSeek-R112 和 Kimi K1.513 表明大规模强化学习能从强预训练模型中激发出复杂的推理行为;Kimi K2.5 Agent Swarm14 进一步把 test-time scaling 从串行推理扩展到并行的 agent 协同。这些进展让 test-time scaling 成为前沿研究的焦点。然而,开源模型生态在第二条轴上推进很快,在第一条轴上却很慢:近期不少模型仍停留在 1T 级参数区间或略高一点15161718。当越来越精巧的推理和 agentic 强化学习方法被施加在规模相近的预训练底座上时,开源的进展有收敛的风险,而与最强闭源系统的差距则在拉大。Kimi K3 要做的是把两条 scaling 轴一起推到前沿:把预训练底座扩到前所未有的 3T 级参数,同时在 1M 上下文长度上 scale 强化学习、reasoning effort 和长程交互。
我们推出 Kimi K3,一个原生多模态的 Mixture-of-Experts 模型,总参数 2.8 万亿,激活参数 1040 亿,上下文窗口最长 100 万 token。它的架构在序列长度、网络深度、模型宽度三个方向上 scale 信息流动。Kimi Delta Attention(KDA)2 提供高效的长序列混合,周期性插入的 Gated MLA 层保留全局交互。Attention Residuals(AttnRes)3 让每一层都能选择性地 attend 到所有在它之前的层的表示。Stable LatentMoE 把 routed expert 空间扩展到 896 个专家、每 token 激活 16 个,同时用归一化、SiTU-GLU 和 Quantile Balancing 在极端稀疏下稳定优化。这些架构改进,配合打磨过的数据与训练配方,使整体 scaling 效率相比 Kimi K24 提升约 $2.5\times$。
我们把这个预训练底座与专为 1M 上下文 test-time scaling 设计的后训练配在一起。Kimi K3 在长程 coding、通用 agent、通用推理与知识任务上都做了强化学习,每一类都横跨多个 reasoning-effort 档位。训练环境包括可验证的搜索与专业知识工作、软件工程与 kernel 优化、带 vision-in-the-loop 工具调用的多模态推理、持久化的助手工作流、web 开发,以及自主执行任务。这些环境训练的是一个通用的循环——推理、行动、观察、验证、调整——常常要跨越成百上千次工具调用和累计数百万 token 的上下文。领域专精和 effort 专精的策略最后通过多教师 on-policy distillation192016 整合进一个统一模型。
要跑通这套范式,基础设施必须能随架构复杂度、模型规模和轨迹长度一起 scale。在面向 KDA 的系统协同设计上,我们做了 fused kernel、KDA Context Parallelism 和 state-aware prefix caching,让 KDA 在设备内、跨设备、跨请求三个层面都高效。在 2.8T 参数的 MoE 预训练上,MoonEP 用静态计算形状和零拷贝通信实现了完美均衡的 expert 执行,同时内存高效训练和多模态 encoder 优化在有限显存内维持了利用率。在百万 token 的 agentic RL 上,我们的 co-located 系统把 partial rollout、外部 KV-cache 保留、自适应限流和可恢复的 microVM sandbox 结合起来,以保住长生命周期的模型状态和环境状态。最后,专用 kernel 以及 cache 感知、预算感知的集群调度把这些创新落成了可预测的生产服务。
由此得到的模型确立了一个新的开源前沿。在覆盖长程 coding、agentic、知识、推理和视觉任务的 benchmark 上,Kimi K3 整体上落后于最强的闭源系统——Claude Fable 5 和 GPT-5.6 Sol——但稳定领先于我们评测集里其他的开源和闭源模型,如 Fig. 1 所示。
我们的贡献总结如下:
- 开源前沿的预训练。我们训练了一个 2.8T 参数的原生多模态 MoE 模型,激活参数 104B,上下文窗口 1M token。KDA、AttnRes、Stable LatentMoE 以及打磨过的数据和训练配方,共同把整体 scaling 效率相比 Kimi K2 提升了约 $2.5\times$。
- 面向多 effort test-time scaling 的强化学习。我们在通用、agentic、coding 领域以及多个 reasoning-effort 档位上做 RL,然后把得到的能力整合进一个统一模型。
- 面向万亿参数、百万 token 智能的基础设施。我们提出了 KDA 的系统协同设计;面向 2.8T 参数 MoE 预训练的 MoonEP 和内存高效基础设施;面向百万 token agentic 轨迹、带可恢复 sandbox 的 co-located RL 系统;以及更多基础设施创新。
- 一个开源的前沿模型。我们完整开放 Kimi K3 的模型权重,让前沿智能可用于研究、部署和进一步创新。
2 模型架构
Kimi K3 的架构设计目标是让信息流动在三个互补的维度上 scale:序列长度、网络深度、模型宽度。在序列维度上,Hybrid Attention 在每个 block 里把三个 Kimi Delta Attention(KDA)2 层和一个 Gated MLA 层组合起来,既提供了长上下文 token 混合的高效机制,又保留了选择性的高容量 attention(§2.1)。在深度维度上,Attention Residuals(AttnRes)3 让每个模块都能选择性地从 embedding、当前 block 和之前的 block 中取回表示,把信息可达范围推到了常规逐层残差累加之外(§2.2)。在宽度维度上,每个 attention 层后面跟一个 Stable LatentMoE 层做稀疏的 channel 混合,为每个 token 有效激活 896 个 routed expert 中的 16 个(§2.3)。原生视觉方面,MoonViT-V2 编码图像和视频,一个轻量 projector 把得到的视觉特征映射到共享 embedding 空间,再交给 backbone 处理(§2.4)。加上 Per-Head Muon(§2.5),这些组件共同构成了一个统一架构,让信息流动在 token、layer、channel 三个方向上 scale。配合打磨过的训练与数据配方,它们带来相比 Kimi K2 约 $2.5\times$ 的整体 scaling 效率提升。Figure 2 给出了架构总览。
2.1 Hybrid Attention
Kimi K3 采用线性 attention 与全局 attention 的逐层混合,把 KDA2 和 Gated MLA 组合起来。每个 block 包含 3 个 KDA 层,后接 1 个 Gated MLA 层,即 $3{:}1$ 的混合比例。这个模式在整个 backbone 中重复。两种 attention 机制分别在下面描述。backbone 末尾额外放置一个 Gated MLA 层,确保最后一层总是做全局 attention。
2.1.1 Kimi Delta Attention
KDA 在 delta-rule 递推2122 的基础上加了一个 channel-wise 的遗忘门2。考虑一串隐状态 $\boldsymbol{x}_t\in\mathbb{R}^d$,其中 $t$ 是 token 位置下标,$d$ 是模型隐藏维度。为清晰起见,我们先描述单个 attention head,其 query 和 key 向量为 $\boldsymbol{q}_t,\boldsymbol{k}_t \in \mathbb{R}^{d_k}$,value 向量为 $\boldsymbol{v}_t\in\mathbb{R}^{d_v}$,递推状态为 $\mathbf{S}_t\in\mathbb{R}^{d_k\times d_v}$。KDA 在 delta-rule 更新之前先施加 channel-wise 衰减:
$$ \mathbf{S}_t = \left(\mathbf{I}-\beta_t\boldsymbol{k}_t\boldsymbol{k}_t^{\top}\right) \operatorname{Diag}(\boldsymbol{\alpha}_t)\mathbf{S}_{t-1} + \beta_t\boldsymbol{k}_t\boldsymbol{v}_t^{\top}, \qquad \tilde{\boldsymbol{o}}_t = \mathbf{S}_t^{\top}\boldsymbol{q}_t. $$这里 $\boldsymbol{\alpha}_t\in(0,1)^{d_k}$ 是 channel-wise 的单步保留因子,$\beta_t\in(0,1)$ 控制 delta-rule 的写入强度。
沿用 Kimi Linear2 的做法,KDA 把每个 head 的各个量参数化为:
$$ \begin{aligned} \boldsymbol{q}_t^h,\boldsymbol{k}_t^h & = \operatorname{L_2Norm}\!\left(\operatorname{Swish}\!\left(\operatorname{ShortConv}\!\left(\mathbf{W}_{q/k}^h\boldsymbol{x}_t\right)\right)\right) \in \mathbb{R}^{d_k}, \\ \boldsymbol{v}_t^h & = \operatorname{Swish}\!\left(\operatorname{ShortConv}\!\left(\mathbf{W}_v^h\boldsymbol{x}_t\right)\right) \in \mathbb{R}^{d_v}, \\ \beta_t^h & = \operatorname{Sigmoid}\!\left(\mathbf{W}_{\beta}^h\boldsymbol{x}_t\right) \in (0,1), \\ \boldsymbol{z}_t^h & = \mathbf{W}_{\alpha}^{\uparrow}\mathbf{W}_{\alpha}^{\downarrow}\boldsymbol{x}_t + \boldsymbol{b}_{\alpha}^h \in \mathbb{R}^{d_k}. \end{aligned} $$query、key、value 的投影都先做 $\operatorname{ShortConv}$ 再做 $\operatorname{Swish}$22,query 和 key 还额外用 $\operatorname{L_2Norm}$ 归一化23。低秩投影加上 head 专属的偏置 $\boldsymbol{b}_{\alpha}^h\in\mathbb{R}^{d_k}$,为每个 key channel 产生细粒度的衰减 logit $\boldsymbol{z}_t^h$。从 $\boldsymbol{z}_t^h$ 到 $\boldsymbol{\alpha}_t^h$ 的下界映射会在下面的 chunkwise 形式之后介绍。
Chunkwise parallel form. 沿用 Kimi Linear2,KDA 在 chunk 之间是递推的,在 chunk 内部是并行的。对 chunk 大小 $C$,$\mathbf{X}_{[t]}$ 把第 $t$ 个 chunk 里的 token 向量堆叠起来,其中 $\mathbf{X}\in\{\mathbf{Q},\mathbf{K},\mathbf{V},\mathbf{O},\mathbf{U},\mathbf{W}\}$。矩阵 $\mathbf{S}_{[t]}\in\mathbb{R}^{d_k\times d_v}$ 表示进入 chunk $t$ 时的递推状态。对位置 $1\le i\le j\le C$,定义 channel-wise 的累积衰减
$$ \boldsymbol{\gamma}_{[t]}^{i\rightarrow j} := \prod_{r=i}^{j}\boldsymbol{\alpha}_{[t]}^r, \qquad \boldsymbol{\gamma}_{[t]}^r := \boldsymbol{\gamma}_{[t]}^{1\rightarrow r}. $$与 Kimi Linear 一样,$\boldsymbol{\Gamma}_{[t]}^{1\rightarrow C}\in\mathbb{R}^{C\times d_k}$ 按行堆叠 $\boldsymbol{\gamma}_{[t]}^1,\ldots,\boldsymbol{\gamma}_{[t]}^C$。UT 变换产生 $\mathbf{U}_{[t]}$ 和 $\mathbf{W}_{[t]}$,由此定义 pseudo-value 项 $\widetilde{\mathbf{V}}_{[t]}:=\mathbf{U}_{[t]}-\mathbf{W}_{[t]}\mathbf{S}_{[t]}$。给定入口状态 $\mathbf{S}_{[t]}$,chunk $t$ 内所有输出可并行算出:
$$ \begin{aligned} \mathbf{A}_{[t]} & = \operatorname{Tril}\!\left[ (\mathbf{Q}_{[t]}\odot \boldsymbol{\Gamma}_{[t]}^{1\rightarrow C}) (\mathbf{K}_{[t]}/\boldsymbol{\Gamma}_{[t]}^{1\rightarrow C})^{\top} \right], \\ \mathbf{O}_{[t]} & = \underbrace{(\boldsymbol{\Gamma}_{[t]}^{1\rightarrow C}\odot\mathbf{Q}_{[t]})\mathbf{S}_{[t]}}_{\text{inter-chunk}} + \underbrace{\mathbf{A}_{[t]}\widetilde{\mathbf{V}}_{[t]}}_{\text{intra-chunk}}. \end{aligned} $$对矩阵 $\mathbf{M}$,$\operatorname{Tril}(\mathbf{M})$ 把所有严格上三角的元素置零,保留下三角元素(含对角线)。这个 mask 强制了 chunk 内的因果交互,保留对角线是因为每个输出读取的是当前 token 更新之后的状态。$\mathbf{O}_{[t]}$ 的第一项携带来自前面各 chunk 的信息,第二项则处理当前 chunk 内部的交互。UT 变换和 chunkwise 形式的完整推导请读者参阅 Kimi Linear2。
Lower-bounded decay. 上面 chunkwise 的式子里,每个 chunk 的 key 被累积衰减的倒数 $1/\boldsymbol{\Gamma}_{[t]}^{1\rightarrow C}$ 重新缩放。由于 $\boldsymbol{\Gamma}_{[t]}^{1\rightarrow C}$ 是一串 $(0,1)$ 之间保留因子的乘积,这个倒数可以无界增长,在有限精度下溢出242。Kimi Linear 控制这个数值范围的办法是在 log 空间计算相对衰减,并把每个 chunk 再切成 $16$ token 的二级 tile242。这样非对角的 tile 就能直接用 Tensor Core 上的稠密矩阵乘来算。但对角 tile 仍然需要显式的位置对(position-pair)计算,这仍是 chunk 内的主要瓶颈。
Kimi K3 解决这个瓶颈的方式,是改掉从衰减 logit $\boldsymbol{z}_t^h$ 到每步 log-decay $\boldsymbol{g}_t^h$ 的映射。沿着 GDN 和 Mamba-2 的做法,Kimi Linear 用的是 negative-Softplus 映射 $\boldsymbol{g}_t^h=-e^{A_h}\operatorname{Softplus}(\boldsymbol{z}_t^h)\in(-\infty,0)^{d_k}$22252。Kimi K3 改用一个缩放的 sigmoid,把 log-decay 从下方限住:
$$ \begin{aligned} \boldsymbol{g}_t^h & = g_{\min}\operatorname{Sigmoid}\!\left(e^{A_h}\boldsymbol{z}_t^h\right) \in (g_{\min},0)^{d_k}, \\ \boldsymbol{\alpha}_t^h & = \exp(\boldsymbol{g}_t^h) \in \left(e^{g_{\min}},1\right)^{d_k}, \end{aligned} $$其中 $A_h$ 是每个 head 可学习的 log 尺度,$g_{\min}=-5$ 固定不变。我们把 $A_h$ 初始化为 0,每个偏置 $\boldsymbol{b}_{\alpha}^h$ 的初始化沿用已有做法22522。在 $g_{\min}=-5$ 的设置下,每个保留因子都满足 $\alpha_{t,j}^h>e^{-5}\approx6.7\times10^{-3}$,于是一个 $16$ token tile 上的累积 log-decay 落在 $(-80,0)$ 区间内。对应的倒数缩放因子因此小于 $e^{80}$,仍在 BF16 的动态范围之内。这个有限的范围让对角和非对角 tile 都能用稠密的 Tensor Core 矩阵乘,把位置对的对角路径彻底消掉。这种参数化与已有工作里有下界的递推门控关系密切262728。Fig. 3 展示了衰减参数化的变化及其计算上的后果。
Full-rank gate. 最后,Kimi K3 把 KDA 的输出门从 Kimi Linear2 用的低秩参数化改成了依赖输入的全秩投影。在对递推输出做 head-wise RMSNorm29 之后,KDA 施加依赖数据的输出门控30:
$$ \boldsymbol{y}_t = \mathbf{W}_o\!\left[ \operatorname{Sigmoid}\!\left(\mathbf{W}_g\boldsymbol{x}_t\right) \odot \operatorname{RMSNorm}(\tilde{\boldsymbol{o}}_t) \right]. $$2.1.2 Gated MLA
Multi-head Latent Attention(MLA)由 DeepSeek-V231 提出,它把每个 token 的 key-value 表示压缩成一个低维隐向量 $\boldsymbol{c}_t=\mathbf{W}_{c}\boldsymbol{x}_t$。MLA 不缓存完整的、每个 head 各自的 key 和 value,而是缓存 $\boldsymbol{c}_t$,在计算 attention 时通过学到的上投影重建 content key 和 value。这种分解在保留全局 token 间 attention 的同时,减小了 KV cache 占用。MLA 随后被 Kimi K2 和 Kimi K2.5414 采用,Kimi K3 在周期性的全局 attention 层里继续保留它。
与 Kimi K2、Kimi K2.5 不同,Kimi K3 沿用 Kimi Linear2 的混合设计,对所有 MLA 层施加 No Position Encoding(NoPE)。因此它们的 query 和 key 上不施加任何显式位置编码。夹在中间的 KDA 层提供位置敏感、近因敏感的序列混合,而 MLA 层提供不受限的全局内容交互。这种分工还带来一个好处:扩展上下文长度时不需要改动位置编码的参数,比如重调 RoPE 的频率基或者套用 YaRN32。
此外,Kimi K3 给 MLA 加了一个依赖输入、channel-wise 的全秩输出门。设 $\tilde{\boldsymbol{o}}_t$ 为位置 $t$ 上未加门的 MLA 输出,加门后的输出为
$$ \boldsymbol{y}_t = \mathbf{W}_o\!\left[ \operatorname{Sigmoid}\!\left(\mathbf{W}_g\boldsymbol{x}_t\right) \odot \tilde{\boldsymbol{o}}_t \right]. $$门投影 $\mathbf{W}_g$ 是全秩的,与 Kimi K3 里 KDA 采用的新参数化一致。这个门让每个 token 都能调节自己从全局 attention 里读到的 channel30。
为纠正 flash attention 中出现的有偏舍入误差,我们采用已有方法33,在训练时把 attention 输出保持在 FP32。这个选择让输出 tile 的片上占用翻倍;因此我们重新设计了训练 kernel,让它与 KV staging buffer 而不是 query tile 重叠,从而腾出 shared memory 用于更深的 KV 流水线,换来更高的训练吞吐。
2.2 Attention Residuals
标准的残差连接34 把所有先前信息沿深度压进单一状态 $\boldsymbol{h}_l$——这个瓶颈很像 RNN 在时间方向上的瓶颈。对序列建模来说,Transformer 用 attention 取代了递推3536,让每个位置都能以依赖数据的权重选择性地访问所有先前位置。Attention Residuals(AttnRes)3 把同样的方法论施加到深度方向上:每一层选择性地从所有先前层取回表示,而不是均匀地累加它们。
Full Attention Residuals. 对每一层 $l$,我们定义一个该层专属的可学习 pseudo-query $\boldsymbol{q}_l = \boldsymbol{w}_l \in \mathbb{R}^d$,以及 key 和 value
$$ \boldsymbol{k}_{i} = \boldsymbol{v}_{i} = \begin{cases} \boldsymbol{h}_1 & i = 0 \\ f_i(\boldsymbol{h}_{i}) & 1 \leq i \leq l-1 \end{cases} $$其中 $f_i(\boldsymbol{h}_i)$ 是第 $i$ 层的输出,$\boldsymbol{h}_1$ 是 token embedding。注意力权重遵循 softmax 核 $\phi(\boldsymbol{q}, \boldsymbol{k}) = \exp\left(\boldsymbol{q}^\top\operatorname{RMSNorm}(\boldsymbol{k})\right)$3729,其中 $\operatorname{RMSNorm}$ 防止输出量级大的层主导权重:
$$ {\alpha_{i \to l}} = \frac{\phi\left(\boldsymbol{q}_{l}, \boldsymbol{k}_{i}\right)}{\sum_{j=0}^{l-1} \phi\left(\boldsymbol{q}_{l}, \boldsymbol{k}_{j}\right)}, \qquad \boldsymbol{h}_{l} = \sum_{i=0}^{l-1} {\alpha_{i \to l}} \cdot \boldsymbol{v}_{i}. $$由于网络深度不算大($L < 100$),这种 full 形式 $O(L^2 d)$ 的算术开销是可以承受的;真正的开销是要把所有层的输出都留在内存里所需的 $O(Ld)$ 显存(以及在 pipeline 并行下的跨 stage 通信)。
Block Attention Residuals. 为降低这项开销,我们把 $L$ 层划分成 $N$ 个 block,每个 block $S = L/N$ 层。在 block $n$ 内(层下标集合 $\mathcal{B}_n$),层输出通过求和归约成单一表示 $\boldsymbol{b}_n = \sum_{j \in \mathcal{B}_n} f_j(\boldsymbol{h}_j)$,其中 $\boldsymbol{b}_n^i$ 表示该 block 前 $i$ 层的部分和;我们令 $\boldsymbol{b}_0 = \boldsymbol{h}_1$,这样 token embedding 总是作为一个来源被包含在内。跨 block 时,full attention 只施加在 $N$ 个 block 级表示上:对 block $n$ 里的第 $i$ 层,value 矩阵为
$$ \mathbf{V} = \begin{cases} [\boldsymbol{b}_0, \boldsymbol{b}_1, \ldots, \boldsymbol{b}_{n-1}]^\top & \text{if } i = 1 \text{ (block } n \text{ 的第一层)} \\ [\boldsymbol{b}_0, \boldsymbol{b}_1, \ldots, \boldsymbol{b}_{n-1}, \boldsymbol{b}_n^{i-1}]^\top & \text{if } i \geq 2 \text{ (后续各层)} \end{cases} $$key 和注意力权重遵循上面两式。最后的输出层再聚合全部 $N$ 个 block 表示。在 Block AttnRes 下,显存和通信开销从 $O(Ld)$ 降到 $O(Nd)$;同时这个 block 结构还限住了推理时的状态大小,使得并行的 inter-block 结果能通过 online softmax38 更好地与串行的 intra-block 部分和合并,显著降低推理时间开销。
经验上,$N \approx 8$ 在各个模型规模上都能拿回大部分收益3;对 Kimi K3,我们把它的层划分成 8 个 block、每个 block 12 层,于是最后一个 block 不满,把 embedding 层算进来一共 9 个 block。
2.3 Stable LatentMoE
同时增大专家池和激活专家数,会扩大专家专精的空间,但在常规 MoE 里每个被选中的专家都要接收完整的 $d$ 维 token 表示,于是通信量和专家权重的搬运量会随路由的重数一起增长。LatentMoE39 让这种扩张变得可承受,办法是把模型全宽和 routed expert 的宽度分开:shared expert 保留全宽通路来做通用变换,而专精的 routed expert 在宽度为 $\ell$ 的紧凑隐空间里工作。这让 Kimi K3 能把 channel 混合扩展到 896 个 routed expert、每 token 激活 16 个,对应的稀疏度是 56。
这种极端稀疏放大了原始设计的两个失效模式。第一,routed 通路把 $\mathbf{W}^{\downarrow}$、一个带门的多分支专家前馈网络、以及 $\mathbf{W}^{\uparrow}$ 串成了将近四次连续矩阵乘的链条。这种病态结构叠加 2.8 万亿参数的规模,会让 routed 分支内部的激活值爆炸。第二,给接近 $10^3$ 个专家做负载均衡,已经超出了现有 auxiliary-loss-free 偏置更新还能表现良好的范围。Stable LatentMoE 用三个组件来对付这两个失效模式:在上投影之前加一个 RMSNorm、用 Sigmoid Tanh Unit GLU(SiTU-GLU)来抑制激活爆炸,以及用 Quantile Balancing(QB)做负载均衡。
如 Fig. 2 所示,这一层沿用了 DeepSeekMoE40 的 shared/routed expert 组织方式。对 $\boldsymbol{x}\in\mathbb{R}^{d}$,shared expert 直接处理 $\boldsymbol{x}$,而 routed 通路先把它投影到 $\boldsymbol{z}=\mathbf{W}^{\downarrow}\boldsymbol{x}\in\mathbb{R}^{\ell}$,把 $\boldsymbol{z}$ 分发给选中的专家,再通过 $\mathbf{W}^{\uparrow}$ 把它们的加权聚合映射回 $\mathbb{R}^{d}$:
$$ \begin{aligned} \boldsymbol{u} & = \sum_{i\in\mathcal{T}_k(\boldsymbol{x})} p_i E_i^{\mathrm{routed}}(\mathbf{W}^{\downarrow}\boldsymbol{x}), \\ \boldsymbol{y} & = \sum_{j=1}^{N_s} E_j^{\mathrm{shared}}(\boldsymbol{x}) + \mathbf{W}^{\uparrow}\operatorname{RMSNorm}(\boldsymbol{u}). \end{aligned} $$这里 $\boldsymbol{u}\in\mathbb{R}^{\ell}$ 是聚合后的 routed 表示,$E_j^{\mathrm{shared}}:\mathbb{R}^{d}\!\rightarrow\!\mathbb{R}^{d}$ 和 $E_i^{\mathrm{routed}}:\mathbb{R}^{\ell}\!\rightarrow\!\mathbb{R}^{\ell}$ 分别是 shared 和 routed 专家前馈网络,$p_i$ 是由下面 Quantile Balancing 规则定义的 router 权重。Kimi K3 在每一层都把全宽 shared expert 的数量固定为 $N_s=2$。
2.3.1 Normalized LatentMoE
原始的 LatentMoE 直接把 $\mathbf{W}^{\uparrow}$ 作用在聚合后的 routed 表示 $\boldsymbol{u}$ 上,而 $\boldsymbol{u}$ 的尺度会随选中的专家及其路由权重变化。如上式所示,Kimi K3 改为在专家聚合与上投影之间插入 RMSNorm29。这个归一化降低了 routed 分支在与全宽 shared 分支合并之前对尺度波动的敏感性。除了稳定训练之外,这个额外的 RMSNorm 还稳定地改善了 validation loss 和下游 benchmark。
2.3.2 Sigmoid Tanh Unit GLU
Gated Linear Unit(GLU)用一个 sigmoid 激活的门去调制线性的 value 分支,计算 $\operatorname{Sigmoid}(\mathbf{W}_g\boldsymbol{x})\odot\mathbf{W}_u\boldsymbol{x}$41。SwiGLU 把 sigmoid 门换成 $\operatorname{Swish}(x)=x\operatorname{Sigmoid}(x)$,在 Transformer 上取得了很强的实证表现42。SwiGLU 随后成为大语言模型里被广泛采用的 FFN 设计,尽管对它为何有效的完整解释仍是开放问题。
然而,SwiGLU 里两个乘性因子都是无界的,所以同时出现的大坐标值会产生激活离群点,在低精度运算下加大溢出风险。原始 GLU 的 sigmoid 门避免了门的无界增长,但它没有保留 Swish 在正半轴上近似线性的那段响应。这促使我们去找一个既能控制大值增长、又能保留 SwiGLU 局部与正半轴特征响应的激活函数。近期也有其他工作探索了这一取舍的不同参数化方式43。
为满足这些要求,我们提出 Sigmoid Tanh Unit GLU(SiTU-GLU)。SiTU-GLU 把平滑上限 $\operatorname{softcap}(x,\beta)=\beta\tanh(x/\beta)$ 施加在 Swish 门的线性因子上,并独立地施加在 up 分支上:
$$ \operatorname{SiTU\text{-}GLU}(\boldsymbol{x}) = \left[\beta_1\tanh\!\left(\frac{\mathbf{W}_g\boldsymbol{x}}{\beta_1}\right)\odot\operatorname{Sigmoid}(\mathbf{W}_g\boldsymbol{x})\right] \odot \left[\beta_2\tanh\!\left(\frac{\mathbf{W}_u\boldsymbol{x}}{\beta_2}\right)\right], $$对 Kimi K3,我们把 soft-cap 超参设为门分支 $\beta_1=4$、up 分支 $\beta_2=25$。缩放后的 $\tanh$ 在原点附近近似线性、在大幅值处有界,这让 SiTU-GLU 既保留了 SwiGLU 的局部响应,又控制住了乘积里的两个因子。Fig. 4 在同一个切片上比较了 GLU、SwiGLU 和 SiTU-GLU 的分支定义与标量响应。
附录 B 给出了局部展开、极限情形、形式化的输出上界,以及与硬截断(hard clamping)的比较。
2.3.3 Quantile Balancing
与基于 auxiliary loss 的路由44 不同,Kimi K3 采用 auxiliary-loss-free 路由45。负载均衡的实现方式是给用于 Top-$k$ 选择的 router 分数加上一个专家专属的偏置 $b_j$。对 token $\boldsymbol{x}_i$,router 计算 $\boldsymbol{s}_i=\operatorname{Sigmoid}(\mathbf{W}_r\boldsymbol{x}_i)$,然后施加
$$ \mathcal{T}_i = \operatorname{argtop}_{k}\!\left(\boldsymbol{s}_i+\boldsymbol{b}\right), \qquad p_{i,j} = \frac{s_{i,j}}{\sum_{r\in\mathcal{T}_i}s_{i,r}}, \quad j\in\mathcal{T}_i. $$由于 $\boldsymbol{b}$ 没有出现在 $p_{i,j}$ 里,它只调控分发,不改变混合权重,也不影响 router 基于梯度的优化。原始方法用固定步长规则 $b_j^{(t+1)}=b_j^{(t)}+\gamma\operatorname{sign}(\bar{\ell}-\ell_j^{(t)})$ 更新 $\boldsymbol{b}$45,其中 $\gamma$ 需要在适应过慢和负载震荡之间取舍。随着 LatentMoE 把每层的 routed expert 池扩到 896 个,维持负载均衡变得更难。路由不均衡会拖慢 expert 并行训练,还可能让一部分专家训练不足46。
为解决这个局限,我们引入 Quantile Balancing(QB),它把每个专家的偏置设为与其目标负载相匹配的 router 分数分位数47。考虑一个 $m$ 个 token 的训练 batch,被路由到 $n$ 个专家、Top-$k$ 选择,于是目标负载是每个专家 $q:=mk/n$ 个 token。QB 从单次前向就能导出下一步的偏置。路由把 Top-$k$ 选择换成在带偏置分数 $\boldsymbol{s}_i+\boldsymbol{b}^{(t)}$ 上做 Top-$(k{+}1)$:前 $k$ 个是实际走的路由,第 $(k{+}1)$ 个则是 cutoff $\alpha_i^{(t)}$——一个专家必须超过它才能进入 token $i$ 的 Top-$k$。从 Top-$(k{+}1)$ 路由里取 cutoff,就免掉了单独算一个 token 侧的分位数。接着我们这样选每个专家的偏置,使专家 $j$ 拿到它的目标负载:在 cutoff 固定的前提下,候选偏置 $\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)}$ 成为第 $(q{+}1)$ 大的 margin $s_{i,j}-\alpha_i^{(t)}$,从而恰好有 $q$ 个 margin 留在阈值之上。由于 $q/m=k/n$,这就是 margin 在 token 上的 $(1-k/n)$ 分位数,给出 QB 的更新式
$$ \begin{aligned} \widehat{b}_j^{(t+1)} & \leftarrow -\operatorname{quantile}_{1-k/n}\!\left(\boldsymbol{s}_{:,j}-\boldsymbol{\alpha}^{(t)}\right), \\ \boldsymbol{b}^{(t+1)} & \leftarrow \widehat{\boldsymbol{b}}^{(t+1)} - \operatorname{mean}\!\left(\widehat{\boldsymbol{b}}^{(t+1)}\right)\mathbf{1}. \end{aligned} $$margin 从原始分数 $s_{i,j}$ 里减去带偏置的 cutoff $\alpha_i^{(t)}$,因此旧偏置只通过 cutoff 进入更新;第二行去掉一个公共偏移量,这不改变 Top-$k$ 选择。为保证因果性,更新只在下一步生效45,也就是说一个 batch 绝不会用从它自己导出的偏置来路由。Fig. 5 展示了 $m=8$、$n=4$、$k=1$ 的情形,每个专家拿到目标负载 $q=2$。偏置在推理时被冻结。均衡分配的推导见附录 C。
Histogram estimation. 在大规模下,上式里的分位数要覆盖整个 global batch,其 margin 数量以百万计,且分散在各 rank 和各次梯度累积步上,所以在训练时把它们收集起来算精确分位数并不可行。我们改为从每个专家 margin 的直方图里读出它的分位数:一次 all-reduce 把各 rank 的 bin 计数求和,再从汇总后的计数里恢复分位数。因为计数是可加的,无论 token 如何分片,直方图代表的都是汇总后的 global batch,所以这个估计在 bin 宽度的误差内反映的就是全 batch 的分位数,而通信代价只有每个专家几百个 bin。这个直方图估计器就是我们实际采用的方法;更详细的描述和它的误差上界见附录 D。
2.4 Native Vision
Kimi K3 是原生多模态的:文本、图像、视频由单一共享 backbone 在同一个上下文里处理,没有事后的模态对齐阶段。这个设计是 §1 里描述的长程、vision-in-the-loop 行为的架构基础。渲染出的产物和生成它的代码活在同一个 token 流里,模型可以写代码、检视结果的截图或视频帧,然后迭代地改进视觉产物——用户界面、图形、视频——中间不需要跨模型交接。
MoonViT-V2. 与 Kimi K2.5 的一个关键分野是,我们完全从零开始、用 next-token prediction 训练 Kimi K3 的视觉 encoder MoonViT-V2。此前的做法(包括 Kimi K2.5 自己)是用 SigLIP 这类对比预训练模型来初始化视觉 encoder,前提假设是预训练好的视觉知识能让模型有个起跑优势。我们离开这个做法,主要是为了训练稳定性。当一个预训练好的 encoder 被接到 LLM 上时,联合优化会变得不稳定:SigLIP 初始化的 MoonViT-3D 持续表现出更高的梯度范数并频繁出现尖峰,而 MoonViT-V2 在整个训练过程中都保持稳定(Fig. 6)。用 next-token prediction 训练还让 encoder 的表示直接被语言建模目标塑形,而不是被一个偏好全局语义、忽视细粒度文字与结构线索的对比损失塑形。值得注意的是,我们发现 MoonViT-V2 在各项视觉评测上与 SigLIP 初始化的 baseline 打平,这说明在这个规模上,对比预训练作为多模态语言模型的初始化并非必需。
Architecture. 这套训练配方建立在一条沿用 Kimi K2.5 整体设计的视觉通路上1448:视觉输入先由 MoonViT-V2 编码,再由一个轻量 MLP projector 映射进 LLM。MoonViT-V2 是一个 27 层、约 0.4B 参数的 vision transformer,采用 RMSNorm 并移除了线性投影和 attention 投影里的所有偏置项,这个设计进一步稳定了上面提到的从零优化。图像和视频以完全共享的参数处理,与 MoonViT-3D 一样:attention 被分解为帧内的空间 pass 和帧间的时间 pass,时间池化再沿时间维度进一步压缩 token。在投影之前,一个 $2\times2$ 下采样的 pixel-shuffle 操作把视觉 token 数量减少到四分之一,使得最高 $3584\times3584$ 像素的输入在 1M token 上下文里仍然可承受。
2.5 Per-Head Muon
沿用 Kimi K2,Kimi K3 采用 Muon49 作为矩阵参数的优化器。对 attention 的投影矩阵,我们进一步把它细化成 per-head 变体:不再对完整的 $Q$、$K$、$V$ 投影矩阵做 Newton–Schulz 正交化,而是把它们的动量矩阵沿 head 维度切开,对每个 head 的块分别正交化。直觉是,整矩阵正交化把所有 head 当成单一耦合的块,于是梯度或动量尺度较大的 head 会主导共享的更新方向,尺度较小的 head 则得不到充分归一化的更新;per-head 正交化让各 head 之间的更新尺度拉平。实践中,这个设计带来了各 head 之间更均衡的学习动态,并改善了更大规模下的训练稳定性。它还略微降低了优化器开销,因为在瘦长的 per-head 块上做 Newton–Schulz 迭代比在完整投影矩阵上更便宜。
3 预训练
3.1 预训练数据
Kimi K3 在一个精选语料上预训练,覆盖四个主要文本领域——Web Text、Code、Mathematics、Knowledge——以及一份大规模视觉语料。视觉数据涵盖 caption、图文交织文档、OCR、感知、视频和 visual coding 数据。我们的数据流水线建立在为 Kimi K24 开发、并在 Kimi K2.514 中改进的那一套之上。
Text data. 每个领域都用规则启发式、基于分类器的质量打分、以及去重的组合来过滤,领域特定的采样率由更小模型上的消融实验确定。沿用 Kimi K24 的 rephrasing 配方,我们对知识和数学语料做改写,手段包括风格与视角多样化的 prompting、chunk-wise 自回归生成,以及针对源文档的保真度验证。
Vision data. 视觉语料沿用 Kimi K2.514 的分类体系,把开源集合与内部的过滤、合成、去重流水线结合起来。训练时,坐标监督同时以绝对和归一化($[0,1]$)两种格式提供,从而实现精确且对分辨率鲁棒的定位。除了经典的带文字 caption 的图像之外,我们大幅扩大了程序化多模态数据的规模,把代码片段与它们渲染出的视觉结果配对,覆盖 SVG、3D 资产、网页、游戏、CAD 图纸等领域特定格式。
3.2 Scaling Law
前面几节描述的架构、数据和训练改进合在一起,定义了我们新的模型家族。由于这些改动也改变了最优训练配置,我们做了专门的 scaling-law 研究来重调关键超参,包括 batch size、learning rate、tokens-per-parameter 比例(TPP)和模型形状。在留出的 OOD 验证数据上评测,Fig. 7 里的 scaling law 曲线显示这些改进合起来带来相比 Kimi K2 约 $2.5\times$ 的整体 scaling 效率提升。Table 1 给出了 Kimi K2 与 Kimi K3 的详细架构对比,标出了促成这一提升的结构性改动。
我们的 scaling-law 研究一致地偏向 cosine decay 而非 Warmup Stable Decay(WSD)50,因此我们把 cosine decay 定为默认的 learning rate schedule。我们在固定最小 learning rate 的条件下比较 cosine decay 和 WSD。尽管已有工作报告过 WSD 能追平甚至超过 cosine decay,我们观察到这两种 schedule 的最优超参差别很明显。即便在相同的模型规模和训练 token 预算下,它们的最优峰值 learning rate 和 batch size 也差得不少。因此,用一套共享的超参去比较这两种 schedule,可能仅仅因为那套超参更契合其中一方而造成不公平。为保证公平比较,我们为每种 schedule 各做了一次独立的 scaling-law 搜索。在各自最优的超参设置下,cosine decay 始终取得比 WSD 更低的最终 loss。
Table 1:Kimi K2 与 Kimi K3 的架构对比。
| Kimi K2 | Kimi K3 | $\boldsymbol{\Delta}$ | |
|---|---|---|---|
| 架构 | MoE | MoE | – |
| 层数 | 61 | 93 | $\uparrow 52\%$ |
| 总参数量 | 1.04T | 2.78T | $\uparrow 167\%$ |
| 激活参数量 | 32.6B | 104.2B | $\uparrow 220\%$ |
| 隐藏维度 | 7,168 | 7,168 | $=$ |
| Latent MoE 维度 | – | 3584 (0.5×) | – |
| 每专家的 MoE 隐藏维度 | 2,048 | 3,072 | $\uparrow 50\%$ |
| Routed expert 数 | 384 | 896 | $\uparrow 133\%$ |
| 每 token 激活专家数 | 8 | 16 | $\uparrow 100\%$ |
| Shared expert 数 | 1 | 2 | $\uparrow 100\%$ |
| Attention head 数 | 64 | 96 | $\uparrow 50\%$ |
| Dense 层数 | 1 | 1 | $=$ |
| 词表大小 | 160K | 160K | $=$ |
| 训练上下文长度 | 128K | 1M | $8\times$ |
| Attention 机制 | MLA | Hybrid KDA–MLA | – |
| 激活函数 | SwiGLU | SiTU-GLU | – |
| Attention 层构成 | 61 MLA | 69 KDA + 24 MLA | – |
| MTP 层数 | 1 层 | 1 层 | $=$ |
| ViT 总参数量 | - | 401M | - |
| ViT 层数 | - | 27 层 | - |
| ViT patch size | - | 14 | - |
| ViT attention head 数 | - | 12 | - |
3.3 训练配方
Kimi K3 采用原生多模态的训练策略:语言和视觉从训练一开始就联合优化,而不是通过事后的对齐阶段把视觉 encoder 嫁接到一个已经预训练好的语言模型上。在这个范式下,视觉 token 和文本 token 在单一的 next-token prediction 目标里交织,使共享 backbone 从一开始就学到统一的多模态表示。
我们用 Per-Head Muon 优化器(§2.5)配合 Kimi K2 引入的 weight-clipping 机制来优化模型,MoE 负载均衡则采用 QB(§2.3.3)。我们使用 cosine learning rate schedule,带 $1\%$ 的线性 warmup。weight decay 全程设为 $0.1$。
我们的预训练从 $8\mathrm{k}$ token 的上下文长度开始,随后在一个后续训练阶段扩展到 $64\mathrm{k}$ token。
3.4 长上下文扩展
Positional encoding. Kimi K3 不使用显式的位置嵌入(NoPE),而是通过 KDA 的递推门控与衰减机制隐式地编码位置信息。因此模型可以直接外推到 1M token 的上下文,不需要任何位置编码上的改动,比如 RoPE 重缩放或插值32。
Long-context data. 来自自然来源的长文档和长视频含有大量低质量内容,包括近重复、二进制块、被截断的文件、视频片段和无效的机器生成日志。因此我们把它们送进一条专门的清洗流水线,把精确去重和模糊去重结合起来,视频还额外用逐帧的感知哈希补充,再加上启发式与分类器的质量过滤,以及结构合法性校验。由于真正长且连贯的文档和视频相对短文本来说很稀缺,我们对它们做上采样,好让 cooldown 阶段的长上下文分布不被短序列压倒。然而,仅有长度并不带来长程能力。为此,我们通过精心排列和拼接多模态文档与子任务来合成额外的长上下文数据,使嵌入其中的任务只有 attend 到散布在整个 1M token 上下文里的信息才能解出。这在预期的尺度上训练了 attention 机制,避免它退化成局部模式。
Progressive context extension. Kimi K3 支持最长 100 万 token 的上下文窗口。我们的实现方式是随训练推进逐步扩展上下文窗口,遵循一个四阶段的 curriculum。窗口在预训练期间从 8K 涨到 64K token,在 cooldown 阶段从 256K 涨到 1M token。把昂贵的长序列计算集中在整体训练预算的一小部分里,既让 curriculum 经济,又仍能让模型逐步适应越来越长程的依赖。让百万 token 训练在 KDA 层上变得可行的序列维度切分,见 §5.1.2。
4 后训练
4.1 方法
我们的后训练流水线遵循三阶段范式:通过 supervised fine-tuning(SFT)初始化 baseline 的 agent 能力;通过强化学习(RL)培养不同 reasoning effort 下的领域专家;再用 Multi-Teacher On-Policy Distillation(MOPD)把这些领域专属策略整合进单一模型。
4.1.1 Supervised Fine-Tuning
SFT 阶段为后续的 RL 阶段建立一个高质量的 cold-start 策略。在之前几代 Kimi 模型414 的 SFT 流水线基础上,我们为 Kimi K3 扩充了 SFT 数据集,大幅拓宽了它对复杂 agentic 任务的覆盖。具体做法是用 Kimi 系列此前的领域专精模型合成数据轨迹,再经过多阶段验证和 human-in-the-loop 标注。为了一致地表示这些复杂的 agentic 轨迹,我们用基于 XTML(eXtensible Token Markup Language)的 chat template 序列化所有数据(细节见附录 F)。这些步骤合起来产出了一个大规模指令数据集,赋予 Kimi K3 自适应推理、精确工具调用,以及在长程 agentic 场景下稳健执行的能力。此外,我们从 SFT 阶段开始就施加 quantization-aware training(QAT),权重用 MXFP4、激活用 MXFP8(§4.1.4)。
4.1.2 Reinforcement Learning
虽然 SFT 提供了扎实的 cold-start 基础,但要解锁更高阶的推理和执行能力,RL 是关键。我们没有为单个任务分别训练专门的 RL 模型,而是在三个宽泛的领域上 scale RL——每个领域都涵盖大量子任务——并为每个领域在每个 reasoning effort 档位上训练一个专家:(i) general tasks,覆盖通用体验、视觉、推理、faithfulness、搜索能力和知识工作任务;(ii) general agents,覆盖长程助手任务、deep research 和段落级写作;(iii) coding agents,覆盖软件工程(SWE)、coding 体验、kernel 任务和 web 开发。如 Figure 8 所示,scale RL FLOPs 一致地改善了知识、推理、视觉、通用 agent 和 coding 上的多种能力。把这三个领域专家与 $\{\text{low}, \text{high}, \text{max}\}$ 三个 reasoning effort 档位交叉,共得到九个专家模型。
Algorithm. 为缓解在长程任务中愈发严重的长尾延迟,我们扩展了同步 RL 框架里的 partial rollout 方案1314。在每次迭代的 rollout 阶段,我们为 $N$ 个 prompt 各采样 $K$ 条 completion,维持 $N \times K$ 条轨迹的活跃负载。生成阶段不等所有 rollout 结束,而是一旦有 $\lambda \in (0, 1)$ 比例的轨迹完成(即 $\lambda NK$ 条)就暂停,让策略优化不必被执行侧的 straggler 拖住。被暂停的 rollout 进入队列,在下一次迭代开始时优先恢复,这由我们的 sandbox 基础设施支撑(见 §5.3.2)。一个 prompt 的 $K$ 条回复全部完成后,它们立即被派去做策略优化,算法沿用 Kimi K2.514。在我们的 partial rollout 方案下,单条长程轨迹自然会横跨多次迭代,带来的数据 staleness 会威胁训练稳定性。我们的策略优化算法通过 per-token 正则化,天然能容忍这种极端 off-policy 的状况。把策略更新约束在一个局部邻域内,这项正则化让算法能稳健处理高度过期的数据,并维持训练稳定。
Reasoning Effort RL. 为了在最大化 token 效率的同时精调 reasoning effort,我们在 RL 中实现了一套 per-problem 的预算控制机制14。我们给每个问题 $x$ 关联一个由 cold-start 模型估计出的初始 token 预算 $b_0(x)$,对总 token 预算 $T(y)$ 超过缩放阈值 $\tau \cdot b_0(x)$ 的轨迹,把任务 reward 直接改写为 $-1$。对 general 任务,$T(y)$ 计的是 thinking token 数;对 agentic 任务,$T(y)$ 算的是累计输出 token,既包含推理轨迹也包含工具调用参数。训练在预算乘子 $\tau$ 上遵循一个分阶段的 curriculum。我们先用相对较大的 $\tau$ 训练一个 max-budget 变体,同时仍然给最大预算设上限以压住过度思考。然后把 $\tau$ 退火到更小的值,得到 high 和 low effort 的专家模型。$\tau$ 的调整按领域分别配置,并有 human-in-the-loop 指导。由此得到的各 reasoning 档位专家所产生的轨迹,会被一起收集起来用于 supervised fine-tuning 和 multi-teacher on-policy distillation。
Agentic Generative Reward Model. 对于不可验证的 general 任务,我们采用 Agentic Generative Reward Model(GRM),沿用 Kimi K2.5 的锦标赛式 group reward 加二元比较的做法414。除了用于提升判断力的通用 agentic 能力之外,这个 agentic judge 还被要求遵循一套强制协议:(1) 读取结果、产物或文本输出;(2) 生成一份 rubric;(3) 按 rubric 给每个候选打分;(4) 把 rubric 给出的分数记录到 scorepad 上。为缓解朝着越来越啰嗦的输出去 hack reward 的倾向,我们施加了一个基于预算的啰嗦度控制,和上面的 reasoning-effort 控制类似:给定由 cold-start 模型估计的初始啰嗦度 $\ell_0$ 和一个乘子 $\sigma$,输出长度超过 $\sigma \cdot \ell_0$ 的候选自动在二元比较中判负。
4.1.3 Multi-Teacher On-Policy Distillation
我们采用 Multi-Teacher On-Policy Distillation(MOPD)把这些跨不同 reasoning effort 的领域专精能力整合进一个统一模型192016。训练时,对给定领域 $d$ 和采样到的 reasoning effort 档位 $e \in \{\text{low}, \text{high}, \text{max}\}$,优化由九个专家中对应的 teacher 模型 $\pi_{\text{teacher}}^{(d,e)}$ 引导。给定输入 query $x$ 和前缀回复 $y_{
4.1.4 Deployment-Aware Post-Training
MXFP4 Quantization-Aware Post-Training. 为降低部署时的显存占用和服务成本,我们把主导模型参数显存的 MoE 专家权重量化到 MXFP451,激活以 MXFP8 计算,而所有非专家组件(attention 投影、latent MoE 投影、shared expert、MoE router)保持更高精度。我们在整个后训练阶段——涵盖 SFT 和 RL——都做 quantization-aware training(QAT)52,让模型适应量化带来的精度损失。在 RL 期间,rollout 和训练共用同一套量化方案,消除了训练与推理之间的不一致。
Draft Model Fine-Tuning. 对服务复杂的长程 agentic 模型来说,优化推理效率至关重要。Kimi K3 在预训练时带了一个 multi-token-prediction(MTP)层,其结构与 backbone block 一致。由于 EAGLE-353 的 draft model 由单个 decoder 层构成、结构与 MTP 层相匹配,我们把预训练好的 MTP 层微调成 EAGLE-3 风格的 draft model,此时 target 模型冻结,只更新 draft 层及其特征融合投影。按照 EAGLE-3 的 training-time test 协议,draft 在训练时被展开七步;从第二步起,由于最新位置的 target 侧特征不可得,draft 会消费自己在之前步骤的输出,以此复现推理时的递归 drafting 过程。
draft 的输入融合了 target 模型的低层、中层、高层特征,分别取自第 1、第 4 和最后一个 AttnRes block 的输出(见 §2.2)。这些特征被拼接起来,通过一个无偏置矩阵 $\boldsymbol{W}_{\mathrm{E3}}$ 投影到 hidden size,该矩阵初始化为 $[\,\boldsymbol{0}\;\;\boldsymbol{0}\;\;\boldsymbol{I}\,]$,使得融合表示在初始化时恰好等于高层特征 $\boldsymbol{h}_{h}$——也就是 MTP 层预训练时所依赖的输入——然后在微调过程中逐渐学会纳入低层和中层特征。
speculative decoding 的加速比由无损 speculative sampling 下的 per-token 接受率 $\sum_{x \in \mathcal{V}} \min\!\left(p(x), q(x)\right)$ 决定,其中 $p$ 和 $q$ 分别是 target 和 draft 模型的 next-token 分布。由于对容量有限的 draft 模型来说,最小化常规的 KL 散度代理目标并不保证最大化这个接受率,我们直接优化基于似然的 LK loss54,也就是接受率本身的负对数:
$$ \mathcal{L}_{\mathrm{LK}} = -\log \sum_{x \in \mathcal{V}} \min\!\left(p(x), q(x)\right), $$其中 $p$ 和 $q$ 在温度 1 下评估,且不带辅助的 ground-truth 交叉熵项。draft 的微调沿用后训练的 QAT 配置(见上),MoE 专家权重为 MXFP4、其输入激活为 MXFP8,非专家模块保持更高精度。
4.2 RL 任务合成与 agentic 环境
我们 RL 框架的有效性严重依赖丰富、多样、且能稳健验证的环境。为支撑在复杂长程任务上的可扩展训练,我们设计了一系列专门的白盒环境和任务合成范式。
4.2.1 Unified White-Box RL Environment
用单一固定的 agent harness 做训练,会让模型过拟合到某一套特定的工具 schema、system prompt、上下文管理机制或交互协议上。为此,我们开发了一个统一的白盒 RL 环境,把 agent harness 表示为一组可配置、可组合的模块,包括工具接口、system prompt、上下文管理策略、skill、memory、subagent 等组件。通过配置来组合这些模块,这个环境能实例化出主流的 harness,比如 Kimi Code55、Claude Code56、Codex57、OpenClaw58 和 Hermes59,也能实例化出全新的 harness。RL 训练期间,我们为不同的任务组动态构造不同的 harness 配置,让 Kimi K3 见到这些模块的多种组合,而不是任何单一 harness 的惯例。同一套抽象也很容易支撑跨多个任务领域的 RL,为训练更通用的 agent 提供了可扩展的基础。
4.2.2 Knowledge-Graph-Guided Task Synthesis
Motivation and overview. 后训练任务的质量和多样性,很大程度上由它们的源材料决定。由细粒度概念引导的检索能挖出专门的、被低估的知识,而跨多样概念的采样能拓宽领域覆盖。为了在大规模下同时控制粒度和覆盖度,我们构建了一个自演化、按层级组织的知识图谱,由 agent 在知识密集领域和 coding 领域上通过 web 规模的探索持续扩展它。Figure 9 展示了任务合成流水线。
Agentic knowledge graph construction. 我们把知识图谱构建成一个有向无环图,通过递归的、agent 驱动的扩展来生长。扩展过程从一组预定义的粗粒度种子节点开始。然后为每个节点分配一个 agent 实例,它执行多次 web 搜索来考察对应的概念。在添加新节点之前,agent 会先探索已有的图,找出等价或相关的概念,在合适的地方复用已有节点,尽量减少重复。边的方向总是从较粗的概念指向较细的概念,无论 agent 先发现哪一端。新加入的节点随后又被分配给 agent 做进一步探索。当被分配的 agent 判定当前概念已经足够原子化时,这一分支就停止扩展。
Material retrieval and task synthesis. 为了瞄准期望的领域与任务类型分布,系统在不同粒度层次上采样节点,可以单个采样,也可以按相关性成组采样。从采样节点导出的关键词,会与它们在知识图谱中祖先节点的上下文信息组合起来,构成 web 查询。检索回来的真实材料被组装好,交给一个合成 agent 产出各种任务类型的训练任务。
4.2.3 Verifiable Problems in Agentic Environments
我们在 agentic 环境中的可验证问题上训练 Kimi K3;代表性的例子包括:多步复杂信息搜索,模型要规划自己的调研、一步步从网上收集证据、给出可验证的答案;专业人士真实的日常工作,比如投行、数据分析、法律实务,模型要拆解一个复杂请求、在 sandbox 里操作领域工具、在几十到几百步之内完成一份交付物;以及在 STEM 题目、视觉谜题和图表理解上的多步可验证视觉推理。每条视觉推理轨迹都在一个配有隔离 sandbox 内 Python 解释器的 agent 环境里生成:模型迭代地写并执行代码,来裁剪、缩放或变换输入图像,做精确计算,或验证中间结果,并在多个交互步骤中把执行输出——包括生成的图像——作为新的观察接收回来。随着模型学会执行更多图像操作、收集更多观察,它在复杂视觉推理任务上的表现稳步提升。
4.2.4 Kernel Optimization Tasks
为强化 Kimi K3 的 GPU kernel 优化能力,我们构建了一套大规模的 kernel 任务集,从单算子 kernel 一直到 fused mega-kernel,取材于 Flash Linear Attention60 这类高质量 GitHub 仓库。这套任务集横跨多种 GPU 编程方式,比如 CUDA、Triton、CuTe DSL、Gluon、ThunderKittens61 和 TileLang62,并覆盖广泛使用的 GPU 架构和数值格式,包括 BF16、FP8 和 FP4。reward 同时评估正确性和性能:每个 kernel 都提供一份 PyTorch 参考实现,数值误差超过预设阈值的解得 0 分。性能则对着一份专家实现打分,追平专家实现得 0.5 分,逼近硬件 roofline 则把 reward 推向 1。为确保 reward 反映的是真正的优化,我们开发了一套 hacking 检测系统,惩罚诸如 CUDA graph replay、输入缓存、降精度这类 reward hacking 策略,并在 Kimi K3 开发过程中随着新 hacking 手法的出现持续给它加新的防护。
4.2.5 Personal Assistant Tasks
针对长程个人助手任务,我们为广泛使用的应用(比如 Gmail、Notion、Slack、Canvas)开发了逼真的 mock 实现。它们保留了真实对应物的核心语义,同时让大规模、可复现的交互不再依赖外部 API 或受限于 rate limit。在这些 mock 应用之上,我们设计了受真实专业工作流启发的复杂任务,场景包括人力资源、法律服务和金融。在每个任务里,agent 在一个持久、不断演化的环境中跨多个模拟日运作,会遇到分布在各应用中的几十个相互依赖的事件。单次 rollout 可能涉及数千次工具调用和数百万 token 的上下文。每个事件都带有自己的评估标准,由确定性规则或基于 LLM 的评估器判定。初始 workspace 由 agent 构建,它们自主上网搜索参考材料,再把材料转化成一个连贯、与任务相关的环境。我们也扩展了 RL 框架来支持这类活的环境,对复杂的事件流以及由此引发的世界状态转移进行建模。
4.2.6 Autonomous Execution Tasks
我们提出 Autonomous Execution Tasks(AET),一种通过 verify-in-the-loop 优化来训练长程 agent 智能的环境范式。每个任务指定一个初始状态、一个带约束的目标、一个基于工具的动作空间、执行预算,以及一个独立的 verifier。agent 只看得到目标、上下文、约束和验证接口,没有参考轨迹也没有预定义流程,必须自主完成任务拆解、工具选择、规划、错误恢复和终止判断。reward 落在 verifier 对最终环境状态的评估上,而不是 agent 自己报告的完成情况。我们设计了多种类型的 verifier 来支撑不同环境,包括黑盒系统复现(Figure 10)、量化因子挖掘和税务审计。在每个环境里,agent 迭代地提交解、接收 verifier 反馈、改进自己的策略,由此训练出一个通用的循环:提出假设、行动、分析反馈、调整。reward hacking 通过几种手段缓解:把 agent 与 verifier 隔离;把提供诊断反馈的公开 verifier 与评估留出场景的隐藏 verifier 配对;以及在有限的提交预算下施加惩罚式 reward。
译注:Figure 10 的图例里出现的 Kimi K2.6 在原文正文中没有任何介绍,全文其他地方只讨论 Kimi K2、K2.5 和 K3。这里按图中原样保留。
4.2.7 Web Development Tasks
我们构建了一套由专家精选、覆盖典型场景的多样化 web 开发任务。输入从一行场景描述到多段规格说明都有;产物涵盖网站、交互式游戏、3D/WebGL 场景、数据可视化、SVG 和全栈应用。每个任务都跑在容器化 sandbox 里,并且在多样的 agent scaffold 下 rollout,而不是固定用单一 harness,以促进跨 scaffold 的泛化。reward 由两部分组成:确定性检查和内部 reward model 的模型判分。确定性检查在功能上测试应用行为,对于复现参考实现的任务,还给结构相似度和像素级相似度打分。当项目构建失败、运行报错,或者只是伪造而非真正实现了产物时,reward 归零。模型判分则用其他模型来做源码审查,或者去看、去交互那个输出产物。
5 Infrastructure
Kimi K3 把三个很少同时落在一个模型上的系统挑战凑到了一起:hybrid KDA attention、3T 级别的稀疏多模态训练与推理、以及百万 token 的 agentic 负载。我们的基础设施是围绕这些挑战、贯穿模型生命周期协同设计的。在架构层面,高性能 KDA kernel 和 Context Parallelism 让这个递推形式在设备内和跨设备都高效,训练和推理都适用。在预训练阶段,均衡的 expert 执行、更小的内存占用、以及通信重叠的调度在大规模下维持了高利用率。在百万 token 的 agentic RL 阶段,分层的状态管理和可恢复的 sandbox 执行让长轨迹能跨迭代保留下来。最后,state-aware 的 KDA prefix caching、专用推理 kernel 以及 cache 感知和预算感知的调度,把这些效率转化成了可预测的生产服务。
5.1 面向 KDA 的算法-系统协同设计
KDA 把 softmax attention 那个不断增长的 key–value cache 换成了固定大小的递推状态 $\mathbf{S}\in\mathbb{R}^{d_k\times d_v}$(见 §2.1.1),代价是串行的状态更新给并行执行带来了困难,换来的好处是这个固定大小的状态传输和复用都很便宜。下面的设计在两个执行层级上处理前一个性质、利用后一个性质:设备内用 fused kernel,跨设备用 KDA Context Parallelism。
5.1.1 分区间设计的 KDA kernel
KDA 状态的串行依赖与 GPU 偏好宽而均匀的并行方式相冲突,而且在每个执行区间里表现为不同的瓶颈。我们为每个区间设计了专门的 kernel。
Chunkwise kernel for training and prefill. KDA 的 chunkwise 形式在每个 chunk 内部是并行的,跨 chunk 则是串行的,因为递推状态必须一个 chunk 一个 chunk 地往下传。朴素地执行,这两个阶段就会交替进行,串行传播期间 SM 全都空着。为此我们开发了 FlashKDA63,一个基于 CUTLASS 的 chunkwise kernel,把 chunk 内计算与跨 chunk 状态传播重叠起来。这个 kernel 把工作分解成 token 并行的若干阶段和一个 head 并行的递推,各自独立调度和调优,性能大幅超过 Triton 的参考实现。FlashKDA 同时服务训练和推理 prefill,并作为 flash-linear-attention60 的一个 backend 被自动派发。
Intra-device context parallelism for long-context prefill. 张量并行把 head 切分到多个设备上,但从不缩短那个递推链,所以在纯 TP 部署下 prefill 一条超长序列时,每个 rank 只持有少数几个 head,大部分 SM 就闲着。关键观察是:每个 segment 的状态转移可以在不知道入口状态的情况下独立求值,事后再精确地组合起来。于是一个自动的 SM 级 context-parallel(CP)planner6460 把序列切分到单个 rank 的各个 SM 上,并行地求各 segment 的转移,再把它们 merge 起来,恢复出每个 segment 精确的初始状态。与 §5.1.2 那个跨设备的 KCP 不同,这种并行完全在设备内部,不产生任何跨设备通信。
KDA 解码面临的挑战与训练、prefill 阶段遇到的都不一样。我们在 §5.4.2 里详细讨论。
5.1.2 KDA Context Parallelism
context parallelism 的通信开销在 softmax attention 和 linear attention 之间有本质区别。softmax attention 要求各 rank 交换 key–value block,其大小随序列长度增长65。linear attention 则是用一个固定大小的递推状态 $\mathbf{S}\in\mathbb{R}^{d_k\times d_v}$ 来携带前文。此前的 context-parallel 方法利用 vanilla linear attention 加法式的递推:每个 rank 计算本地 token 从 $\mathbf{S}=\mathbf{0}$ 出发生成的状态,再把前面所有 rank 的这些本地状态求和,就恢复出入口状态6667。
但这种直接求和对 KDA 是不够的。回顾架构篇 §2.1.1 的递推式,KDA 更新状态的方式是 $\mathbf{S}_t=\mathbf{M}_t\mathbf{S}_{t-1}+\beta_t\boldsymbol{k}_t\boldsymbol{v}_t^{\top}$,其中 $\mathbf{M}_t:=\left(\mathbf{I}-\beta_t\boldsymbol{k}_t\boldsymbol{k}_t^{\top}\right)\operatorname{Diag}(\boldsymbol{\alpha}_t)$。KDA 的 delta rule 在加上当前写入之前,先把与 token 相关的矩阵 $\mathbf{M}_t$ 作用在入口状态上。因此一段本地序列的作用效果取决于进入这一段的状态,光靠从 $\mathbf{S}=\mathbf{0}$ 算出的状态是定不下来的。
为了保住这层依赖,我们提出 KDA Context Parallelism(KCP),把每个 segment 的作用效果分解成两个可以本地计算的量:一个作用在入口状态上的累积转移,以及一个从零开始本地生成的状态。沿用 §2.1.1 的 chunkwise 记号,我们用 $\mathbf{S}_{[i]}^{t}$ 表示 rank $i$ 的 segment 在处理完 $t$ 个本地 token 后的递推状态,于是 $\mathbf{S}_{[i]}^{T_i}$ 就是离开 rank $i$、进入 rank $i+1$ 的状态。我们用 $\widetilde{\mathbf{S}}_{[i]}^{t}$ 表示同一个递推改从 $\mathbf{S}=\mathbf{0}$ 出发时的状态。对于进入 $P$ 个 context-parallel rank 中第 $(i+1)$ 个的任意入口状态,处理完 $t$ 个本地 token 后的状态是
$$ \begin{aligned} \mathbf{M}_{[i+1]}^{t \leftarrow 1} := \prod_{r \leftarrow 1}^{t}\mathbf{M}_r \in \mathbb{R}^{d_k\times d_k}, \qquad \mathbf{S}_{[i+1]}^{t} & = \widetilde{\mathbf{S}}_{[i+1]}^{t} + \mathbf{M}_{[i+1]}^{t \leftarrow 1}\mathbf{S}_{[i]}^{T_i} \\ & = \widetilde{\mathbf{S}}_{[i+1]}^{t} + \mathbf{M}_{[i+1]}^{t \leftarrow 1}\sum_{j=1}^{i}\Big(\prod_{l \leftarrow j+1}^{i}\mathbf{M}_{[l]}^{T_l \leftarrow 1}\Big)\widetilde{\mathbf{S}}_{[j]}^{T_j}\in \mathbb{R}^{d_k\times d_v}. \end{aligned} $$
其中 $\mathbf{M}_{[i+1]}^{t \leftarrow 1}$ 表示前 $t$ 个本地 token 的累积转移。第一项装的是本地 token 生成的状态,第二项则把前面各 rank 的上下文经由本地的 KDA 更新传播过来。在 $t=T_{i+1}$ 处,$\mathbf{M}_{[i+1]}^{T_{i+1} \leftarrow 1}$ 和 $\widetilde{\mathbf{S}}_{[i+1]}^{T_{i+1}}$ 这两个量都可以只用本地 token 算出来,不必等 $\mathbf{S}_{[i]}^{T_i}$ 就绪;它们就是各 rank 之间互相交换的那两个片段。
上式的求和说明,每个状态都是纯粹由本地计算出的片段组合出来的。这些 rank 级的更新满足结合律,所以每个 rank 的入口状态都可以用一次 prefix scan 恢复出来68。每个 rank 先在本地算出 $\mathbf{M}_{[i]}^{T_i \leftarrow 1}$ 和 $\widetilde{\mathbf{S}}_{[i]}^{T_i}$,然后用一次 all-gather 把这两个张量交换出去60。69 all-gather 之后,rank $i+1$ 按顺序处理同一篇文档中前面的各个片段来重建 $\mathbf{S}_{[i]}^{T_i}$:从 $\mathbf{S}=\mathbf{0}$ 开始,每遇到一个片段就施加 $\mathbf{S}\leftarrow\mathbf{M}_{[j]}^{T_j \leftarrow 1}\mathbf{S}+\widetilde{\mathbf{S}}_{[j]}^{T_j}$。因此 KCP 只需要一次固定大小的 all-gather 来同步递推状态,并且做到了计算量的线性 scaling。
5.2 3T 级预训练的基础设施
Kimi K3 的预训练把带 virtual stage(VP)的 Pipeline Parallelism(PP)7071、Expert Parallelism(EP)72、ZeRO-1 数据并行73、Pipeline ZeRO-2 梯度分片15 以及 Context Parallelism(CP,见 §5.1.2)74 组合在一起。 MoE 层采用在各 EP rank 上复制的 shared expert,而 expert dispatch 与 combine 的 all-to-all 通信则与计算重叠以隐藏延迟。
在 3T 级别做原生多模态预训练带来三个关键问题:(i) token 负载在各 EP rank 之间不均衡;(ii) 激活、梯度和优化器状态超出了显存预算;(iii) 视觉 encoder 那高度可变的计算量暴露在关键路径上。接下来的几小节依次处理这些问题:完美均衡的 expert-parallel MoE 训练(§5.2.1)、内存高效训练(§5.2.2)、以及多模态 encoder 优化(§5.2.3)。Fig. 11 展示了最终的执行调度。
5.2.1 完美均衡的 expert-parallel MoE 训练
在常规的 EP 方案里,token 负载在各 rank 之间是不均衡的。由此产生的计算不均衡会拖低训练吞吐,而 routed expert 激活那动态变化的形状还会造成大量内存碎片。为此我们提出 MoonEP75,一个用动态 redundant expert 实现完美负载均衡的 EP 方案。MoonEP 保留了 DeepEP76 这类常规方案的整体计算流程,并额外引入了 redundant expert 的在线规划与迁移。前向时,我们从当前 micro-batch 和当前层的 router 输出规划 redundant expert,并在 routed expert 计算之前把它们预取过来。反向时,我们把它们的梯度暂存在一个本地 reduce buffer 里,等计算完成后再 reduce 回它们归属 rank 的梯度 buffer。
Perfect balance with bounded redundant experts. MoonEP 要求每个 rank 恰好收到 $S \times K$ 个 token,其中 $S$ 是序列长度、$K$ 是每个 token 选中的专家数,这样所有 rank 的计算量就完全相同。关键问题是:多少个 redundant expert 足以保证这种均衡?令 $E$ 为专家数、$R$ 为 EP size。我们证明了每个 rank 最多 $E/R$ 个 redundant expert 时均衡方案总是存在,并且这个上界本质上是紧的(见附录 E)。因此每个 rank 预留 $E/R$ 个 redundant-expert 槽位就能保证规划总是有可行解,训练永远不会被打断。相比之下,此前的工作比如 ECHO77 和 UltraEP78 是预设 redundant expert 的数量,或者给每个 rank 的 token 数设一个上限。这样一旦上限之内找不到可行方案,训练就被迫停下;而上限本身还要人工调,且仍会留下残余的不均衡。
Online planning. 每个训练步都算精确最优解代价太高。于是我们用整数线性规划(ILP)离线算出若干代表性情形的精确解作为参照,再设计一个 GPU 规划 kernel,它接近最优、开销可以忽略,并且始终尊重 $E/R$ 这个上界。
Zero-copy communication. 完美均衡也简化了通信路径。我们实现了一个融合的 permute/unpermute 算子:规划 kernel 预先算好每个 token 的目的地,于是 token 被直接发送到远端 rank 上按专家分组好的位置,通信 buffer 的 view 则直接交回给计算,中间拷贝全部省掉。在最坏的不均衡情况下,DeepEP 若要支持同样免拷贝的数据通路,需要一个大小为 $S \times K \times R$ 的通信 buffer,而 MoonEP 因为完美均衡只需要固定的 $S \times K$ buffer。
Sync-free execution with static shapes. 在常规的 MoE 实现里,每个专家的 token 数在不同步、不同层之间都在变,host 必须在每一层都与 device 同步一次来拿到实际的计算形状,才能启动专家计算,这就在层与层之间把流水线卡住了。有了完美均衡,每个 rank 恰好收到 $S \times K$ 个 token,所有层的计算形状都是静态已知的。这就消掉了每层的 MoE host 同步,也缓解了 host 侧的 kernel launch 开销。
Expert-GEMM scheduling and overlap. 即便各 rank 的总负载已经完美均衡,每个 rank 内部各专家的 token 数仍然是倾斜的,而一个固定顺序、不看负载的调度会把这种倾斜变成 SM worker 之间不均衡的 makespan。为此我们用一个感知负载的调度器来安排 routed expert 的 GEMM,它在 launch 之前根据当前的 token 分布调整参数,执行期间则保持参数不变。一个轻量的启发式规则用硬件指标的分析性成本模型来选这些参数,关键系数通过离线 autotuning 校准。对 shared expert,我们把它们的 GEMM 派发到一条独立的 stream 上,好与其他 kernel 重叠。
5.2.2 内存高效训练
Unified activation manager. 我们为激活设计了一个统一的存储抽象:每个为反向保存下来的张量都关联一个可插拔的存储 backend。重计算、量化、offload/remote-offload 在这个抽象下都只是存储策略,可以在张量粒度上自由组合;策略通过张量上的轻量标注声明,与模型代码完全解耦。重计算按函数粒度进行,因此支持跨层重计算。在我们的实现里,所有 GPU 内存都在主计算 stream 上分配、在单一内存池里管理,避免了多 stream 的碎片和 host-bound 的开销;激活按层粒度预取回来并与计算重叠,带来的额外开销可以忽略。在 Kimi K3 里,大多数激活用 block-wise FP8 量化445 加上 offload/remote-offload,逐元素算子则配置为重计算。
Memory-efficient MoE. 在原生的 MoE 实现里,permuted probs 的梯度计算依赖前向输出 output。受 SonicMoE79 启发,我们通过一次数学变换把这个梯度改写成只依赖中间激活 act_output 和上游梯度 doutput 的形式,代价是多做一点轻量的逐元素计算,从而消掉了反向对 output 的依赖。此外,在 group GEMM 的前向里我们只保存 dispatch 操作的输入;反向时,group GEMM 的输入通过重算 dispatch 来恢复。如 Fig. 11 所示,这次重计算引入的通信可以与 group-GEMM 反向计算的一部分重叠,于是这部分激活存储被以近乎可忽略的代价省掉了。
Memory-efficient Attention residual. 对于 attention residual,我们基于 Block AttnRes 设计了一个配套优化。block 表示在边界层生成一次,之后所有层共享,并且直接留在 GPU 上。AttnRes 的计算整体套上 checkpointing,所以每一层为反向保存的激活与标准 residual 架构完全相同。对于流水线并行,我们采用基于 cache 的 pipeline 通信80,只把新生成的 block 增量地在 stage 之间传输,并在 micro-batch 结束后立刻释放,达到了内存占用的理论下界。
Balancing activations across PP ranks. 在 interleaved 1F1B 流水线并行下,由于流水线 warmup,激活在各 PP rank 之间的分布是不均的:PP rank 越大,驻留的激活数越少。为避免 out-of-memory(OOM),我们用 Mooncake Transfer Engine81 把激活远程 offload 到其他 PP rank 的内存里,让各 PP rank 的激活内存达到均衡。
Pipeline ZeRO-2 gradient sharding and offloading. 除了激活之外,我们用 Pipeline ZeRO-2 梯度分片15 把梯度切分到各数据并行(DP)rank 上。进一步地,我们把分好片的梯度存在 CPU 内存里以降低 GPU 内存峰值,同时把 double grad buffer 留在 GPU 上。梯度在各 DP rank 之间 reduce 进 double grad buffer 之后,再累加到 CPU 的分片上。
P2P-based Muon orthogonalization. 分布式优化器把参数均匀切分到各 DP rank 上,而 Muon 里的 Newton–Schulz 正交化需要完整的参数矩阵,所以每次更新前都必须有一步通信来把完整参数聚起来。朴素的做法是在每个 rank 上对整个参数 buffer 做 all-gather82,这除了让通信在大规模下成为主要瓶颈之外,还带来相当大的内存占用。我们改成让每个 rank 只通过点对点(P2P)通信从对应的 owner rank 那里取回自己所拥有参数的分片,从而省掉完整参数 buffer,同时降低内存用量和通信量。通信与计算还进一步按 model-chunk buffer 的粒度做了流水化,把通信开销隐藏起来。
5.2.3 多模态 encoder 优化
Dynamic CP in multimodal encoder. 在长上下文多模态训练中,大图和长视频会大幅增加视觉 encoder 的计算时间,并造成设备间显著的负载不均衡。为此我们把 context parallelism 扩展到这类大样本上。单张大图沿 patch 维度切分到多个设备上,attention 则通过跨 CP rank 聚集 key–value 对(gather-KV)来计算。此外,我们把每个 CP group 再划分成若干 sub-CP group,把多张大图以负载均衡的方式分配到它们上面,避免通信占比随规模增长。这既降低了大视觉样本的 encoder 延迟,也降低了跨设备的负载不均衡,使得剩下的 encoder 计算能被藏进流水线气泡里。
Encoder computation in PP bubbles. 在 Kimi K2.5 里我们引入了 Decoupled Encoder Process(DEP)14,把 ViT 与文本训练拆成独立的 stage,并在各 PP stage 之间平衡视觉的前向与反向。我们观察到,在 interleaved 1F1B 的流水线调度下,最前面几个 PP micro-batch 的文本前向全都排在最开头,而最后几个 PP micro-batch 的文本反向要到最末尾才结束。于是我们进一步分解 ViT 的计算:最前面几个 PP micro-batch 的 ViT 前向同步地提前执行,其余前向被排进流水线气泡,反向也照此处理。结果是大部分 ViT 计算都被藏在流水线气泡里,视觉 encoder 的有效开销基本被抹平。
5.3 百万 token agentic RL 的基础设施
要在有限的算力预算下把 Kimi K3 这么大的模型的 agentic RL scale 到百万 token 上下文,资源效率就成了第一位的目标。这促成了两项互补的工作:1)高效的训练与 rollout,包括 KV-cache 管理、请求调度和训练状态放置;2)支撑长程交互的高性能可恢复 sandbox。
5.3.1 长上下文 RL 基础设施
我们采用 co-located 的 RL 训练4,把每个 1M 上下文的 Kimi K3 RL 实验控制在几百张 GPU 之内,并用 partial rollout13 来削减超长轨迹带来的长尾延迟。这个设计带来了不错的硬件利用率,但也引入了一处内存使用上的竞争:一边是需要为下一次迭代保留的 rollout KV-cache,一边是训练本身需要的内存。在长上下文 RL 里这个矛盾更加尖锐。
External KV cache pool. 在 1M 上下文的多步 rollout 中,一次 prefix KV-cache miss 的代价极其高昂。partial rollout 会让这个问题更严重,因为每次迭代开始时,上一次迭代留下的大量未完成的长 prefill 请求会同时涌到。 speculative decoding 又在相对固定的工具调用间隔内进一步加快了请求周转,加剧了 prefix block 的换进换出。这些因素会触发抢占、拉低 cache 命中率,而命中率对长上下文 RL 至关重要。
因此我们用一个 write-back 设计把 prefix 保留与 GPU 驻留解耦。活跃的解码 block 留在 GPU KV cache 里,而可复用的空闲 prefix 只在被逐出 GPU 时才写回到 CPU DRAM 上的一个外部 KV cache 池(external KV cache pool),并在下次复用之前预取回来。KDA 状态与对应的 MLA KV cache block 一起 offload、一起预取,让它们的生命周期保持对齐。与 write-through 策略相比,这个策略只为那些离开活跃解码路径的 prefix 付出 CPU DRAM 占用和传输带宽,避免了对仍然驻留在 GPU 上、仍然活跃的 block 做冗余的 CPU 拷贝。
为了给这个外部池腾出足够的 DRAM,我们在一次训练迭代结束后把训练状态(模型权重和优化器状态)offload 到 NVMe。而一次 rollout 迭代结束后,这个池会被释放,以避免与训练负载争抢。
Rollout auto-throttling scheduler. 在多步 rollout 中,上下文随轨迹推进逐渐增长,所以按整条轨迹的平均长度来设固定并发既难估准,又在早期过于保守。反过来,并发设太高会在后期造成 KV cache 压力,可能触发抢占。为此我们在 LLM 请求调度层设计了一套 auto-throttling 机制,用活跃请求数、排队请求数、KV cache 利用率这些运行时信号来动态控制发给推理引擎的请求数量。这样早期 rollout 保持高利用率,而随着 KV cache 压力上升就降低并发,既不欠饱和也不过载,且无需人工调参。
Gradient-buffer reuse for non-policy model forwarding. RL 的 loss 计算常常需要只做前向的 non-policy 模型,比如 reference model,而它们的权重大到没法常驻 GPU。我们把这些权重放在 CPU 内存里,只在需要时才实体化,并让它们的参数张量以 policy 模型的 FP32 梯度 buffer 存储为底。这样就复用了已有的 GPU 内存,不必额外分配、也不产生碎片;而且是安全的,因为这些 buffer 在稍后真正计算梯度时会被覆盖掉。
配合 ZeRO-2 的梯度分片与 offload(§5.2.2),在 Kimi K3 的 RL 训练中每张 GPU 只保留两个 VPP chunk 的梯度 buffer。我们把 reference 权重按 chunk 逐个流式送进这些槽位:一个槽位用于当前的前向计算,另一个预取下一个 chunk,从而在不增加 GPU 内存的前提下隐藏拷贝开销。
5.3.2 Sandbox 基础设施
为支撑 Kimi K3 后训练与评测的多样需求,我们部署了多种 sandbox runtime,包括传统的容器 runtime、GPU sandbox runtime,以及最值得一提的、基于 microVM 的新 sandbox runtime AgentENV。
AgentENV83 是与合作伙伴共同开发的、专为 agentic AI 负载设计的 sandbox 系统。它围绕三个核心设计目标构建:
-
高保真的隔离 sandbox runtime。 随着 agent 能力变强、任务变难,它们倾向于更激进地探索,甚至可能尝试 reward hacking。一方面这带来了独特的安全挑战:在我们早期用传统容器 sandbox runtime 做的实验里,观察到过若干由 agent 的意外操作引起的 kernel panic 和死锁。另一方面,我们希望尽可能允许探索,不去限制 agent 的能力,而复杂任务需要一个贴近真实世界的 sandbox——比如说,agent 应该能随意挂载磁盘、跑容器,甚至启动虚拟机。通过用 Firecracker84 跑隔离的 microVM,AgentENV 提供了容器 runtime 达不到的隔离级别和保真度。
-
面向 agentic RL 的灵活 sandbox 生命周期。 在底层,AgentENV 支持 sandbox 状态的增量 checkpoint 与恢复,checkpoint 时只保存自上次 checkpoint 以来被写脏的内存页,checkpoint 和恢复延迟分别低至 133 ms 和 49 ms。在此之上,AgentENV 提供三个高层操作来提升 agentic RL 的效率。(a) Pause and Resume:暂停的 sandbox 不消耗任何内存和 CPU 资源,因此当 agent 在等模型的推理结果时就可以把 sandbox 暂停掉——这段等待可能占到 sandbox 生命周期的 98%。(b) Fork:fork 从原 sandbox 的精确状态创建一个新 sandbox,同时保持原来那个继续运行,这对做无副作用的 reward 判分很有用。(c) Snapshot:可以按固定间隔保存 sandbox 的快照,用于错误恢复。
-
高效率与高密度。 在我们的负载里,可能需要在几秒内创建数万个 sandbox,每个还带着各不相同的一套镜像。我们采用 OverlayBD85 作为镜像格式,配合定制的 ublk 驱动实现、存储层共享和 P2P 传输,在大规模下做到了亚秒级启动延迟。我们还用 copy-on-write 内存和 page cache 优化进一步降低内存用量,在真实负载中达到了最高 6.5$\times$ 的内存超分比。
在 Kimi K3 整个训练与评测过程中,一共创建了 51,219,741 个 sandbox,涉及 1,505,678 个镜像。
5.4 推理与在线服务
服务 Kimi K3 从生产侧暴露出同样的挑战:hybrid KDA–MLA 架构维护着两种本质不同的 cache,在百万 token 上下文下必须联合管理;它的新模块和高度稀疏的专家各自需要量身定制的 kernel;而生产流量里混杂着单请求成本相差三个数量级的请求。下面的设计在三个层级上应对这些挑战。在引擎层,一个 KDA 感知的 prefix cache 把固定大小的递推状态装进与 MLA KV cache 同一个 paged 池里,让长 prefix 能跨请求复用。在设备层,为 KDA 解码、Block AttnRes 和稀疏 latent MoE 分别定制的 kernel 把单 token 延迟和内存流量压到最低。在集群层,cache 感知的亲和性调度和基于预算的准入控制把这些效率转化成可预测的服务。
5.4.1 KDA 感知的 prefix cache 管理
Kimi K3 的 hybrid 架构让 prefix caching 变复杂了:KDA 递推状态与 MLA KV cache 在大小和生命周期上都有本质区别,而一个 cache 住的 prefix 只有在两者能在同一个边界上一起恢复时才可复用。因此我们设计了一个 KDA 感知的 prefix cache 来联合管理这两类 cache——从统一的 paged 布局,到细粒度的 prefix 复用,再到并发调度下的一致性——让百万 token 的 prefix 既便宜地留得住,又能跨请求复用。
Unified cache layout for hybrid KDA–MLA attention. Kimi K3 的每个 block 由三个 KDA 层和一个 Gated MLA 层组成,两者的 cache 有本质区别。MLA KV cache 随序列长度增长、按 token 分页,而 KDA 递推状态大小固定、每个请求只有一份。给它们各配一个 manager,分配、逐出和传输的逻辑就得写两遍。因此我们把 KDA 状态装进与 MLA KV 相同的 paged block 池,并把两类 page 统一到相同的字节大小,于是分配、引用计数和逐出都只需要一套实现。在一个 page 内部,所有 head 的状态按 head 依次连续存放,这样每个 head 的字节流都是自包含的,可以作为跨节点传输的最小单元。在 prefill 与 decode 分离的部署下,当 prefill 节点和 decode 节点采用不同的 TP degree 时,重新布局在传输路径上完成,GPU 侧零 reshuffle。这种不对称在开发期还意外地有用:任何类型混淆的访问都会读出垃圾而不是看似合理的数据——相当于给这个共用池布局免费加了一道 sanity check。
KDA prefix cache optimization. 基于 block hash 的 prefix caching 是以一个物理 block 为粒度来复用 KV cache 的:只有完整的 block 才会被 hash,所以只有按 block 对齐的 prefix 才可复用。
这套做法在 Kimi K3 上失效了。block-hash 匹配要求所有层共用同一个 block size,而一次 prefix 命中只有在命中边界处的 KDA 状态被持久化过时才可复用。KDA 层为每个序列维护的是单个大的递推状态,而不是按 token 的条目,因此状态快照只在稀疏的边界上才划得来;于是共用的 block size 被逼到 1024–6144 个 token——又因为 hash 是绑在存储 block 上的,hash 粒度也跟着一起变粗,尽管单看 MLA 按 token 的条目本可以容忍细得多的 block。在这么粗的粒度下 caching 几乎没用:短于一个 block 的请求永远无法被复用,而 chunked prefill 在跨过一个完整 block 边界之前根本导不出任何可 cache 的 prefix。
因此我们把这两种粒度解耦。prefix hash 跑在 MLA page 内部细粒度的 hash block(比如 512 token)上,而物理 block 仍然是粗粒度的分配单元。对 KDA 来说对齐方向反了过来:递推状态的 checkpoint 只保存在 MLA 的 hash 端点上(而且只是其中一个稀疏子集)——那些是查找唯一可能引用到的位置。
prefill 期间,一个只填了一部分的 MLA page 会以它最后一个完整 hash block 的链式 hash 注册进 prefix-cache 索引,其中每个 hash 都覆盖它前面所有的 hash block,所以匹配上一个端点就等于认证了到该点为止的整段 prefix;注册的端点随着 page 被填满而往前推进。同时,每次前向之后,KDA kernel 会在它处理到的最后一个 hash 对齐位置持久化递推状态。checkpoint 很大,所以随着请求推进而被取代的中间 checkpoint 会被回收,而落在对话轮次边界上的那些则保留下来供跨请求复用。已 cache 的 checkpoint 是只读快照:一次命中通过把它拷进该请求私有的运行态来恢复状态,而新的 checkpoint 写到新的槽位里,所以一个对其他请求可见的 checkpoint 绝不会被就地修改。
查找分两个阶段(Fig. 12)。MLA 阶段按链式 hash 匹配完整的物理 block,在第一个未命中的 block 上退回到该 block 内部的 hash 端点,于是只填了一部分的 page 也仍然可命中。KDA 阶段随后要求候选边界在每一个 KDA cache group 里都有 checkpoint——每个 group 各自维护一份独立的递推状态。命中点就是同时满足这两个阶段的最长边界——它总是 hash block 的整数倍,但从不要求是物理 block 的整数倍。在 Fig. 12 里,一个前 2800 个 token 与 cache 住的 prefix 相符的请求命中在 $B=2560=5\times512$,深深地落在一个 6144 token 的物理 block 内部,然后从 token $B$ 恢复 prefill,而不是重算 $[0,B)$。
Consistency under concurrent scheduling. 剩下的几个设计点,每一个都对应共享部分填充 block 时的一种具体失效模式——在这个场景下,一个命中的 block 既是共享的 cache 条目,又是某个私有请求的增长点,而且 MLA 与 KDA 各个 cache group 必须在每一个命中边界上取得一致。第一,所有 cache group 从同一个共享空闲链表里取 block,所以为某个 group 分配私有副本时可能逐出另一个 group 刚刚命中的 block;因此在分配任何东西之前,每个命中的 block 都要在所有 group 上被 pin 住。第二,往私有 block 的拷贝是在前向之前紧接着在 GPU 上执行的,所以一个在当前调度步内才分配或注册的 block 仍会把前一个 owner 的字节交给读者;这类 block 在它们的拷贝落地之前被排除在匹配之外。第三,一个 checkpoint 只有在每个 KDA group 里都存在时才能恢复请求,所以逐出某个 group 的 checkpoint 会原子地让它的兄弟们一起失效——一个 checkpoint 要么在每个 group 里都可命中,要么在哪个 group 里都不可命中。有了这些机制,每个注册的状态都始终精确对应它所声明的 token prefix,而 hybrid KDA–MLA 模型的 prefix caching 也达到了与全 attention 模型相同的通用性:任何共享的 prefix 都可以在任意 512 token 边界上复用,与请求长度、分块方式和调度交错无关。
5.4.2 高性能 kernel
Kimi K3 引入了若干新的架构模块:KDA(架构篇 §2.1.1)、Block AttnRes(§2.2)和 Stable LatentMoE(§2.3)。我们为每一个都优化了 kernel 实现。
KDA. 与 KDA prefill(§5.1)相比,KDA 解码面临一组不同的挑战:主要瓶颈从榨取并行度转向了如何高效管理那个不断演化的递推状态——它在每个解码步都被就地更新。这种就地更新在基于 MTP 的 speculative decoding 中变成了问题:如果验证拒绝了一部分草稿 token,状态已经越过最后一个被接受的 token 往前走了,没法简单地回滚。给每个草稿位置各维护一份状态快照可以支持回滚,但也会把状态流量翻好几倍——在线上服务典型的大 batch size 下,这个代价会占据主导。
不过,任何一个被接受的草稿前缀之后的状态,完全由这些草稿 token 的投影输入决定,而后者比状态本身小得多。于是我们只 cache 这些投影输入,在片上重建被接受 token 的状态,然后把已验证 token 和 bonus token 的状态写回——这个设计与同期工作 ReplaySSM86 是独立提出的。被重放的 token、bonus token 和下一个草稿窗口共享一个递推循环,跑在单个 fused kernel 里,这个 kernel 覆盖了 short convolution、输入归一化、gating、KDA 递推和输出归一化。验证延迟随被验证 token 数亚线性增长,并且始终低于 state-caching 的基线。由于这些投影 cache 从不离开 decode 阶段,prefix caching 和 prefill–decode 分离处理的载荷与非投机服务时完全相同。
Block AttnRes. Block AttnRes80 遵循两阶段的调度:一个批量的 inter-block pass 每个 block 只读一次 cache 住的 block 表示,之后每一层通过 online-softmax merge38 把 intra-block 的部分和折进来。这些 kernel 在 prefill 和解码阶段的开销里,内存访问都占了相当大的比例,所以我们在两个阶段的优化都主要围绕内存效率。
对 prefill,在每个张量并行(TP)rank 上都实体化 block 表示会带来大量冗余的内存消耗。因此我们对激活采用序列并行(SP):把 TP 的 all-reduce 分解成一次 reduce-scatter 加一次 all-gather,intra-block kernel 插在这两个 collective 之间,作用在按序列分片的 hidden state 上,于是每个 token 的 block 表示只在恰好一个 rank 上被实体化。这消掉了那份额外的内存消耗,也降低了 prefill 期间 Block AttnRes 的 I/O 开销。
对解码,我们把 inter-block kernel 放到一条 side stream 上启动,让它与主 stream 上无关的计算重叠。intra-block kernel 则通过融合来精简:AttnRes 输出与其部分和更新的合并、以及随后的 RMSNorm,都被融进前面那次 TP all-reduce 里,于是 intra-block 阶段不再需要一个专门的 kernel。这些优化合起来,既隐藏了 inter-block pass 的延迟,也减少了 intra-block 阶段的内存流量。
Stable LatentMoE. Stable LatentMoE 同时增加了专家总数和每个 token 激活的专家数。专家空间和每 token 专家数双双增长,抬高了调度和协调开销,让常规的 MoE kernel 难以维持高硬件利用率。这些挑战促使我们为这个模块做专门的 kernel 优化。
为缓解 latent GEMM 的开销,我们采用三项优化。第一,把 latent 下投影与 MoE router 融进单个 GEMM。第二,把 latent 权重矩阵切分到各 rank 上,并用 multimem store 指令把输出的 all-gather 融进 GEMM 的 epilogue。最后,把由此产生的通信与其他算子(比如 shared expert 的计算)重叠起来。这些优化合起来消除了冗余的权重流量和重复计算,同时把通信延迟藏在计算之后。
对 routed expert,在小 batch size 下 group GEMM 退化成对权重矩阵的 memory-bound 流式读取——而常规的 tile-centric kernel 因为面向计算的设计和预处理开销,对这个区间很不合适。我们改为把 MoE 解码 kernel 建立在 WarpDecode87 的 token-centric 设计上:每个 warp 负责一个输出神经元,直接从内存流式读取相关权重。为进一步提升并行度,我们把每个 warp 再细分成更细粒度的 lane team,每个 lane team 处理一个不相交的专家子集,之后做一次 warp 级的部分结果归约。此外,权重布局离线做了置换,一次性的预处理代价换来运行时反量化开销的大幅下降。
5.4.3 集群级调度
跳出单个服务实例,挑战就从单请求效率转向了可预测性:一次 prefix-cache miss 的代价比命中高好几个数量级,而一波百万 token 请求的涌入可能把短请求饿死。我们提出两条集群级调度策略来应对:cache 感知的亲和性调度把每个 session 路由到持有它 prefix cache 的那个集群,同时限住集群故障的影响面;基于预算的准入控制给每一类请求各自的资源预算,使得突发的长上下文流量无法拖累全系统的 SLO。
Cache-aware affinity scheduling. 在 1M 上下文下,一个典型的 coding 输入携带 400K token 的 prefix,但只需要 4K token 的 prefill 增量,所以一次 prefix-cache 命中省掉了整段 prefix 的重新 prefill,比 miss 便宜好几个数量级。因此我们把每个请求路由到持有它 prefix cache 的那个集群,因为把 cache 搬到另一个集群就得走集群间链路,那比集群内的 fabric 慢得多。不过这种 cache 亲和性把每个 session 绑在了单个集群上,该集群故障就会中断所有绑在它上面的 session。于是我们用一致性哈希把每个 session 钉到两个集群上:一个 primary 承载它的流量,一个预先指定的 secondary 在 primary 故障时接手。secondary 手上没有这个 session 的任何 prefix cache,故障切换后必须重新 prefill。由于一致性哈希把不同 session 的 secondary 分配均匀地散布在整个集群池上,这些重新 prefill 的工作会被分摊到许多集群,而不是集中砸在一个集群上。这样一来,常见情况下 cache 局部性得以保留,而任何单个集群故障的影响面都是有界的。
Budget-based admission control. 生产流量把 2K token 以下的短请求和最长 1M token 的超长请求混在一起,所以单请求成本跨越大约三个数量级,任何固定数量的请求所施加的总负载都高度不可预测。基于「平均请求」的容量规划、排队模型和限流配额,在这种方差下全都失效。一种典型的失效模式是:一波长上下文请求把可用算力打满,随后到达的短请求无法及时被调度,导致所有流量的 time to first token(TTFT)都变差。因此我们采用基于预算的准入控制,给不同的请求类别分配各自独立的资源预算,使得突发的长上下文流量最多只消耗属于它自己的那份容量,无法拖累其他类别所体验到的全系统 SLO。
6 评测
6.1 主要结果
6.1.1 Benchmark
我们在一套沿四条宽泛能力轴组织的综合 benchmark 上评测 Kimi K3:
- 推理与知识:GPQA Diamond88、CritPt89、AA-LCR90,以及 Humanity’s Last Exam(HLE-Full,带工具和不带工具两种)91。
- Coding:DeepSWE92、ProgramBench93、Terminal-Bench 2.194、FrontierSWE95、SWE-Marathon96、PostTrainBench97、MLS-Bench-Lite98、SciCode9989。
- Agentic:BrowseComp100、DeepSearchQA101、ResearchRubrics102、Toolathlon-Verified103、MCPMark-Verified104、MCP-Atlas105、AutomationBench106、JobBench107、GDPval-AA v2108、AA-Briefcase89109、Agents’ Last Exam(ALE)110、APEX-Agents111、OfficeQA Pro112、SpreadsheetBench 2113、OSWorld-Verified114 与 OSWorld 2.0115、SaaS-Bench116、$\tau^3$-Banking11789、Harvey Lab-AA89118、CorpFin v2119、Finance Agent v2120,以及 Legal Research Bench121。
- 视觉:WorldVQA122、OmniDocBench123、PerceptionBench124、Video-MME125、MMVU126,以及带 Python 工具的 BabyVision127。MMMU-Pro128、CharXiv(RQ)129、Math-Vision130 和 ZeroBench-main131,各自都跑了带 Python 工具增强和不带两种。
Table 2:Kimi K3 与闭源、开源模型的性能对比。加粗表示该 benchmark 上的最好结果,斜体表示次好(原文用下划线)。除另有说明外,Kimi K3 的结果都是在 reasoning effort 设为 max、temperature 等于 $1.0$ 下取得的。对 HLE-Full、MMMU-Pro、CharXiv(RQ)、Math-Vision 和 ZeroBench,每个单元格按顺序给出不带工具增强和带工具增强的分数(HLE-Full 用通用工具,视觉 benchmark 用 Python)。$^{\dagger}$ 在 Agents’ Last Exam 官方 leaderboard 上,Claude Fable 5 那一项跑的是 xhigh effort,且有 40% 的任务被标注为 downgraded。
| Benchmark | Kimi K3 (max) | Claude Fable 5 (max, w/ fallback) | 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 | - |
| Coding | ||||||
| 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 |
| Agentic | ||||||
| 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$^{\dagger}$ | 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 | - |
| $\tau^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 (w/ sub) | 90.0 | - | 89.5 | 86.0 | 89.3 | - |
| MMVU | 82.1 | - | 81.2 | 79.2 | 81.7 | - |
| BabyVision w/ 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 | - |
6.1.2 Baseline
我们与最先进的闭源和开源模型做对比。闭源方面,我们对比 Claude Fable 5132、GPT-5.6 Sol133、Claude Opus 4.8134 和 GPT-5.5135。Claude Fable 5 的结果包含 fallback 行为,GPT-5.6 Sol 的结果包含可能的 cyberguard。开源方面,我们纳入 GLM-5.2136。所有模型都在最大 reasoning effort 下评测,GPT-5.5 例外,它用的是「xhigh」档。
6.1.3 评测配置
Kimi K3 的所有评测都用 reasoning effort max、temperature $=1.0$。对单步任务,比如 GPQA Diamond、HLE-Full 以及不带工具的视觉 benchmark,我们设 top-p $=0.95$。对 agentic 任务,我们设 top-p $=1.0$。一般来说,我们建议推理与知识任务用 top-p $=0.95$,coding 和 agentic 场景用 top-p $=1.0$。
Coding. 每个模型都在三种 agentic harness 之一下评测:Kimi Code55、Claude Code56 或 Codex57。在 DeepSWE 上,我们报告 v1.1 任务的结果,并附带参考官方 leaderboard(Kimi K3 在 mini-SWE-agent harness 下取得 67.3)。在 Terminal-Bench 2.1 上,所有模型我们都报告跨 harness 的最好分数。我们的 SWE-Marathon 评测基于官方任务在 2026 年 7 月 9 日、即 v1.1 正式发布之前的一个 H20 校准分支:GPU 任务的 Docker 镜像、性能门限和参考 oracle 都为 H20 重新校准过,但正确性和防作弊 validator 未作改动;Claude Fable 5 在 35% 的任务上触发了 fallback。对 PostTrainBench,我们用官方的 Harbor 实现在最大 effort 下评测 Kimi K3、Claude Fable 5 和 GPT-5.6 Sol,在 H20 GPU(而非官方设置里的 H100)上跑三次取平均。FrontierSWE 的 dominance 分数用截至 2026 年 7 月 16 日的官方评测脚本从原始分数重新计算。
Agentic. 对 OfficeQA Pro,每个测试用例给 agent 的是渲染成图片的整份 PDF 语料,没有任何可机读文本。MCP-Atlas 在 500 个任务的公开子集上评测,限 100 轮,用 Gemini 3.1 Pro 做 judge。AutomationBench 在 600 个任务的公开子集上评测。对 BrowseComp,我们采用在 300K token 处触发的 context 压缩策略;若用完整的 1M token 上下文窗口、不做任何 context 管理来评测,Kimi K3 达到 90.4%。
视觉. 分数为三次运行的平均,ZeroBench-main 例外,按官方设置跑五次。MMMU-Pro 遵循官方协议,保留原始输入顺序并把图片放在文本输入之前。对 WorldVQA,我们观察到各个模型都一致地出现拒答行为,于是通过 prompt engineering 强制它给出答案。
第三方结果. GDPval-AA v2、AA-Briefcase、$\tau^3$-Banking、Harvey Lab-AA、APEX-Agents、SciCode、AA-LCR 和 CritPt 的分数引自 Artificial Analysis89,截至 2026 年 7 月 23 日。对 Harvey Lab-AA,我们报告 criterion pass rate。CorpFin v2、Finance Agent v2 和 Legal Research Bench 的分数引自 Vals AI137。Agents’ Last Exam 的分数引自官方 leaderboard110,截至 2026 年 7 月 23 日;我们报告 leaderboard 的主指标 pass rate。在该 leaderboard 上,每个模型都配一个特定的 harness: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 的分数引自它们各自的官方 leaderboard138139,截至 2026 年 7 月 24 日。
6.1.4 结果
Table 2 给出了 Kimi K3 与闭源、开源 baseline 的全面对比。整体来看,Kimi K3 紧随最强的闭源模型 Claude Fable 5 和 GPT-5.6 Sol 之后,同时在整套 benchmark 上一致地优于 Claude Opus 4.8、GPT-5.5 和 GLM-5.2。下面我们逐个核心能力域列出关键观察:
推理与知识. 在研究生水平的推理上,Kimi K3 与前沿水平有竞争力,GPQA Diamond 上取得 93.5%。但在研究级任务上仍有差距:HLE-Full 上带工具和不带工具分别为 56.0% 和 43.5%,都落后于 Claude Fable 5 和 GPT-5.6 Sol;CritPt 上得 23.4%,落后于 Claude Fable 5、GPT-5.6 Sol 和 GPT-5.5,说明研究级推理仍是需要改进的一个关键方向。
Coding. Kimi K3 交付了很强的 agentic coding 表现。它在 ProgramBench 上取得最高分(77.8%),在 SWE-Marathon 这个面向 GPU kernel 的套件上得 42.0%,领先 Claude Fable 5 七个点。在 Terminal-Bench 2.1 上,它几乎追平 GPT-5.6 Sol(88.3% vs. 88.8%)。在 DeepSWE 上,它排在 Claude Fable 5 和 GPT-5.6 Sol 之后,但领先于 Claude Opus 4.8 和 GPT-5.5。在长程 benchmark FrontierSWE 上,截至 2026 年 7 月 16 日它以 81.2% 排名第二,仅次于 Claude Fable 5(86.6%),并大幅领先其余所有模型。
Agentic. Kimi K3 在一大批 agentic 套件上取得 state-of-the-art,包括 BrowseComp(91.2%)、DeepSearchQA(95.0% F1)、ResearchRubrics(76.2%)、MCPMark-Verified(94.5%)、AutomationBench(30.8%)、SpreadsheetBench 2(34.8%)、$\tau^3$-Banking(33.4%)和 Harvey Lab-AA(94.6% criterion pass rate)。主要的例外是两个 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% vs. 71.8% 和 84.8% vs. 85.0%),而剩下那些更难的 computer-use benchmark(OSWorld 2.0、SaaS-Bench)仍由 Claude Fable 5 或 GPT-5.6 Sol 领先。
视觉. Kimi K3 展现出很强的多模态理解能力,配上 Python 工具后进一步放大:Math-Vision 上达到 94.3%,带 Python 工具升到 97.8%;在困难的 ZeroBench-main 上与 Claude Fable 5 打平于 23.0%(pass@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 能力评测
除了公开 benchmark 套件之外,我们还维护着一批内部 benchmark,针对公开评测覆盖不足的能力区域,以更全面地衡量模型与 agent 的能力。这些 benchmark 更新和扩充得很频繁,以便紧跟模型不断变化的失效模式,并直接指导数据与训练的迭代。它们大致分三类:coding 能力与体验、通用 agent 体验、对话体验。Table 3 汇报了这些 benchmark 上的结果。
Table 3:我们内部 benchmark 上的结果。加粗表示每个 benchmark 上已报告的最好结果;「-」表示本报告尚未纳入的分数。除另有说明外,模型都在最大 reasoning effort 下评测(GPT-5.5 为 xhigh);harness 的分配见 Harness 列。$^{\rm a}$ 80 个任务中 13 次 fallback、1 次拒答。$^{\rm b}$ 80 个任务中 10 次拒答。$^{\rm c}$ 80 个任务中 3 次拒答。$^{\rm d}$ 含 2 个 Claude Fable 5 拒答的任务。$^{\rm e}$ 含 14 个 Claude Fable 5 拒答的任务。$^{\rm f}$ 95 个任务中 6 次拒答。$^{\rm g}$ 报告的指标是 1 $-$ 幻觉率,越高越好。
| Benchmark | Harness | 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) |
|---|---|---|---|---|---|---|---|
| Coding Experience | |||||||
| Kimi Code Bench 2.0 | Claude Code | 73.7 | 76.9$^{\rm a}$ | - | 71.7 | - | 64.2 |
| Kimi Code | 72.9 | - | - | - | 66.0 | - | |
| Codex | - | - | 64.8$^{\rm b}$ | - | 69.0$^{\rm c}$ | - | |
| Coding Experience | Claude Code | 59.9 | 59.8 | - | 58.0 | - | 53.3 |
| Kimi Code | 56.6 | - | - | - | - | - | |
| Codex | - | - | 59.3 | - | 56.8 | - | |
| General Agent Experience | |||||||
| 24/7 ClawBench 2.0 | OpenClaw | 48.3 | 47.4$^{\rm d}$ | 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.2$^{\rm e}$ | 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.5$^{\rm f}$ | 76.4 | 65.7 | 70.1 | - |
| Conversational Experience | |||||||
| Faithfulness $^{\rm g}$ | 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 | - |
Coding 能力与体验.
- Kimi Code Bench 2.0(KCB 2.0):在真实、端到端的软件工程任务上评测 code agent,覆盖广泛的编程语言和面向生产的技术栈。
- Kimi Webdev Bench:用取自真实使用场景的困难 web 开发 prompt 评测模型,输出通过盲评专家判断来比较,结果见 Table 4。
- Coding Experience:评测在真实开发工作流中把模型当 coding agent 用时的实际体验。
Table 4:内部 Kimi Webdev Bench 上的结果:Kimi K3 (max) 对 Claude Opus 4.8 (max),两者都在 Claude Code harness 下运行。对比采用盲评专家判断,专家在不知道输出出自哪个模型的情况下,从代码质量、功能完整度、视觉保真度和交互体验四个方面打分。Win、Tie、Lose 分别报告 Kimi K3 的输出被偏好、被评为相当、被判劣的 prompt 百分比。
| 领域 | Win | Tie | Lose | Win $-$ Lose |
|---|---|---|---|---|
| Games | 55.6% | 3.7% | 40.7% | +14.9% |
| 3D / WebGL / Shader | 72.7% | 13.7% | 13.6% | +59.1% |
| Website / UI Clone | 52.6% | 21.1% | 26.3% | +26.3% |
| 总体 | 58.6% | 13.8% | 27.6% | +31.0% |
通用 agent 体验.
- 24/7 ClawBench 2.0:模拟常驻在线的助手工作,任务跨越多天、事件并发到达、打断是常态。
- Multi-Agent Infra for Routing and Assignment(MIRA)Bench:评测长链条、多角色、多系统的企业协作任务,考察 agent 能否完成端到端的工作,并判断何时该组织或委派 subagent。
- Kimi Autonomous Execution Tasks(KAET):在模拟真实用户请求和企业系统操作的任务上评测长程自主执行。
- Context Learning and Instruction Following(CLIF)Bench:针对 in-context learning,要求模型在遵循交织了多项复杂技能的指令的同时,从给定上下文中学习。
- Agentic Vision Bench:评测 agent 在执行任务过程中是否注意到并正确使用了关键视觉事实。
- Swarm Bench:评测模型在能从协同拆解和并行执行中获益的复杂任务上编排 agent swarm14 的能力。
- Online Experience:镜像真实线上 agent 使用的分布,衡量在用户最常要求的交付文件类型上的表现。
- Deep Research Bench:在由领域专家精选的 deep-research 型查询上评测模型,用与专家对齐的 rubric 打分。
- Finance Bench:在需要端到端执行完整工作流(从源材料到可审阅交付物)的真实金融工作上评测模型。
- Knowledge Work Vision(KWV)Bench:评测从真实知识工作场景蒸馏出的任务中抽取的原子视觉能力。
- DECK Bench:衡量从取自真实使用场景的任务描述出发,产出高质量演示 deck 的能力。
- Agent Behavior Bench:把 agent 评测从结果正确性扩展到过程质量,在任务完成度之外还给工具使用行为、效率和纪律性打分。
对话体验.
- Faithfulness:衡量模型回复中的事实性幻觉率,每条回复都由一个 fact checker 核验。
- Chat All-in-One Bench:衡量产品使用各个阶段的对话体验,场景围绕真实线上用户需求设计。
评测配置. 除非某个 benchmark 按 harness 拆成了多行,Table 3 的 Harness 列报告的是 Kimi K3 所用的 harness。对其他模型,Claude 系列和 GLM-5.2 用 Claude Code 评测,GPT 系列用 Codex 评测。例外是那些所有模型都用同一个指定 harness 的 benchmark:24/7 ClawBench 2.0 用 OpenClaw;MIRA Bench 用 MIRA(Multi-Agent Infra for Routing and Assignment,一个内部的 out-of-distribution harness);Agent Behavior Bench 和 Chat All-in-One 用 Kimi Work;CLIF 和 Agentic Vision Bench 用 Kimi Code。
结果. 这套内部套件比公开 benchmark 更清晰地把 Kimi K3 的强项与弱项分开。最明显的强项是编排型和研究型的 agency:Kimi K3 以明显优势领先 Swarm Bench(76.3)和 Deep Research Bench(90.0),表明它在拆解复杂目标、协调并行工作、产出满足 rubric 的交付物上能力很强。Coding 同样是强项:Kimi Code Bench 2.0 上它只落后 Claude Fable 5,而在 Coding Experience 上取得最高分,说明它作为 coding agent 的实际行为——沟通质量、行为得体程度、指令遵循的稳定性——领先于它的原始任务分数;在 Kimi Webdev Bench 上,专家评委以 +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 开发的漏洞发现(Tier 1),以及端到端的 exploit 开发(Tier 2)。评测目标包括广泛部署软件的近期版本——操作系统内核组件和开源项目——以及我们自己的内部基础设施,包括生产服务和代码库。所有任务都跑在代表真实部署的标准配置下。Anthropic 和 OpenAI 的前沿模型会拒绝与网络安全相关的任务,使可比的评测无法进行;因此我们把它们从这套套件中排除。
漏洞发现(Tier 1). 这一层要求模型在当前的代码库中识别真实的 bug——而不是复现已知漏洞——并证明它们可复现。这些能力主要与防御性安全研究相关。
在覆盖操作系统内核、数据库、AI 服务、web 框架、区块链和 VPN 软件的数十个广泛部署系统上,模型识别出了数百个候选漏洞。在经过人工复核的发现中,约 70% 被确认为真实漏洞,其中包括分布在六个项目中的 16 个此前未知的漏洞。
Linux 内核里的两个发现体现了这些结果的深度。第一,模型识别出一个可远程触发的堆越界写。这个 bug 是由上游一次不完整的修复引入的,影响其后的所有发布版本,直到最新的上游代码。安全专家确认它是一个远程拒绝服务原语。第二,模型在 RDMA 子系统中识别出一个 Dirty-COW 类漏洞:上游此前的一次修复无意间去掉了一处权限检查,使得内核侧可以写入只读内存页。安全专家确认它是一个确定性的本地权限提升原语。
Exploit 开发(Tier 2). 这一层要求模型把一个漏洞转化为可工作的端到端 exploit,也是与滥用风险最直接相关的一层。我们以 GLM-5.2 为 baseline,用一套内部的 36 个任务、分两条赛道来评测。
用户态利用(16 个任务)。模型必须在广泛部署的用户态软件上端到端地利用真实 CVE,包括 PostgreSQL、XWiki 协作平台、Apache HTTP Server,以及若干内容管理系统和其他应用。每个任务都给模型完整的源代码和一个活的实例;目标运行在标准配置下,没有额外加固。
Linux 内核利用(20 个任务)。每个任务提供一个由历史内核 CVE 构建的可复现 QEMU 环境,模型必须写出一个 C exploit,把权限从非特权用户提升到 root。缓解措施随难度等级逐步开启。
套件中的每个任务都经人类安全专家验证可解。我们估计完成整套套件大约需要 540 个专家小时,平均每个任务约 15 小时。
Exploit 套件上的结果. 模型在这套套件上展现出实质性的 exploit 开发能力,解出 36 个任务中的 14 个(38.9%),而 GLM-5.2 是 36 个中的 8 个(22.2%)。不过它的成功分布不均:14 个里有 10 个来自用户态赛道。在内核赛道上,两个模型都有四分之三的任务没解出来。
由于每个任务都是人类专家可解的,未解出的任务直接衡量了模型与人类水平之间剩余的差距。轨迹分析把这个差距归因于四种反复出现的失效模式:(i) 难以从已经拿到的原语出发完成 exploit 链的最后一步;(ii) 在有缓解措施时策略选择不佳,比如在数据攻击更简单更可靠的情况下仍然死磕控制流劫持;(iii) 陷入漫长而无成效的调试循环;(iv) 提交前对最终交付物的验证不足。
小结. 模型的网络能力在 Tier 1 和 Tier 2 中的用户态利用上最强,但与人类专家仍有明显差距。在本质上属于防御性的 Tier 1,模型能识别出真实漏洞——包括此前未知的——并证明其可复现性。在 Tier 2,它能对用户态目标完成端到端的 exploit。但面对加固过的目标,完成完整的 exploit 链仍是瓶颈,许多专家可解的任务没能解出。
英国 AI Security Institute 与 NIST 的 Center for AI Standards and Innovation(CAISI)做的一次独立联合评估140 得出了与我们一致的结论。Kimi K3 在 exploit 开发上优于 GLM-5.2(ExploitBench 上 32% vs. 24%;在一个 32 步的模拟企业网络上走到 17 步 vs. 11 步,人类专家完成这个网络大约需要 20 小时),但在端到端 exploit 完成度上落后于具备前沿网络能力的模型,在 41 个任务上取得任意代码执行的次数为 0。
我们把自己的评测视为能力的一个下界。这些结果取决于当前的模型版本和评测覆盖范围,我们会在每次重要的模型更新时重新审视它们。
6.3 第三方评测
Kimi K3 发布以来也被第三方机构独立评测过。Table 5 汇总了截至 2026 年 7 月 23 日的头部结果。
Artificial Analysis. Artificial Analysis 评测了 Kimi K389。Kimi K3 取得 Intelligence Index v4.1 57.1 分,在 580 个模型中排第四——如果把 GPT-5.6 Sol 的各 effort 变体算作一个条目则是第三——落后于 Claude Fable 5(59.9)和 GPT-5.6 Sol(58.9),领先于所有其他被评测的模型。
Vals AI. 在 Vals AI 的 GDP 加权行业 benchmark 套件上137,Kimi K3 以 Vals Index 74.7% 在 39 个模型中排第二,落后 Claude Fable 5(75.1%),领先 GPT-5.6 Sol(73.1%)。
Arena. 在众包的人类偏好 arena 上141,Kimi K3 在 WebDev Arena 的 99 个模型中排第一(1,678 Elo,领先 Claude Fable 5 的 1,634)——这是首个登顶该 leaderboard 的开放模型——在 Text Arena 的 200 个模型中排第八(1,486 Elo)。在 7 月 19 日前后开放投票的 Agent Arena 上,Kimi K3 目前在 37 个模型中排第四(9.1),落后于 Claude Fable 5(12.7)、GPT-5.6 Sol(10.1)和 Claude Opus 4.8(9.8)。
Table 5:Kimi K3 的头部独立第三方评测(截至 2026 年 7 月 23 日)。加粗表示每个 benchmark 上的最好结果,斜体表示次好(原文用下划线)。baseline 分数按各来源自己的评测设置报告。$^{\rm a}$ Text Arena 那一项是 leaderboard 上列出的 xhigh 变体。$^{\rm b}$ Text Arena 那一项是 leaderboard 上列出的 high 变体。括号里的数字是 Kimi K3 在该 leaderboard 上的排名。Elo 型分数会随着对局累积而漂移。
| Benchmark | 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,485$^{\rm a}$ | 1,484$^{\rm b}$ | 1,482$^{\rm b}$ | 1,469 |
| Agent Arena(第 4/37) | 9.1 | 12.7 | 10.1 | 9.8 | 8.8 | 6.5 |
6.4 成本效率
除了分数之外,我们还通过在四个覆盖 coding 和 agentic 任务的套件上比较分数与单任务成本来考察推理成本效率: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 的成本引自已发布的图表133142。对 GDPval-AA v2 和 AA-Briefcase,成本引自 Artificial Analysis 截至 2026 年 7 月 23 日的按 token 计费 API 价格89。
在 Kimi Code Bench 2.0 上,Kimi K3 以 Claude Fable 5 的 38% 成本落后它 4.0 分,而在 high effort 下它就已经以大约三分之一的成本追平了 Claude Opus 4.8 的最大 effort 分数。在 BrowseComp 上,Kimi K3 以每任务 2.03 美元取得最高分(91.2%)——是 GPT-5.6 Sol(90.4%)成本的一半,比 Claude 系列在最大 effort 下便宜一个数量级。在 GDPval-AA v2 上,Kimi K3 与 GPT-5.6 Sol 的差距在 50 Elo 之内,而成本低 13%,比 Claude Fable 5 便宜 2.6$\times$。在 AA-Briefcase 上,它交付了仅次于 Claude Fable 5 的第二好分数,成本约为后者的一半。Figure 13 汇总了这个对比。
整体来看,Kimi K3 在全部四个套件上都位于或接近成本效率的前沿,以 Claude Fable 5 的一小部分成本交付了接近顶级的分数。
7 案例研究
本节我们给出一些有代表性的案例,展示 Kimi K3 在各类技术任务上的能力。
GPU kernel 优化. 我们测试了模型优化 GPU kernel 的能力。每个模型在配置完全相同的 sandbox 里独立工作,每个任务最多有 24 小时预算用于 profiling、重写和 benchmark。评测覆盖四个有代表性的 kernel:AttnRes、DeepSeek Sparse Attention(DSA)、KDA 和 MLA(head 维度 512),跑在一块 NVIDIA Hopper GPU 和一块另一厂商的 GPGPU 上。Kimi K3 在全部四个 kernel 上都大幅提升了性能:把 AttnRes 延迟从 283.6 ms 降到 114.4 ms,把 DSA 和 KDA 的运行时间分别削减 55.1% 和 73.6%,并在 MLA 上达到峰值 TFLOPS 的一半以上。在这些任务上,Kimi K3 追平了 Claude Fable 5132(带 fallback),并大幅优于 Claude Opus 4.8134、GPT-5.6 Sol133 和 GPT-5.5135。Figure 14 对比了各模型在 AttnRes 上的优化轨迹。除了这个 benchmark 之外,在后期开发中,一个早期的 Kimi K3 checkpoint 就已经在承担我们大部分的 kernel 优化工作了。
GPU 编译器开发. Kimi K3 开发了 MiniTriton143,一个紧凑的类 Triton144 编译器,带有自定义的 tile 级 Python 前端和 layout 系统、一个轻量的 warp 级 MLIR145 标注与优化层,以及一条 Parallel Thread Execution(PTX)代码生成流水线。围绕这个编译器构建了一个双模式张量库,带有类 PyTorch146 的高层接口,其 eager 路径和 forward-only 的编译路径共用同一套 DSL 编译器和 runtime。这个库还进一步提供 reverse-mode autograd、神经网络模块、基于 NCCL147 的分布式训练原语,以及稀疏和可视化原语。在一块 NVIDIA L20 上,MiniTriton 在其核心 benchmark 套件上以几何平均超过 PyTorch eager146 和 torch.compile148。它从零写的 tensor-core matmul 路径在最大 shape 上接近 cuBLAS149,达到实测机器上限的约 90%,而它 DSL 级的 KDA2 prefill kernel 以明显优势超过对齐的 Triton 参考实现。MiniTriton 还能端到端训练一个 GPT 模型,loss 曲线紧跟 PyTorch 参考实现,全模型梯度与 torch autograd 的差异不超过 torch 自身的 fp32 舍入误差($10^{-4}$),这是相对 fp64 参考测得的。这些结果合起来表明,Kimi K3 能构建一个连贯的端到端编译器——从 DSL 前端和 IR pass 到 PTX codegen 和 CUDA runtime——而不只是一堆孤立的 kernel(Figure 15)。
芯片设计. 作为一次早期的概念验证,Kimi K3 为一个遵循同样架构的 nano 模型设计了一款推理芯片原型——hybrid KDA 与 NoPE-MLA attention、block size 为 2 的 Block AttnRes、带一个 shared expert 的 sigmoid 路由 MoE——在 group-wise INT4 权重量化(group size 128)下。在一次 48 小时的 Kimi Code 自主运行中,Kimi K3 用开源 EDA 工具配合 Nangate45 标准单元库150 构建、优化并验证了这款芯片。在 4 mm$^2$ 的分析性面积预算内,这个设计在 100 MHz 下时序收敛,RTL 仿真的解码吞吐超过 8,700 tokens/s,集成了 146 万个标准单元、0.277 MiB SRAM,以及一个带融合反量化的 INT4 MAC 阵列。RTL 代码已在 GitHub 上公开151。
为研究写代码. 为了复现计算天体物理中的 I–Love–Q 普适关系,Kimi K3 通读并交叉验证了 20 多篇论文的结果,实现了完整的数值流水线,评估了 300 多个状态方程,识别出已发表公式中的不一致,写了 3,000 多行 Python,并产出了一个交互式 HTML dashboard——总共约两小时,而一位有经验的研究者通常需要一到两周。
知识工作. 在 Kimi Work 里,Kimi K3 产出了一个覆盖 AI ASIC 行业 42 年历程的交互式研究网站。模型完成了 120 多轮迭代打磨,通过 2,800 多次网络搜索和 1,100 多次终端查询,处理了 87 份季报和 99 份原始 PDF(超过 11,000 页)构成的语料。在第二个案例里,Kimi K3 用 20 多个并发 subagent 分析了 GWTC-5 中的 391 个引力波事件,产出了七张科学可视化图、两张汇总表,以及一份综合十余篇论文的文献综述。
视频剪辑与动态设计. 借助其原生多模态架构,Kimi K3 制作了一段 3Blue1Brown 风格的动态图形讲解视频来解释自己的架构,并从 56 个源片段剪出了自己的预告片。这涉及片段选择、动作匹配的剪切、逐帧精确的节拍同步、音频处理和多轮修订。产出一段可比的高密度短视频,一位有经验的剪辑师通常需要一到两天。
8 结论
我们发布 Kimi K3,一个开放的 2.8 万亿参数 Mixture-of-Experts 模型,具备原生视觉能力和 100 万 token 的上下文窗口,建立在 Kimi Delta Attention 和 Attention Residuals 之上。作为全世界第一个开放的 3T 级模型,Kimi K3 在长程 coding、agentic、知识、推理和视觉任务上都交付了前沿水平的表现。尽管与最强的闭源模型之间仍有差距,Kimi K3 确立了一个人人可及的新开放前沿。我们希望它能在研究、部署和创新上赋能更广泛的社区。
-
Kimi K3: Open Frontier Intelligence, https://arxiv.org/abs/2607.24653 ↩︎
-
Kimi Linear: An Expressive, Efficient Attention Architecture, https://arxiv.org/abs/2510.26692 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
-
Kimi Team, Attention Residuals, Preprint, 2026 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
-
Kimi K2: Open Agentic Intelligence, https://arxiv.org/abs/2507.20534 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
-
Kimi-K3 模型权重, https://huggingface.co/moonshotai/Kimi-K3 ↩︎
-
Scaling Laws for Neural Language Models, https://arxiv.org/abs/2001.08361 ↩︎
-
Training Compute-Optimal Large Language Models, https://arxiv.org/abs/2203.15556 ↩︎
-
Learning to Reason with LLMs, https://openai.com/index/learning-to-reason-with-llms/ ↩︎
-
Introducing OpenAI o3 and o4-mini, https://openai.com/index/introducing-o3-and-o4-mini/ ↩︎
-
Claude’s Extended Thinking, https://www.anthropic.com/research/visible-extended-thinking ↩︎
-
Introducing Claude 4, https://www.anthropic.com/news/claude-4 ↩︎
-
DeepSeek-R1 incentivizes reasoning in LLMs through reinforcement learning, https://doi.org/10.1038/s41586-025-09422-z ↩︎
-
Kimi k1.5: Scaling Reinforcement Learning with LLMs, https://arxiv.org/abs/2501.12599 ↩︎ ↩︎ ↩︎
-
Kimi K2.5: Visual Agentic Intelligence, https://arxiv.org/abs/2602.02276 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
-
GLM-5: from Vibe Coding to Agentic Engineering, https://arxiv.org/abs/2602.15763 ↩︎ ↩︎ ↩︎
-
DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence, https://arxiv.org/abs/2606.19348 ↩︎ ↩︎ ↩︎
-
MiMo-V2.5-Pro, https://huggingface.co/collections/XiaomiMiMo/mimo-v25 ↩︎
-
Inkling: Our Open-Weights Model, https://thinkingmachines.ai/news/introducing-inkling/ ↩︎
-
On-policy distillation, https://thinkingmachines.ai/blog/on-policy-distillation/ ↩︎ ↩︎
-
MiMo-V2-Flash Technical Report, https://arxiv.org/abs/2601.02780 ↩︎ ↩︎
-
Linear Transformers Are Secretly Fast Weight Programmers, https://proceedings.mlr.press/v139/schlag21a.html ↩︎
-
Gated Delta Networks: Improving Mamba2 with Delta Rule, https://openreview.net/forum?id=r8H7xhYPwz ↩︎ ↩︎ ↩︎ ↩︎
-
Parallelizing Linear Transformers with the Delta Rule over Sequence Length, NeurIPS 2024 ↩︎
-
Gated Linear Attention Transformers with Hardware-Efficient Training, ICML 2024 ↩︎ ↩︎
-
Transformers are SSMs: Generalized Models and Efficient Algorithms Through Structured State Space Duality, https://arxiv.org/abs/2405.21060 ↩︎ ↩︎
-
HGRN2: Gated Linear RNNs with State Expansion, https://arxiv.org/abs/2404.07904 ↩︎
-
Griffin: Mixing Gated Linear Recurrences with Local Attention for Efficient Language Models, https://arxiv.org/abs/2402.19427 ↩︎
-
RWKV-7 “Goose” with Expressive Dynamic State Evolution, https://arxiv.org/abs/2503.14456 ↩︎
-
Gated Attention for Large Language Models: Non-linearity, Sparsity, and Attention-Sink-Free, https://arxiv.org/abs/2505.06708 ↩︎ ↩︎
-
DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model, https://arxiv.org/abs/2405.04434 ↩︎
-
YaRN: Efficient context window extension of large language models, https://arxiv.org/abs/2309.00071 ↩︎ ↩︎
-
Why Low-Precision Transformer Training Fails: An Analysis on Flash Attention, https://arxiv.org/abs/2510.04212 ↩︎
-
Deep Residual Learning for Image Recognition, https://arxiv.org/abs/1512.03385 ↩︎
-
Neural Machine Translation by Jointly Learning to Align and Translate, https://arxiv.org/abs/1409.0473 ↩︎
-
Attention is All you Need, https://proceedings.neurips.cc/paper_files/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf ↩︎
-
Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention, https://proceedings.mlr.press/v119/katharopoulos20a.html ↩︎
-
Online normalizer calculation for softmax, https://arxiv.org/abs/1805.02867 ↩︎ ↩︎
-
LatentMoE: Toward Optimal Accuracy per FLOP and Parameter in Mixture of Experts, https://arxiv.org/abs/2601.18089 ↩︎
-
DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models, https://arxiv.org/abs/2401.06066 ↩︎
-
Language Modeling with Gated Convolutional Networks, https://proceedings.mlr.press/v70/dauphin17a.html ↩︎
-
GLU Variants Improve Transformer, https://arxiv.org/abs/2002.05202 ↩︎
-
PowLU: An Activation Function for Stable Pre-Training of LLMs, https://arxiv.org/abs/2605.25704 ↩︎
-
Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity, JMLR 23.120 (2022) ↩︎
-
DeepSeek-V3 Technical Report, https://arxiv.org/abs/2412.19437 ↩︎ ↩︎ ↩︎ ↩︎
-
Step 3.5 Flash: Open Frontier-Level Intelligence with 11B Active Parameters, https://arxiv.org/abs/2602.10604 ↩︎
-
苏剑林《MoE 环游记:6、按最优分配来提升负载均衡》, https://spaces.ac.cn/archives/11619 ↩︎
-
Kimi-VL Technical Report, https://arxiv.org/abs/2504.07491 ↩︎
-
Muon: An Optimizer for Hidden Layers in Neural Networks, https://kellerjordan.github.io/posts/muon/ ↩︎
-
MiniCPM: Unveiling the Potential of Small Language Models with Scalable Training Strategies, https://arxiv.org/abs/2404.06395 ↩︎
-
Microscaling Data Formats for Deep Learning, https://arxiv.org/abs/2310.10537 ↩︎
-
Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference, CVPR 2018 ↩︎
-
EAGLE-3: Scaling up Inference Acceleration of Large Language Models via Training-Time Test, https://arxiv.org/abs/2503.01840 ↩︎
-
LK Losses: Direct Acceptance Rate Optimization for Speculative Decoding, https://arxiv.org/abs/2602.23881 ↩︎
-
Kimi CLI, https://www.kimi.com/code ↩︎ ↩︎
-
Claude Code, https://docs.anthropic.com/en/docs/claude-code ↩︎ ↩︎
-
Codex, https://github.com/openai/codex ↩︎ ↩︎
-
OpenClaw, https://docs.openclaw.ai/ ↩︎
-
Hermes Agent, https://hermes-agent.nousresearch.com/docs/ ↩︎
-
FLA: A Triton-Based Library for Hardware-Efficient Implementations of Linear Attention Mechanism, https://github.com/fla-org/flash-linear-attention ↩︎ ↩︎ ↩︎ ↩︎
-
ThunderKittens: Simple, Fast, and Adorable Kernels, https://openreview.net/forum?id=0fJfVOSUra ↩︎
-
TileLang: A Composable Tiled Programming Model for AI Systems, https://arxiv.org/abs/2504.17577 ↩︎
-
FlashKDA: Flash Kimi Delta Attention, https://github.com/MoonshotAI/FlashKDA ↩︎
-
Context Parallelism for DeltaNet, https://yywangcs.notion.site/DeltaNet-2a9fc9f5d8058013a498f34e0b25bd52 ↩︎
-
Ring Attention with Blockwise Transformers for Near-Infinite Context, https://arxiv.org/abs/2310.01889 ↩︎
-
Linear Attention Sequence Parallelism, https://arxiv.org/abs/2404.02882 ↩︎
-
LASP-2: Rethinking Sequence Parallelism for Linear Attention and Its Hybrid, https://arxiv.org/abs/2502.07563 ↩︎
-
Parallelizing Linear Recurrent Neural Nets Over Sequence Length, ICLR 2018, https://openreview.net/forum?id=HyUWuLC- ↩︎
-
原文脚注:这一构造建立在 DeltaNet 的 context parallelism 之上;KDA 的实现见 FLA PR #691, https://github.com/fla-org/flash-linear-attention/pull/691 ↩︎
-
GPipe: Efficient Training of Giant Neural Networks Using Pipeline Parallelism, NeurIPS 2019 ↩︎
-
Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM, SC 2021 ↩︎
-
GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding, https://arxiv.org/abs/2006.16668 ↩︎
-
ZeRO: Memory Optimizations Toward Training Trillion Parameter Models, SC 2020 ↩︎
-
DeepSpeed Ulysses: System Optimizations for Enabling Training of Extreme Long Sequence Transformer Models, https://arxiv.org/abs/2309.14509 ↩︎
-
DeepEP: an efficient expert-parallel communication library, https://github.com/deepseek-ai/DeepEP ↩︎
-
Scalable Training of Mixture-of-Experts Models with Megatron Core, https://arxiv.org/abs/2603.07685 ↩︎
-
UltraEP: Unleash MoE Training and Inference on Rack-Scale Nodes with Near-Optimal Load Balancing, https://arxiv.org/abs/2606.04101 ↩︎
-
SonicMoE: Accelerating MoE with IO and Tile-aware Optimizations, https://arxiv.org/abs/2512.14080 ↩︎
-
Mooncake: A KVCache-centric Disaggregated Architecture for LLM Serving, https://arxiv.org/abs/2407.00079 ↩︎
-
Muon is Scalable for LLM Training, https://arxiv.org/abs/2502.16982 ↩︎
-
AgentENV, https://github.com/kvcache-ai/AgentENV ↩︎
-
Firecracker: Lightweight Virtualization for Serverless Applications, NSDI 2020 ↩︎
-
DADI: Block-Level Image Service for Agile and Elastic Application Deployment, USENIX ATC 2020 ↩︎
-
ReplaySSM: Cache SSM Inputs, Not State, https://tridao.me/blog/2026/replayssm/ ↩︎
-
Better MoE Model Inference with Warp Decode, https://cursor.com/blog/warp-decode ↩︎
-
GPQA: A Graduate-Level Google-Proof Q&A Benchmark, COLM 2024 ↩︎
-
Artificial Analysis, https://artificialanalysis.ai/ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
-
Artificial Analysis Long Context Reasoning (AA-LCR), https://artificialanalysis.ai/evaluations/artificial-analysis-long-context-reasoning ↩︎
-
Humanity’s Last Exam, https://arxiv.org/abs/2501.14249 ↩︎
-
DeepSWE Benchmark, https://deepswe.datacurve.ai/ ↩︎
-
ProgramBench, https://www.vals.ai/benchmarks/programbench ↩︎
-
Terminal-Bench: Benchmarking Agents on Hard, Realistic Tasks in Command Line Interfaces, https://arxiv.org/abs/2601.11868 ↩︎
-
FrontierSWE, https://www.frontierswe.com/ ↩︎
-
SWE Marathon, https://www.swe-marathon.org/ ↩︎
-
PostTrainBench, https://posttrainbench.com/ ↩︎
-
MLS-Bench: A Holistic and Rigorous Assessment of AI Systems on Building Better AI, https://arxiv.org/abs/2605.08678 ↩︎
-
SciCode: A Research Coding Benchmark Curated by Scientists, https://arxiv.org/abs/2407.13168 ↩︎
-
BrowseComp: A Simple Yet Challenging Benchmark for Browsing Agents, https://arxiv.org/abs/2504.12516 ↩︎
-
DeepSearchQA: Bridging the Comprehensiveness Gap for Deep Research Agents, https://storage.googleapis.com/deepmind-media/DeepSearchQA/DeepSearchQA_benchmark_paper.pdf ↩︎
-
ResearchRubrics: A Benchmark of Prompts and Rubrics For Evaluating Deep Research Agents, https://openreview.net/forum?id=ErnvfmSXOP ↩︎
-
The Tool Decathlon: Benchmarking Language Agents for Diverse, Realistic, and Long-Horizon Task Execution, https://arxiv.org/abs/2510.25726 ↩︎
-
MCPMark: A Benchmark for Stress-Testing Realistic and Comprehensive MCP Use, https://arxiv.org/abs/2509.24002 ↩︎
-
MCP-Atlas: A Large-Scale Benchmark for Tool-Use Competency with Real MCP Servers, https://arxiv.org/abs/2602.00933 ↩︎
-
AutomationBench, https://arxiv.org/abs/2604.18934 ↩︎
-
JobBench: Aligning Agent Work With Human Will, https://arxiv.org/abs/2605.26329 ↩︎
-
GDPval: Evaluating AI Model Performance on Real-World Economically Valuable Tasks, https://arxiv.org/abs/2510.04374 ↩︎
-
AA-Briefcase: Agentic Knowledge Work Benchmark, https://artificialanalysis.ai/evaluations/aa-briefcase ↩︎
-
Agents’ Last Exam, https://arxiv.org/abs/2606.05405(官方 leaderboard https://agents-last-exam.org/leaderboard) ↩︎ ↩︎
-
APEX-Agents, https://arxiv.org/abs/2601.14242 ↩︎
-
OfficeQA Pro: An Enterprise Benchmark for End-to-End Grounded Reasoning, https://arxiv.org/abs/2603.08655 ↩︎
-
SpreadsheetBench 2: Evaluating Agents on End-to-End Business Spreadsheet Workflows, https://arxiv.org/abs/2606.29955 ↩︎
-
Introducing OSWorld-Verified, https://xlang.ai/blog/osworld-verified ↩︎
-
OSWorld 2.0: Benchmarking Computer Use Agents on Long-Horizon Real-World Tasks, https://arxiv.org/abs/2606.29537 ↩︎
-
SaaS-Bench: Can Computer-Use Agents Leverage Real-World SaaS to Solve Professional Workflows?, https://arxiv.org/abs/2605.15777 ↩︎
-
τ³-Banking, https://taubench.com/blog/tau-knowledge.html ↩︎
-
Harvey LAB: Legal Agent Benchmark, https://www.harvey.ai/blog/introducing-harveys-legal-agent-benchmark ↩︎
-
CorpFin v2, https://www.vals.ai/benchmarks/corp_fin_v2 ↩︎
-
Finance Agent v2, https://www.vals.ai/benchmarks/fabv2 ↩︎
-
Legal Research Bench, https://www.vals.ai/benchmarks/legal_research ↩︎
-
WorldVQA: Measuring Atomic World Knowledge in Multimodal Large Language Models, https://arxiv.org/abs/2602.02537 ↩︎
-
OmniDocBench: Benchmarking Diverse PDF Document Parsing with Comprehensive Annotations, https://arxiv.org/abs/2412.07626 ↩︎
-
PerceptionBench: Evaluating Atomic Visual Perception in Multimodal Large Language Models, https://www.kimi.com/blog/perception-bench ↩︎
-
Video-MME: The First-Ever Comprehensive Evaluation Benchmark of Multi-modal LLMs in Video Analysis, https://arxiv.org/abs/2405.21075 ↩︎
-
MMVU: Measuring Expert-Level Multi-Discipline Video Understanding, CVPR 2025 ↩︎
-
BabyVision: Visual Reasoning Beyond Language, https://arxiv.org/abs/2601.06521 ↩︎
-
MMMU-Pro: A More Robust Multi-discipline Multimodal Understanding Benchmark, https://arxiv.org/abs/2409.02813 ↩︎
-
CharXiv: Charting Gaps in Realistic Chart Understanding in Multimodal LLMs, https://arxiv.org/abs/2406.18521 ↩︎
-
Measuring Multimodal Mathematical Reasoning with MATH-Vision Dataset, NeurIPS 2024 ↩︎
-
ZeroBench: An Impossible Visual Benchmark for Contemporary Large Multimodal Models, https://arxiv.org/abs/2502.09696 ↩︎
-
Claude Fable 5, https://www.anthropic.com/news/claude-fable-5-mythos-5 ↩︎ ↩︎
-
GPT-5.6 Sol, https://openai.com/index/previewing-gpt-5-6-sol/ ↩︎ ↩︎ ↩︎
-
Claude Opus 4.8, https://www.anthropic.com/news/claude-opus-4-8 ↩︎ ↩︎
-
GPT-5.5, https://openai.com/index/introducing-gpt-5-5/ ↩︎ ↩︎
-
GLM-5.2, https://z.ai/blog/glm-5.2 ↩︎
-
Vals AI, https://www.vals.ai/ ↩︎ ↩︎
-
The Tool Decathlon 官方 leaderboard, https://toolathlon.xyz/introduction ↩︎
-
JobBench 官方 leaderboard, https://job-bench.github.io/ ↩︎
-
Preliminary Assessment of Kimi K3’s Cyber Capabilities, UK AI Security Institute & CAISI, https://www.aisi.gov.uk/blog/preliminary-assessment-of-kimi-k3s-cyber-capabilities ↩︎
-
LMArena Leaderboard, https://lmarena.ai/leaderboard ↩︎
-
Claude Sonnet 5, https://www.anthropic.com/news/claude-sonnet-5 ↩︎
-
MiniTriton, https://github.com/MoonshotAI/minitriton ↩︎
-
Triton: An Intermediate Language and Compiler for Tiled Neural Network Computations, MAPL 2019 ↩︎
-
MLIR: Scaling Compiler Infrastructure for Domain Specific Computation, CGO 2021 ↩︎
-
PyTorch: An Imperative Style, High-Performance Deep Learning Library, https://arxiv.org/abs/1912.01703 ↩︎ ↩︎
-
NCCL: The NVIDIA Collective Communications Library, https://developer.nvidia.com/nccl ↩︎
-
PyTorch 2: Faster Machine Learning Through Dynamic Python Bytecode Transformation and Graph Compilation, ASPLOS 2024 ↩︎
-
Nangate 45nm Open Cell Library, https://si2.org/open-cell-library/ ↩︎
-
nano-kpu, https://github.com/MoonshotAI/nano-kpu ↩︎
Author houmin
Publish July 29, 2026
LastMod July 31, 2026
License 本作品采用 CC BY-NC-ND 4.0 许可协议进行许可,转载时请注明原文链接
如果你在浏览博客的过程中发现了任何问题,欢迎在对应文章下评论。如果你有其他事情想要咨询,可以通过邮件联系我。