MLE · ML Fundamentals

Amazon MoE结构:Router、稀疏专家与负载均衡

解释每个token选部分专家时的计算、显存和通信,区分总参数与活跃参数。

题目重点:解释每个token选部分专家时的计算、显存和通信,区分总参数与活跃参数。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 明确问MoE结构但没有routing策略、专家数或capacity。练习为FFN专家层:E个专家、每token选K个,router权重组合输出,具体归一化是训练合同。
  • MoE不自动让attention稀疏,也不表示每个token都只占总权重的K/E显存;所有专家参数仍需被存储/分布。

解题路线

  1. router对token表示产生专家打分,选TopK专家,把token路由到它们的FFN,再按选中权重合成结果。专家是可学习子网络,不默认“一人数学一人代码”等人工分类。
  2. 活跃专家计算随K而非E直接增长,增加E可增加总参数容量;但router、调度和通信也有成本,参数量更大不保证相同硬件更快。
  3. expert parallel把专家分在不同设备,需要dispatch/combine token,热点专家会让某设备拥塞。衡量每专家token负载、capacity超限和通信占比,平均token数不足以证明均匀。
  4. 如果选择容量限制,超额token是drop、reroute还是等待,直接影响训练目标/输出正确性;策略必须明示。可加负载均衡目标,但它是需要权衡的训练项,不保证真实线上流量没有偏斜。
  5. 与dense模型比较时同时报告总参数、活跃参数、训练/推理吞吐、延迟和任务质量。小batch可能专家利用不足,不能套论文某一实验的倍率到任何服务。

手动走一遍

四专家概率[0.4,0.3,0.2,0.1],练习选前二并重新归一化为4/7、3/7,输出4/7×expert0(x)+3/7×expert1(x)。四个token都偏好expert0会导致负载不均,即使全层平均每专家两个token也不能反映峰值。

规模与取舍

训练设token T,FFN每专家代价F,活跃计算约TKF加router/attention;存储仍含E套专家参数。跨设备传输与token维度、路由分布和网络相关,不能只给K/E算力节省率。

易错点与追问

容易失分的边界

  • 总参数等于每token计算量。
  • MoE自动省掉attention的二次长度成本。
  • capacity超额静默丢token,却仍声称与无限容量合同相同。

继续深挖

  • Top1和Top2对通信、专家协作和路由稳定性的取舍?
  • 部署时如何让小batch和长尾专家保持可接受利用率?

技术参考

✓已复制微信号!