月之暗面发布Kimi K3开源大模型技术报告
Kimi K3是一款性能可与前沿模型匹敌的开放权重模型。技术报告已经公开,我来整理其中的重点。
Kimi K3是总参数2.8T、激活参数104B的MoE模型。它从架构、数据、超参数、训练方法进行了全方位改进,官方称和Kimi K2相比,达到相同验证损失所需的训练计算量减少到约1/2.5。
**架构**
Kimi K3的架构设计为分别沿序列方向、深度方向、宽度方向三个信息流方向扩展。
序列方向上,它结合了Kimi Delta Attention(KDA)和Multi-head Latent Attention(MLA)。整个模型共93层,基本结构是以3层KDA加1层Gated MLA为一个模块重复堆叠。
KDA是将历史上下文压缩为固定大小状态矩阵的线性注意力。它扩展了传统DeltaNet系结构,可以按通道调整历史信息的保留比例。
KDA的基础Kimi Linear曾存在问题:遗忘率可能变得极低,导致分块并行计算中累积衰减的倒数过大,引发溢出等数值不稳定问题。Kimi K3为对数衰减设置了下限。
这个修改让原本需要特殊position-pair计算的对角块也能作为Tensor Core上的稠密矩阵乘积处理。公式上看只是很小的改动,却是简化GPU内核、提升训练速度的重要设计。
MLA层没有使用RoPE这类显式位置编码。正如Kimi Linear中已经体现的,位置和顺序信息主要由KDA负责,MLA主要承担基于内容的全局信息检索任务。
这种分工让扩展上下文长度时不需要调整RoPE频率或做插值。
但这不代表不需要修改位置编码就能直接不训练就支持100万token上下文,Kimi K3是按8K、64K、256K、1M的顺序逐步拉长上下文训练的。
技术报告提到,预训练阶段完成从8K到64K的扩展,在训练最终阶段的冷却期扩展到256K和1M。
第二个特点是改进深度方向信息流的Attention Residuals。
普通Transformer中,过往层的信息通过残差连接依次相加,聚合到同一个隐状态中。从深度方向看,它是将过往信息压缩为单个状态的类RNN结构。
在Attention Residuals中,每一层都会对过往层和模块的表示做注意力,选择性获取所需深度的表示。
为实现这一点,每一层都拥有可学习的pseudo-query向量。这个query不是从输入计算得到,而是每层保存的可学习参数。key和value则使用每个输入token对应的过往层输出。
pseudo-query可以被看作代表「该层需要什么类型的表示」的检索模板。query本身不依赖输入,但key依赖输入,因此实际注意力权重会随token变化。
用独立的可学习向量作为query,省去了为每个token、每个层计算大型query投影的过程,也避免了从Attention Residuals生成的当前层输入生成query时产生的循环依赖,简化了实现。
Kimi K3将全部93层大致分成每12层一个模块,没有对所有过往层做注意力,而是使用仅关注模块级表示的Block Attention Residuals。这减少了保存所有过往层输出所需的内存,也降低了流水线并行时的通信量。
宽度方向上使用Stable LatentMoE。
Kimi K3共有896个路由专家,每个token会选中16个专家。但它不会将7168维的隐状态直接输入给每个专家,而是在输入专家前压缩到3584维隐空间,专家处理完成后再恢复到原本的宽度。而所有token共用的2个共享专家则直接使用原全维度工作。
Kimi K2是从384个路由专家中选中8个,相比之下Kimi K3的专家候选数扩大了约2.3倍,同时激活的专家数翻了一倍。稀疏比Kimi K2是48,Kimi K3是56,处于相近水平。它通过组合更多专业专家,同时利用隐空间控制计算量和通信量。
此外,它在路由专家聚合后插入了RMSNorm,用SiTU-GLU替代了SwiGLU。SiTU-GLU在保留SwiGLU原点附近性质的同时,通过tanh让大输入平滑饱和。在Kimi K3的设置下,每个输出坐标的绝对值被控制在最大100。这是为了防止大规模极度稀疏MoE中出现激活爆炸的设计。
专家负载均衡采用Quantile Balancing。
传统方法会反复小幅调低过度使用的专家的偏置,小幅调高未被充分使用的专家的偏置。但处理896个专家时,这种固定步长更新的追踪速度很慢,负载也容易波动。
Quantile Balancing会根据路由器分数margin的分位数直接估计下一轮的偏置,让每个专家都能接收到目标数量的token。
实际实现中,它不会把所有margin收集到一处,而是对每个专家的直方图做全归约,近似得到全局分位数。
另外,Kimi K3从预训练阶段就整合了图像和视频。图像和视频编码器使用约4亿参数、27层的MoonViT-V2。Kimi K3没有连接SigLIP等预训练好的视觉编码器,而是将视觉编码器和语言模型同时从零开始训练。
技术报告称,从零训练的效果优于用SigLIP初始化的编码器,下一个token
本文由 AI 翻译自英文原帖,技术名词保留英文。
查看 X 原帖