Blog

Kimi K3 模型架构解析:KDA、AttnRes 与 Stable LatentMoE

从长上下文、深度信息流、稀疏专家和原生多模态四个维度,解析 Kimi K3 的模型架构与推理系统含义。

Kimi K3 模型架构解析:KDA、AttnRes 与 Stable LatentMoE

Kimi K3 是月之暗面发布的原生多模态、超大规模稀疏模型。它拥有 2.8T 总参数、104B 单 Token 激活参数、93 层主干网络和 1,048,576 Token 上下文窗口。与单纯扩大标准 Transformer 不同,K3 分别针对四个扩展瓶颈引入专门设计:

  • 使用 Kimi Delta Attention(KDA)与 Gated MLA 扩展序列长度;
  • 使用 Attention Residuals(AttnRes) 改善超深网络的信息流;
  • 使用 Stable LatentMoE 扩展模型容量,同时控制激活计算量;
  • 使用 MoonViT-V2 将图像与视频表示接入统一的自回归语言主干。

一、整体架构

K3 的文本主干建立在 Kimi Linear 架构之上,是一个 Decoder-only MoE 网络。官方模型卡给出的核心参数如下:

项目 配置
总参数量 2.8T
单 Token 激活参数量 104B
Transformer 层数 93
Dense FFN 层数 1
注意力层组成 69 KDA + 24 Gated MLA
Hidden Size 7168
注意力头数 96
路由专家数 896
每 Token 选择专家数 16
共享专家数 2
Latent MoE 维度 3584
单专家 Hidden Size 3072
上下文长度 1,048,576 Tokens
视觉编码器 MoonViT-V2,约 401M 参数
量化格式 MXFP4 权重 / MXFP8 激活

其中“1 个 Dense Layer”表示第一个前馈层采用普通稠密 MLP,后续层主要采用 MoE,并不表示主干只有一层。

K3 的整体数据流可以概括为:

flowchart LR
A[文本 Token] --> C[统一 Token 序列]
B[图像/视频] --> V[MoonViT-V2]
V --> P[视觉投影器]
P --> C
C --> H[93 层 Kimi Linear 主干]
H --> K[KDA 层]
H --> M[Gated MLA 层]
H --> R[AttnRes 跨层路由]
H --> E[Stable LatentMoE]
K --> O[自回归输出]
M --> O
R --> O
E --> O

二、KDA 与 Gated MLA:混合长上下文主干

1. 3:1 的混合注意力比例

K3 的 93 个注意力层并非全部采用标准全注意力,而是由 69 个 KDA 层和 24 个 Gated MLA 层组成。配置文件显示,模型大体按以下节奏交替:

KDA → KDA → KDA → Gated MLA
KDA → KDA → KDA → Gated MLA
...

因此,约四分之三的层使用递归式线性注意力,约四分之一的层保留全局注意力能力。这个比例沿袭了 Kimi Linear 的核心设计思想:

  • KDA 承担大多数 Token 的低成本状态更新;
  • Gated MLA 周期性访问完整历史,补充精确检索能力;
  • 两类层组合,避免纯线性注意力受到固定状态容量限制,也避免所有层都维护完整 KV Cache。

2. KDA:用递归状态压缩历史

标准注意力在生成第 (t) 个 Token 时,需要利用历史序列中的 Key 和 Value:

o_t = Attention(q_t, K_1:t, V_1:t)

随着序列增长,KV Cache 容量和单步注意力读取量都会增加。KDA 则把历史信息维护在递归状态中:

S_t = Update(S_{t-1}, k_t, v_t)
o_t = Read(S_t, q_t)

从推理系统视角看,KDA 层的历史信息主要表现为固定形态的递归状态,而不是长度不断增长的 Token 级 KV 序列。Kimi Linear 的公开结果表明,在 3:1 混合架构中,只有约四分之一的层需要维护全局注意力缓存,因此可显著降低长上下文场景下的 KV Cache 压力。

3. Delta Rule:写入新记忆前修正旧映射

普通线性注意力往往持续累加 Key-Value 外积,容易出现键冲突和记忆污染。Delta Rule 的核心思想不是简单累加,而是:

  1. 用当前 Key 从状态中读取已有映射;
  2. 计算旧映射与当前 Value 之间的误差;
  3. 只把差值写回状态。

这种更新方式更接近可修正的关联记忆。KDA 又在 Gated DeltaNet 的基础上引入更细粒度的遗忘门,使不同状态通道能够采用不同的保留时间尺度。部分通道可以保存长期信息,另一些通道可以快速响应局部上下文。

官方配置还显示,KDA 使用 96 个头、每头 128 维状态通道,并结合长度为 4 的短卷积,以增强局部 Token 混合能力。

4. Gated MLA:保留全局随机访问能力

固定容量状态适合压缩历史,但不擅长从百万 Token 中精确定位一个细节,例如:

  • 复制很早出现的代码片段或字符串;
  • 精确召回文档中的某个数字;
  • 对少量关键 Token 进行近似随机访问;
  • 保存难以压缩进有限状态的长尾信息。

因此,K3 周期性插入 Gated MLA。MLA 使用低秩潜变量压缩 Query 与 KV,同时保留对历史序列执行全局注意力的能力。K3 配置中的 q_lora_rank 为 1536,kv_lora_rank 为 512,并启用输出门控。

可以把两者的分工理解为:

模块 主要作用 推理状态
KDA 连续压缩、更新和概括历史 固定形态递归状态
Gated MLA 周期性全局检索与精确校正 随序列增长的 Latent KV Cache

因此,K3 不是“完全没有 KV Cache”的模型,而是把完整序列级缓存限制在少量 MLA 层中。

三、AttnRes:在模型深度方向做注意力

标准 PreNorm Transformer 通常使用固定加法残差:

h_{l+1} = h_l + F_l(h_l)

随着层数增加,所有历史层输出都以固定权重累积。AttnRes 指出,这种无差别累积会导致隐藏状态幅度随深度增长,并逐渐稀释单层贡献。

AttnRes 将残差连接改为对前序层表示执行 softmax 注意力,让当前层根据输入内容动态选择较早层的信息。这里的注意力不是沿 Token 序列展开,而是沿网络深度展开:

序列注意力:当前 Token 选择历史 Token
AttnRes:当前层选择历史层表示

K3 使用 Block AttnRes,将网络按 12 层划分为一个管理块。相较于对所有历史层输出执行完整跨层注意力,块级设计降低了显存、通信和训练调度开销,同时保留跨深度信息选择能力。

这对 K3 尤其重要,因为它的 93 层主干交替使用 KDA、MLA 和 MoE。AttnRes 可以缩短浅层局部特征、周期性全局检索结果与深层输出之间的有效信息路径。

四、Stable LatentMoE:用极稀疏路由扩展到 2.8T

1. 896 个专家,每个 Token 只选 16 个

K3 配置了 896 个路由专家,但每个 Token 仅激活其中 16 个,路由比例约为:

16 / 896 ≈ 1.8%

模型还配置了 2 个共享专家,用于承载跨领域、跨 Token 都普遍需要的通用能力。由此形成两条互补路径:

  • 共享专家学习通用语言与推理特征;
  • 路由专家学习代码、数学、视觉或特定知识模式;
  • Router 根据当前 Token 动态选择 16 个路由专家。

官方称这一体系为 Stable LatentMoE,并报告相较 Kimi K2 获得约 2.5 倍的整体扩展效率提升。

2. 为什么是 Latent MoE

主干 Hidden Size 为 7168,而路由专家工作在 3584 维 Latent 空间中,单专家前馈隐藏维度为 3072。专家计算因此不必始终在完整主干宽度上展开。

这种设计的意义在于:

  • 可以增加专家总数,提高参数容量;
  • 每个 Token 只访问极少专家,控制计算量;
  • 通过更窄的 Latent 表示降低单专家成本;
  • 将总参数扩展到 2.8T,同时把激活参数控制在 104B。

需要区分两个概念:总参数量决定模型可容纳的专家容量,激活参数量更直接决定一次前向计算的成本。

3. 稳定性为什么重要

当专家数量扩展到接近 900 时,MoE 的困难不再只是“如何做 Top-k”,还包括:

  • 少数专家长期过载;
  • 部分专家训练不足;
  • Router 分布随训练过程漂移;
  • 极稀疏选择导致路由边界更敏感。

Stable LatentMoE 的目标,就是在高专家数、低激活比例下维持可训练性和负载稳定性。推理时,模型配置体现为 Sigmoid Router、Top-16 路由专家、重新归一化以及两个共享专家路径。

五、原生多模态:MoonViT-V2 接入统一主干

K3 使用约 401M 参数的 MoonViT-V2 作为视觉编码器。视觉特征经过 Patch Merge 与 MLP Projector,被映射到语言模型的 7168 维隐藏空间,然后与文本 Token 一同进入 Kimi Linear 主干。

图像 / 视频
MoonViT-V2
Patch Merge + MLP Projector
视觉 Token
与文本 Token 拼接
KDA / MLA / AttnRes / MoE 主干

它没有为视觉信息建立一套完全独立的语言解码分支,而是让视觉 Token 进入统一的自回归计算路径。这样,长上下文、跨层路由和专家选择机制都可以同时作用于文本与视觉表示。

配置文件中的视觉塔包含 27 层、1024 Hidden Size、4096 Intermediate Size、12 个注意力头和 14×14 Patch。视觉输入还保留时间、高度和宽度网格信息,为视频等时序视觉输入提供统一表示基础。

六、原生 MXFP4 / MXFP8 量化

K3 从监督微调阶段开始采用量化感知训练,目标格式为:

  • 权重使用 MXFP4;
  • 激活使用 MXFP8;
  • 权重分组大小为 32。

这并不是对所有模块无差别做 4-bit 压缩。官方配置明确将注意力模块、共享专家、第一层 Dense MLP、LM Head、视觉编码器和多模态投影器等敏感模块排除在主要 MXFP4 压缩目标之外。

因此,K3 的量化策略更接近“按模块分配精度”:对参数量最大的路由专家进行激进压缩,对精度敏感或占比相对较小的模块保留更高精度。

七、从推理系统视角看 K3

K3 的架构会直接改变推理系统对缓存、带宽和并行的假设。

1. KV Cache 从单一形态变为混合状态

传统 Transformer 的每一层通常都维护 Token 级 KV Cache。K3 则包含:

  • 69 个 KDA 层的递归状态;
  • 24 个 MLA 层的 Latent KV Cache;
  • AttnRes 所需的块级跨层表示;
  • MoE Router 和专家并行所需的 Token Dispatch 状态。

因此,缓存管理器不能再把所有注意力层视为相同的 KV Block 分配对象。

2. 长上下文瓶颈仍然存在,但位置发生变化

KDA 显著降低了绝大多数层的序列级 KV 容量和读取压力,但 MLA 层仍需保存随序列增长的缓存。百万 Token 场景下,系统瓶颈可能从“所有层都受 KV 带宽限制”,转变为:

  • 少量 MLA 层集中产生大规模 KV 访问;
  • KDA 状态更新更依赖高效递归 Kernel;
  • MoE Expert Parallel 带来更显著的跨设备通信;
  • 视觉 Token 与长文本共同增加 Prefill 调度压力。

3. 极稀疏 MoE 将并行效率置于核心位置

896 个专家、每 Token 选择 16 个专家,意味着模型必须依赖高效的 Expert Parallel、Token Dispatch、负载均衡和跨节点 All-to-All。104B 激活参数并不意味着部署成本接近普通 100B Dense 模型,因为完整 2.8T 权重仍需被分布式存放和访问。

八、总结

Kimi K3 可以从四个正交的扩展维度理解:

扩展维度 瓶颈 K3 的架构选择
序列长度 全注意力计算和 KV Cache 随长度增长 KDA + 周期性 Gated MLA
网络深度 固定残差累积导致信息稀释 Block AttnRes
参数容量 Dense 模型计算量随参数同步增长 Stable LatentMoE
多模态输入 视觉与语言处理路径割裂 MoonViT-V2 + Token-level Fusion

K3 最值得关注的地方,是它没有试图用一个机制同时解决所有问题,而是针对不同维度分别设计模块,再把这些模块组合为统一主干。对推理系统研究而言,最重要的变化是:注意力状态不再等价于每层完整 KV Cache,模型状态开始分化为递归记忆、Latent KV、跨层残差表示和专家路由状态。

这意味着未来面向 Kimi K3 一类混合架构的推理系统,需要从“统一 KV Block 管理”进一步走向“异构模型状态管理”。

参考资料

  1. Kimi K3 官方仓库与模型说明
  2. Kimi K3 Hugging Face 模型配置
  3. Kimi Linear: An Expressive, Efficient Attention Architecture
  4. Attention Residuals