GEO

专家混合(MoE)

专家混合(MoE)是一种神经网络架构,其中 LLM 包含许多专门化的"专家"子网络,对于每个输入 token,由一个门控机制只激活其中一小部分,通常是 8 选 2,或 256 选 8,而让其余部分处于闲置状态。该模型表现得像拥有庞大的参数量(容量),却只需付出小得多的模型的推理成本。

专家混合(MoE)是一种神经网络架构,其中 LLM 包含许多专门化的"专家"子网络,对于每个输入 token,由一个门控机制只激活其中一小部分,通常是 8 选 2,或 256 选 8,而让其余部分处于闲置状态。该模型表现得像拥有庞大的参数量(容量),却只需付出小得多的模型的推理成本。

为什么重要

MoE 是现代 LLM 在不让推理成本爆炸的前提下持续变聪明的方式。Mixtral 8×7B、DeepSeek-V3、Grok-2,以及据传 GPT-4 都使用 MoE 来低成本地堆叠容量。一个稠密的 4000 亿参数模型必须在每个 token 上运行全部 4000 亿权重。而一个总参数 4000 亿、但每次只激活 400 亿的 MoE 模型运行速度大约快 10 倍、成本也低约 10 倍,同时保留了额外参数所编码的大部分知识。对于开发者而言,MoE 改变了哪些前沿模型实际上负担得起部署,以及哪些开源选项在大规模下可行。

工作原理

专家:在每个 transformer 块内部,前馈层被替换为 N 个并行的前馈网络("专家")。典型数量为每层 8、16、64 或 256 个专家。

门控网络:一个经过学习的小型路由器决定每个 token 由排名前 k 的哪些专家来处理。k 通常为 1 或 2。

稀疏激活:只有被选中的专家会为该 token 运行其权重。其余专家不参与贡献,因此计算量随 k × 专家规模扩展,而非随专家总数扩展。

负载均衡:训练时的一项损失鼓励路由器将 token 均匀分配,以免某些专家"挨饿"。否则模型会退化为只使用少数几个专家,浪费掉其余的。

聚合:被选中专家的输出按门控分数加权后求和。

总参数 vs 激活参数

每个 MoE 规格都有两个数字:

  • 总参数:完整的模型权重数量(决定显存占用)。
  • 激活参数:每个 token 的计算量(决定推理成本)。

例如:Mixtral 8×7B 总参数约 470 亿,但每个 token 只激活约 130 亿。DeepSeek-V3 总参数 6710 亿,激活 370 亿。这一差距正是 MoE 魔力所在。

为什么有效

不同的专家在训练过程中会隐式地实现专门化。一个专家可能成为"代码"专家,另一个成为"数学"专家,还有一个成为"欧洲语言"专家。路由器学会将合适的 token 发送给合适的专家。这在理念上类似于人类用大脑的不同区域处理不同任务,是对信号的高效路由,而非一个铁板一块的处理过程。

权衡取舍

显存:尽管每个 token 只运行部分专家,但所有专家都驻留在显存中。一个 6710 亿参数的 MoE 仍然需要足以容纳 6710 亿参数的 GPU 显存。

部署复杂度:将 token 路由到特定专家比稠密推理更难并行化。通常需要专门的推理引擎(vLLM、TensorRT、DeepSpeed)。

训练不稳定性:负载均衡、专家坍缩和路由器噪声使得 MoE 训练比稠密训练更为棘手。

通信开销:在分布式训练中,token 到专家的路由需要 GPU 之间的全互连通信。网络会成为瓶颈。

微调难度:MoE 模型更难被有效微调,路由器的动态特性会随新数据发生漂移。

MoE vs 稠密模型

方面稠密模型MoE
每个 token 的计算量全部参数N 个专家中的 k 个
显存占用相对规模较小相对规模较大
推理成本与总参数成正比与激活参数成正比
训练难度标准更难(均衡、路由)
专门化隐式存在于各层显式存在于各专家

经验法则:MoE 在每 token 成本和算力利用率上胜出;稠密模型在显存效率和微调便利性上胜出。

知名 MoE 模型

  • Mixtral 8×7B(Mistral,2023):首个被广泛使用的开源 MoE。总参数 470 亿,激活 130 亿。
  • Mixtral 8×22B(Mistral,2024):更大的变体。
  • DeepSeek-V3 / V3.1 / R1(DeepSeek,2024–2025):总参数 6710 亿,激活 370 亿。极致的 MoE,每层 256 个专家,激活 8 个。
  • Grok-2(xAI,2024):采用 MoE 架构。
  • GPT-4 和 Claude Opus:业界普遍认为其内部使用了 MoE(并非全部都已官方证实)。

Sources: