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 整体架构图
1、2.5倍效率从哪来
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算的时候必须走一条特殊路径,用不上最快的计算单元。加了下界之后,所有计算都能走统一的快速路径。一个参数的改动,把整条计算链打通了。

还有一个配套设计,K3完全去掉了位置编码。传统做法是给每个词标一个“座位号”,模型靠座位号知道谁在前谁在后。K3不标座位号,让KDA自己的衰减机制记住位置。好处很直接,模型可以直接处理100万token的上下文,不用事后再做各种适配和插值工程。
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提出了分位数均衡的方法,直接看所有词给每个专家打分的统计分布,从分布反推出每个专家应有的调度偏好,一次计算就能算完。报告给了数学证明,理论上能做到完美均衡。

分位数均衡直接改进了DeepSeek V3的方案。V3用固定步长逐步调整,负载一波动就跟不上;分位数均衡直接对齐分布,反应快得多。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说的“两条轴一起推”,报告里有数据撑着。
2、开源与闭源竞争势头的一次扭转
翻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,而这样的势头是过往几年开源社区共同构建起来的。也许开源和闭源模型的竞争势头,在此刻之后真的要发生根本性的逆转了。
全部评论