一句话定义
混合专家(Mixture-of-Experts,MoE)把每层前馈网络复制为多个「专家」,由路由器为每个词元动态选择少数几个参与计算——参数总量可以做得极大,而单个词元的计算量保持不变。
为什么重要
MoE 是稠密 Scaling Law 之外最重要的规模化路径:在同等推理成本下获得更大有效参数。2023 年以来多个开源与闭源旗舰模型采用 MoE,使其从冷门技术变成主流选项;理解路由、负载均衡与稀疏激活,是读懂当代旗舰模型架构章节的门票。
前置知识
核心概念
- 专家(Expert):层内并行的多个 FFN 分支,数量常为 8 至数百(量级随模型而异)。
- 路由器(Router/Gating):小网络按词元打分,选出 top-k 个专家(k 常为 1 或 2)。
- 稀疏激活:任一词元只触发少数专家,「总参数大、激活参数小」。
- 负载均衡损失:辅助损失防止路由塌缩到少数专家,是 MoE 训练成败的关键。
- 专家并行(Expert Parallelism):把不同专家分布到不同设备,是 kp-008 并行体系的扩展。
- 共享专家(Shared Expert):部分模型让所有词元都经过一个公共专家,承载通用知识。
原理与机制
稠密模型每个词元经过同一 FFN,参数与计算同比例增长;MoE 用「条件计算」解耦二者:路由器输出各专家的打分,只让 top-k 参与并按打分加权合并。难点在训练:路由是离散选择、不可导,需用打分的 softmax 间接训练;同时专家负载极易失衡(强者愈强),需负载均衡损失或容量因子丢弃策略约束。结果上,MoE 模型常呈现「知识容量大但参数效率略低、对微调更敏感」的特质。
公式或模型
MoE 层输出(top-k 路由):
y = Σ_{i ∈ topk(g(x))} g_i(x) · Expert_i(x) , g(x) = softmax(W_g · x)
辅助负载均衡损失鼓励 Σ批内各专家权重接近均匀
辅助负载均衡损失鼓励 Σ批内各专家权重接近均匀
图示
词元 x ─▶ 路由器 g(x): [0.6, 0.3, 0.05, 0.05, ...]
│ 选中 Expert1(0.6) 与 Expert2(0.3)
▼
0.6·E1(x) + 0.3·E2(x) → 输出 (其余专家未被激活)
直观类比
像「医院分诊」:患者(词元)到分诊台(路由器),只被送去两三个相关科室(专家),而不是全体医生都看一遍——医院可以雇几百名专家(总参数大),但单个患者只占用两个医生的工时(激活参数小)。分诊台必须确保各科室工作量均衡,否则热门科室爆满、冷门科室闲置(负载均衡问题)。
实例或案例
Switch Transformers(2022)证明 top-1 路由即可有效扩展;Mixtral(2024)以 8 选 2 的 MoE 在开源许可下达到当时同尺寸稠密模型之上的效果,带动 MoE 开源化;此后多个旗舰闭源模型亦被广泛推测采用 MoE(具体配置以官方披露为准,属时效信息)。
常见误区
- 「MoE 模型总参数等于计算成本」:推理时每词元只用激活参数,显存才与总参数相关。
- 「专家 = 按学科分工」:可解释性研究显示专家分工是弥散的,并非「数学专家管数学」。
- 「MoE 一定比稠密省」:显存占用更高、训练更难均衡;省的是计算,不省显存与工程复杂度。
与其他知识点的关系
自测题
- MoE 如何做到「参数大、计算小」?答案要点:路由器为每个词元只激活 top-k 专家,总参数随专家数增长而每词元计算仅随 k 增长。
- 负载均衡损失解决什么问题?答案要点:防止路由塌缩到少数专家,避免容量浪费与训练不稳。
- MoE 与稠密模型相比的三大代价?答案要点:显存占用高(需装下全部专家)、训练复杂(离散路由与均衡)、微调与部署更敏感。
延伸阅读
- Switch Transformers(Fedus 等,2022)
- Mixtral of Experts(Jiang 等,2024)