克雷西 发自 凹非寺
量子位 | 公众号 QbitAI
Kimi K3开源日来了。
深夜,月之暗面开源了K3的模型权重和技术报告:
2.8万亿参数MoE模型,具备原生视觉理解能力,支持100万token上下文窗口。

第三方评测里,K3挤进全球前五。并在WebDev Arena上排名第一,成为首个登顶该榜单的开源模型。
而且K3表现接近Claude Fable 5,但单任务成本只有后者的几分之一,相比下来便宜得多。
这份成绩单背后,是架构、训练和Infra综合发力的结果。
这次,月之暗面把它们全都公布了出来。
跑分接近顶尖,价格便宜一个量级
先来看看K3的性能表现。
技术报告里显示,K3综合表现接近Claude Fable 5和GPT-5.6 Sol,持续领先其余开源与闭源模型。

第三方评测给出了类似的结论。
在Artificial Analysis的Intelligence Index v4.1榜单上,K3从580个模型里排名第四,拿到57.1分。
在WebDev Arena上,K3排名第一,拿到1678 Elo,超过Claude Fable 5的1634分,是第一个登顶这个榜单的开源模型。
在Vals AI的GDP加权行业基准套件上,K3排名第二,39个模型里拿到74.7%的分数,仅次于Claude Fable 5。

进一步拉开差距的,是价格。
在BrowseComp上,K3拿到91.2%的最高分,每个任务只花2.03美元,是GPT-5.6 Sol价格的一半。
在GDPval-AA v2这项测试上,K3的成本比GPT-5.6 Sol低13%,和Claude Fable 5相比,更是不到四成。
技术细节大量公开
架构与训练
K3的参数规模是K2的将近3倍,训练效率却提升了约2.5倍,这主要归功于两处架构改动。
首先是注意力机制。
全局注意力处理长序列时,计算量随长度的平方往上涨,序列越长,机器越吃力。
K3把KDA这种更省算力的长序列注意力,和负责关联完整上下文的Gated MLA按3比1的比例混着用。
层与层之间,K3也换了传递方法。
传统的残差连接,是把前一层的输出原封不动地叠加到当前层,像接力棒一样一层传一层,越往后传,前面层的细节被压得越扁。
K3改用Attention Residuals,让每一层都做一次小小的“回头看”,从前面所有层的输出里,挑一遍对当前层真正有用的部分再往下算。

另一处改动,是专家路由。
K3模型里预先放了896个专家网络,每个token算的时候只会用到其中16个,这一层结构在K3里叫Stable LatentMoE。
专家一多,忙的忙死、闲的闲死,是MoE常见的病,K3的解法是Quantile Balancing。
每训练一步,系统会看这一批token里每个专家原本能拿到多少、该拿到多少,把落后的专家分数悄悄往上调一点,让它更容易在下一步被选中,专家之间忙闲的差距很快被拉平。

架构改完,训练配方也跟着调,batch size、学习率、tokens-per-parameter比例全部重新找过一遍最优值。
除了这两处,K3的架构还有一个特点,原生多模态。
文本、图像、视频,K3用同一个backbone处理,不需要额外的模态对齐阶段。
视觉编码器MoonViT-V2是从零开始训练的,用的是next-token prediction。
这跟K2.5不一样,K2.5的视觉编码器沿用了业内常见做法,先用SigLIP做对比预训练再接入模型。
团队测试发现,给LLM接一个已经预训练好的视觉编码器,联合训练时容易不稳定,用SigLIP初始化的编码器,梯度范数会持续偏高,还经常出现尖峰。
换成从零训练的MoonViT-V2之后,梯度稳定了很多,视觉方面的评测成绩,跟SigLIP初始化的基线打平。
架构定型之后,后训练走三步。
Kimi团队先用监督微调练出一个具备agent能力的冷启动模型,再分通用推理、通用agent、编程agent三个方向,各自配上低中高三档推理强度,练出9个专家模型。
最后一步,团队用Multi-Teacher On-Policy Distillation把9个专家的本事揉进同一个模型。
具体来说,他们的做法是让这个统一模型在对应场景下模仿专家的输出,模仿得越像,拿到的奖励越高。
针对适配的Infra
K3支持100万token的上下文,这个数字要真正撑得住,不是预训练阶段调好参数就完事了。
从训练时的并行策略,到推理服务时怎么复用之前算过的内容,再到整个集群怎么调度这些请求,每一层都有专门的工程要做。
第一层,是训练时怎么把超长序列拆到多台设备上并行处理。
KDA的递归状态不是简单的加法,某一段的最终状态,由这段自己产生的部分和上一段传进来的部分共同决定,不能像普通线性注意力那样,各段各自从零算完再直接加总。
K3的做法是KDA Context Parallelism,把每一段的影响拆成两部分——这一段如果从零开始算会产生什么状态,以及外部状态传进来之后这段会怎么处理它。

这两部分都能在本地独立算完,所有rank做一次数据交换,就能精确还原出每个rank真正的起始状态。
第二层,是推理服务时怎么复用已经算过的内容。
K3是KDA和MLA的混合架构,两种缓存完全不是一回事。
MLA的KV缓存随对话长度增长,按token分页管理,KDA的递归状态是每个请求固定大小的一份,只能在稀疏的几个点上保存快照。
传统的前缀缓存按几千token一个物理块做匹配,粒度太粗,短一点的请求根本碰不上缓存。
K3把两种粒度拆开处理,前缀匹配用512 token一个的细粒度哈希块在物理块内部找。
KDA的状态快照只在这些细粒度边界里挑一部分稀疏地存,命中的时候,取同时满足两个条件里最长的那个边界,就能不重新计算前面已经算过的部分。

第三层,是整个集群怎么应对成千上万个长短不一的请求。
一个100万token的编程请求,前缀命中和不命中,算力开销能差出几个数量级,所以K3按session的缓存位置把请求路由到本来就存着这份缓存的集群。
这些工程细节,撑住了K3从训练到线上服务的全过程。
同时在Infra方面,Kimi还单独开源了MoonEP、FlashKDA、AgentENV三项关键技术。
MoonEP管通信,FlashKDA管算子,AgentENV管试错环境,三样东西各自突破训练链路里的一个具体瓶颈。
MoonEP
MoonEP是K3用来管专家并行通信的库。
K3有896个路由专家,训练时token不会平均分给每个专家。
某些专家被挑中得特别频繁,某些几乎没人理,专家并行训练时,收到token多的那个rank就成了全队的瓶颈,其他rank都得等它算完。
MoonEP的解法,是提前在每个rank上留出几个“冗余专家”的位置。

训练时,系统实时统计当前这批token的路由情况,把可能超载的专家复制一份,放到冗余位置上,提前预取好参数。
技术报告证明了一件事,每个rank最多只需要E除以R个冗余专家名额,E是专家总数,R是并行的rank数,就一定能找到让所有rank负载完全相等的分配方案。
负载能被拉平之后,通信这一步也跟着简化,token直接送到目标位置,不用先搬进中转缓冲区再搬一次。
而且每一层要处理的数据形状,在训练开始前就是已知的,不用每层都停下来跟host同步。
不用等最忙的那个专家,也不用临时猜数据形状,这是MoonEP能把训练效率提上来的原因。
FlashKDA
FlashKDA,是Kimi实现的Kimi Delta Attention高性能算子。
K3的KDA注意力算起来块内并行、块间串行,块内部的计算可以一起算,但块跟块之间的状态必须按顺序传递。
如果老老实实按顺序算完一块、传完状态、再算下一块,GPU大部分时间在等,利用率上不去。
它用CUTLASS把这两件事叠在一起做,块内计算交给一组线程处理,跨块的状态传递交给另一组独立调度,两条流水线各跑各的,不用互相等。
效果直接体现在速度上,在H20上,相比flash-linear-attention的基线实现,FlashKDA的prefill速度快了1.72到2.22倍。
现在它已经是flash-linear-attention的一个可选后端,社区可以直接调用。
AgentENV
AgentENV是K3用来生成大规模、可复用沙箱环境的系统,由月之暗面与KVCache.ai合作开发。
K3的强化学习训练,需要模型在近似真实的环境里反复试错,读文件、跑代码、调用各种工具,出错了就吃教训,重来。
这类环境最早用容器方案搭建,但团队发现,agent的操作方式不按常理出牌,试出过好几次内核panic和死锁,容器这层隔离不够结实。
于是,AgentENV把环境换成了Firecracker microVM,隔离级别更接近一台真正的虚拟机,agent可以在里面挂载磁盘、跑容器,甚至开一台新的虚拟机,也不容易把宿主环境搞崩。
沙箱的启停速度也做了针对性优化,checkpoint只保存上次存档之后被改动过的内存页,延迟压到133毫秒,resume压到49毫秒。
等模型推理结果的时候,沙箱可以直接暂停,几乎不占内存和CPU,这段等待时间往往能占到沙箱生命周期的98%。
需要评分判断的时候,可以从已有沙箱的精确状态分叉出一个新的,原来那个继续跑,互不干扰。
镜像的分发和启动,则是靠OverlayBD格式配合自定义的ublk driver、存储层共享和P2P传输。
这种方案做到了秒级以内启动,再配上写时复制内存和页缓存优化,同一批物理内存能撑起的沙箱数量,最多能到6.5倍。
K3训练和评估期间,这套系统一共创建了51219741个沙箱,跨越1505678个镜像。
月之暗面交棒用户
开源日这天,Kimi的架构、训练方法,还有MoonEP、FlashKDA、AgentENV,月之暗面把它们全都公布了出来。
为什么这样做,在技术报告最后一部分,月之暗面给了一句解释——
坚信开放权重模型的价值,能降低获取智能的门槛,推动创新,也把数据的控制权、隐私和所有权更多地留给用户。
现在技术已经公开,接下来,就交给使用的人。
参考链接:
https://mp.weixin.qq.com/s/tryHe81IyM6nr0fBPDz72g
一键三连「点赞」「转发」「小心心」
欢迎在评论区留下你的想法!
— 完 —
🌟 点亮星标 🌟