MoE 混合专家模型全解析
传统密集模型(Dense Model)在推理时需要激活全部参数,导致计算成本随模型规模线性增长。当一个模型拥有万亿参数,但每次推理只激活其中 5%——这不是天方夜谭,而是 Mixture of Experts 正在做的事。从 DeepSeek 到 GPT-4,MoE 正在重新定义大模型的规模与效率的边界。
MoE(Mixture of Experts,混合专家模型)通过一种”按需激活”的机制,让模型总参数量可以很大,但每次推理只调用一小部分——用更少的计算量获得更强的能力。
- 推理时激活的参数比例:5~15%
- 相同计算量下性能提升:2~4倍
- 主流 MoE 模型的专家数量:8~16
- 总参数量可达万亿级别:1T+
什么是 MoE?
MoE(Mixture of Experts)是一种稀疏激活的神经网络架构。它的核心思想非常直观:与其让一个”全能模型”处理所有输入,不如训练多个”专家”,每次只让最合适的几个专家来处理当前的输入。
一个类比:想象一家大型医院。你不会让一个全科医生处理所有病例——心脏问题找心内科专家,骨折找骨科专家,皮肤问题找皮肤科专家。MoE 就是这个思路的神经网络版本:有一个”分诊台”(Router)负责判断当前输入应该交给哪几个”专家”(Expert)处理。

在上图中,输入 token 首先经过 Router(路由网络),Router 计算出每个专家的权重分数,然后选出分数最高的 K 个专家(通常 K=2)来处理这个 token。被选中的专家的输出按权重相加,得到最终结果。其余未被选中的专家完全不参与计算——这就是”稀疏激活”的核心。
MoE 的核心组件
专家网络(Expert Networks)
每个专家通常是一个独立的前馈神经网络(FFN)。在 Transformer 架构中,MoE 层替换了标准 Transformer 中的 FFN 层,将单个 FFN 拆分成多个并行的 FFN。
专家是什么?
- 每个专家是一个结构相同的 FFN(包含两层线性变换和中间的激活函数)
- 不同专家拥有独立的参数,在训练中学习不同的特征表示
- 在训练过程中,专家会自然地”专精”于不同类型的输入模式——有的擅长语法,有的擅长数学,有的擅长多语言

路由器 / 门控网络(Router / Gating Network)
路由器是 MoE 的”大脑”——它决定了每个 token 应该交给哪些专家处理。路由器本身是一个非常轻量的网络,通常只是一个单层线性变换加上 Softmax。
路由器的工作流程:
- 接收当前 token 的隐藏状态x(维度为 d)
- 通过一个线性层W_gate(d × N,N 为专家数量)计算出每个专家的分数
- 对分数取 Softmax,得到每个专家的概率分布
- 选取概率最高的 Top-K 个专家,并使用对应概率作为权重
MoE 的数学原理
门控函数
给定输入 x,门控函数 G(x) 计算每个专家的权重:
$$ G(x) = {Softmax}(x \cdot W_{gate})$$
其中$ W_{gate}\in \mathbb{R} ^ {d\times N}$,输出是一个 N 维概率向量
Top-K 选择
从 G(x) 中选取最大的 K 个值,其余置零。设被选中的专家集合为 T,则最终输出为:
$$y = \sum_{i\in T}{G(x)_i \cdot E_i(x)}$$
其中$E_i(x)$是第i个专家的输出,$G(x)_i$是对应的门控权重
关键理解:只有 K 个专家参与计算,其余 N-K 个专家的$E_i(x)$根本不会被调用。如果 N=8、K=2,那么每次推理只需计算 2/8 = 25% 的专家参数,但模型的总知识储备是全部 8 个专家的总和。
负载均衡损失(Load Balancing Loss)
MoE 训练中一个关键问题是专家负载不均——如果路由器总是偏好某几个专家,其余专家就得不到训练,变成”死专家”。为了解决这个问题,训练时引入了一个辅助损失函数,鼓励路由器更均匀地分配 token:
$$L_{aux} = \alpha \cdot N \cdot \sum_{i=1}^{N} f_i \cdot P_i$$
$f_i$ = 每个专家被选中的 token 比例 | $P_i$ = 每个专家的平均门控概率 | $\alpha$ = 权重系数
当所有专家均匀分配时,$f_i = 1/N$,$P_i = 1/N$,Laux 达到最小值。这个损失项”推”着路由器不要总是选择同几个专家。
MoE 层的工作流程
- 输入到达:一个 token 的隐藏状态x(维度为 d)进入 MoE 层。在 Transformer 中,这发生在每个 Attention 层之后的 FFN 位置。
- 路由打分:Router 对x 做线性变换并 Softmax,得到 N 个专家各自的”匹配分数”。例如 8 个专家可能得到 [0.05, 0.31, 0.02, 0.18, 0.01, 0.03, 0.37, 0.03]。
- Top-K 选择:从 N 个分数中选出最大的 K 个。上例中 K=2,则选中专家 7(37)和专家 2(0.31),其余 6 个专家被跳过。
- 专家计算:只有被选中的 K 个专家执行 FFN 前向计算,各自产生一个输出向量。未选中的专家零计算开销。
- 加权聚合:将 K 个专家的输出按路由权重加权求和:$ y = 0.37\cdot E_7(x) + 0.31\cdot E_2(x)$(权重通常会重新归一化)。
- 输出传递:聚合后的结果y 继续向后传递,进入下一个 Transformer 层的 Attention。
稀疏 MoE vs 密集模型:核心对比

| 对比维度 | 密集模型(Dense) | MoE 模型(Sparse) |
| 参数总量 | 较小(如 7B、13B) | 更大(如 47B、671B 总参数) |
| 推理计算量 | = 总参数量 | ≈ 总参数 × (K/N),远小于总参数 |
| 知识容量 | 受限于参数量 | 相同计算量下知识容量更大 |
| 显存需求 | 与参数量成正比 | 需加载全部参数(显存更大) |
| 训练效率 | 计算密集 | 相同算力下可训练更大模型 |
| 代表模型 | LLaMA 2 7B、GPT-3 175B | Mixtral 8×7B、DeepSeek-V3 |
注意:MoE 的计算量降低了,但显存需求并没有降低——因为所有专家的参数都需要驻留在显存中(推理时需要随时待命)。这意味着 MoE 模型需要更多的 GPU 显存,但对每张 GPU 的计算能力要求更低。
MoE 发展简史
- 1991,MoE 概念提出— Jacobs 等人首次提出 Mixture of Experts 架构,用于解决多分类问题,是 MoE 的理论起源。
- 2017,稀疏 MoE 引入深度学习— Google 发表论文《Outrageously Large Neural Networks》,将 Top-K 路由的稀疏 MoE 引入 LSTM 和 Transformer,奠定了现代 MoE 的基础。
- 2020-2021,GShard 与 Switch Transformer— Google 推出 GShard(600B 参数)和 Switch Transformer(6T 参数),将 MoK=1 路由做到极致,证明了万亿参数 MoE 的可行性。
- 2022,GLaM 与 ST-MoE— Google 继续优化 MoE 训练稳定性与微调效果,推出 64B 专家、仅激活 8B 的 GLaM 模型。
- 12,Mixtral 8×7B 发布— Mistral AI 推出开源 MoE 模型 Mixtral 8×7B,总参数 47B、激活 13B,性能超越 LLaMA 2 70B,成为开源 MoE 的里程碑。
- 2024,DeepSeek-MoE 与 Qwen-MoE— DeepSeek 推出细粒度专家架构(共享专家 + 路由专家),Qwen 也发布 MoE 版本。MoE 成为中国大模型的主流选择。
- 2024-2025,DeepSeek-V3 / GPT-4 级别— DeepSeek-V3 采用 671B 总参数、37B 激活的 MoE 架构,训练成本仅约 557 万美元,性能比肩 GPT-4o。据多方报道,GPT-4 本身也是 MoE 架构(8×220B)。
- 2025+,MoE 成为标配— 从 LLaMA 4 到 Kimi K2,从 Grok 到 Gemini,几乎所有前沿大模型都转向 MoE 架构。MoE 不再是”可选优化”,而是”默认选择”。
主流 MoE 大模型一览
| 模型 | 总参数 | 激活参数 | 专家数 / 激活数 | 特点 |
| Mixtral 8×7B | 46.7B | 12.9B | 8 / 2 | 首个现象级开源 MoE,性能超越 LLaMA 2 70B |
| DeepSeek-V3 | 671B | 37B | 256 / 8 | 细粒度专家 + 共享专家,训练成本极低 |
| DeepSeek-V2 | 236B | 21B | 160 / 6 | MLA + MoE,推理成本大幅降低 |
| Qwen2.5-MoE | ~14B | ~2.7B | 60 / 4 | 细粒度专家设计,小模型高性能 |
| Grok-1 | 314B | ~86B | 8 / 2 | xAI 开源的超大 MoE 模型 |
| Switch Transformer | 1.6T | ~200B | 2048 / 1 | Google 的开创性工作,Top-1 路由 |
| GPT-4(推测) | ~1.8T | ~220B | 8 / 2 | 据多方报道为 MoE 架构,未官方确认 |
MoE 的关键架构创新
细粒度专家(Fine-Grained Experts)
DeepSeek 提出的创新:将传统的大专家拆分成更多小专家。例如将 8 个大专家拆成 64 个小专家,每次激活 8 个。这样:
- 路由更灵活——不同 token 可以组合出更多种专家搭配
- 知识分布更均匀——减少单个专家”知识瓶颈”
- 实验证明,相同激活参数量下性能更好

共享专家(Shared Experts)
DeepSeek 的另一项创新:在路由专家之外,设置始终激活的共享专家。这些共享专家负责处理通用知识(如语法、常识),路由专家则专注于特定领域知识。
为什么需要共享专家?在纯路由 MoE 中,通用知识被分散到各个路由专家中,造成冗余。共享专家把这些通用能力”抽出来”始终运行,让路由专家更专注于差异化知识——既减少冗余,又提高效率。
MoE 的核心优势
计算效率
相同推理计算量下,MoE 模型的总参数量可以是 Dense 模型的 4-10 倍。这意味着在相同的推理成本下,模型”知道”更多东西。
例:DeepSeek-V3 总参数 671B,但每次推理只计算 37B——计算量相当于一个 37B 的 Dense 模型,但知识容量远超之。
训练效率
相同算力预算下,MoE 可以训练出更大的模型。因为每个 token 只更新 K/N 的专家参数,梯度计算量更小。
例:DeepSeek-V3 训练成本仅约 557 万美元(2048 张 H800 GPU × 2 个月),远低于 GPT-4 的训练成本。
专家专精
不同专家在训练中自然学会处理不同类型的输入。研究表明,某些专家更擅长代码,某些更擅长数学,某些更擅长多语言——实现了天然的模块化能力。
扩展性
MoE 提供了一种”解耦”参数量和计算量的方式。可以通过增加专家数量来扩大模型容量,而不会线性增加推理成本——这为大模型扩展提供了新的维度。
MoE 面临的挑战
显存瓶颈
虽然推理计算量只有 K/N,但所有 N 个专家的参数都需要加载到显存中。一个 671B 的 MoE 模型即使只激活 37B,也需要约 1.3TB 显存(FP16)才能运行——这对硬件提出了极高要求。
计算 vs 显存的矛盾:MoE 用”多存少算”换取效率。计算量降低了,但显存需求反而增加了。这也是为什么 MoE 模型通常需要多卡分布式推理。
负载均衡问题
如果 Router 偏好某几个专家,会导致:
- 部分专家过载:被频繁选中的专家训练充分,但成为计算瓶颈
- 死专家问题:从未被选中的专家得不到训练,浪费参数和显存
- 多 GPU 通信不均:不同 GPU 上的专家负载不均导致等待
解决方案包括辅助损失(负载均衡损失)、容量因子(Capacity Factor)、以及 Expert Choice 等新型路由策略。
通信开销
在多 GPU 分布式训练中,当 token 需要的专家在另一张 GPU 上时,需要跨 GPU 传输数据——这称为 All-to-All 通信。随着专家数量增加,通信开销可能成为瓶颈。

训练不稳定性
MoE 训练比 Dense 模型更容易出现梯度爆炸/消失、损失震荡等问题。原因包括路由决策的离散性、专家间梯度不平衡等。通常需要更精细的学习率调度和初始化策略。
未来展望:MoE 正在走向何方?
- 更深层的 MoE:目前 MoE 主要用于 FFN 层。未来可能在 Attention 层也引入 MoE 机制,实现更全面的稀疏激活。
- 多模态 MoE:不同模态(文本、图像、音频)由不同专家处理,实现更高效的多模态融合与跨模态理解。
- 动态路由:根据输入难度动态调整激活专家数量——简单问题用 1 个专家,复杂问题用更多专家,进一步优化效率。
- 异构专家:不同专家使用不同结构或参数量——有的擅长推理,有的擅长记忆——打破”所有专家结构相同”的限制。
- MoE + 量化:将 MoE 与低比特量化(如 1-bit、4-bit)结合,既减少计算量又减少显存占用,推动端侧部署。
- 专家蒸馏:将大 MoE 模型的知识蒸馏到更小的 Dense 模型中,获得”MoE 的能力 + Dense 的简洁”。
总结
MoE 的本质是一种”以空间换时间”的架构创新——用更多的总参数(更大的显存需求)换取更低的推理计算量(更高的推理效率)。它打破了”模型越大、推理越慢”的线性约束,让万亿参数模型的实际运行成本接近千亿级别。
从 1991 年的理论构想到 2025 年成为大模型标配,MoE 走过了 30 多年。今天,从 DeepSeek 到 GPT-4,从开源到闭源,从通用到多模态——MoE 已经成为大模型架构的核心范式。理解 MoE,就是理解了大模型走向”更大却更快”的底层密码。





