MoE 推理中的 Expert Parallel 如何工作,为什么容易被 All-to-All 和热点专家拖慢?
先用自己的话答,再看参考说法
60 秒是练习上限,不是必须凑满。原理题讲清因果,设计题讲清约束,项目题只讲真实证据。
别照着背。参考说法只用于对照;直接回答问题,简单题说清楚就收尾。项目题只用自己的经历和数字。
参考内容当前已显示;开始口述后会暂时隐藏。
面试时怎么答
Expert Parallel 的回答沿 Token 数据流展开:Router 选专家、按目标设备打包、All-to-All、专家 GEMM、回传并合并。它让单卡不必放全量专家,却把互联与负载均衡放进关键路径;一张卡成为热点时所有 Rank 都会等待,追问通常会转向 EP/TP/DP 如何按拓扑组合。
可以这样答:
Expert Parallel 把不同专家放在不同 GPU 上,单卡无需保存全部专家,但每层都要把 Token 发往专家所在设备。数据流是 Router、打包、All-to-All、专家 GEMM、回传和合并。它的主要瓶颈是互联与负载偏斜:某张卡收到过多 Token 时,其他 Rank 即使计算完也要等待最慢专家。
核心回答
在 Expert Parallel 中,每个 Rank 只保存部分专家。Router 为 Token 选出 Top-k 专家后,系统按目的 Rank 重排 Token,通过 All-to-All 发送,执行本地专家 MLP,再反向通信并还原 Token 顺序。它降低了每卡专家权重容量,但把稀疏路由变成强通信与同步问题。
延迟由最慢 Rank 决定。若路由分布偏斜、不同序列领域集中,某些专家会成为热点;即使平均负载均衡,瞬时 Micro-batch 也可能失衡。跨节点带宽和时延通常远差于节点内互联,因此 EP Group 应优先贴合高速拓扑,并与 TP、DP 的通信模式联合规划。
展开说明
常见优化包括增大 Token Batch 以形成更高效的 Expert GEMM、容量限制、专家复制、动态负载均衡、通信与计算重叠,以及把频繁共同激活的专家放在合适拓扑中。但更大的 Batch 会伤害在线延迟,专家复制会额外占显存,强行均衡也可能改变模型语义。
版本边界上,不同框架对 Expert Slicing、专家复制和通信 Kernel 的支持差异很大,不能把某个后端的参数名当成通用算法保证。
工程实践
Profile 必须按层记录 Router 分布、每 Rank Token 数、Pack/Unpack、两次 All-to-All 和 Expert GEMM 时间。分别测试节点内与跨节点,使用真实领域混合和并发。重点指标是最大/平均专家负载比、路由熵、通信时间占比、网络 GB/s、P95 TPOT、Goodput 和显存水位。
常见追问
- Expert Parallel 与 Tensor Parallel 有什么区别? EP 按专家切分,只有被路由的 Token 访问对应专家;TP 切分同一稠密算子,通常每个 Token 都参与组内 Collective。
- 为什么平均专家负载均衡仍可能很慢? 在线小批次存在瞬时偏斜,且专家计算、网络路径和 Token 数不完全相同;同步阶段受最慢 Rank 限制。
- 把 EP Group 做得更大一定更省吗? 每卡专家参数会减少,但跨卡通信、同步和拓扑风险上升;应按权重容量、Batch 和互联实测最优点。
一句话复习
Expert Parallel 用分布式专家容量换来两次 All-to-All,性能关键是拓扑、批量和最慢专家负载。
参考资料
评论与补充
评论会直接显示在这道题下面。可以写自己的答法、继续追问或指出错误,不需要 GitHub 账号,也不会跳转到 Issue;内容会公开,请勿填写个人隐私、公司机密或受保密约束的材料。
正在连接站内评论服务…
正在加载评论…
还没有评论,你可以先写下自己的理解或追问。