混合专家模型(MoE)是什么?为什么越来越多大模型采用它
浏览开源模型发布信息时,你可能经常看到这样的描述:“总参数量数千亿,激活参数数百亿”。这类模型采用的就是混合专家(Mixture of Experts,MoE)架构。它的核心理念是:模型里有很多“专家”子网络,但每处理一个 Token 时只调用其中少数几个。这样既能用庞大的参数存储更多知识,又不必为每次推理付出全部参数的计算代价。
从稠密模型到稀疏模型
传统的稠密模型中,每个 Token 都要经过所有参数的计算。模型越大,每次推理的计算量就越大。MoE 则把 Transformer 中的前馈层替换成多个并列的专家网络,并增加一个“路由器”:
- Token 进入 MoE 层时,路由器根据它的表示计算每个专家的匹配分数;
- 只选出得分最高的少数专家来处理这个 Token;
- 把这几个专家的输出按权重合并,传给下一层。
因此,一个总参数量很大的 MoE 模型,每个 Token 实际参与计算的参数可能只有一小部分,推理速度接近同等激活参数规模的稠密模型。关于 Transformer 层的基本结构,可回顾 Transformer 架构通俗讲解。
专家真的各有专长吗
“专家”这个名字容易让人误以为每个专家负责一个学科,比如一个管数学、一个管历史。实际上,专家的分工是训练中自发形成的,往往更偏向某些语法模式、Token 类型或局部特征,并不对应人类理解的领域划分。不同的 MoE 设计还会引入共享专家、更细粒度的专家切分等改进,以提升专家利用效率。
MoE 的优势
- 同等计算量下能力更强:总参数多意味着可以容纳更多知识和模式;
- 训练效率高:在相同的计算预算下,MoE 模型往往能达到更好的效果;
- 推理速度快:每个 Token 只激活部分参数,生成速度取决于激活参数而非总参数。
MoE 的代价
显存占用取决于总参数
虽然计算只用到部分专家,但所有专家的权重通常都需要加载到显存或内存中,因为下一个 Token 可能路由到任何专家。所以部署一个 MoE 模型所需的显存,要按总参数量估算,而不是激活参数量。这是很多人选型时容易误判的地方,硬件规划可参考大模型推理 GPU 选型。
训练更复杂
路由器可能出现负载不均衡:少数专家被频繁选中,其他专家几乎闲置。训练时需要额外的均衡机制,工程复杂度比稠密模型高。
分布式部署挑战
专家分布在多张 GPU 上时,Token 需要在设备之间传输,通信开销会影响吞吐。批处理大小、专家并行策略都会显著影响实际性能。
对使用者意味着什么
- 调用 API 时:MoE 通常意味着更好的性价比,你不需要关心内部架构;
- 自部署时:要按总参数准备显存,按激活参数估算速度。量化可以显著降低显存需求,见模型量化详解;
- 本地运行时:内存足够大的设备可以把部分专家放在内存中,速度会受影响,但能跑起来比稠密大模型更大的模型。
小结
MoE 用“总参数大、激活参数小”的设计,在能力与推理成本之间取得了更好的平衡,这也是它被越来越多大模型采用的原因。理解“显存看总参数、速度看激活参数”这一点,就能避免大部分部署选型上的误判。