Wink Pings

80万GPU小时换来的MoE训练手册:先解决日志没报错、训练慢25倍

Hugging Face 发布 MoE 训练手册,覆盖专家数量、all-to-all 通信、路由、辅助损失、dense checkpoint 复用和推理部署。80万GPU小时实验,70k字,55个交互图,代码可运行。

Hugging Face 放出一份 MoE 训练手册:The Ultimate MoE Training Handbook。Dongxi 的推荐语很短:裂墙推荐就完事了。手册免费开放,入口在 huggingface.co/spaces/huggingface/moe-blogpost。

Thomas Wolf 给了一个刺眼的判断:今天 20 个最好的开源模型里,18 个是 Mixture-of-Experts,Dense is basically over。他还说,训练一个好 MoE 的 know-how,大部分仍留在少数团队脑子里。于是他们花了 80 万 GPU 小时做实验,把过程写下来。

这里有个公开口径差异,读之前知道就行:Thomas Wolf 的推文写约 7 万字、55 个交互图;Nouamane Tazi 的推文写 3 万字、50 多个交互图,GPU 小时写成 1/2M。两边数字对不齐,但都指向同一件事:内容按训练队会撞上的问题组织,代码可运行,数字来自他们自己的 run。

MoE 可以简单理解成:模型里有很多专家,每个 token 只激活其中一部分。总参数看着大,计算按激活部分走。工程上的麻烦也在这里:token 怎么路由,专家负不均衡,通信怎么藏,哪些参数该用 fp32。手册列的问题很具体:

  • 专家放多少、每层多宽、要不要共享专家
  • 一半 step 耗在 all-to-all,怎么把它藏起来
  • 日志没有报错,训练却慢 25 倍,为什么
  • softmax、sigmoid、sqrt(softplus) 路由怎么选,router 为什么留在 fp32
  • aux loss 还是 DeepSeek 的 loss-free bias
  • dense checkpoint 继续训,还是从零训
  • 推理时每 token 用更少专家行不行

Thomas Wolf 在回复里补了一个 expert count 的结论:固定总参和激活参时,更细的专家有帮助,但有上限。一个 ablation 里,loss 一直降到 128 个专家,每个宽度 1/4,top-8,然后不再降。已发布模型多落在 128 到 384 个专家、top-4 到 top-8。再往上,小 GEMM 和更多 all-to-all 会吃掉 step time,所以集群上的最佳数量通常比 loss 曲线单独给出的更不稀疏。细节和 Megatron flags 在这一节。

推文里附了演示视频:

Nouamane Tazi 的推文也有一段视频:

Leandro von Werra 的评价更直接:想进入大规模 MoE 训练,这可能是最全面的资源。

这份手册把 MoE 训练从“能跑”到“跑得对、跑得快”之间的缝隙写成了可查的条目:通信、GEMM 形状、路由数值、负载均衡、checkpoint 复用、推理配置。对做训练的人,这些是排错清单;对普通读者,它解释了为什么开源模型榜单上 MoE 越来越多,而真正难的部分在系统细节。

70k 字,预算几天。别在周一早上打开。先按你卡住的问题跳读,可能更实际。

发布时间: 2026-11-06 20:30