混合专家模型 MoE 是什么?参数很多但每次只用一小部分
混合专家模型(Mixture of Experts,MoE)是一种机器学习技术,它使用多个“专家”网络来分别处理问题的不同部分。在大语言模型中,它的核心优势是:可以让模型拥有非常多的参数,但处理每个 token 时只激活其中的一小部分,因此能在相同的计算成本下获得更大、更强的模型。
从一个想法到大模型的主流架构
混合专家的思想很早就出现了:1991 年,Robert Jacobs、Michael Jordan、Geoffrey Hinton 等人发表了题为《局部专家的自适应混合》的论文,提出让多个专家网络各自负责输入空间的一部分,再由一个门控网络决定使用哪个专家。2017 年,谷歌的 Noam Shazeer 等人提出了“稀疏门控的混合专家层”,把它用在了非常大的神经网络中。此后,谷歌的 GShard、Switch Transformer 等工作把 MoE 引入了 Transformer。2023 年底,Mistral AI 发布的开源模型 Mixtral 8x7B 让 MoE 广为人知。如今,DeepSeek-V3、Qwen3 的部分版本、Llama 4 等众多大模型都采用了 MoE 架构,一些闭源的大型模型也被普遍认为使用了 MoE。
它是怎么工作的
在 Transformer 中,MoE 通常用来替换每一层中的前馈网络部分,主要由两个部分组成:一组专家,每个专家本身就是一个前馈网络,一个 MoE 层可能有 8 个、64 个甚至几百个专家;以及一个门控网络,也叫路由器,它会为每个 token 计算各个专家的得分,选出得分最高的少数几个专家,比如 2 个或 8 个,只让这几个专家来处理这个 token,再把它们的输出按得分加权合并。
这就带来了两个不同的参数概念:总参数量和激活参数量。比如 DeepSeek-V3 的总参数约为 6710 亿,但每个 token 只激活约 370 亿参数。总参数量决定了模型能“装下”多少知识,激活参数量则决定了每次计算的成本。这就像一家大医院有很多科室和专家,但每个病人只需要看其中一两个科室。
优点和挑战
优点:在相同的计算预算下,MoE 模型可以训练得更大、学得更快,在预训练阶段通常比同样计算量的稠密模型更快地达到相同的质量;推理时每个 token 的计算量也较小。
挑战:负载不均衡,路由器可能总是偏爱少数几个专家,导致其他专家得不到训练、计算资源也被浪费,通常需要加入辅助的负载均衡损失或其他平衡机制,DeepSeek-V3 就提出了一种不使用辅助损失的负载均衡方法;显存占用大,虽然每次只计算部分专家,但所有专家的参数都要放在内存里;分布式训练和推理时,专家分布在不同的设备上,需要大量的通信;以及微调时更容易出现不稳定。DeepSeek 还提出了细粒度专家和共享专家的设计,进一步提升了专家的分工和效率。