MoE 如何路由 token,并解决专家负载不均?
先用自己的话答,再看参考说法
60 秒是练习上限,不是必须凑满。原理题讲清因果,设计题讲清约束,项目题只讲真实证据。
别照着背。参考说法只用于对照;直接回答问题,简单题说清楚就收尾。项目题只用自己的经历和数字。
参考内容当前已显示;开始口述后会暂时隐藏。
面试时怎么答
MoE 路由先说明 Top-k 让每个 Token 只激活少数专家,再解释容量因子、溢出处理和辅助均衡损失。均衡太弱会产生热点,太强又压制专家专门化;Top-2 往往更稳但计算与通信更高。用这个矛盾收尾比单纯背 Router 公式更完整。
可以这样答:
MoE 的 Router 为每个 Token 选择 Top-k 专家,使模型拥有更大参数容量而单 Token 只激活一小部分。容量因子限制每个专家接收的 Token 数,溢出时可能丢弃或转送;辅助均衡损失用于避免热点。均衡太弱会拥塞,太强又会压制专家专门化,Top-2 更稳但计算与通信更高。
核心回答
稀疏 MoE 通常把 Transformer 中的部分 FFN 替换成多个专家。Router 根据每个 token 的表示计算专家分数,只激活 Top-1 或 Top-k 专家,再按路由权重合并输出。这样总参数量可以大幅增加,而每个 token 只经过少数专家,计算量不会随专家总数线性增长。主要难点是热门专家过载、冷门专家学不到数据,以及跨设备 All-to-All 通信;常用负载均衡辅助损失、容量限制和路由正则来缓解。
展开说明
Router 本质上是一个可学习分类器,但其目标不只是选“最合适”专家,还要让系统可训练、可执行。若大量 token 都去同一个专家,该专家超过容量后可能丢弃、绕过或延迟处理 token,同时其他专家闲置。辅助损失通常鼓励路由概率和实际 token 分配更均匀,但权重过大又可能牺牲专业化。
MoE 的“稀疏”主要发生在专家 FFN,Attention 等模块仍可能是稠密计算。总参数增大也会增加权重存储、检查点和通信成本,因此“相同 FLOPs 下更多参数”不等于部署成本不变。
工程实践
训练时应监控每个专家的 token 数、容量溢出率、路由熵、负载变异系数和通信时间,并按数据领域切片检查是否出现专家塌缩。专家并行的布局要结合网络拓扑设计;如果 All-to-All 成为瓶颈,理论上的稀疏计算优势可能无法转化成端到端吞吐。
常见追问
- Top-1 与 Top-2 路由在质量、计算和容错上有什么差异? Top-1 只激活一个专家,成本低但对路由错误更敏感;Top-2 融合两个专家通常更稳,却增加计算和通信。
- 负载均衡损失过强会带来什么问题? Router 会为了均匀分配牺牲语义匹配,抑制专家专门化,甚至损害主任务质量。
- 为什么 MoE 参数量很大,单 Token FLOPs 却可以接近较小的稠密模型? 每个 Token 只经过少数激活专家,大量非激活参数不参与该 Token 前向;但通信与路由开销仍存在。
一句话复习
MoE 用 Router 为每个 token 稀疏选择专家,以更多总参数换取有限激活计算,但必须治理负载和通信。
参考资料
评论与补充
评论会直接显示在这道题下面。可以写自己的答法、继续追问或指出错误,不需要 GitHub 账号,也不会跳转到 Issue;内容会公开,请勿填写个人隐私、公司机密或受保密约束的材料。
正在连接站内评论服务…
正在加载评论…
还没有评论,你可以先写下自己的理解或追问。