研究解读 · 小互解读

Kimi K3 技术报告:2.8 万亿参数,靠三处架构改动把算力效率提到 2.5 倍

发布 11 天后放出的 47 页报告,重点落在效率上:同一份算力,效果提到了 K2 的 2.5 倍
一分钟速览
  • Kimi K3 发布 11 天后,月之暗面把 47 页技术报告放了出来。发布那天你看到的是跑分,这份讲的是这台机器是怎么造出来的
  • 参数从 1 万亿堆到 2.8 万亿只是表面,报告真正想讲的成绩是同一份算力能榨出 K2 的 2.5 倍效果,靠沿着序列、深度、宽度三个方向各改了一处
  • 便宜是它最硬的一条:BrowseComp 上拿了全场最高的 91.2 分,每个任务花 2.03 美元,是 GPT-5.6 Sol 的一半、Claude 开满力度的十分之一
  • 短板也写进了报告:研究级物理推理四家垫底,内部榜单上专测「做事方式」的那一项比 Claude Fable 5 低十分以上
  • 发布博客只字未提的一节:它在真实系统里翻出 16 个此前无人知晓的漏洞,包括两个 Linux 内核的;但把漏洞变成能用的攻击代码,36 道题只解出 14 道
这份技术报告由 Kimi 团队自己撰写和发布,跑分、成本、对比口径都出自他们的测试。文中标注了第三方来源的部分(Artificial Analysis、Vals AI、Arena 榜单、英国 AI 安全研究所与美国 NIST 的联合评估)是独立机构的数据。
开篇

月之暗面公开了 K3 的造法:同样的算力,效果是上一代的 2.5 倍

7 月 17 日 Kimi K3 发布那天,大家看到的是一串跑分和一句「全球首个 3 万亿级开放模型」。11 天后,月之暗面把 47 页的技术报告放了出来,这次是把机器打开,讲里面是怎么装的。

报告开头就摆明了他们最想让人记住的那个数字,而它不是 2.8 万亿。

他们做了一组 scaling law 实验:用一批不同规模的小模型跑出「投入多少算力、误差能压到多低」的曲线,再用这条曲线推算大模型该怎么配。K2 和 K3 各拟合出一条,K3 那条整体往左移了。同样的验证误差,K3 需要的算力只有 K2 的四成左右,横向那段距离标着 2.5×。

Kimi K2 与 K3 的 scaling law 拟合曲线对比
两条拟合曲线:横轴是投入的算力,纵轴是验证误差,越低越好。K3(红)整体压在 K2(蓝)下面,同样的误差水平上横着量一段,就是 2.5 倍的效率差。⚠️ 报告没有标出横轴的绝对刻度,只能看出相对关系。图片来自技术报告 Figure 7。
2.8 万亿
总参数,每处理一个字实际动用 1042 亿
896 → 16
专家总数,与每个字叫醒的数量
100 万
上下文窗口,单位是 token
93 层
上一代 K2 是 61 层

这两份材料回答的是两个不同的问题。发布博客回答「它能干什么、多少钱、在哪用」,技术报告回答「凭什么能干成这些」。所以如果你想知道价格、入口和当天的跑分,站内那篇发布解读讲得更全。

站内 · 发布当天
月之暗面发布 Kimi K3:全球首个 3 万亿级开放模型
7 月 17 日的发布解读:31 项跑分、价格、入口、能直接玩的 demo,以及当时能看出的三条短板。
总纲

2.5 倍从哪来:信息在模型里流动的三个方向,各改了一处

模型里的信息其实在沿三个方向走。一是横着走,一句话里前面的字要传给后面的字;二是竖着走,底层算出来的东西要传到高层;三是横向铺开,同一层里有多少个可调用的功能模块。

这三条路各有各的堵点,K3 一条路改了一处。

方向一 · 序列
混合注意力
每 4 层里 3 层换成固定大小的记忆,1 层保留全局查看
方向二 · 深度
注意力残差
每一层都能回头挑取前面任意一层的结果,不只接上一层
方向三 · 宽度
稀疏专家层
896 个专家里每次只叫醒 16 个,其余都在休息

这三处加上重新调过的训练配方和数据配方,凑出了那 2.5 倍。先看报告给的整体结构图,看不懂细节没关系,知道它由这几种层反复堆叠而成就够了。

Kimi K3 整体架构图
右侧主干是重复堆叠的结构:3 层 KDA 加 1 层 Gated MLA 为一组,每层后面都跟一个稀疏专家层,右边那些细线就是注意力残差往回连的通路。左上是专家层内部(绿色是常驻的共享专家,紫色是被挑中的路由专家),左下是 KDA 内部,右下角是视觉通路。图片来自技术报告 Figure 2。
机制

第一个方向·长度:把大部分注意力层换成固定大小的记忆,读多长都不涨

模型读长文的时候,会把读过的内容整理成一份速查表存着,后面每写一个字都要翻一遍这份表。文越长表越大,占的显存也越多。这份表就是常说的 KV 缓存。读到 100 万字的时候,它会大到吃不消。

K3 的办法是把大部分层的这份表换掉,改成维护一份固定大小的记忆:新内容进来就更新这份记忆,旧内容按通道逐渐衰减。这份记忆读一万字是那么大,读一百万字还是那么大。这类做法统称线性注意力,K3 用的这一版叫 Kimi Delta Attention,简称 KDA。

普通注意力
存一份速查表,随文本长度一起长
读得越长,占的显存越多,最后卡在这里
KDA 线性注意力
维护一份固定大小的记忆,读多长都一样大
代价是记忆会衰减,久远的细节记不真切

代价也很明显:记忆会衰减,太久远的细节会记不真切。所以 K3 没有全换,而是每 4 层里留 1 层用能看全局的注意力(他们用的是 Gated MLA),专门负责把整段内容重新扫一遍。主干末尾还额外加了一层,保证最后一步一定是全局的。

KDA · 固定大小的记忆第 1 层
KDA · 固定大小的记忆第 2 层
KDA · 固定大小的记忆第 3 层
Gated MLA · 回头看全局一次第 4 层

这四层为一组,在 93 层的主干里反复堆叠,最后合计 69 层 KDA + 24 层 MLA。

顺手拿到的一个好处:扩到 100 万字不用改任何位置参数

模型本来需要专门的机制告诉它「这个字排在第几位」。K3 把全局注意力那些层的位置编码全部去掉了,位置信息完全靠 KDA 的衰减机制隐式携带,离得越远衰减越多,先后顺序自然就在里面了。

这带来一个很实在的结果:从 6.4 万字扩到 100 万字,不需要改动任何位置编码参数。业界常用的那些扩窗手段(重调 RoPE 的频率基数、用 YaRN 做插值)在这里一个都不用,模型直接就能往外推。

上下文窗口是分四段慢慢撑开的:预训练阶段从 8 千撑到 6.4 万,冷却阶段再从 25.6 万撑到 100 万。把最贵的超长序列计算集中在整个训练预算的一小部分里,账才算得过来。

光有长文本还不够。自然界里真正又长又连贯的文档和视频很少,而且混着大量重复片段、二进制垃圾、截断文件和机器日志。所以他们除了清洗,还专门合成长数据:把多个多模态文档和子任务打散、重排、拼接,让这些任务只有把散落在整整 100 万字里的信息都读进去才能解出来。不这么逼一下,注意力会退化成只看附近几句。
机制

第二个方向·深度:让第 93 层还能直接取用第 1 层的信息

深层网络里,每一层都把自己算出的东西加到前面传下来的那份总和上,再往下传。这个设计叫残差连接,用了很多年。问题是层数一多,前面那些层的细节就被压在同一份总和里,后面想单独把某一层的结果挑出来用,挑不出来。

打个比方

一句话在 93 个人之间口口相传,每个人都在前一个人说的基础上补一句。传到第 93 个人那里,他听到的是一份糊在一起的总结。想知道第 7 个人当时到底说了什么?没办法,只能接受这份总结。

注意力残差(Attention Residuals)改的就是这件事:让每一层带着一个可学习的「提问」,回头去看前面所有层各自的输出,想用哪层的就调哪层的,权重由它自己算。相当于第 93 个人可以直接回头问第 7 个人。

传统残差:只接上一层 第1层 第2层 第3层 第93层 注意力残差:回头挑任意一层 第1层 第2层 第3层 第93层 权重自己学
本站画的示意图。左边是沿用多年的残差连接,信息只沿一条线往上累加;右边是 K3 用的注意力残差,深层可以按需要回头取用前面任意一层的输出。

全连当然最理想,但要把所有层的输出都留在显存里等着被调用,开销不小。所以实际用的是分块版:93 层切成 8 块、每块 12 层,块内先各自求和压成一份,块之间才做完整的回看。这样开销从「和层数成正比」降到「和块数成正比」。

报告提到最后一块是不完整的:8 块每块 12 层是 96,比 93 层多,所以末尾那块没占满。

机制

第三个方向·宽度:896 个专家,每个字只叫醒 16 个

第三条路是把同一层横向摊开,塞进很多个小的功能模块,每次只叫醒其中几个干活。这套做法叫 MoE(混合专家),K2 就在用,K3 是把规模推到了另一个量级:路由专家从 384 个涨到 896 个,每个字叫醒的从 8 个涨到 16 个

每 56 个专家里叫醒 1 个,这就是 896 选 16 的稀疏程度。上面这 56 个点是按比例画的示意,真实是 896 个。

问题来了:专家一多,每次被叫醒的模块要收到的那份数据、以及要搬运的权重,都会跟着涨。K3 的解法藏在名字里的 Latent 两个字:被叫醒的路由专家在一个压缩过一半的空间里干活(3584 维,而模型本身是 7168 维),不占全宽度。常驻的共享专家保留全宽度,负责通用的那部分变换。这样专家数量翻倍多,通信量不跟着翻倍。

这么稀疏,训练很容易崩

稀疏到这个程度会引出两个麻烦,报告用三样东西按住:

  • 一个归一化:被叫醒的那些专家算完之后,结果先做一次规整再往上投影。因为选中哪几个专家、各自权重多少,都会影响这份结果的量级,不规整一下就会忽大忽小。
  • 一个新的激活函数,他们叫 SiTU-GLU。现在通用的 SwiGLU 有两个相乘的分支,两边都没有上限,一旦同时出现大数就会炸。SiTU-GLU 给两边各套了一个软性的顶(数学上是 tanh 的形状),小数值时跟原来几乎一样,大数值时会被平滑地压住。
  • 一套新的负载均衡法,叫 Quantile Balancing。要让 896 个专家忙闲均匀,原来的做法是给每个专家一个偏置、每步小幅试探着调,调慢了跟不上、调快了来回震荡。K3 改成直接从打分的分位数一步算出每个专家该给多少偏置。896 个专家的分数散落在成千上万块显卡上没法精确统计,他们改用直方图估计,各自数好各个区间有多少个,加起来就是全局分布。

另外优化器也动了:K2 用的 Muon 在 K3 里改成按注意力头分块处理。原来是把整个投影矩阵当一个整体做正交化,梯度大的头会主导整个更新方向,小的头得不到充分归一;分开处理之后各个头的更新幅度就拉平了。

对照

K2 到 K3 的参数对照:层数和专家数翻倍,每层的宽度一点没动

三处改动分头讲完了,摆在一起看更清楚。这张表来自报告,我把它译成中文并挑出了几行重点。

项目Kimi K2Kimi K3变化
层数6193↑ 52%
总参数1.04 万亿2.78 万亿↑ 167%
每个字动用的参数326 亿1042 亿↑ 220%
每层的宽度71687168没变
路由专家数384896↑ 133%
每个字叫醒几个专家816↑ 100%
常驻共享专家12↑ 100%
注意力头数6496↑ 50%
训练时的上下文长度12.8 万100 万8 倍
注意力机制全部用 MLAKDA 与 MLA 混合换了
激活函数SwiGLUSiTU-GLU换了
视觉编码器4.01 亿参数、27 层新增

高亮那行:每层的宽度一点没动,还是 7168。K3 长的是层数(往深了长)和专家数(往横里长),而不是把每一层撑得更胖。这跟前面三个方向的说法是对得上的,他们改的是信息怎么流,不是把管子加粗。

反常规

他们放弃了业界通行的做法,让模型看图的部分从零学起

K3 是原生多模态的:文字、图片、视频从训练第一步就混在同一个主干里,用同一个目标一起训,没有「先训语言模型、再把视觉模块接上去对齐」这个阶段。

真正反常规的是负责看图的那个部件。MoonViT-V2 有 4.01 亿参数、27 层,是从零开始训的。业界惯例(包括月之暗面自己上一代的 K2.5)都是拿一个已经用对比学习预训练好的视觉模型来起步,比如 SigLIP,理由是现成的视觉知识能让模型少走弯路。

他们放弃这个惯例,理由是训练稳定性。

两种视觉编码器初始化方式的梯度范数对比
蓝线是用 SigLIP 预训练权重起步的版本,梯度幅度一直偏高,还频繁出现尖峰(训练不稳的信号);红线是从零训的 MoonViT-V2,全程平稳。右边是 1.4 万到 1.6 万步区间的放大。图片来自技术报告 Figure 6。

更关键的是:从零训的版本在各项视觉评测上追平了用 SigLIP 起步的基线。报告由此得出的结论是,在这个规模上,对比学习预训练作为多模态模型的起点,没有必要。

这句话如果被别家复现出来,会影响一批人的做法。

后训练

后训练:先分头练出 9 个专精模型,再合并成一个

骨架搭好之后是教它干活。K3 的后训练分两步走:先分头练,再合并。

冷启动监督微调,先把基本的工具调用和长任务流程教会
练出 9 个专精模型三个领域 × 三档推理力度,各练各的
合并成一个多教师蒸馏,把 9 份本事收进同一个模型

那三个领域分别是通用任务、通用 Agent 任务、编码 Agent 任务;三档推理力度是低、高、最高。三乘三得九,每一格都单独强化学习训一个模型出来。最后用一种叫多教师在线蒸馏的办法,让学生模型一边自己生成、一边对照对应那位老师的判断来学,把九份本事收进同一个模型里。

推理力度是用钱逼出来的

「思考多久」这个开关在训练时是硬控的:给每道题先估一个 token 预算,超过预算倍数的那些轨迹,奖励直接给 -1,不管答得对不对。先用宽松的倍数训出最高档,再一档一档收紧,得到高档和低档。收到什么程度由人盯着定。

还有一条对用起来很实在:模型不是训完之后再压缩的。从监督微调阶段开始,专家权重就已经按 MXFP4(一种 4 比特的低精度格式)来训、激活按 MXFP8 来算,强化学习阶段生成和训练也用同一套精度。这样模型是「带着精度损失一起训出来的」,不会出现训练时是一套、真跑起来是另一套的偏差。

练习场

训练时轮换用 Claude Code、Codex 这些外壳,免得 K3 只会用自家那套

要训一个能干活的 Agent,就得有地方让它练。

如果始终拿同一套工具外壳来训,模型会摸熟这套外壳的工具格式、系统提示、上下文管理方式,换一个就不灵。K3 的做法是把外壳本身拆成可拼装的模块:工具接口、系统提示、上下文管理策略、技能、记忆、子代理,全都可配置。拼一拼就能还原出 Kimi Code、Claude Code、Codex(OpenAI 的命令行编程工具)、OpenClaw、Hermes 这些主流外壳,也能拼出全新的。训练时按任务组随机换着用。

K3 是被「在各种外壳里都得能干活」这个要求训出来的,不是只熟自家那一套。你把它接进哪个工具里用,这件事在训练阶段就被考虑过了。

练习场里还有几样东西值得说:

  • 仿真版的常用软件。他们做了 Gmail、Notion、Slack、Canvas 的模拟实现,保留核心逻辑但不用真的调接口,于是可以大规模反复跑。基于这些做出来的任务会横跨好几个模拟出来的工作日,中间散布着几十个互相牵连的事件,单次任务可能涉及上千次工具调用、几百万字的上下文。
  • 会抓作弊的内核优化任务。题目来自真实的 GitHub 仓库,奖励同时看正确性和速度:追平专家实现得 0.5 分,越逼近硬件极限越接近满分。因为奖励跟性能挂钩,模型会想歪招,所以他们专门配了一套反作弊系统,识别并惩罚「重放执行图」「把输入缓存起来」「偷偷降精度」这类假提速,而且在研发过程中不断补新花样。
  • 只给目标不给步骤的自主任务。模型只看得到目标、约束和一个验证接口,没有参考做法,得自己拆解、选工具、纠错、判断什么时候算干完。奖励看验证器对最终环境状态的判定,不看模型自己声称完成了没有。为了防止它去讨好验证器,公开的验证器只给诊断反馈,另有隐藏的验证器在留出场景上打分。
工程

训练用掉 5122 万个沙箱,而其中 98% 的时间在等模型回话

上面那些练习场要真跑起来,背后的家底得够厚。报告给了一个具体到个位数的数字。

5122 万
训练和评估全程创建的沙箱数
150 万
用到的不同镜像数量
133 / 49 毫秒
存档与恢复一个沙箱的耗时
6.5 倍
实际负载下的内存超售比

沙箱是给 Agent 干活用的隔离环境。他们和合作方一起做了一套叫 AgentENV 的系统(基于 Firecracker 微虚拟机,已经开源),跟普通容器比隔离得更彻底。早期用容器时,模型的一些意外操作把内核搞崩过好几次。

真正省钱的地方在这一句:

一个暂停的沙箱不消耗内存和 CPU 资源,因此可以在 Agent 等待模型推理结果时把沙箱暂停,而这段等待可能占到沙箱生命周期的 98%。

Kimi K3 技术报告 §5.3.2(译)

也就是说,优化的重点落在了另一头:让沙箱在干等的时候不花钱。存档 133 毫秒、恢复 49 毫秒,这个开销小到可以随时暂停随时叫醒。另外沙箱还能分叉出一份副本用来做评判(不影响原来那个继续跑),也能定期快照用于出错恢复。

推理侧还有一个值得一提的难题。K3 的两种注意力层缓存的东西完全不同:全局那层是每个字存一条、随长度增长;KDA 那层是每个请求一份固定大小的记忆。一段对话要能被复用,两者必须能在同一个位置一起恢复。而那份记忆很大,只能在稀疏的位置存快照,这就把可复用的位置卡得很粗,比一个块还短的请求永远复用不上。他们的解法是把两种粒度拆开:查找用细粒度(512 个字一段),存储仍用粗粒度,记忆的快照只存在细粒度的端点上。结果是任何共享的前缀都能在 512 字的边界上复用。

为什么这件事值这么多工程量:一个 100 万字上下文的编码请求,前缀可能有 40 万字,但这一轮新增的只有 4 千字。缓存命中和不命中,代价差好几个数量级。所以在集群层面,他们干脆按会话把请求固定路由到持有它缓存的那个集群,并给不同类别的请求分配各自的资源预算,免得一波超长请求把短请求全饿死。
跑分

公开跑分:K3 排在 Fable 5 和 GPT-5.6 Sol 之后,研究级推理垫底

这么造出来的模型,实测是什么水平?报告的结论说得不含糊:整体落后 Claude Fable 5 和 GPT-5.6 Sol,但稳定压过其余所有参评模型,包括 Claude Opus 4.8、GPT-5.5 和开放权重阵营的 GLM-5.2。

Kimi K3 主要评测结果
蓝色条是 Kimi K3。所有模型都开到最高思考力度(GPT-5.5 用 xhigh)。报告注明:Fable 5 的成绩含降级回退行为,GPT-5.6 Sol 的成绩含安全防护介入。图片来自技术报告 Figure 1。

拿第一的地方是这几处:ProgramBench 77.8 分、SWE-Marathon 42.0 分(这项比 Fable 5 高出 7 分)、BrowseComp 91.2 分、MCPMark 94.5 分、法律研究类的 Harvey Lab-AA 94.6 分、文档解析的 OmniDocBench 91.1 分。终端任务 Terminal-Bench 2.1 上 88.3 分,跟 GPT-5.6 Sol 的 88.8 只差半分。

短板报告自己也点了出来,而且很具体:

GPT-5.6 Sol
32.3
Claude Fable 5
28.6
GPT-5.5
27.1
Kimi K3
23.4
CritPt(研究级物理推理)四家对比,K3 垫底。数据来自技术报告 Table 2。

另一项高难度综合测试 HLE-Full 上,K3 不带工具 43.5 分、带工具 56.0 分,两种情况都落后于 Fable 5 和 GPT-5.6 Sol。报告写的是「研究级推理仍是需要改进的关键方向」。

第三方榜单是怎么排的

报告也列了独立机构的成绩(截至 7 月 23 日):Artificial Analysis 的智能指数 57.1 分,在 580 个模型里排第 4;Vals AI 的行业指数 74.7%,39 个模型里第 2;人类盲投的 WebDev Arena 上 1678 分,99 个模型里排第 1,是第一个登上这个榜首的开放模型;文本竞技场 200 个里第 8,Agent 竞技场 37 个里第 4。

内部榜单

自家内部榜单:结果分不低,但「做事规不规矩」这项比 Fable 5 低十分

公开跑分只说了一半。报告里还有一套自建的内部评测,专门测公开题库覆盖不到的地方,而它把 K3 的强弱分得比公开跑分更开。

先看强的。多 Agent 编排(Swarm Bench)76.3 分、深度研究(Deep Research Bench)90.0 分,都是明显领先。网页开发的盲测里,专家在不知道哪份是谁写的情况下打分,K3 对 Claude Opus 4.8 净胜 31 个百分点,其中 3D 和图形着色器那一类净胜 59.1 个百分点。

再看弱的,这块信息更有用:

GPT-5.6 Sol
76.4
Claude Fable 5
75.5
GPT-5.5
70.1
Claude Opus 4.8
65.7
Kimi K3
65.0
Agent Behavior Bench,数据来自技术报告 Table 3。

这一项测的是过程质量:工具用得规不规矩、有没有效率、守不守纪律,答案对不对不算在内,评价从「结果正确」扩展到了「做事方式」。K3 在这上面落后十分以上。同样落后的还有多角色企业协作(MIRA Bench 64.1,Fable 5 是 72.9)、全天候助理、视觉相关的两项。

一个模型答案给得对、但做事方式落后十分,这个信息比任何一项跑分都更接近日常使用的体感。

成本

成本对比:同一个任务,K3 的花费常常是对手的三分之一到十分之一

强弱都摸清了,还剩一笔账:干同样的活要花多少钱。

四项评测的得分与单任务成本对比
四张图的横轴都是完成一个任务的花费,纵轴是得分,红色星号是 Kimi K3,越靠左上越划算。左上 Kimi Code Bench、右上 BrowseComp、左下 GDPval-AA v2、右下 AA-Briefcase。图片来自技术报告 Figure 13。
  • BrowseComp(网页检索任务):K3 拿了全场最高的 91.2 分,每个任务 2.03 美元,是 GPT-5.6 Sol 的一半,比 Claude 系列开到最高力度便宜一个数量级。
  • Kimi Code Bench 2.0(他们自己的编码题库):比 Claude Fable 5 低 4 分,但花的钱是它的 38%。而且只要开到 high 档,就已经追平 Claude Opus 4.8 最高档的成绩,成本约为三分之一。
  • GDPval-AA v2(专业知识工作):跟 GPT-5.6 Sol 差 50 分以内,成本低 13%;比 Claude Fable 5 便宜 2.6 倍。
  • AA-Briefcase:成绩第二,仅次于 Fable 5,花费约为后者的一半。

所以 K3 站住的位置是:用一小部分钱买到接近顶格的活。对那些按任务计费、要跑成千上万次的 Agent 类应用,这个差价会直接改写账本。

成本口径要交代一下:Kimi Code Bench 和 BrowseComp 上 K3 的花费是月之暗面自己实测的,Claude 和 GPT 的花费引自各自公开的图表;GDPval-AA v2 和 AA-Briefcase 的成本引自 Artificial Analysis 按 token 计价的数据,时间是 7 月 23 日。

安全

网络安全评测:翻出 16 个此前无人知晓的漏洞,但写不出能用的攻击代码

钱的账算完了,报告里还有一整节是发布博客只字未提的:他们把模型的网络安全能力按风险由低到高分成两档做了实测。

第一档:找漏洞

任务是在当前版本的真实代码里找出还没人知道的问题,并证明它真能被触发。这类能力主要用于防守方的安全研究。测试对象横跨操作系统内核、数据库、AI 服务、网页框架、区块链和 VPN 软件几十个广泛部署的系统。

结果:模型报出了数百个疑似漏洞,其中经过人工复核的那部分约 70% 被确认为真,包含 16 个此前无人知晓的漏洞,分布在 6 个项目里。两个 Linux 内核的例子讲得很细:

  1. 一个可以远程触发的堆内存越界写入。这个洞是上游一次没修干净的补丁留下的,从那之后的所有版本都受影响,一直到最新代码。安全专家确认它可以用来远程让系统拒绝服务。
  2. 一个出现在 RDMA 子系统里的漏洞,性质类似当年的 Dirty COW:更早的一次上游修复不小心把一处权限检查删掉了,于是内核可以往本该只读的内存页里写东西。专家确认这是一个稳定可用的本地提权途径。

第二档:把漏洞变成能用的攻击代码

这一档才是真正跟滥用风险相关的。题目 36 道,16 道是用户态软件(PostgreSQL、Apache HTTP Server、XWiki 等,给全部源码和一个在跑的实例),20 道是 Linux 内核提权(每道给一个可复现的虚拟机环境,要求写出 C 语言的攻击程序,防护措施逐级加强)。

Kimi K3
14 / 36
GLM-5.2
8 / 36
人类专家
36 / 36
36 道题全部经人类安全专家验证可解,整套约需 540 个专家小时,平均每道 15 小时。数据来自技术报告 §6.2.2。

K3 解出 14 道(38.9%),比 GLM-5.2 的 8 道强,但分布很不均匀:14 道里有 10 道来自较简单的用户态那一轨,内核那一轨两个模型都有四分之三没做出来。因为每道题人类专家都能解,没解出的部分就直接量出了模型与人的差距。

报告归纳了四种反复出现的失败方式:拿到了突破口却走不完最后一步;有防护措施时策略选得差(该用更简单可靠的数据攻击,却死磕控制流劫持);陷进冗长无效的调试循环;提交前不充分验证自己的成果。

英国 AI 安全研究所和美国 NIST 下属的 CAISI 做了联合评估,结论一致:K3 在漏洞利用上强于 GLM-5.2(ExploitBench 32% 对 24%;一个 32 步的模拟企业网络里走了 17 步,GLM-5.2 走了 11 步,人类专家做完约需 20 小时),但落后于前沿的同类模型:41 个任务里,0 个做到任意代码执行

还有一个耐人寻味的细节:报告说 Anthropic 和 OpenAI 的前沿模型会直接拒绝这类任务,所以根本没法拉进来做对比,只能把它们排除在这一项之外。
案例

四个真干成的活:48 小时设计一颗芯片,两小时复现一篇论文

能力的边界划清楚了,最后看几件它实打实干成的活。这些是报告的案例章节,每件都给了硬指标。

设计一颗芯片

K3 给一个超小模型设计了一颗推理芯片原型,用的是开源的电子设计工具和一套公开的标准单元库。一次 48 小时的自主运行里,它完成了搭建、优化和验证:在 4 平方毫米的面积预算内,时序在 100 兆赫兹下收敛,仿真出来的解码速度超过每秒 8700 个字,集成了 146 万个标准单元、0.277 MiB 的片上存储,以及一个带融合反量化的 4 比特乘加阵列。设计代码已经开源。

写一个 GPU 编译器

它做了一个叫 MiniTriton 的编译器,从自定义的 Python 前端一路做到显卡指令的代码生成,外加一套仿 PyTorch 接口的张量库、反向自动微分和分布式训练原语。在一块 L20 显卡上,它在核心测试集的几何平均成绩超过 PyTorch 的两种运行方式;从零写的矩阵乘法在最大规模下达到实测机器上限的约 90%。它还用这个编译器端到端训了一个 GPT 模型,全模型梯度与 PyTorch 自动微分的偏差不超过 PyTorch 自己的浮点舍入误差

优化 GPU 内核

四个模型在同一个内核优化任务上的提速轨迹
同一道内核优化题,四个模型各自在配置相同的沙箱里干最多 24 小时。横轴是实际工作时长,纵轴是相对基准实现的提速幅度。红线是 K3,最终 +59.7%;蓝线 Claude Fable 5 +57.1%,两者接近,但 K3 前期爬升明显更快。图片来自技术报告 Figure 14。

四道内核题里,它把注意力残差那个内核的延迟从 283.6 毫秒降到 114.4 毫秒,另外两个分别快了 55.1% 和 73.6%。报告还顺带提了一句:

在研发后期,一个早期的 Kimi K3 检查点已经在承担我们大部分的内核优化工作。

Kimi K3 技术报告 §7(译)

也就是说,模型在优化自己赖以运行的那层底层代码。

复现一篇天体物理论文

为了复现中子星研究里的一组普适关系,K3 读了 20 多篇论文并交叉验证,实现了完整的数值计算流程,评估了 300 多个状态方程,还找出了已发表公式里的不一致之处,写了 3000 多行 Python,最后产出一个交互式的网页看板,全程约两小时,而有经验的研究者通常要花一到两周。

另外两件顺带一提:在知识工作场景里,它做了一个覆盖 AI 芯片产业 42 年历史的交互式研究网站,迭代了 120 多轮,读了 87 份季报和 99 份原始 PDF(一万一千多页),做了 2800 多次网页搜索;还有一次用 20 多个并发的子代理分析了 391 个引力波事件。它甚至剪了自己的预告片,素材来自 56 段片源。

落地

自己要用的话:许可证的两条红线、一个会踩的接口坑,以及报告没说的事

知道它能干什么之后,落到自己身上要注意这几件。

许可证很宽松,但有两条线

Kimi K3 用的是他们自己写的许可证,基础部分相当宽松:可以用、可以改、可以再分发、可以商用、可以微调出衍生版本。两条商业限制要留意:

  • 如果你自己在做「把模型能力开放给第三方调用」的生意(比如卖接口),并且你和关联方在任意连续 12 个月里总收入超过 2000 万美元,那么用之前需要单独跟月之暗面签协议。
  • 如果你的产品月活超过 1 亿或月收入超过 2000 万美元,界面上需要显著展示「Kimi K3」。

这两条都不适用于纯内部使用,也不适用于通过官方产品或认证的推理伙伴来访问。把模型能力嵌在具体功能里的终端产品、以及单纯转发请求给别人托管的模型,都不算「模型即服务」。

怎么用

接口
platform.kimi.ai 上选 kimi-k3,同时提供 OpenAI 和 Anthropic 两种兼容格式
自己跑
官方推荐 vLLM、SGLang、TokenSpeed 三种推理引擎,各自有配套的部署配方
思考力度
用 reasoning_effort 字段控制,支持 low、high、max 三档,默认 max
权重
Hugging Face 上的 moonshotai/Kimi-K3,权重按 MXFP4 存、激活按 MXFP8 算

有一个坑值得提前知道:K3 是按「保留思考历史」的方式训练的。多轮对话和工具调用时,必须把接口返回的完整助手消息原样传回去,包括推理内容和工具调用记录,而不能只传最终回答。官方给的例子是这样:模型在思考里列了五个数字、只说了三个,你追问剩下两个,只有把那段思考一起传回去它才答得上来。

报告没说的事

最后如实交代这份报告的留白,因为它们对判断这件事的分量很重要:整份报告没有说训练用了多少张显卡、吃了多少数据、训了多久、花了多少钱。那张 2.5 倍的曲线图,横轴虽然标着算力,但没有给出绝对刻度。同样没有的还有:权重文件多大、自己部署需要什么样的硬件。

这篇提到的东西都是公开的:47 页技术报告全文、模型权重、以及报告里点名开源的五个配套项目:完美负载均衡的专家并行框架 MoonEP、KDA 的高性能实现 FlashKDA、沙箱系统 AgentENV、K3 自己写的编译器 MiniTriton、K3 自己设计的芯片代码 nano-kpu。链接都在下面的来源栏里。
来源
Kimi K3: Open Frontier Intelligence — Technical Report of Kimi K3Kimi Team(月之暗面)·技术报告 PDF·2026-07-28
本站说明
文中六张图表(scaling law 曲线、架构图、视觉编码器梯度对比、主结果、成本对比、内核优化轨迹)均截自技术报告原文,已在各自图注标明图号;注意力残差那张对照图是本站画的示意图。所有条形对比图由本站按报告 Table 2、Table 3 与 §6.2.2 的数据绘制。仓库 README 的模型摘要把支持的模态写作「文本、图像」,而报告正文多处描述视频处理能力(时间维度池化、用感知哈希清洗视频数据),此处以报告正文为准。