什么是专家选择路由(Expert Choice Routing)?一种让专家挑选 token 的稀疏混合专家路由方法
专家选择路由(Expert Choice Routing)是稀疏混合专家(MoE)模型中的一种路由策略:不再由每个 token 挑选得分最高的若干专家,而是由每个专家挑选得分最高的若干 token。arXiv 论文《Mixture-of-Experts with Expert Choice Routing》提出该方法,主张它能让每个专家获得固定的桶容量、实现确定性的负载均衡,并允许不同 token 被路由到数量不等的专家。
专家选择路由(Expert Choice Routing,EC)是稀疏混合专家(Mixture-of-Experts,MoE)模型中的一种路由(门控)策略:它把「谁选谁」的方向反过来——不再由每个 token 用 top-k 函数挑选得分最高的若干专家,而是由每个专家挑选得分最高的若干 token。它要解决的问题是:在参数量大幅增加而单 token 计算量基本不变的前提下,避免因路由不当造成的专家负载失衡,以及由此带来的专家训练不足或过度专门化。
为什么重要
稀疏激活的 MoE 模型允许参数量大幅增长,同时保持给定 token 或给定样本的计算量不变。但路由策略一旦设计得不好,例如出现负载失衡,就会让某些专家训练不足,进而导致专家欠专门化或过专门化。arXiv 论文《Mixture-of-Experts with Expert Choice Routing》指出,此前的工作使用 top-k 函数为每个 token 分配固定数量的专家,而不考虑不同 token 之间的相对重要性。也就是说,无论一个 token 携带的信息量多少,它占用的专家名额都是相同的,这既可能浪费容量,也可能让重要 token 得不到足够的处理。
该论文提出的替代方案是异构混合专家(heterogeneous mixture-of-experts)配合专家选择方法。其直接后果是:每个 token 可以被路由到数量可变的专家,而每个专家拥有固定的桶容量(bucket size)。负载均衡由此成为路由机制本身的结构性结果,而不是靠额外的辅助损失去「劝」出来的。
工作机制
按该论文的描述,专家选择路由的核心做法可以拆成以下几个要点:
- 反转选择方向。传统 token 选择(token-choice)路由中,每个 token 计算自己与各专家的匹配分数,取 top-k 个专家;专家选择路由则对每个专家计算其与所有 token 的匹配分数,由该专家取 top-k 个 token。
- 固定专家桶容量。每个专家被分配固定的桶容量,即最多接收固定数量的 token。这样每个专家处理的 token 数在构造上就是确定的,不依赖输入分布。
- token 获得可变数量的专家。由于是专家单向挑选 token,不同 token 被选中的次数可以不同:重要的 token 可能被多个专家同时处理,不重要的 token 可能一个专家也不进。这正是论文所称「异构」的来源。
- 容量作为外部可调参数。桶容量是路由之外可以设定的量,改变容量即可改变整体激活计算量,而不必改动路由打分本身。
需要说明的是,上述机制描述来自该论文的表述;论文并未主张这套做法在所有 MoE 场景下都优于 token 选择路由,其结论限于论文所报告的实验设置。
典型例子
该论文给出的实验对比对象与结果如下(均为论文自述):
- 在与先前工作 Switch Transformer 的 top-1 门控、GShard 的 top-2 门控相同的计算资源下进行预训练对比,论文报告其方法将训练收敛时间改善 2 倍以上。
- 在相同计算成本下,论文报告其在 GLUE 与 SuperGLUE 基准中选定的 11 个任务上取得更高的微调性能。
- 在更小的激活成本下,论文报告其在 11 个任务中的 7 个上优于 T5 稠密模型。
另一篇 arXiv 论文《Expert-Choice Routing Enables Adaptive Computation in Diffusion Language Models》把专家选择路由用于扩散语言模型(Diffusion Language Models,DLM)。该论文指出,扩散语言模型支持并行、非自回归的文本生成,但已有的扩散语言模型 MoE 沿用了自回归系统中的 token 选择路由,导致负载失衡与计算分配僵化。该论文称,专家选择路由更适合扩散语言模型:它在设计上提供确定性的负载均衡,相比 token 选择路由带来更高的吞吐与更快的收敛。
该论文还利用「专家选择路由的容量可由外部控制」这一性质,提出随去噪步变化的时间步相关专家容量(timestep-dependent expert capacity),即按去噪步骤调整专家分配。其报告称,在匹配 FLOPs 的条件下,把更多容量分配给低掩码率步骤能稳定取得最佳性能;论文给出的机理解释是,低掩码率上下文中的 token 具有高出一个数量级的学习效率,因此把计算集中到这些步骤边际收益最大。此外,该论文称已有的预训练 token 选择扩散语言模型只需替换路由器即可改造为专家选择路由,并在多种下游任务上获得更快的收敛与更高的准确率。这些结论均为该论文的主张,尚未在本词条中独立验证。
边界与常见误解
它不是「更好的 top-k」。专家选择路由改变的是路由的方向与容量约束方式,而不是在原有 top-k 上做微调。它带来的一个直接特性是 token 之间获得的专家数不再相等,这与「每个 token 固定激活 k 个专家」的经典设定是两种不同的计算分配模型。
负载均衡是结构性的,但不是免费的。固定桶容量意味着每个专家处理的 token 数被钉死,失衡问题从机制上被消除;代价是容量本身成为一个需要设定的超参数,容量设得过大或过小都会影响计算效率与模型质量。第二篇论文正是围绕「容量可以随步骤变化」做文章,说明容量取值本身是一个需要研究的设计维度。
结论有适用边界。第一篇论文的加速与性能结论是在其设定的预训练与微调实验、以及与 Switch Transformer top-1、GShard top-2 的对比中得出的;第二篇论文的结论针对扩散语言模型这一特定建模范式。两者都不能直接外推为「专家选择路由在所有 MoE 模型、所有任务上都更优」。论文中出现的具体倍数、任务数量等数字,均只对应论文自身的实验条件。
容易被误解为一种独立的模型架构。它实际上是 MoE 内部的路由/门控组件,替换的是路由器部分;第二篇论文提到已有预训练模型可以只替换路由器完成改造,也侧面说明它处在路由层而非整体架构层。