🧠 图解记忆:路由决定激活专家,省计算不等于省权重与通信;点击图片可查看原图。
MoE(Mixture of Experts)= 把 Transformer 中的 FFN 层替换成"多个专家 + 路由器",每个 Token 只激活少数几个专家。
核心原理(面试必答)
传统 Dense 模型:
输入 → FFN(所有参数都计算)→ 输出
MoE 模型:
输入 → 路由器(Gating) → 选 Top-2 专家 → 只有选中专家参与计算 → 加权求和输出
└─ 专家1(FFN-A) 专家2(FFN-B) ... 专家8(FFN-H)三步流程:
- 路由器打分:
G(x) = Softmax(W·x),为每个 Token 算出各专家的选择概率 - 选 Top-K 专家:一般 K=2(Mixtral 8x7B 激活 2/8;DeepSeek-V3 激活 8/256 个专家路由)
- 加权融合:选中专家的输出乘上门控概率再相加
关键概念
| 概念 | 说明 |
|---|---|
| 总参数量 vs 激活参数量 | DeepSeek-V3:总参数 671B,单 Token 只激活 37B——"总参大、激活少" |
| 路由器(Router/Gating) | 一个小 FFN,决定每个 Token 走哪个专家 |
| 稀疏性 | 不是所有专家都激活,这是省算力的根源 |
| 负载均衡损失 | 辅助 Loss 惩罚"所有 Token 都挤向同一个专家",防止个别专家过载 |
为什么 2026 年大模型都用 MoE?(优势)
- 容量大、知识多:总参数大 → 记住更多知识(效果好)
- 计算省、推理快:激活参数少 → 同预算下 FLOPs 低 50%+,推理成本直降
- 扩展性好:加专家 ≈ 加容量,不必重训整个模型(如 Qwen3-MoE 从 30B 扩到 235B 总参)
挑战与坑(面试加分点)
- 显存占用高:所有专家权重都要加载进显存(DeepSeek-V3 671B 需多机)
- 通信开销:专家并行时 Token 要跨卡转发(All-to-All),专家数越多通信越重
- 负载不均衡:热门专家被反复选中,需要 Auxiliary Loss 平衡
- 微调更脆弱:MoE 微调容易过拟合路由偏好,LoRA 微调需同时冻结/约束路由
面试话术:
"MoE 的核心是'总参数大、激活参数少'——用路由器给每个 Token 挑 Top-2 专家,其余专家不计算。DeepSeek-V3 总参 671B 但单 Token 只激活 37B,效果接近稠密大模型、成本只有几分之一。但代价是显存和通信:专家全量驻留显存、跨卡通信是瓶颈,所以训练部署都比稠密模型更依赖集群设计。"
