什么是混合专家 (MoE)?现代 LLMs 背后的架构
- Aisha Washington

- 6月5日
- 讀畢需時 4 分鐘
专家混合 MoE AI 是一种神经网络架构,它将计算分配到多个称为专家的专用子网络中。一个轻量级的门控网络选择哪些专家处理每个输入令牌。只有一小部分在任何时刻激活。这种选择性路由将 MoE 与传统的密集模型区分开来,后者对每个令牌使用所有参数。
这种设计之所以受到关注,是因为它允许总参数量达到数百亿,而推理成本却与小得多的模型相当。Mixtral 8x7B 和 GPT-4 的多个版本都采用了这种模式。理解其机制有助于评估关于模型规模和效率的说法。
关键要点
专家混合 MoE AI 用多个较小的专家网络加上一个路由器来取代单一的大型前馈网络,路由器负责挑选合适的子集。
稀疏激活意味着每个令牌只由固定数量的专家处理,因此即使总参数量增长,每个令牌的计算量也大致保持不变。
Mixtral 8x7B 等模型表明,MoE 版本在基准测试中可以达到或超过密集基线,同时在推理期间使用相似的活跃参数。
训练比密集训练更复杂,因为专家之间的负载均衡和路由器稳定性需要额外的技术。
这种架构同时出现在开放模型和专有系统中,表明该方法已从研究进入生产级大语言模型。
专家混合定义
专家混合模型包含一组专家子网络和一个门控函数。门控函数接收与专家相同的输入,并输出专家池上的概率分布。只有得分最高的 top-k 个专家接收输入并对输出做出贡献。其他所有专家对该令牌保持非激活状态。
核心属性包括模块化、稀疏性和条件计算。模块化体现在每个专家可以专门处理不同的数据模式或任务类型。稀疏性体现在每个令牌的活跃参数比例保持较低。条件计算体现在活跃专家集合随每个令牌而变化。
这些属性将 MoE 模型与密集 transformer 区分开来。在密集模型中,每个权重都参与每次前向传播。在 MoE 模型中,大多数权重对任何给定令牌都保持空闲。结果是在大致恒定的每令牌计算量下获得更高的总容量。
专家混合的工作原理
该架构分解为三层:路由器、专家池和输出组合步骤。
路由器网络 - 选择专家
路由器是一个小型线性层或浅层 MLP,将输入隐藏状态映射到专家分数向量。softmax 将分数转换为概率。然后系统根据这些概率选择 top-k 个专家。典型值是 k 等于 1 或 2,即使专家总数达到八个或更多。
专家网络 - 专用计算
每个专家通常是一个前馈网络,其结构与标准 transformer 块中的逐位置 FFN 相同。由于专家比单个大型 FFN 更小,模型可以在训练期间不超出内存预算的情况下维护多个专家。训练过程中,不同专家从不同的数据分布接收梯度,从而产生专业化。
输出组合 - 加权求和
所选专家的输出乘以其路由器概率后相加。这产生 MoE 层的最终贡献。transformer 块的其余部分(包括注意力)保持不变。
稀疏激活使活跃参数数量保持较低。一个拥有 8 个专家、每个专家大小与 7B 参数 FFN 匹配的模型,在 k 等于 1 时仍激活大约相当于 7B 模型的计算量。其余专家仍保留在内存中,但不参与该令牌的矩阵乘法。
通过示例解释专家混合
Mixtral 8x7B 每层包含八个专家,每个令牌激活两个。因此推理期间的活跃参数量与 12-13B 密集模型相似,但总参数量超过 46B。在标准基准测试中,该模型在多个类别中优于 Llama 2 70B,同时在生成时使用更少的内存带宽。
据广泛报道,GPT-4 使用 MoE 设计,拥有更多专家和更高的总参数量。公开细节仍然有限,但高总容量与受控推理成本相结合的模式符合同一原理。其他生产系统如 Google 的 Switch Transformer 和 GLaM 在更大规模上遵循相同结构。
这些模型的共同模式是路由器学会将不同类型的令牌发送到不同的专家。代码令牌可能路由到一组专家,而自然语言令牌路由到其他地方。这种隐式专业化提高了训练期间的样本效率。
实际应用
在开放权重聊天模型中,该设计支持以可管理的成本实现更长上下文。用户可以在本地或适度云 GPU 上运行 Mixtral 8x7B,因为活跃内存使用量接近密集 13B 模型。部署内部助手的公司可以在不按比例增加服务硬件的情况下获得更高的输出质量。
研究扩展定律的研究组使用 MoE 来测试当总参数量超过密集训练变得不切实际的点时,性能是否继续提升。关于 Switch Transformer 的论文表明,当结合辅助负载均衡损失时,超过万亿参数的 MoE 模型可以稳定训练。
关于专家混合 MoE AI 的常见问题
Q: 专家混合 MoE AI 如何与相同总规模的密集模型相比降低推理成本?
A: 只有被选中的专家执行矩阵乘法。路由器成本很小,内存带宽由活跃权重而非总权重决定。因此,生成速度与活跃专家的大小一致。
Q: 专家混合 MoE AI 是否需要特殊硬件?
A: 标准 GPU 即可。高效推理仍受益于跳过零贡献专家的内核,但一旦加载模型权重,该架构本身即可在现有 transformer 运行时上运行。
Q: 训练与密集 transformer 有何不同?
A: 路由器必须与专家一起训练。辅助损失保持专家利用率均衡。没有这些项,某些专家几乎不会收到令牌,也无法学习有用的表示。
Q: 专家混合 MoE AI 可以像密集模型一样进行微调吗?
A: 可以。相同的监督微调和偏好优化流程适用。每个示例仅路由器和活跃专家接收梯度,这实际上可以减少反向传播期间的内存使用。
Q: 如果路由器将每个令牌都发送到同一个专家会怎样?
A: 该专家会收到不成比例的梯度,而其他专家则训练不足。预训练期间会添加负载均衡损失和路由器抖动,以防止崩溃到单个专家。


