混合专家模型 MoE:用稀疏激活放大参数规模

什么是 MoE

混合专家模型(Mixture of Experts, MoE)是一种通过条件计算(conditional computation)放大参数规模的神经网络架构。传统稠密模型对每个输入复用全部参数,而 MoE 把部分前馈层替换为由多个「专家」子网络组成的集合,并由一个门控网络(router/gating)为每个 token 动态挑选少数专家参与计算。结果就是「总参数巨大、每次只激活一小部分」,从而在不成比例增加计算量的前提下显著提升模型容量。这一思想在 Shazeer 等人 2017 年的《Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer》(arXiv:1701.06538)中得到系统性实现,其 MoE 层堆叠于 LSTM 之间,最多可达 1370 亿参数。

专家与路由机制

MoE 的关键组件是门控网络。给定一个输入 token 的隐状态 x,router 输出对每个专家的权重(通常经 softmax),再按权重排序取 Top-k 个专家,将它们的输出加权求和:

logits = router(x)              # 对每个专家打分的线性层
probs  = softmax(logits)
topk   = argtopk(probs, k=2)    # 例如 Mixtral 选 2 个
y = sum_i_in_topk probs[i] * Expert_i(x)

早期稀疏门控 MoE 常用带噪声的 Top-k 路由(k 可为个位数);Switch Transformer 进一步把 k 简化为 1(Top-1),即每个 token 只发给得分最高的单个专家,名为 Switch routing,既降低路由计算又减少通信量。路由可能导致的负载不均衡问题,通常用辅助负载均衡损失(auxiliary load-balancing loss)来缓解。

代表性工作

Switch Transformer(Fedus、Zoph、Shazeer,arXiv:2101.03961)基于 T5 改造,把 MoE 路由简化为 Top-1,并在相同算力下取得最高约 7 倍的预训练加速,还将语言模型规模推到万亿参数,相比 T5-XXL 有约 4 倍加速。

DeepSeekMoE(Dai 等人,arXiv:2401.06066)提出两条提升专家专业化的策略:其一,把专家细粒度切分(fine-grained expert segmentation),将 N 个专家细分为 mN 个、激活其中 mK 个,使激活专家的组合更灵活;其二,隔离出 Ks 个共享专家(shared experts)以承载通用知识、降低路由专家间的冗余。论文显示 DeepSeekMoE 16B 以约 40% 的计算量达到 LLaMA2 7B 的水平,145B 版本仅用 28.5%(甚至 18.2%)的计算量即可比肩 DeepSeek 67B。

Mixtral 8x7B(Mistral AI,2023 年 12 月 11 日发布,Apache 2.0)是一个 decoder-only 的稀疏 MoE 模型:每层对每个 token,router 从 8 个专家中选出 2 个处理。其总参数约 467 亿,但每个 token 仅激活约 129 亿参数,推理速度与成本相当于一个 129 亿参数的稠密模型,同时在多数基准上超过 Llama 2 70B 且推理快约 6 倍,上下文长度 32k。

与稠密模型对比

维度稠密模型MoE 模型
参数利用全部参数参与每个 token每个 token 仅激活少数专家
同等算力下容量受限可放大数倍到数十倍
推理成本随参数线性增长约等于激活参数量
显存与存储参数量即推理量需容纳全部专家权重

核心优势是:在固定推理算力预算下,MoE 能用更大的总参数换取更高能力;代价是显存要装下所有专家,且训练与路由的工程复杂度更高。

训练与推理要点

训练方面,MoE 对路由不稳定较敏感,常用技巧包括小批量内 Top-k 的路由、负载均衡辅助损失,以及 Switch Transformer 中验证过的 bfloat16 低精度训练。推理方面,尽管总参数庞大,实际计算量由激活专家数决定,因此可用专家并行(expert parallelism)把不同专家放到不同设备,并配合高效 CUDA 核(如 Megablocks)来降低通信开销。需要留意的是,批大小较大时才能充分发挥 MoE 的吞吐优势。

局限

MoE 并非免费午餐:第一,存储与显存压力,因为全部专家权重都要常驻;第二,路由负载不均可能导致部分专家长期闲置(专家坍缩);第三,微调时小数据下 MoE 往往不如同等激活量的稠密模型稳定;第四,分布式训练通信成本较高。理解这些边界,才能在与稠密模型之间做出合理取舍。

小结

MoE 用「稀疏激活」打破了参数规模与推理算力的线性绑定:门控网络为每个 token 选择少数专家,使模型在巨大总参数下仍保持高效推理。从稀疏门控 MoE、Switch 的 Top-1 简化,到 DeepSeekMoE 的细粒度与共享专家、Mixtral 8x7B 的 8 选 2 实践,MoE 已成为大模型扩容的主流路线之一,但其显存占用与路由均衡仍是落地时必须权衡的代价。

参考与延伸阅读

本文累计阅读