← 返回题目列表

MoE 路由器如何做负载均衡?

高频 困难 第 18 / 25 题 更新于 2026/09/17
MoERouter负载均衡Expert Parallel

简化版

MoE Router 为每个 token 对专家打分并选 Top-k;若少数专家长期被选中,会过载丢 token,其他专家训练不足。常用辅助损失同时约束路由概率质量与实际 token 份额接近均匀,再配合 capacity factor、噪声路由和 expert parallel。均衡不是越平均越好:过强会破坏专家专门化,应联合看负载 CV、溢出率、路由熵、通信和任务质量。

详细版

设 E 个专家,token t 的路由概率为 p_t=softmax(W_rx_t),Top-k 后分发。对专家 i 定义平均概率 P_i 与实际分配比例 f_i,常见辅助项近似:

L_balance = α · E · Σ_i f_i P_i
capacity_per_expert ≈ capacity_factor · tokens · k / E

超过容量的 token 可丢弃、转次选专家或溢出到共享专家,各有质量与通信代价。训练监控每层专家 token 数、P95/最大负载、溢出、路由熵和专家梯度;分布式部署还要避免所有热门专家落在同一设备。推理批次小、领域偏移时均衡行为可能与训练不同,需要独立验证。

完整版教学

一、MoE 为什么需要路由

稠密 FFN 每个 token 使用同一参数。MoE 放置多个 FFN 专家,Router 按 token 选择少数几个,使总参数增加而每 token 计算保持有限。

Top-1 每 token 激活一个专家,Top-2 激活两个并加权合并。路由选择决定模型容量是否被有效利用,也决定跨设备通信。

记忆钩子:专家多不等于容量都被用上;Router 既是能力分配器,也是集群流量调度器。

二、路由打分与 Top-k

Router 通常是线性层:g_t=W_rx_t,softmax 得到专家概率。选择 Top-k 专家,将 token 表示发到对应设备,再按门控权重合并输出。

token x -> router probabilities -> top-k experts
        -> all-to-all dispatch -> expert FFN -> combine

Top-k 增大提高冗余和质量机会,却近似增加专家计算与通信。概率归一是对全专家还是只对 Top-k,也会影响尺度。

三、为什么会专家坍缩

训练早期随机优势会让某专家多接 token、更新更充分,随后 Router 更偏向它,形成正反馈。数据主题偏斜也可能使热门模式集中到少数专家。

结果是热门专家超容量,冷门专家几乎没有梯度。总参数虽然很大,有效容量却接近少数专家,且最慢设备形成 straggler。

只观察平均每专家 token 数会隐藏极端负载,要看分布和最大值。

四、辅助均衡损失的直觉

f_i 是经过 Top-k 后专家 i 接收的 token 比例,P_i 是 Router 给它的平均概率。两者都集中时 Σ f_iP_i 变大,最小化鼓励分散。

指标反映问题
token fraction f_i实际硬路由负载
mean probability P_i软路由倾向
routing entropy选择是否过尖
load CV专家负载离散程度

α 太小无法防坍缩,太大则强迫均匀,抑制合理专门化。它应当作正则项调节,而非主任务。

五、容量因子与溢出

理想均匀 Top-k 路由时,每专家约接 T·k/E 个 token。实际为应对波动,容量乘 capacity_factor>1

例如 T=8192、k=2、E=8、factor=1.25,每专家容量约 8192×2/8×1.25=2560。因 batch 与序列取整,实现还会 padding。

容量越大,丢 token 少但缓冲和通信浪费增加;容量太小则大量 token 无法进入首选专家。

六、溢出 token 怎么处理

直接丢弃计算便宜但损害表示;尝试次选专家提升覆盖却增加不规则调度;共享专家可兜底通用能力,却形成新的固定成本。

策略必须在训练和推理保持一致,或至少评测差异。训练时无溢出、推理小容量会造成行为分布偏移。

记录溢出发生在哪些语言、位置和专家,避免总体 1% 掩盖某个领域 20%。

七、均衡与专家专门化的冲突

真正有用的 MoE 希望专家学习不同模式,数据不均时合理负载也未必完全均匀。强制每批 1/E 可能把 token 分给不适合专家。

可以在更长时间窗口看均衡、增加共享专家、使用分组路由或只限制最大负载。目标是避免病态坍缩与设备热点,而不是消灭所有差异。

分析专家专门化需看路由内容和消融,不能仅凭专家编号贴“代码专家”标签。

八、分布式系统的真实瓶颈

Expert Parallel 通过 all-to-all 把 token 发往专家设备。即使 token 数均匀,序列长度、内核形状和网络拓扑也会造成不同耗时。

部署要看每卡发送/接收字节、padding、all-to-all 时间、专家 GEMM 利用率和尾延迟。热门专家若共置同一节点会使链路热点,应做专家布局与拓扑感知。

推理小 batch 的 token 不足以填满各专家,MoE 可能计算稀疏却硬件利用率低。

九、常见误区与追问

  • 误区:路由概率均匀就代表实际负载均匀。 Top-k 与容量截断后分配可能不同。
  • 误区:辅助损失越强越好。 会压制合理专门化并伤害主任务。
  • 误区:容量因子越大质量越好。 缓冲、padding 和通信成本会上升。
  • 误区:平均负载正常就没有热点。 要看最大值、P95、CV 和分组切片。
  • 误区:FLOPs低就一定推理快。 All-to-all 与小 GEMM 可能主导。
  • 追问:专家坍缩怎么发现? 看 token fraction、路由熵、冷门专家梯度和消融。
  • 追问:溢出 token 如何选策略? 根据质量、通信和可预测性比较丢弃、次选与共享专家。
  • 追问:为什么推理需单独测? batch、领域和容量与训练不同,路由及硬件效率会漂移。

十、加强记忆

MoE 负载均衡记住“软概率、硬份额、容量、通信”四层:Router softmax 后选 Top-k,辅助损失同时约束平均概率与实际 token 份额;capacity factor 为波动留空间,溢出采用丢弃、次选或共享专家。均衡只防病态热点,不应抹掉专门化;最终联合任务质量、溢出率、负载尾部与 all-to-all 实测选配置。