它把架构、训练和 Agent infra连接成了一套完整系统。

作者丨郑佳美

编辑丨马晓宁

Kimi K3 发布开放权重,最抢眼的数字有三个:2.8T 总参数、104B 激活参数,以及 100 万 token 上下文。

这些数字当然重要,但读完 47 页技术报告会发现,它们更多是技术改造后的结果,而不是这份报告真正值得关注的部分。


Kimi K3 想解决的是一个更实际的问题:当模型继续变大、上下文继续变长,Agent 一次工作几个小时以后,原来的 Transformer 架构和训练系统还能不能撑住?

上下文变长,KV Cache 会持续膨胀;网络变深,前面几层的信息会被不断混合;专家数量增加,路由、通信和设备负载容易失控;Agent 轨迹越来越长,强化学习又会被少数慢任务拖住。

这些问题显然不能只靠增加 GPU 解决。

Kimi K3 的技术主线,是把原本会随着规模不断膨胀的计算和状态,改造成可以压缩、可以调度、可以暂停和恢复的结构。它不是简单把 Kimi K2 放大了接近 3 倍,而是在重新设计大模型怎样保存信息、怎样调用计算资源,以及怎样持续完成长任务。


01


撑住 2.8T 的,不是更多 GPU

Kimi K3 最核心的三项架构变化,分别处理 Transformer 在序列、深度和宽度上的扩展问题。

先看序列。传统注意力需要保存历史 token 的 Key 和 Value。上下文越长,KV Cache 越大。

这相当于阅读材料时,把看过的每一页都摊在桌面上。材料不多时,查找很准确;材料达到几十万页后,存储、搬运和读取成本都会迅速增加。

Kimi Delta Attention,也就是 KDA,采用固定大小的递归状态保存历史。模型不会完整保留每个 token,而是在阅读过程中不断更新一份压缩记忆。序列继续增长,这份状态不会按照相同比例膨胀。

但压缩记忆一定会损失部分细节。全注意力保存的是原始档案,可以直接回看某个具体位置;KDA 保存的更像一份持续更新的摘要,信息在反复写入时可能被覆盖。

所以,Kimi K3 没有完全使用 KDA,而是在每个模块中安排 3 层 KDA 和 1 层 Gated MLA,并在模型末尾保留全局注意力。

两者的分工很明确:KDA 负责低成本地更新长期状态,MLA 定期重新检查完整上下文。一个负责压缩,一个负责查找,在效率和信息容量之间取平衡。

Kimi K3 还调整了 KDA 的衰减参数范围。此前某些衰减值可能变得过小,累计计算后容易超出 BF16 的安全范围,迫使部分计算采用效率较低的特殊 kernel。Kimi K3 给衰减设置了下界,使相关计算可以统一转换成 Tensor Core 擅长的稠密矩阵乘法。


这个改动没有提出新的注意力概念,却很能说明 Kimi K3 的技术思路:算法不能只在复杂度公式中更漂亮,还要真正适合 GPU。雷峰网

100 万 token 也不能简单理解成“模型能够准确记住 100 万 token”。Kimi K3 使用了从 8K、64K、256K 到 1M 的渐进式训练,并专门构造关键信息分散在不同位置的长上下文数据。

上下文窗口代表模型能够处理多长的输入,不代表窗口内的信息都能被无损利用。KDA 解决的是长上下文能否持续运行,而不是彻底消除长距离信息损失。

序列变长以后,信息会被压进递归状态;网络变深以后,也存在类似的信息压缩问题。

标准残差连接会把每一层的输出不断加到同一个隐藏状态中。这种方式训练稳定,但随着网络加深,前面不同层的信息会逐渐混在一起。

到了后面的层,模型拿到的是几十次计算叠加后的结果,很难单独取回早期的词法信息、中间层的结构信息,或者某个阶段形成的局部特征。

Attention Residuals,也就是 AttnRes,让当前层能够对前面不同深度的表示进行加权选择。

普通残差连接像是把所有修改都覆盖到同一份文件里,只保留最终版本。AttnRes 则保留若干中间版本,后面的网络可以根据需要重新调用。

这个思路与 Transformer 取代 RNN 有些相似。RNN 把所有历史 token 压进一个状态,Transformer 允许当前 token 直接读取不同历史位置;AttnRes 则把这种选择机制从序列维度带到了网络深度。

为了控制显存和通信成本,Kimi K3 并没有保留全部 93 层的独立输出,而是按照约 12 层一个 Block 进行聚合,再对不同 Block 的表示进行选择。


这是一种折中。模型可以重新调用不同深度的信息,但只能定位到某一组层,不能精确读取其中的任意一层。雷峰网

AttnRes 使用的查询也主要是每层学习得到的伪查询,并不像标准注意力那样完全由当前 token 动态生成。它比固定残差连接灵活得多,但还不是毫无限制的跨层全注意力。

即便如此,AttnRes 仍然可能是 Kimi K3 中最容易被其他模型采用的设计。它不依赖 2.8T 参数,也不必须搭配 KDA 或 MoE,解决的又是所有深层网络都可能遇到的问题。

不过,目前还不能断言它会成为新的标准结构。Kimi K3 报告将整体效率提升归因于架构、数据和训练配方的共同变化,没有完整拆分 AttnRes 的独立贡献。它的实际价值,还需要更多外部模型验证。


处理完序列和深度之后,还剩下模型宽度。

Kimi K3 每层拥有 896 个路由专家,每个 token 选择其中 16 个。更大的专家池可以增加模型容量,但也会同时增加通信、显存读取、激活异常和负载不均衡的风险。

普通 MoE 会把完整隐藏状态发送给被选中的专家。激活专家越多,需要传输的数据也越多。

Kimi K3 使用 LatentMoE,先把 7168 维隐藏状态压缩到 3584 维,让路由专家在较窄的空间中计算,再映射回完整维度。

这样一来,模型可以同时增加专家总数和每个 token 激活的专家数量,又不必让通信量按照完整隐藏维度增长。

不过,连续的降维、专家计算和升维容易放大异常激活。Kimi K3 因此在专家聚合后加入 RMSNorm,并使用 SiTU-GLU 代替 SwiGLU。

SiTU-GLU 可以理解成一个平滑的限幅装置。数值正常时,它尽量保留 SwiGLU 的特性;数值过大后,增长会逐渐受到限制,从而降低低精度训练中的溢出风险。


数值稳定之后,还要解决设备负载。

如果大量 token 同时选择少数热门专家,这些专家所在的 GPU 会排队,其他设备却在等待。MoE 的实际速度往往不由平均计算量决定,而由最慢的设备决定。

传统方法一般根据专家当前是过载还是空闲,以固定步长调整路由偏置。专家数量接近 900 后,步长小了调整太慢,步长大了又可能在过载和空闲之间反复震荡。

Kimi K3 提出的 Quantile Balancing,会根据整批路由分数的分位数,直接估计每个专家需要怎样的偏置,才能接近目标负载。

它不是一点点试,而是根据当前分布直接重新计算“录取线”。


不过,负载均衡解决的是计算效率,不是专家的能力质量。每个专家收到相近数量的 token,只能避免部分专家过热、部分专家几乎没有训练,不能证明 896 个专家都形成了清晰、有价值的专业分工。

在训练系统中,MoonEP 还会为热门专家创建动态副本,使不同设备接收到相同数量的 token。Quantile Balancing 负责算法层面的路由,MoonEP 负责硬件层面的执行,两者一起解决极端稀疏 MoE 最现实的瓶颈。

把这三项技术放在一起看,Kimi K3 的架构思路其实很统一:KDA 压缩序列状态,AttnRes 重新调用深度信息,Stable LatentMoE 压缩专家通信。

它们分别处理模型变长、变深和变宽之后的信息流问题,目标都是用有限的运行成本,支撑更大的模型容量。



02


把一次回答拉成 24 小时的执行链

架构决定模型能够容纳多少信息和能力,但要让 Agent 连续工作几个小时,真正困难的部分往往发生在强化学习系统里。

真实 Agent 任务很少在几步内结束。

编程 Agent 需要阅读代码、运行测试、修改文件、等待编译并继续排错;研究 Agent 可能要搜索网页、下载资料、制作表格,再不断核对结论。一条轨迹可能包含数百甚至数千次工具调用。

传统同步强化学习会等待同一批任务全部完成。只要其中有几个任务特别慢,整批 GPU 就会被拖住。

Kimi K3 使用 partial rollout。只要一部分轨迹完成,系统就先使用这些数据更新模型;尚未完成的轨迹暂停,之后再恢复执行。

这让长任务不再阻塞整批训练,却也产生了数据陈旧问题。一条轨迹可能跨过数次模型更新,前半段和后半段不再来自完全相同的策略。

Kimi K3 通过逐 token 正则限制每次策略变化,让训练能够容忍这种高度 off-policy 的数据。它接受长程 Agent 训练必然存在异步和延迟,而不是强行维持一个整齐的同步流程。

更复杂的问题是保存外部环境。保存聊天记录并不能恢复 Agent 的工作现场。模型可能已经修改了文件、安装了软件、启动了进程,或者生成了大量中间结果。任务恢复时,文件系统和进程状态也需要一起恢复。


Kimi K3 的 AgentENV 使用 Firecracker microVM,支持暂停、恢复、复制和快照。报告披露,训练和评估期间一共创建了超过 5100 万个 sandbox。

真正重要的不是这个数量,而是 sandbox 可以在等待模型推理时暂停,避免持续占用 CPU 和内存,并在模型生成下一步动作后快速恢复。

这使数小时的 Agent 轨迹能够反复暂停和继续,长程任务也因此可以真正进入强化学习,而不只是停留在产品演示中。

这种长程执行能力,在 Kernel 优化任务上表现得更直观。面对 AttnRes Kernel,Kimi K3 不是一次生成代码就结束,而是在十几个小时内持续尝试、测试和修改,不断刷新当前最好结果,最终将相对 FLA Triton 基线的加速幅度提升到 59.7%。

这类任务考验的不是单次代码生成,而是模型能否在长期执行中保留进度,并根据每次运行结果继续调整方案。


DSA Kernel 优化任务进一步说明,Kimi K3 的长程能力并不只是把任务“拖得更久”,而是在持续执行中不断积累有效改进。

横轴记录的是 Agent 的实际工作时间,圆点代表刷新最好成绩,叉号则代表一次次未能突破的尝试。

Kimi K3 在接近 24 小时的过程中持续编写代码、运行测试、分析性能瓶颈并调整方案,最终将相对 FLA Triton 基线的加速幅度提升到 55.1%,仅次于 Claude Fable 5 的 57.3%,同时高于 GPT-5.6 Sol、Claude Opus 4.8 和 GPT-5.5。

这里体现的重点不是某一次代码生成得有多好,而是模型能否利用大量失败结果,持续修正方向,并把一个复杂工程任务一步步推到更高水平。


而在 MLA Kernel 优化任务上,Kimi K3 同样表现出了持续推进复杂工程任务的能力。

Kimi K3 在多轮编写、测试和调整后,将性能逐步提高到 518 TFLOPS,高于 Claude Fable 5 的 493 TFLOPS,以及 Claude Opus 4.8、GPT-5.5 和 GPT-5.6 Sol。

相比一次性生成代码,这更能证明长程 Agent 的价值:它可以保留此前找到的有效方案,再通过后续实验不断抬高当前最好结果。


在 KDA-GPGPU Kernel 优化任务中,Kimi K3 的优势更加明显。

它在超过 20 小时的持续实验中不断编写代码、测试性能并调整方案,最终将相对 FLA Triton 基线的加速幅度提升到 73.6%,高于 GPT-5.6 Sol 的 66.7%、Claude Opus 4.8 的 57.0% 和 Claude Fable 5 的 56.5%。

这说明,长程 Agent 的价值不只是延长工作时间,而是能保留此前的有效结果,在多轮尝试中继续寻找更好的实现。


但长程 Agent 只会保存状态还不够,它还需要判断自己做得对不对。这也是 Kimi K3 原生多模态设计的重要价值。

Kimi K3 的视觉编码器 MoonViT-V2 从零开始训练,没有先使用 SigLIP 等对比学习模型初始化。报告中的实验显示,使用预训练视觉编码器时,联合训练会出现更高、更频繁的梯度尖峰;从零训练的 MoonViT-V2 更稳定,同时最终视觉能力接近预训练初始化方案。

这项设计的意义不只是让模型“会看图”。Kimi K3 的多模态数据包含大量代码与渲染结果的配对,例如网页、SVG、游戏、3D 资产和 CAD 图形。模型可以先编写代码,运行后查看截图,再根据实际画面继续修改。

视觉在这里不是一个独立功能,而是 Agent 的反馈通道。

模型不再只能根据代码文本猜测结果是否正确,而是能够真正看到自己生成的界面、图形或视频,再发现偏差并继续修正。

因此,Kimi K3 的 Agent 训练形成了一个完整闭环:保存任务状态,持续执行工具,观察真实结果,再根据反馈调整下一步动作。



03


更强的模型,更贵的答案

值得一提的是,官方报告称 Kimi K3 相比 Kimi K2 获得了约 2.5 倍的整体 scaling efficiency。

这个数字表示,在拟合出的 scaling law 中,达到相同验证损失所需的计算量更少,或者在相同计算量下能够获得更低的损失。


它不等于 Kimi K3 的总训练成本只有 Kimi K2 的 40%,也不意味着模型推理速度提高了 2.5 倍。

Kimi K3 的总参数从约 1.04T 增加到 2.78T,激活参数从 32.6B 增加到 104.2B,层数从 61 层增加到 93 层。无论训练还是部署,它仍然是一个更重、更昂贵的模型。

而且,这个 2.5 倍来自 KDA、AttnRes、Stable LatentMoE、数据处理、优化器和超参数搜索的共同作用。报告没有公开完整的逐项消融,也没有披露全部训练 token 数和总训练 FLOPs。

因此,这个数字证明的是 Kimi K3 找到了一条更好的整体扩展曲线,不能用来证明某一个单独模块带来了 2.5 倍提升。


这种更高的扩展效率,最终确实转化成了很强的模型能力。

Kimi K3 已经进入当前模型的第一梯队,尤其擅长编程、搜索、专业工作流和长程工具调用。但它的优势通常建立在较高的推理投入之上。

模型会执行更多步骤,使用更多输出 token,并花更长时间检查和修正结果。这与它的训练方向一致。Kimi K3 追求的不是尽快给出一个答案,而是持续工作,直到交付一个相对完整的结果。


对于软件工程、数据分析和复杂研究,这种行为很有价值;对于简单问答,则可能显得缓慢、冗长和昂贵。

官方评测还混合使用了 Kimi Code、Claude Code、Codex 等不同 Agent Harness,部分结果来自内部数据集。相关成绩更接近“模型加工具系统”的综合表现,而不是完全控制工具、上下文管理和推理预算之后的裸模型比较。

这并不削弱 Kimi K3 的成绩,只是说明进入 Agent 阶段后,模型能力已经很难与运行环境彻底分开。

一个模型是否强,不再只取决于参数和权重,还取决于它使用了什么工具、怎样管理上下文、能够运行多少步,以及系统愿意投入多少时间和计算成本。



04


真正的价值

综合来看,Kimi K3 最值得关注的,不是某一个孤立的模型技巧,而是它把架构、训练和 Agent 基础设施连接成了一套完整系统。

在架构上,KDA、AttnRes 和 Stable LatentMoE 分别处理序列、深度和宽度的信息流问题,让模型在上下文更长、网络更深、专家更多以后,仍然能够控制缓存、通信和数值稳定性。

在后训练上,partial rollout、外部 KV Cache 和可恢复 microVM,让持续数小时的真实任务能够进入强化学习。原生视觉能力又让 Agent 可以看到自己的执行结果,而不只是生成下一步文字。

这才是 Kimi K3 相比单纯扩大参数更值得关注的地方。

当模型开始连续工作数小时,真正决定能力上限的,就不只是“下一句话生成得有多好”,而是它能否保存已经完成的工作,保留执行现场,看到实际结果,发现错误,并继续把任务做完。

https://www.kimi.com/blog/kimi-k3

上车,带你看遍全球 AI 顶会精华

可独家畅览:

专家演讲PPT

大会报告全文

热门论文解读

学术新星访谈