一、黄仁勋在X发了人生第一条推文
1、黄仁勋在X发了人生第一条推文
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页技术报告能够回答很多。
大模型的scaling有两条轴,一条是部署前投算力,更大的模型更多的数据;
2、两年开源社区在后一条轴上跑得飞快
一条是部署后投算力,推理时间、强化学习、agent长程执行。
过去两年开源社区在后一条轴上跑得飞快,在前一条轴上几乎没动,绝大多数模型仍然停在1T参数这一档。
当越来越精巧的后训练方法被用在规模相近的底座上,开源的进展会互相收敛,和最强闭源的差距继续拉开。
一个多月前V4那份报告给出的路线,是重新设计注意力机制和训练配方,大幅压低百万上下文的成本,重心放在部署侧。
K3给出的路线是预训练那条轴必须先跟上,两条轴一起推到前沿。
两条路线落到参数上差别很大,V4 Pro 1.6万亿总参数、每token激活49亿,在往下压激活量;
K3 2.78万亿总参数、每token激活1042亿,把激活量翻了一倍多。
K3的数据显示,相比上一代K2,整体scaling效率提升约2.5倍。
一个大模型处理信息有三个方向,token和token之间怎么交流(序列),浅层和深层之间怎么传话(深度),每个token分给多少“专家”去处理(宽度)。
K3在这三个方向上各做了一组改动,叠在一起就是2.5倍。
二、只维护一份固定大小的状态
1、文本翻倍计算量翻四倍
传统注意力的计算方式是让每个词回头比对前面所有词,文本翻倍计算量翻四倍。
想做百万token的上下文,在这个机制上根本算不过来。
K3把四分之三的注意力层换成了一种叫KDA的线性注意力,不逐词回翻,只维护一份固定大小的状态,计算量随文本长度线性增长。
代价是线性注意力的表达能力不如传统注意力,所以K3每三层KDA之后保留一层传统注意力(MLA),3:1混合,日常处理交给KDA,需要全局视野的时候MLA接手。
Qwen3-Next、MiniMax M1走的也是类似的混合路线,线性注意力混合架构正在成为工程共识。
K3在自己之前的工作上做了一个关键改进,给KDA的衰减率加了一个下界。
改动很小,但之前的做法会导致中间数值无限增长,GPU算的时候必须走一条特殊路径,用不上最快的计算单元。
加了下界之后,所有计算都能走统一的快速路径。一个参数的改动,把整条计算链打通了。
还有一个配套设计,K3完全去掉了位置编码。传统做法是给每个词标一个“座位号”,模型靠座位号知道谁在前谁在后。
K3不标座位号,让KDA自己的衰减机制记住位置。
2、模型可以直接处理100万token
好处很直接,模型可以直接处理100万token的上下文,不用事后再做各种适配和插值工程。
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今年的工作也在改这块十年没动过的基础结构,技术路径不同,判断一致,标准残差连接在百层规模已经成为瓶颈。
三、但每个词实际用到的计算量可控
1、每次只调用其中几个
序列方向KDA解决了,深度方向AttnRes解决了。第三个方向是宽度,每个词进来,分给多少个专家去处理。
MoE(混合专家)的思路是在模型里放很多个专家子网络,每次只调用其中几个。
总参数量很大,但每个词实际用到的计算量可控。
K3把这个配置推到了极端,896个专家,每个词只用16个,参数利用率不到2%。
推到这个量级,两个原本不严重的问题变得很棘手。第一,计算链路太长,中间数值容易失控。
K3的办法是在关键节点加归一化层压住波动,并且把激活函数换成一种有天花板的版本(SiTU-GLU),小数值正常响应,大数值被截住。
第二,896个专家,有的可能被频繁调用,有的常年闲置。
传统做法是加一个额外的惩罚项来纠偏,但专家多到这个数量级,惩罚项调起来非常不稳定。
K3提出了分位数均衡的方法,直接看所有词给每个专家打分的统计分布,从分布反推出每个专家应有的调度偏好,一次计算就能算完。
2、报告给了数学证明
报告给了数学证明,理论上能做到完美均衡。
分位数均衡直接改进了DeepSeek V3的方案。V3用固定步长逐步调整,负载一波动就跟不上;
分位数均衡直接对齐分布,反应快得多。K3拿到对方的思路,承认方向对,在上面做得更好。
前面三节都是架构设计,解决的是“模型长什么样”的问题。但设计好还得练得出来。K3的2.5倍提升里有一部分就来自训练层面。
视觉编码器这块,行业通行做法是拿别人预训练好的模型来初始化,K3反过来完全从零训练。优化器和训练数据也做了针对性调整。
基础设施这块,K3的MoonEP针对896个专家的并行训练做了一套均衡方案,数学证明只需预留少量冗余专家就能保证任意负载下的平衡分配,训练永不中断。
RL训练用的沙箱基于轻量级虚拟机,训练和评估期间一共创建了5120万个,存档133毫秒,恢复49毫秒。
这个规模说明K3在让模型自主执行任务这条训练线上投入很重。
后训练同样没省。
K3在通用、agent、编程三个领域各训了三个不同推理强度的模型作为教师,九个教师全部自研,最后把九个教师的能力蒸馏回一个统一模型。
四、预训练与后训练两头都在做
1、预训练与后训练两头都在做
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的研究之上。
技术报告里展示了一个GPU kernel优化的case study,让模型去优化四个代表性kernel,其中一个就是DSA(DeepSeek Sparse Attention),DeepSeek自家的核心注意力算子。
K3把DSA的运行时间砍掉了55.1%,自家核心算子被别人提速过半,DeepSeek下一版很难不回应。
K3给整个开源社区的东西也不少。
KDA连带FlashKDA kernel和KDA Context Parallelism一起开源了,其他团队想试线性注意力不用从零写起。
2、SiTU-GLU、AttnRes被后
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,而这样的势头是过往几年开源社区共同构建起来的。
也许开源和闭源模型的竞争势头,在此刻之后真的要发生根本性的逆转了。

远见网
