判断归属:AI 候选。 文献事实附来源;以下推导、例子和适用边界为本次整理的解释,尚未经过用户逐项确认。
Problem#
稠密前馈层通常让每个 token 使用同一组参数。稀疏混合专家层为同一个输入准备多个参数不同的专家,由路由器选择少数参与计算。它要区分两个量:模型拥有多少参数,以及一个 token 实际使用多少参数。增加总容量不必同比增加每 token 的专家计算,但未被激活的参数仍需要存储。
这里讨论 token 级前馈专家,而非把任何多个模型组合都叫作同一种 MoE。公开实例见Switch Transformers §2。
Router-and-experts#
设输入 ,有 个专家 。路由器输出 logits 和概率:
选择概率最大的 个专家作为集合 ,再组合输出。一种常见的 top-k 归一化约定是
必须说明具体门控约定:Switch 的 top-1 层使用被选专家的原始概率乘专家输出,并非上述“top-1 后归一化为一”的特例。硬选择对索引不可微,不代表整个路由器没有梯度;专家输出的门控权重提供一条可微路径,训练还可使用辅助目标。不同方案的训练处理需分别查看。
top-k 若通过 logits 实现,应将未选位置排除或设为负无穷,再在选中集合上归一化;简单把其他 logits 改成零再 softmax,会给它们正概率,结果并不稀疏。
Execution#
一批输入的不同 token 可能选择不同专家。实现必须先按专家收集对应 token,让该专家处理收集后的子批量,再按原 token 位置和权重散回输出;多专家命中的贡献要累加。不能把整批专家编号张量当作普通模块列表的单个索引,也不能在名义上做 top-k 后仍计算所有专家并声称获得稀疏计算收益。
设每个专家参数量为 、一次前向成本为 。忽略共享部分时,总专家参数约为 ,每 token 的专家计算约为 ;路由线性投影另需约 的运算。实际时间还包括分发、跨设备通信、聚合与负载不均。
所以“稠密模型是平方增长,MoE 是线性增长”没有给定扩展变量就没有意义。扩宽隐藏层、增加专家数、增加上下文长度是不同的缩放过程。MoE 主要改变所替换层的激活参数量,不会自动移除注意力对长上下文的计算和 KV 存储。
Load#
如果多数 token 都路由到一个专家,其他专家闲置,忙碌专家可能排队或溢出。Switch 为专家设置与批量和容量因子相关的容量,并使用辅助损失鼓励均衡。在其 top-1 约定中:
为批内实际分配到专家 的 token 比例, 为该专家路由概率在批内的平均值。这里 统计实际分配比例, 统计路由器给出的软概率,不能混为同一个量。均衡时二者均为 ,代入可得该项为 。具体定义见论文式(3)–(6)。
这是鼓励均衡的训练机制,不是对每个输入的严格均匀分配保证。提高容量因子可以缓解溢出,但也可能增加预留内存、填充计算和通信,需与任务损失共同评估。
Boundaries#
专家可能学到分工,但“物理问题一定交给物理专家”只是比喻,不能从架构直接推出。比较 MoE 与稠密模型,应说明匹配的是总参数、激活计算、硬件资源还是训练时间;这些预算不能互换。本文不沿用缺少出处的 CTR、错误率和生成质量提升数字。
组织入口:模型与推理地图。前置:交叉熵解释任务目标;负载均衡辅助目标不能取代预测质量目标。
Revision#
2026-10-12:以明确的门控约定、执行步骤和成本口径替代未经核验的性能数字及不可运行示例;补 Switch top-1 与归一化 top-k 的区别。修订为 AI 候选。
