定义

混合专家模型(Mixture of Experts,简称 MoE)是一种神经网络结构:它把模型中的某些层拆分成多个并列的子网络,称为“专家”(Expert),再由一个“路由器”(Router,也叫门控网络)决定每个输入应该交给哪几个专家处理。

关键在于“稀疏激活”:模型的总参数量可以很大,但处理每个 Token 时只有一小部分专家参与计算。因此,MoE 模型常用两个数字来描述:总参数量和激活参数量。前者决定模型能容纳多少知识,后者决定每次推理的计算成本。

MoE 的思想很早就已提出,近年来随着大语言模型规模不断扩大,它成为在有限算力下继续提升模型能力的重要路线。

工作原理

在基于 Transformer 的大语言模型中,MoE 通常用来替换每层(或部分层)中的前馈网络:

  1. 路由打分。 当一个 Token 进入 MoE 层时,路由器根据它的表示,给每个专家打一个分数。
  2. 选择专家。 只选出分数最高的少数几个专家(常称为 Top-k 路由),其余专家这一次不参与计算。
  3. 加权合并。 被选中的专家分别处理这个 Token,输出按路由分数加权相加,作为该层的结果。

由于不同 Token 会被分配给不同专家,专家在训练过程中会逐渐形成一定的分工。不过,这种分工通常不像“数学专家”“语言专家”那样直观,更多是对某些模式或 Token 类型的偏好。

MoE 在工程上需要处理几个难点:

负载均衡。 如果路由器总是偏爱少数几个专家,其他专家得不到训练,计算资源也分配不均。训练时通常会加入辅助损失或其他机制,鼓励 Token 较均匀地分配到各个专家。

显存占用。 虽然每次只激活部分专家,但所有专家的参数通常都需要加载到内存中,所以 MoE 模型对显存总量的要求依然由总参数量决定。

分布式通信。 大规模 MoE 常把不同专家放在不同设备上,Token 需要在设备之间传递,通信开销和调度策略会显著影响训练与推理效率。

训练稳定性。 路由的离散选择让训练更容易出现不稳定,需要额外的技巧来控制。

典型应用

  • 大规模语言模型:在控制单次推理成本的前提下扩大总参数量,提升模型能力。
  • 多语言与多任务模型:不同专家可以适应不同语言或任务的数据分布。
  • 高吞吐推理服务:在相同计算预算下,以较大的模型容量服务更多请求。

相关概念

  • Transformer:MoE 通常作为其前馈层的替代结构。
  • 大语言模型:MoE 是扩展其规模的主要技术路线之一。
  • 稠密模型:每次推理都使用全部参数的模型,与稀疏的 MoE 相对。
  • 量化:常用于缓解 MoE 模型总参数量大带来的显存压力。

参考论文:Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer、Switch Transformers