MoE(Mixture of Experts,混合专家模型)是一种模型架构,它通过组合多个子模型(即“专家”)来提高模型的预测性能和效率。每个子模型专门处理输入空间的一个子集,而一个门控网络决定每个数据应该由哪个模型进行训练,以减少不同样本类型之间的干扰。这种架构能够在不损失性能的情况下,显著降低训练和推理的资源成本。
MoE模型支持用较少的算力预训练大模型,这意味着可以在有限的算力预算下训练出比稠密模型大得多的稀疏模型,或者在更大的数据集上进行训练。门控网络的存在使得MoE能够实现动态适应性,根据输入数据的不同,模型可以自动调整专家模型的使用。
在实际应用中,MoE已经证明具有显著的优势。例如,昆仑万维发布的搭载新版MoE架构的大语言模型"天工2.0"和"天工3.0",展示了MoE在处理大量文本数据方面的强大能力。Google提出的Switch Transformer,作为MoE的一个实例,在预训练任务上显示出比T5-XXL模型更高的样本效率。
MoE模型架构的具体工作原理基于两个核心组件:GateNet和Experts。GateNet的作用是判定输入样本应该由哪个专家模型接管处理,而Experts则构成了一组相对独立的子网络,每个子网络被称为"专家"。在MoE架构中,FFN层被分解为多个“专家”,每个专家实际上是FFN参数的一个子集,这些专家可以根据其特定的功能被设计成处理不同类型的输入或特征。此外,MoE模型还包括Sparse MOE Layers,这是用来替换transformer结构中的FFN层的,其中每个专家也是一个单独的Neural Network。Gate / Router则决定了token会进入哪个专家塔中。