一文读懂Kimi K3预训练:3T模型,不再是魔法腾讯科技

7/30/2026

7月几天之内,中国大模型行业接连出现了两个超过2万亿参数的模型。

Kimi率先发布K3。它的总参数量2.78万亿,每个Token激活约1042亿参数,拥有896个路由专家,支持最长100万Token上下文。

随后,阿里又预览了总参数量2.4万亿的Qwen3.8-Max。

两个2T以上模型前后脚出现,说明训练一个3T级模型有了一些具体的、可复用的配方。

而这个配方,K3的技术报告都已经给了出来。

大家都觉得训练一个3T参数的模型很难,尤其是中国开源模型训练出这个大小的模型,更难。

因为中国的算力有一些瓶颈。

Kimi 没有披露 K3 主预训练使用了多少张卡、什么型号,也没有公布训练 Token 总量和 GPU 小时,但其资源区间应该与DeepSeek相似。他们手上并不缺数千张 Hopper 等效卡,但应该没有可以大规模铺开的 GB200 NVL72 或同等级超级节点。

这正是理解 K3 的起点。

训练没有门槛,效率和效果才是门槛

训练一个模型,原本可以拆成五个问题。模型、梯度和优化器状态能不能装得下,算力是不是能够算得动,数据能不能在数千张卡之间传得动,数据到位后 GPU 能不能持续算得满,花出去的计算最后能不能让模型学得好。

第一步是装得下。

K3 是 MoE 模型。每读入一个 Token,并不会调用全部 2.78T 参数,而是激活约16个专家MoE,约计 104.2B 参数。

K3 的 2.78T 参数只按 BF16 保存一份权重,就需要大约 5.56TB。BF16 是训练常用的 16 位浮点格式,每个参数占 2 字节。训练时还需要梯度、优化器状态、各层产生的中间激活和通信缓冲,整个系统要管理的是几十 TB 数据。

因此理论上,2.78T的参数,只需要70多张 80GB GPU 理就能放得下,用上千张就能训练的起来。

但你得先把它们给拆开,并有效存储,还能互相连通着能汇总信息跑的下去。过去几年形成的分布式训练方法,解决的就是怎样拆。

2019 年的 Megatron-LM 给出了 Transformer 大矩阵的实用切法。2021 年,NVIDIA 又将张量、流水线和数据并行组合起来,在 3072 张 A100 上就跑通了 1T 稠密模型的训练迭代。它其实已经证明了,模型只要能够沿矩阵、网络层和训练数据等方向拆开,万亿参数就不再存在不可跨越的容量上限。

理论上,模型继续扩大,只需要增加设备和切分规模。

当然模型真正开始训练后,前向传播产生的中间结果要暂时保留,反向传播还需要梯度和优化器状态,都要有地方存。不同设备通信时,也要准备收发缓冲区。而这种计算过程中,任何一类数据在同一时刻集中出现,都可能让某张GPU显存撑不住。

因此,一般的训练体系中还得有一个统一调度,防止存储「冒顶」现象的出现。比如 K3 通过Unified Activation Manager,也就是统一激活管理器,把它们整合成张量级的存储调度。每个反向传播需要的中间结果,都可以由这个管理器动态决定是留在GPU、还是转到CPU的存储去,是压缩成FP8,还是干脆不保存,等反向传播时重新计算。

它像一个统一仓储系统。马上要用、重新制造又昂贵的零件放在线边、暂时不用的送去外仓。体积大的压缩存放,便宜易造的零件不留库存,用到时再生产。

这种细粒度调度则就负责避免训练运行到某一层、某个批次时突然局部爆仓。

到这一步,就是能切,能训不炸了。

但能切不等于能高效训练。模型切得越散,原本发生在一张GPU内部的数据交换,就越多地变成跨卡通信。而且,设备增加以后,专家负载、流水线等待和故障概率也会同步上升。

因此,能切以后,大模型竞争的核心从「参数能不能放下」,转向四个问题。怎么才能算的更快,卡间需要传多少数据,GPU有多少时间真正用于计算,以及每单位FLOPs能换来多少模型质量。

能在有限算力中高效训练出来,更大参数这件事儿才能成立。

而过往的经验中,大家都也都是主要在这四个点上下功夫。招式也几乎差不多。比如到了 DeepSeek-V3 这一代,大规模 MoE 的主要优化方向已经基本定型。

招数可以分为几大方向。

算得动,主要靠修改注意力机制,减少长上下文的存储与计算。DeepSeek从MLA开始选择了稀疏路径,Minimax和Kimi选择了线性。

传得了,一来是控制单个 Token 的激活成本。总参数继续扩大,但每个 Token 实际调用的参数、产生的计算和通信不能同步增长。这就是MoE的作用。

二是把训练精度压小,比如用FP8,乃至FP4的数据训练。

三来是疏通堵点,比如平衡专家负载,避免少数热门专家堵住整个集群。DeepSeek 使用无辅助损失负载均衡。

算的满,主要依靠重排并行与流水线,让通信和计算重叠,挤掉 GPU 空等的气泡。

最终,依靠压缩稀疏处理和高效运用GPU,模型训连的整体速度自然快。

但学得快还有另一层意思,就是提高每单位训练计算的学习回报。这可以通过优化器(Muon)和残差流改造。

这套框架和方法点,后来的 DeepSeek-V4 和 Kimi K3 这次在模型上的三项架构改造基本上是完整的进行了继承,只是增加了细化。

但K3面对了一些新挑战。

从1T道2.8T,新增参数必须以某种方式进入模型的实际计算,而且得让它尽可能有用。不然就白白浪费了。K3因此同时扩大了宽度、深度和长度。

变宽最直接地产生参数。K3把路由专家从384个增加到896个,让模型拥有更大的专业参数库。同时把每Token激活专家从8个增加到16个,使新增容量不只是静静躺在模型里,而能更多地参与一次计算。

变深增加每个Token接受加工的次数。K3从61层增加到93层,使信息能够经过更多轮变换。只增加专家,相当于扩建图书馆,却没有增加研究员处理材料的步骤。增加深度,才让模型能够把更大的参数容量组织成更复杂的表示和推理过程。

变长则扩大模型需要处理的问题范围。上下文从128K增加到100万Token,并不会直接增加参数,但它让更大的模型在训练中面对更长的依赖、更复杂的材料和更长期的任务。否则模型虽然拥有2.8T参数,训练时仍只处理较短的信息片段,新增容量未必能转化成长程能力。

100万Token会让全局注意力计算急剧增长,算不过来。K2还能用的MLA必须得换成线性了。

更多专家和一次用一倍的专家,则会增加通讯负担和负载不均风险。

93层会增加学习的效果压力,残差在越来越深的层里迷失,就学不会了。

因为当前算力本身的限制,算的过来和传的动是最大的卡点。因此和DeepSeek一样,在稀疏和均衡上,Kimi先下了大力。

第一关:KDA 解决算得动

K3 把上下文从 128K 拉到 1M,网络又从K2时代的 61 层加深到 93 层。如果 93 层全部沿用 MLA,序列长度增加约八倍后,算力的增加完全没法处理。

这是因为全注意力处理 100 万个 Token 时,会把所有词全部摆开,让每个新词都能看到之前的所有词。代价是 100 万 × 100 万 = 1 万亿次巨量计算。

而线性注意力的核心目标,它不再保留全部历史,而是把读过的内容不断压进一个固定大小的状态矩阵。是把全注意力那个存储了所有历史信息的的NxN的巨大矩阵,压缩成一个小巧的、可以持续更新的记忆胶囊。

它维护一个固定大小的状态向量(比如 128 维),每来一个新词就更新这个状态。写入新信息,部分保留旧信息,部分遗忘。无论序列多长,只存储这个固定大小的状态,计算量降到 O(N),内存变成恒定。

材料从一万字增加到一百万字,这个胶囊还是一样的大小。

除了算的快以外,线性注意力也从根本上改变了长上下文的成本曲线。由于每一步面对的状态大小基本不变,序列增加一倍,注意力计算通常只增加一倍,而不是四倍。

但线性注意力本质上,是在用“有损压缩”换取效率。这种有损压缩带来的核心问题是精确检索困难。当你需要从 100 万个 Token 中精确找回第 3 万个位置的某个关键信息时,那个被压缩了 97 万次的状态,已经很难给你准确答案了。

想要让它能减少这种压缩中的损失,就得让它更好的选择记忆什么和忘掉什么。

这就靠的是 Kimi Linear 架构的核心,KDA(Kimi Delta Attention)注意力机制。

(K3的架构整体)

Scroll for more