MoE 混合专家模型:核心知识笔记
2026年4月4日大约 3 分钟
MoE 混合专家模型:核心知识笔记
MoE(Mixture of Experts,混合专家)是在大模型里用「多专家 + 路由」替代整块稠密 FFN 的一类架构。下面从线性层/FFN 基础讲到稠密瓶颈,再落到 MoE。
一、线性层与 FFN
线性层
- 直觉:对输入做加权求和一类变换,参数主要是权重与偏置,训练即调整这些数。
- 局限:单层线性变换表达能力有限,单靠「线性组合」难以拟合图像、语言等强非线性规律。
FFN(前馈网络)
由线性层 + 非线性激活(如 ReLU、Sigmoid、GELU 等)堆叠而成,可近似复杂函数,在 Transformer 里常被称为处理信息的「局部 MLP / 前馈块」。
二、Embedding 与注意力(简述)
| 概念 | 作用 |
|---|---|
| Embedding | 把离散 token 映射成稠密向量,语义相近往往在空间中距离更近,相当于「可学习的数字表示」 |
| Attention | 按上下文动态加权,融合前后文信息(如「爱」在不同语境含义不同),解决长程依赖与语境消歧 |
MoE 主要动的是 FFN 部分;注意力层可以是稠密,也可以与 MoE 组合,视具体模型而定。
三、稠密模型的算力瓶颈
稠密模型(Dense):每一层、每一步大致激活全部参数。
- 现象:无论问题简单还是复杂,都用「全量 FFN」算一遍。
- 后果:推理成本高、显存与算力压力大,常被称为逼近「算力墙」。
- 例子:早期 GPT-3、LLaMA 等主线以稠密堆叠为主。
四、MoE 混合专家架构
核心思想
把原来一整块大 FFN拆成多个小专家网络(experts)。各专家分工由训练学出来,通常不靠人工预先指定任务标签。
示例(量级仅作直观参考):DeepSeek V3 类设计里可达 256 个专家 等规模(具体数字以论文/官方为准)。
路由层(Router)
- 根据当前 token(或隐藏状态)为各专家打分数 / logits。
- 只激活 Top-K 个专家(如 K=8),其余不参与本次计算,节省算力。
- 混合(Mixture):将 Top-K 个专家的输出按路由给出的权重加权求和,得到该 FFN 子层的输出。
共享专家(Shared Expert)
- 不经过与剩余专家相同的 Top-K 竞争路由(或始终选中),每步都参与。
- 常用于承载通用、稳定的能力(如基础语法、标点、广泛常识),缓解纯 Top-K 带来的训练不稳定或「专家塌缩」风险。
效果直觉
- 总参数量可以很大(如笔记中举例 ~144.6B 量级),但每 token 实际参与计算的专家子集远小于全量(如 ~22.2B 激活量级,具体以官方披露为准)。
- 目标:在相近或更好效果下,降低单次推理的有效 FLOPs / 延迟,即「用更多参数换容量,用稀疏激活换单次成本」。
五、小结
| 对比 | 稠密 FFN | MoE FFN |
|---|---|---|
| 激活 | 几乎全部参数每步都算 | 每步只算少数专家 |
| 优点 | 实现简单、行为稳定 | 参数容量大、单次推理可更省 |
| 代价 | 参数一大就算力暴涨 | 路由、负载均衡、显存排布(如专家并行)更复杂 |
理解 MoE:FFN 变「多专家 + 路由 Top-K +(可选)共享专家」,在「总参数量」和「每步计算量」之间做折中。
