MOE是什么
MOE:Mixture of Experts,可以简单理解为“问题分类+领域专家”组成的神经网络。如Google 的论文Switch Transformers中提出的一种MOE结构,通过Router进行问题分类,然后选择对应的FFN-专家模型进行问题的后续计算,其网络架构如下:
MOE内部架构
MOE架构,主要包括两个核心组件:GateNet/Router和Experts:
- GateNet/Router :判定输入应该由哪个专家模型接管处理。
- Experts:一组相对独立的专家模型,每个专家负责处理特定的输入子空间。
主流MOE数据计算流程
- 前向传播:与其他神经网络的前向传播一样。
- 门控计算/路由选择:决定上一步计算传入的 token 选择使用哪几个专家模型进行处理。专家选择策略有很多种,如 Sparsely-Gated采用 TopK ;GShard使用 Top-2 ,排名最高的专家,加上按照路由权重随机选择第二个专家;Switch Transformers采用Top-1。
- 专家模型计算:待处理的token传入指定的专家模型,继续进行前向传播。
- 加权聚合:对于使用多专家选择策略计算的架构,需要对每个专家的输出进行加权聚合。
- 反向传播和更新:同其他神经网络的反向传播。
注: 不是所有的MOE架构都按照上述流程进行计算,比如Adaptive Mixtures of Local Experts门控计算和专家模型计算同步进行。
MOE的优点
- 训练速度更快,效果更好: Google的Switch Transformer大模型能够在相同计算资源下,以更快的速度达到相同的PPL,而且模型是T5的15倍;
- 相同参数,推理成本低: DeepSeek的16B MoE大模型,仅在40%的计算量的情况下,性能和LLaMA 2 7B效果比肩。
- 多任务学习能力: MoE在多任务学习中具备很好的能力,Switch Transformer在所有101种语言上都显示出了性能提升,证明了其在多任务学习中的有效性。
- 稀疏性: 不是所有expert都会起作用,而是极少数的expert会被使用来进行推理。这种稀疏性,也使得我们可以使用海量的experts来把模型容量做的超级大。
MOE应用方向
- 多模态:
相关论文:
- Adaptive Mixtures of Local Experts(1991)
- Learning Factored Representations in a Deep Mixture of Experts(2014)
- OUTRAGEOUSLY LARGE NEURAL NETWORKS:THE SPARSELY-GATED MIXTURE-OF-EXPERTS LAYER(2017)
- GSHARD: SCALING GIANT MODELS WITH CONDITIONAL COMPUTATION AND AUTOMATIC SHARDING(2021)
- MoEfication: Transformer Feed-forward Layers are Mixtures of Experts(2022.04)
- Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity(2022.06)
- Mixture-of-Experts Meets Instruction Tuning:A Winning Combination for Large Language Models(2023.07)