What is 混合专家模型(Mixture of Experts)?
一种神经网络架构,将每个输入路由到一部分专门的子网络(专家),从而在不成比例增加计算成本的情况下实现更大的模型容量。
Definition
混合专家模型(MoE)是一种模型架构,其中网络被划分为多个专门的子网络(称为专家),以及一个门控机制(路由器)来选择哪些专家处理每个输入 token。MoE 模型并非对每个输入激活所有参数,而是每次前向传播只激活总参数的一小部分——通常从 8 个或 16 个专家中选择 2 个。这种稀疏激活模式使 MoE 模型可以拥有更大的总参数量(从而拥有更大的知识容量),同时将每个 token 的计算成本保持在与小得多的密集模型相当的水平。
最著名的 MoE 语言模型是 Mistral AI 的 Mixtral 8x7B,它在每个 Transformer 层中包含 8 个专家前馈网络。对于每个 token,路由器选择排名前 2 的专家,这意味着模型 470 亿总参数中只有约 130 亿参数处于活跃状态。这使得 Mixtral 拥有 470 亿参数模型的知识容量,同 时具有 130 亿参数模型的推理速度——这是一个极具吸引力的权衡。
MoE 架构自 1990 年代以来就被探索,但随着现代大语言模型的规模化而获得了实际意义。Google 的 Switch Transformer 和 GLaM 模型证明了 MoE 可以扩展到万亿级参数,而 Mixtral 等开源实现证明 MoE 模型可以匹配甚至超越计算成本相近的密集模型。该架构现已被前沿实验室广泛采用,据传 GPT-4 也使用了 MoE 设计。
Why It Matters
随着语言模型的扩展,密集架构的计算成本变得令人望而却步。将密集模型的参数量翻倍,训练和推理成本大约也会翻倍。MoE 打破了这种关系,使参数量可以独立于计算成本进行扩展。这使得构建具有巨大知识容量的模型成为可能——这对多语言、多领域应用非常重要——而无需按比例增加 GPU 集群的规模。
对于从业者来说,MoE 模型在推理时提供了更好的质量成本比。Mixtral 8x7B 模型在许多基准测试中优于 Llama 2 70B,同时运行成本显著更低。这种成本性能优势使 MoE 模型特别适合生产部署,因为推理成本直接影响盈利能力。
How It Works
在每个 MoE Transformer 层中,标准前馈网络(FFN)被 N 个并行的专家 FFN 和一个门控网络所替代。门控网络以每个 token 的隐藏状态作为输入,输出 N 个专家的概率分布。选择门控分数最高的 top-k 个专家(通常 k=2),并根据门控分数将其输出进行加权求和。
训练 MoE 模型需要仔细的负载均衡,以防止专家坍缩——即路由器学会将所有 token 发送给少数几个专家,而其余专家未被训练的失败模式。辅助负载均衡损失鼓励路由器在专家之间均匀分配 token。在推理过程中,高效的 MoE 实现使用专门的内核将 token 路由到选定的专家,而不会在未激活的专家上浪费计算资源,从而实现接近线性的加速效果。
Example Use Case
一个多语言内容平台部署了 Mixtral 8x7B 来处理 12 种语言的客户查询。MoE 架构在训练过程中自然发展出语言专门化的专家——某些专家主要在罗曼语族语言上激活,另一些则在日耳曼语或亚洲语言上激活。这种隐式的专门化使得在保持与 130 亿参数密集模型相当推理成本的同时,提供了更好的多语言性能,并且 470 亿的总参数量确保了所有支持语言的充足知识容量。
Key Takeaways
- MoE 模型使用路由器在每次输入时只激活一部分专家子网络,从而降低计算成本。
- 总参数量可以是每个 token 活跃参数量的 3 到 8 倍。
- 在同等计算预算下,MoE 比密集模型实现更好的质量成本比。
- 训练期间的负载均衡可防止某些专家未被使用的专家坍缩问题。
- Mixtral 8x7B 等模型展示了 MoE 在开源大语言模型部署中的可行性。
How Ertas Helps
Ertas Studio 支持微调 Mixtral 等 MoE 架构模型,并针对更大的总参数量优化了内存管理。从 MoE 微调运行导出的 GGUF 文件保留了稀疏路由结构,以实现高效的本地推理。
Related Resources
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.