拆解Kimi K3技术报告:月之暗面开始给DeepSeek出题了

一、黄仁勋在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,而这样的势头是过往几年开源社区共同构建起来的。

也许开源和闭源模型的竞争势头,在此刻之后真的要发生根本性的逆转了。

来源: 投中网-商业深度
产业标签 AI中国/大模型与AI Agent
赞(2) 支持本站
分享到

支持本站持续更新

如果这篇内容对你有帮助,欢迎扫码支持。

支付宝扫一扫

微信扫一扫

登录

找回密码

注册