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

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


