什么是 混合专家模型?
混合专家模型(Mixture of Experts,MoE)是一种条件计算架构,由可学习或固定的路由策略为每个输入选择部分专家子网络,并组合这些专家的输出。
快速了解
| 全称 | Mixture of Experts (MoE) |
|---|---|
| 创建时间 | 1991 年由 Jacobs 等人提出,2022 年起在 LLM 中流行 |
| 规范文档 | 官方规范 |
工作原理
追踪路由、分发、计算与合并
Router 为每个 Token 状态打分,选择 Top-k Expert,把状态分发给对应 FFN,再按路由权重合并返回结果。[Switch Transformer 论文](https://arxiv.org/html/2101.03961)展示了 Top-1 Routing 和显式 Expert Capacity,但 Top-k、Shared Expert、Dropped Token 与 Auxiliary Loss 都随架构变化。Expert 通常是 Layer 内部子网络,不是可独立调用的领域模型。
让容量与负载策略可观测
按 Layer 和 Batch 记录每个 Expert 的 Assignment、最大/平均负载比、Capacity、被丢弃或重路由 Token、Padding、Router Entropy 与辅助损失贡献。当前 [Megatron Core MoE 文档](https://docs.nvidia.com/megatron-core/developer-guide/latest/api-guide/moe.html)同时支持 Dropless、容量丢弃及多种均衡策略;它们是可选择的实现策略,不是一套通用 MoE 算法。
端到端评测分布式系统
总参数描述存储容量,激活参数只描述部分被选计算路径,两者都不能决定延迟、内存或质量,因为共享层、KV Cache、路由、Token 重排、Padding、Kernel 效率和通信仍会参与。[TensorRT-LLM 专家并行文档](https://nvidia.github.io/TensorRT-LLM/1.1.0rc2/advanced/expert-parallelism.html)区分完整 Expert 放置与 Tensor Parallel 切分。比较 Dense 与 MoE 时必须固定任务、质量门禁、Runtime、拓扑和负载。
主要特点
- 使用条件计算为每个输入激活部分子网络
- 通常替换部分 Transformer FFN,而其他组件保持稠密或共享
- 对批量 Token 路由,按专家分组,执行专家算子,再恢复 Token 顺序
- 区分总参数、激活参数、算术量、内存、延迟和模型质量
- 需要明确负载均衡、溢出、分发、精度和设备放置策略
- 可使用专家并行和跨 Worker 的 All-to-All 类通信
常见用途
- 在限制单 Token 专家路径的同时扩大模型参数容量
- 跨分布式加速器训练稀疏语言或多模态模型
- 研究条件计算与可学习路由
- 在公开架构中组合共享专家与细粒度路由专家
- 在实测内存、延迟、质量和成本目标下部署已验证的稀疏 Checkpoint
示例
Loading code...常见问题
什么是混合专家模型 MoE?
混合专家模型是一种条件计算架构。路由器把每个输入分配给被选中的专家子网络并组合输出。在 Transformer 大模型中,专家通常是部分层内部的前馈模块,而不是彼此独立的端到端模型。
MoE 推理成本只与激活参数量有关吗?
不是。激活参数量描述被选中的权重路径,却没有计入共享层、路由、Token 重排、内存访问、通信、填充、同步和算子效率。应在目标系统上测量端到端延迟、吞吐、内存、质量与成本。
MoE 专家会分别代表不同知识领域吗?
定义上不会保证。专家可能形成不同路由分布或内部特征,也可能互相重叠,或者专门处理人类不可读的模式。给专家贴领域标签需要路由分析和受控质量证据。
什么是专家并行?
专家并行把不同专家放在不同 Worker 上。Token 状态被分发到持有所选专家的 Worker,完成计算后返回并合并。它能减少单设备的专家权重内存,但会引入通信和负载均衡约束。
如何比较 MoE 与稠密模型?
固定 Checkpoint 任务、数据、质量门禁、精度、运行时、硬件拓扑、批处理、并发与序列分布,再报告总参数与激活参数、分片质量、Prefill 和 Decode 性能、延迟分位数、内存、通信、失败率和成本。