详解 Kimi K3 技术报告
赛博浮世绘 · 晓风乾 · 20 站拆解
回首页
详解 Kimi K3 深度与宽度 4.2 · LatentMoE · 尺度稳定
篇章四 · 4.2

LatentMoE · 尺度稳定

每次挑的专家不同,尺度会乱跳

每个 token 被分配到的专家组合不同、路由权重不同,输出数值范围也不一样,结果忽大忽小。中间加一次 RMSNorm 把波动压平。

有无 RMSNorm 的输出尺度
无 RMSNorm · 尺度波动 每次专家不同 → 输出忽大忽小 中间加 RMSNorm · 尺度压平 归一化后尺度一致,后续稳定
左:不加归一化,不同专家组合尺度高低不均。右:RMSNorm 按均方根统一缩放,波动抹平。

尺度为什么会波动。 896 个路由专家,每个 token 激活 16 个——每次挑的组合不同,路由权重也不同。而不同专家输出的数值范围本来就不一样:有的专家输出偏大、有的偏小。于是这 16 个专家按各自权重混合出来的结果,数值就忽大忽小,给后续计算带来不稳定。

RMSNorm 怎么压。 它对这个混合输出做一次按均方根的归一化——先算出当前输出的均方根(反映数值的整体大小),再用它把输出统一缩放到一个固定范围。不管原始数值多大多小,归一化后都落到同一个量级,后续层收到的输入就稳定了。

两类专家分工。 两条完整宽度的 Shared Expert Path 对每个 token 都参与、不经路由,负责所有 token 都需要的通用特征变换;896 个 Routed Expert 每个擅长一类更细的专业特征,每次激活 16 个负责这个 token 的特殊需求。通用和专门分开,互不干扰。

为什么在"中间"加
不是在输入也不是在输出,而是在专家混合之后、送入后续计算之前。这个位置正好卡在"尺度开始发散"和"后续需要稳定"之间。

FFN 也框住 · C²GLU。 尺度问题不止在专家混合这一处——FFN 内部同样有无界环节。K3 的 C²GLU 把硬裁剪(clip)换成软裁剪(tanh):线性分支和门控分支的每一段都被框在有限范围里,MoE 的总激活因此有严格的数学上界——不管这次路由到哪 16 个专家、权重多大,输出尺度都出不了圈。

为什么在架构上控,不靠调参。 K3 的优化器是 μon,团队发现 μon 下数值 outlier 更常见(苏剑林会反对这个归因——任何优化器都会出 outlier)。所以答案不在换优化器或调参上,而在架构上:RMSNorm 管混合后压平,C²GLU 管源头别炸,从架构上给出硬保证。本节从头到尾其实是同一件事:尺度稳定。