内容提要
Kimi K3模型采用Stable LatentMoE作为FFN,基于NVIDIA LatentMoE改进,将输入压缩至半宽latent空间,增加RMSNorm稳定训练,用SiTU-GLU激活控制输出,并通过Quantile Balancing实现负载均衡。该模块占模型98%参数,每层激活16个专家,显著提升效率与性能。
延伸解读
为什么K3选择半宽latent空间
K3的Stable LatentMoE将输入从7168维压缩到3584维的latent空间,再路由到16个专家。这源于NVIDIA LatentMoE的论证:推理时专家处于访存瓶颈,通信量正比于k·d,而非线性预算正比于k·m,因此应削减宽度d而非专家数或中间维。K3采用保守的α=2,相比原论文推荐的α=4,在效率与性能间取得平衡。
Stable三件套各自解决什么问题
K3在LatentMoE基础上新增三项改进:latent上的RMSNorm稳定聚合后尺度,SiTU-GLU通过softcap限制激活输出上界(β1β2=100),Quantile Balancing直接计算偏置使每个专家负载精确达到目标值。三者分别应对激活爆炸、低精度溢出和近千专家负载均衡难题,共同支撑2.8T规模下的稳定训练。
Quantile Balancing与DeepSeek-V3路由的异同
DeepSeek-V3用固定步长符号更新偏置,步长需手动调节;Quantile Balancing则从平衡指派问题出发,通过坐标下降直接求解对偶目标,偏置更新无步长超参,且能快速平衡近千专家。两者本质相关:对同一对偶目标做SignSGD即得DeepSeek-V3的更新规则,QB则跳到精确坐标极小点。
参数规模与部署要点
Stable LatentMoE占K3总参数98%,其中routed expert达2.72T。每token激活约65B参数,与论文104.2B激活参数吻合。部署时仅routed expert权重量化至MXFP4,注意力、shared expert等保持高精度,并在post-training阶段进行量化感知训练,以平衡压缩与性能。
Q&A
Kimi K3 模型中的 Stable LatentMoE 是什么?
Stable LatentMoE 是 Kimi K3 模型中使用的专家混合(MoE)模块,作为 FFN 层。它基于 NVIDIA 的 LatentMoE 改进,将输入压缩到一半宽度的 latent 空间,并增加了 RMSNorm、SiTU-GLU 激活和 Quantile Balancing 负载均衡,以提高训练稳定性和效率。该模块占模型 98% 的参数,每层激活 16 个专家。
Kimi K3 的 Stable LatentMoE 与 NVIDIA LatentMoE 相比有哪些改进?
K3 在 LatentMoE 基础上增加了三个改进:1) 在 latent 空间上添加 RMSNorm 以稳定训练;2) 使用 SiTU-GLU 激活函数替代 SwiGLU,通过 softcap 限制输出范围,防止激活爆炸;3) 引入 Quantile Balancing 负载均衡方法,直接计算偏置使每个专家负载均衡,替代 DeepSeek-V3 的固定步长更新。
为什么 Kimi K3 的 MoE 要在半宽度的 latent 空间中进行计算?
根据 LatentMoE 的论证,推理时 MoE 层受限于内存带宽,因此优化目标是每个参数的准确率。通过将输入宽度减半,可以降低通信量和权重带宽,同时将节省的资源用于增加专家数量和 top-k 值,从而利用组合稀疏性提升模型性能。K3 采用 α=2 的压缩比例,将输入从 7168 维压缩到 3584 维。
SiTU-GLU 激活函数是如何工作的?它相比 SwiGLU 有什么优势?
SiTU-GLU 对 SwiGLU 的门和上支分别应用 softcap 函数 β*tanh(x/β),其中门 β1=4,上支 β2=25。它保留了 SwiGLU 在原点附近的线性特性,但输出有界(绝对值不超过 100),避免了激活值过大导致的溢出,同时平滑的截断保持了梯度。
Quantile Balancing 是如何实现负载均衡的?
Quantile Balancing 通过计算每个专家偏置,使得每个专家恰好获得目标负载(mk/n)。它利用路由分数的分位数来确定偏置,具体是取 margin 的 (1-k/n) 分位数,并减去公共偏移。该方法一步即可达到均衡,无需步长超参数,且通过直方图估计实现高效通信。
Kimi K3 的 Stable LatentMoE 中,路由是如何工作的?
路由使用 sigmoid 函数对全宽输入打分,然后加上偏置(e_score_correction_bias)选择 top-16 个专家,但混合权重使用原始分数并重新归一化。偏置只影响专家选择,不参与权重计算,且推理时冻结。
Kimi K3 的 Stable LatentMoE 中,RMSNorm 的作用是什么?
RMSNorm 被添加在 latent 空间的聚合结果之后、上投影之前,用于对 routed 分支的输出进行归一化,使其对尺度变化不敏感,从而稳定训练。论文指出,该 RMSNorm 还一致地改善了验证损失和下游指标。
Kimi K3 的 Stable LatentMoE 中,shared expert 是如何工作的?
K3 有 2 个 shared expert,它们在代码中合并为一个 KimiMLP,中间维度为 6144(每个 expert 3072),输入输出宽度为全宽 7168。shared expert 的输出直接加到 routed 分支的输出上,不经过 latent 压缩。