让 MoE 训得稳、又均衡

MoE 的命门是负载均衡——路由器爱偏心,把 token 全塞给少数热门专家,其余饿死。传统靠「辅助损失」硬掰,但它会干扰主目标、伤性能。看 DeepSeek 的「无辅助损失均衡」如何用一个动态偏置优雅解决,以及为什么头几层要保持稠密。

作者 David更新于 第 6 篇(共 12 篇)

让 MoE 训得稳、又均衡

MoE 有个众所周知的老大难,不解决,几百个专家就是摆设。这一章讲这个命门——负载均衡——以及 DeepSeek 一个特别漂亮的解法。

命门:路由器天生爱偏心

MoE 靠路由器给每个 token 挑专家。问题是,路由器会「马太效应」:某个专家一开始碰巧表现好、被选得多,就练得更好,于是被选得更多……最后少数几个热门专家垄断了几乎所有 token,剩下几百个专家门可罗雀、学不到东西。

这叫负载不均衡(load imbalance),后果很严重:

  1. 容量浪费:你设了 256 个专家,实际干活的没几个,等于白堆参数。
  2. 训练不稳 / 设备闲忙不均:大模型的专家是分散在多张卡上的(专家并行)。热门专家所在的卡被打爆、冷门专家的卡在摸鱼,整体吞吐被最忙的卡拖死。

所以**「让 token 尽量均匀地分给各专家」**,是 MoE 能不能训好的头等大事。

老办法:辅助损失(有副作用)

Switch Transformer、GShard 那代的标准解法,是加一个辅助损失(auxiliary load-balancing loss):在主训练目标之外,额外加一个惩罚项,谁分配不均就罚谁,逼着路由器把 token 摊平。

管用,但有副作用。这个辅助损失会往模型里注入额外的梯度,而这些梯度的目标(「务必均匀」)和主目标(「把话说好」)未必一致——有时候某个 token 本该重点交给某个专家最合适,辅助损失却为了「均匀」硬把它匀走。于是均衡是达到了,模型质量却被拖累了。这是一种「按下葫芦浮起瓢」的妥协。

DeepSeek 的巧劲:无辅助损失均衡

DeepSeek 在 《Auxiliary-Loss-Free Load Balancing》(Wang et al., 2024) 里提出了一个漂亮得多的办法,并用在了 DeepSeek-V3 上。核心一句话:

不用「损失」去掰,而是给每个专家的路由得分加一个可动态调节的「偏置(bias)」——谁太闲就把它的偏置调高一点(更容易被选中),谁太忙就调低一点。均衡靠这个「调节旋钮」实现,完全不碰主损失。

打个比方:老办法像是给挑食的孩子立个规矩、写进考卷里扣分(规矩会干扰他好好答题);新办法像是食堂根据排队长短,悄悄把冷清窗口的菜价调便宜一点——顾客自然被引导着分流,而没人被扣分、没人被强迫。

好处是决定性的:

  • 不注入干扰主目标的梯度 → 模型质量不受损;
  • 偏置只影响「选谁」,不改专家算出来的值,所以均衡和质量不再打架。

DeepSeek 的实验显示:无辅助损失均衡,既比辅助损失方案更均衡,模型还更好。 这是个「既要又要」都拿到的少见案例,也难怪 GLM-4.5 等后来者纷纷跟进类似思路。

实践里还有些配套的稳定性细节,顺带一提:路由打分常用 fp32 高精度计算(路由对数值抖动敏感);以及专家容量上限——当某个专家这一批收到的 token 超过容量,多出来的会被丢弃或改道,防止个别专家被瞬间打爆。这些都是让 MoE「训得动」的工程护栏。

另一个稳定性招:头几层保持稠密

还有一个各家不约而同的小设计:模型最前面的几层不做 MoE,保持稠密。

  • DeepSeek-V3:前 3 层稠密,之后才上 MoE;
  • GLM-4.5:同样借鉴了「前几层稠密」的做法。

为什么?最靠近输入的那几层,处理的是最基础、最共性的特征(词形、局部搭配),这些「人人都要」的东西本就不该被路由分流;而且训练早期路由器还很「懵」,让它在第一层就对着几百个专家瞎分,容易带偏整个训练。先用稳定的稠密层把地基打牢,再在上面放稀疏的 MoE,收敛更稳。这是个便宜又有效的「稳定器」。

小结:MoE 的两条主线到此收束

把 MoE 这三章连起来看:

  • 稠密 vs 稀疏(为什么用 MoE):解耦「容量」和「算力」;
  • 三个旋钮(怎么设计 MoE):专家多而小 / 少而大、激活几个、要不要共享;
  • 稳定与均衡(怎么训好 MoE):从辅助损失到 DeepSeek 的无辅助损失,加上头几层稠密。

至此,这一代大模型的**两条主战场(省 KV 缓存、稀疏化 MoE)**都讲完了。它们决定了一个模型「推理烧多少显存、每步算多少」这两个最要命的数字。

接下来几章,是重要但不改大局的「配角维度」。第一个,是一个看似不起眼、却实实在在左右训练能不能稳住的选择——归一化到底放哪儿。👉 归一化:RMSNorm、Pre / Post / 三明治、QK-Norm

参考文献

  • [1] Wang et al. (DeepSeek). “Auxiliary-Loss-Free Load Balancing Strategy for Mixture-of-Experts.” 2024. arXiv:2408.15664. —— 无辅助损失均衡。
  • [2] Fedus et al. “Switch Transformers.” JMLR 2022. arXiv:2101.03961. —— 辅助负载均衡损失。
  • [3] Zoph et al. “ST-MoE: Designing Stable and Transferable Sparse Expert Models.” 2022. arXiv:2202.08906. —— MoE 训练稳定性的系统研究。
  • [4] DeepSeek-AI. “DeepSeek-V3 Technical Report.” 2024. arXiv:2412.19437. —— 无辅助损失均衡 + 前几层稠密的实际应用。

本页目录