7 月 24 日晚上,黄仁勋在 X 发了人生第一条推文。没有推芯片,贴的是一封 25 家公司联名签署的公开信,主张开源 AI 模型,呼吁国会不要过早限制。签名单上有英伟达、微软、Meta、IBM。
这封信发出来的同一周,Kimi K3 的完整权重挂上了 Hugging Face。
再往前推十天。7 月 16 日,K3 上线几个小时就在 WebDev Arena 登顶,开源模型第一次在编程盲测榜上压过所有闭源。Nathan Lambert 写了一句后来被反复引用的话,"frontier open-weight models are now real"。Kimi 的 C 端因为算力紧缺暂停了新用户订阅。
这些都发生在权重发布之前。Kimi 是如何做到这一切的,这份刚刚发布的 47 页技术报告能够回答很多。
K3 在这份报告的引言里就直接做了一个判断:
大模型的 scaling 有两条轴,一条是部署前投算力,更大的模型更多的数据;一条是部署后投算力,推理时间、强化学习、agent 长程执行。过去两年开源社区在后一条轴上跑得飞快,在前一条轴上几乎没动,绝大多数模型仍然停在 1T 参数这一档。当越来越精巧的后训练方法被用在规模相近的底座上,开源的进展会互相收敛,和最强闭源的差距继续拉开。
报告在这段判断后面直接引了 DeepSeek V4。
一个多月前 V4 那份报告给出的路线,是重新设计注意力机制和训练配方,大幅压低百万上下文的成本,重心放在部署侧。K3 给出的路线是预训练那条轴必须先跟上,两条轴一起推到前沿。两条路线落到参数上差别很大,V4 Pro 1.6 万亿总参数、每 token 激活 49 亿,在往下压激活量;K3 2.78 万亿总参数、每 token 激活 1042 亿,把激活量翻了一倍多。
两份技术报告就这样实现了隔空回话。
K3 的数据显示,相比上一代 K2,整体 scaling 效率提升约 2.5 倍。
这是怎么来的?
一个大模型处理信息有三个方向,token 和 token 之间怎么交流(序列),浅层和深层之间怎么传话(深度),每个 token 分给多少 " 专家 " 去处理(宽度)。K3 在这三个方向上各做了一组改动,叠在一起就是 2.5 倍。
传统注意力的计算方式是让每个词回头比对前面所有词,文本翻倍计算量翻四倍。想做百万 token 的上下文,在这个机制上根本算不过来。K3 把四分之三的注意力层换成了一种叫 KDA 的线性注意力,不逐词回翻,只维护一份固定大小的状态,计算量随文本长度线性增长。
代价是线性注意力的表达能力不如传统注意力,所以 K3 每三层 KDA 之后保留一层传统注意力(MLA),3:1 混合,日常处理交给 KDA,需要全局视野的时候 MLA 接手。Qwen3-Next、MiniMax M1 走的也是类似的混合路线,线性注意力混合架构正在成为工程共识。
K3 在自己之前的工作上做了一个关键改进,给 KDA 的衰减率加了一个下界。改动很小,但之前的做法会导致中间数值无限增长,GPU 算的时候必须走一条特殊路径,用不上最快的计算单元。加了下界之后,所有计算都能走统一的快速路径。一个参数的改动,把整条计算链打通了。

AttnRes:让第 93 层能直接翻看第 1 层的笔记
KDA 解决了同一层里词与词怎么高效交流的问题。但 K3 有 93 层,层和层之间怎么办?
过去十年,深度学习传信息靠的是残差连接,每一层只能看到上一层递过来的状态,更早的信息全部压缩在这个状态里一路往后传。层数少的时候没问题,到了 93 层,早期层算出来的特征传到后面几乎被稀释掉了。
K3 的做法叫 AttnRes,给每一层装一组检索参数,让它能主动去前面所有层的输出里挑自己需要的东西。第 90 层可以直接去读第 1 层的原始输出,也可以跳到第 40 层拿某个中间结果,不用等信息一层层传。和 KDA 一横一竖,KDA 管同一层里词与词的交流,AttnRes 管层与层之间的交流。
93 层对 93 层全做检索开销太大。K3 把 93 层分成 7 个完整的 12 层 block 加 1 个 9 层的尾 block,连同 embedding 层共 9 个 block,检索只在这 9 个压缩后的 block 之间做,开销大幅降低。
DeepSeek 今年的工作也在改这块十年没动过的基础结构,技术路径不同,判断一致,标准残差连接在百层规模已经成为瓶颈。
Stable LatentMoE:896 个专家的稳定术
序列方向 KDA 解决了,深度方向 AttnRes 解决了。第三个方向是宽度,每个词进来,分给多少个专家去处理。
MoE(混合专家)的思路是在模型里放很多个专家子网络,每次只调用其中几个。总参数量很大,但每个词实际用到的计算量可控。K3 把这个配置推到了极端,896 个专家,每个词只用 16 个,参数利用率不到 2%。
推到这个量级,两个原本不严重的问题变得很棘手。第一,计算链路太长,中间数值容易失控。K3 的办法是在关键节点加归一化层压住波动,并且把激活函数换成一种有天花板的版本(SiTU-GLU),小数值正常响应,大数值被截住。
第二,896 个专家,有的可能被频繁调用,有的常年闲置。传统做法是加一个额外的惩罚项来纠偏,但专家多到这个数量级,惩罚项调起来非常不稳定。K3 提出了分位数均衡的方法,直接看所有词给每个专家打分的统计分布,从分布反推出每个专家应有的调度偏好,一次计算就能算完。报告给了数学证明,理论上能做到完美均衡。

基础设施:5120 万个沙箱和九个 RL 教师
前面三节都是架构设计,解决的是 " 模型长什么样 " 的问题。但设计好还得练得出来。K3 的 2.5 倍提升里有一部分就来自训练层面。
视觉编码器这块,行业通行做法是拿别人预训练好的模型来初始化,K3 反过来完全从零训练。优化器和训练数据也做了针对性调整。
基础设施这块,K3 的 MoonEP 针对 896 个专家的并行训练做了一套均衡方案,数学证明只需预留少量冗余专家就能保证任意负载下的平衡分配,训练永不中断。RL 训练用的沙箱基于轻量级虚拟机,训练和评估期间一共创建了 5120 万个,存档 133 毫秒,恢复 49 毫秒。这个规模说明 K3 在让模型自主执行任务这条训练线上投入很重。
后训练同样没省。K3 在通用、agent、编程三个领域各训了三个不同推理强度的模型作为教师,九个教师全部自研,最后把九个教师的能力蒸馏回一个统一模型。BrowseComp 上 91.2%,成本是 GPT-5.6 Sol 的一半;Kimi Code Bench 上比 Claude Fable 5 低 4 分,花费只有 38%。预训练和后训练两头都在做,K3 说的 " 两条轴一起推 ",报告里有数据撑着。
开源与闭源竞争势头的一次扭转
翻 K3 的技术报告,DeepSeek 的痕迹不少。MLA 沿用了 DeepSeek-V2 的注意力压缩机制,不加辅助 loss 的路由策略来自 V3,LatentMoE 把共享专家和路由专家分开的设计也建立在 DeepSeek 的研究之上。
但 K3 也开始给 DeepSeek 出题了。
技术报告里展示了一个 GPU kernel 优化的 case study,让模型去优化四个代表性 kernel,其中一个就是 DSA(DeepSeek Sparse Attention),DeepSeek 自家的核心注意力算子。
K3 把 DSA 的运行时间砍掉了 55.1%,自家核心算子被别人提速过半,DeepSeek 下一版很难不回应。
K3 给整个开源社区的东西也不少。KDA 连带 FlashKDA kernel 和 KDA Context Parallelism 一起开源了,其他团队想试线性注意力不用从零写起。Quantile Balancing 改进了 DeepSeek-V3 的负载均衡方案。MoonEP 的完美平衡证明推进了 DeepEP 那条线上的工程问题。SiTU-GLU、AttnRes 可以被后续模型直接拿走复用。K3 自研的 MiniTriton,一个类 Triton 的 GPU 编译器,在 NVIDIA L20 上的核心 benchmark 已经接近或超过官方 Triton,也一并开源了。
一方的技术报告写得越详细,另一方就越容易在这个基础上往前走一步。DeepSeek-V3 把 MoE 的辅助 loss 拿掉,K3 就用分位数方法做得更精确;K3 把线性注意力的工程问题解了一遍,下一个想用 KDA 的团队就少走一大段弯路。
这份技术报告留下了很多悬念,而且不只是给 Kimi 自己的,很多路线也是给其他开源模型的,比如 DeepSeek 的下一版模型会不会用上分位数均衡和线性注意力混合架构,比如更多的开源模型在同样往更大规模参数 scale 的时候,还会在 Kimi 开源的这些预训练框架基础上再做哪些创新改进。
下一次在技术报告里隔空喊话的可能就不只是 Kimi 和 DeepSeek,而这样的势头是过往几年开源社区共同构建起来的。也许开源和闭源模型的竞争势头,在此刻之后真的要发生根本性的逆转了。
