Q1: MoE 架构和 dense 架构有什么区别?
一个 transformer block 主要包括两个部分:attention 模块和 FFN。对于 dense 模型而言, FFN 是对于每一个输入,整个 FFN 的所有参数都会被激活和用于计算(这就像一个公司只有一个部门,所有的任务都由这个部门来完成,计算负担很重)。但是对于 MoE 模型而言,FFN 被替换为 ==MoE 模块==。
MoE 模块包括两个部分:
- 多个并行的、规模更小的 FFN,我们称之为“专家”(Experts)。
- 一个路由网络(Router) ,负责动态地为每个输入的 Token 选择激活一个或少数几个最相关的专家。
Router 的结构是 ==FFN + softmax==。

Q2: MoE 模型有什么优点?为啥要用 MoE 架构?
主要由两个方面:
-
MoE 架构解耦了==模型的参数量和推理的计算量==。对于 dense 架构而言,为了提升模型能力,增加模型的参数量(scaling law) ,但是必然会导致推理的计算量(cost) 同步增加。但是对于 MoE 架构而言,可以通过==增加“专家”的数量==来扩展模型的总参数量(比如达到 T 参数量级),但处理每个 Token 时,实际计算时激活参数量只取决于被选中的那几个专家。
- 这意味着我们可以在保持单个 Token 计算成本相对较低的同时,拥有一个参数规模非常庞大的模型。这对于训练和推理效率是巨大的优势。
- 目前规模比较大的 LLM 基本上都是 MoE 架构。比如说 Kimi K2,DeepSeek V3,GLM-4.5 系列模型。
-
对于 Transformer 架构来说,一般认为事实性知识 factual knowledge 主要存储在 ==FFN==里面。我们将一个完整的 FFN 替换为几个更小的 FFN(专家 experts)。随着训练,不同的 experts 会擅长不同的领域。比如说有的擅长 coding,有的擅长文学。因为我们将 FFN 拆开,我们就可以通过增加 expert 的数量来扩大总参数,存储更多的知识,同时保持激活参数量不变,从而可以控制计算量和成本。
Q3: MoE 模型中的负载均衡问题
给 token 分配专家的时候,可能某些专家被过度选择,有的专家训练不充分。这就是 expert load balance 问题。解决这个问题的方法有:
-
load balance loss
- 在模型的主要任务损失(如语言建模的交叉熵损失)之外,额外增加一个辅助损失项,专门用于惩罚不均衡的路由决策,从而鼓励 Router 将 token 更均匀地分配给所有专家。但可能会干扰模型的主要学习任务,损害最终性能
-
loss-free bias balance
- 在 Router 计算出 softmax 分数以后,进行 Top-K 选择前,为每个专家的分数添加一个 bias 偏置项。
- bias 会根据负载情况进行调整:如果一个专家被过度使用,bias 减小,使其在后续路由中被选中的概率减小;反之,如果一个专家被闲置,其 bias 会增加,从而提高其被选中的机会。
- DeepSeek-V3 模型就采用了这种策略。
Q4: DeepSeekMoE 的改进
-
fine-grained expert: 把 expert 做得更小。基本上 64 ~ 32 >> 8 expert
-
shared expert: 路由的时候,某些专家一定会被选择。也就是上图 2 中绿色的固定选择的专家。share expert 中可能会存储一些通用性的知识。
Reference
- https://www.bilibili.com/video/BV1vThYz1Ef7/?vd_source=a0165af1716ad2eedb9044bb40bad409
- https://www.youtube.com/watch?v=sOPDGQjFcuM
- https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-mixture-of-experts
- Mixture of Experts in Large Language Models
- A Survey on Mixture of Experts in Large Language Models
- ST-MOE: DESIGNING STABLE AND TRANSFERABLE SPARSE EXPERT MODELS
- OLMoE: Open Mixture-of-Experts Language Models
- DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models
- Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于