新一代MoE架构:专家吞吐速度最高提升2.1倍!
2024年10月21日,来源:量子位
近日,由北京大学和昆仑万维2050研究院联合提出的新型混合专家(MoE)架构——MoE++,在性能和效率方面取得了显著突破。这一架构通过引入“零计算量专家”设计,大幅提升了模型的计算效率和性能表现。
1. MoE++的主要创新点
MoE++的核心创新在于引入了三种“零计算量专家”,分别为Zero专家、Copy专家和Constant专家。这些专家的设计旨在优化计算资源的分配,使模型能够更高效地处理不同复杂度的Token。
– 降低计算成本:MoE++允许每个Token使用可变数量的FFN专家,甚至可以完全跳过当前的MoE层,从而显著降低计算成本。
– 提升性能:通过减少简单Token所需的FFN专家数量,MoE++使更多专家能够专注于复杂的Token,从而释放出更大的性能潜力。
– 零计算量专家的参数极小:这些专家可以在每个GPU上同时部署,避免了分布式FFN专家部署带来的通信开销和负载不均问题。
2. MoE++的具体实现
MoE++通过以下几种方式实现了上述优势:
– Zero专家:输出空向量,将Top-2 MoE++层降级为Top-1 MoE++层,提高模型处理简单Token的灵活性。
– Copy专家:直接将输入作为输出,相当于跳过当前MoE++层,适用于与现有专家匹配较差的Token。
– Constant专家:用可训练的向量替代输入作为输出,通过动态预测替换比例,保持计算开销极小。
此外,MoE++还引入了路由分数残差机制,使Token在选择专家时能够参考前一层的路由路径,从而实现更稳定的专家分配。
3. 实验结果与性能对比
实验结果显示,在0.6B到7B参数规模的大型语言模型(LLMs)上,MoE++在相同模型大小的情况下,相比传统MoE,性能更优,专家吞吐速度提高了1.1到2.1倍。MoE++模型的训练预算也得到了有效扩展,性能与具有2到3倍激活参数的稠密模型相当。
4. 任务级专家负载分布的可视化
研究人员对MoE++模型中的专家负载分布进行了可视化分析,发现了以下几点:
– 专家负载的相关性:不同层之间的专家负载存在相关性,尤其是在相邻层之间。
– 浅层和最后一层的差异:浅层和最后一层的专家分配模式在不同任务之间的差异更大,表明模型主要通过这些层来适应不同任务。
– 任务复杂性的影响:不同任务中每个Token激活的FFN专家数量存在显著差异,且不一定是更简单的任务激活更少的FFN专家。
– Zero专家的高激活率:Zero专家的平均激活次数最高,更简单的任务显示出更高的平均激活次数,这可能作为模型任务难度的一个指标。