模型架构 深入

MoE

别名:混合专家 / Mixture of Experts

用多个专家网络加门控路由,让每个 token 只激活少数专家,平衡参数量与计算量。

更新于 2026/11/08
架构稀疏激活扩展

一句话定义

MoE 把 Transformer 里的 FFN 复制成多个「专家」,再用一个路由网络为每个 token 选择少数几个专家进行计算。模型总参数很大,但单次前向只激活其中一小部分。

为什么需要它

继续堆参数是提升模型能力的直接方式,但稠密模型每增加一份参数,每个 token 的计算量也跟着增加。MoE 把「参数量」和「计算量」拆开:总参数可以扩到很大,而每个 token 只走 top-k 个专家,推理成本主要由激活参数决定。

关键机制

Router

Router 对 token 表示打分,选出 top-k 专家,并输出归一化权重。它的质量决定哪些专家被使用。

Expert

每个专家是一个独立的 FFN;被选中的专家计算 token,未被选中的不参与。

Gating

门控负责权重和负载:路由权重、容量因子、辅助损失都在这一层约束,避免所有 token 挤向同一专家。

加权求和

各专家输出按路由权重合并。

MoE:路由器为每个 token 选择 top-k 个专家

工程代价

  • 总参数占用大量显存,部署时对显存容量要求高。
  • 专家分布在不同设备上时,需要 all-to-all 通信,延迟和带宽成为瓶颈。
  • 路由本身可能不稳定,训练初期容易出现专家塌缩。
  • 微调时专家利用率可能进一步失衡,需要额外监控。

用在哪里

  • 需要把总参数做大、但想控制单 token 计算量的大模型(稀疏 MoE)。
  • 多语言、多任务、多领域混合训练时,让不同专家形成分工。
  • 显存和互联带宽充足的集群;单机小模型通常不值得引入路由和通信开销。

常见误区

  • 总参数不等于激活参数:宣传的参数量通常指总参数。
  • MoE 不是「多个模型集成」,所有专家共享同一套注意力和其他层。
  • 专家多不代表每个 token 都用得上,路由质量决定实际收益。

相关概念

  • FFN:被专家化的子层。
  • Transformer:MoE 的宿主架构。
  • 量化:降低 MoE 部署显存压力的常见手段。