原文:https://zhuanlan.zhihu.com/p/703653754
一、背景
MoE专家大模型在各个榜单和人工评中测展现出强大的能力,收集了多篇基于专家大模型的论文,了解最新的MoE技术进展。我们从基础的MoE结构开始介绍,然后到顶会论文的MoE改进版,最后到新颖的MMoE、Customized MoE 专家模型结构
二、技术方案
1.基础MoE架构
论文:Rethinking LLM Language Adaptation: A Case Study on Chinese Mixtral:(https://arxiv.org/abs/2403.01851)
Mixtral是一种代表性的稀疏混合专家(SMoE)语言模型,本文在Mixtral-8x7B-v0.1的基础上,通过进一步的预训练和指令微调,提出了中文语言能力提高的Chinese-mixtral和Chinese-mixtral-instruct。在保留原有英语能力的同时,成功地提高了汉语的理解和生成性能。
左图中为transformer结构,主要分成两部分Multi-head Attention 和 FNN(Sparse MoE),其中原始的transformer FNN结构替换为Sparse MoE 的多专家模型结构。右图则为Sparse MoE 的多专家模型详细结构图。
右图中该Sparse MoE 的多专家模型为基础的MoE专家模型,当输入为x,通过gating layer的门控函数做个分类,分类的数量为experts的专家模型数量,这里门控函数输出结果的top2对应的专家模型作为该FNN层的模型结构。
Chinese Mixtral与Chinese-mixtral-instruct模型训练方法
1.使用Mixtral-8x7B-v0.1初始化Chinese-mixtral,并使用20GB通用汉语语料库进行进一步的预训练。
2.Chinese-mixtral-instruct是在Chinese-mixtral基础上构建的,并使用5M中文指令数据进行了进一步的微调所有模型都使用QLoRA方法进行训练,其中
对embedding 和 LM head进行全参数训练
。
实验指标:
Chinese Mixtral与Chinese-mixtral-instruct模型效果
Chinese-Mixtral的性能比Mixtral-8x7B-v0.1稍差。经过指令微调后,Chinese-Mixtral- instruction在Chinese-Mixtral的基础上有了明显的改进,甚至超过了原来的mixtral-8x7b-instruction-v0.1模型
2.混合-蒸馏专家模型
论文:AAAI2024 - MoDE: A Mixture-of-Experts Model with Mutual Distillation among the Experts (https://arxiv.org/abs/2402.00893)
由于MoE专家模型在训练时,每个样本只会挑选少数几个专家模型进行训练。那么MoE的专家在学习分配的子任务时没有使用更多的样本,这反过来又限制了MoE进一步提高泛化能力。
为了有效地解决这个问题,我们提出了一种称为混合-蒸馏-专家(MoDE)的方法,该方法在专家之间进行适度的相互蒸馏,使每个专家能够获得其他专家学习到的更多特征,并对其原始分配的子任务获得更准确的感知,从而提升整体MoE的效果。
图(a)展示了一个通用的MoE网络结构 图(b)说明了两种知识蒸馏方法
在传统的知识蒸馏中,蒸馏的知识来源于模型的logit输出,此外,一些研究提出利用从教师模型层提取的特征来指导学生模型中间层的输出。我们的方法建立了
一个损失函数来鼓励专家之间的知识蒸馏,记作Lkd
。因此,将整体损失函数L定义为L = Ltask + αLkd 。其中,Ltask表示网络自身的损失函数,α为蒸馏强度。
实验效果:
翻译任务效果
我们在翻译任务上评估了我们的方法,特别是IWSLT14英语↔德语(En↔De)和IWSLT17英语↔阿拉伯语(En↔Ar),我们计算这些任务的BLEU分数进行评估。我们的MoDE模型在低资源和富资源翻译任务上的BLEU得分都有轻微的提高,这表明我们提出的方法是有效的。
3. 集成推理专家(MORE)框架
论文:EMNLP 2023: Getting MoRE out of Mixture of Language Model Reasoning Experts (https://arxiv.org/abs/2305.14628)
虽然最近的大型语言模型改进了各种问答(QA)数据集,但单个模型仍然难以泛化需要不同推理能力的问题类型。为了解决这个问题,
我们提出了一个集成推理专家(MORE)框架,它集成了各种专门的语言模型
。
混合推理专家(MORE)框架
我们
训练一个分类器来选择各个不同专家模型结果的最佳答案
。
使用基于特征的随机森林分类器来对每个候选答案进行评分
。我们使用手工设计的特征,包括专家类型、问题特性(例如,问题词、长度和数值存在与否)、答案特性(例如,置信度、长度和与问题、上下文和推理的标记重叠)以及专家间的一致性。
实验效果:
a)Question-Only Routing方法,我们根据问题本身进行路由,不会询问所有四个专家模型结果后,进行分类器来选择答案。
b)Oracle计算方法,对于每一个问题,只要有一个专家模型得到了正确的答案,准确率为1。
c)我们提出的带有随机森林答案选择器的MORE系统在所有数据集上具有最佳的宏观平均精度(57.6),击败了所有专门的QA模型。
4.合并专家模型 (MEO)
论文:EMNLP 2023 :Merging Experts into One: Improving Computational Efficiency of Mixture of Experts (https://arxiv.org/abs/2310.09832)
稀疏混合专家(MoE)通过为每个输入激活一个专家来降低费用,但如果
增加激活的专家数量,其计算量会显著增加,从而限制了其实用性
。我们首先展示了选择多个专家的优点,然后提出了一种计算高效的合并专家到一个方法(MEO),它将计算成本降低到了单个专家的水平。广泛的实验表明,
MEO显着提高了计算效率,与标准MoE相比,浮点运算次数从72.0G减少到28.9G(MEO)
。此外,我们提出了
一个基于token的注意力块,进一步提高了token的MEO的效率和性能
,在GLUE基准测试上,MEO的平均分数为83.3%(MEO)vs. 82.6%(标准MoE)
MEO网络结构
MEO层(近似)
仅消耗单个专家的推理计算量
,无论选择多少个专家。这导致了在增加模型容量以提高效果时,推理成本保持不变。
可为
每个 token、每个序列句子或每个任务选择专家
.我们提出了一种称为将专家合并为一个(MEO)的方法,
其关键思想是利用门控分数来聚合所选专家的参数
。
其中Wk,bk表示第k个专家的权重和偏置,而W^i, b^i 是xi的聚合权重和偏置。MEO的输出由:
yi = σ(Wixi + bi)
我们专门针对token级别的 MEO 进行了优化和增强。公式如下所示
瓶颈层包含下采样权重Wdown、激活函数f和上采样权重Wup,其中减少因子r= 64确保了低额外计算成本。通过在每个标记上单独操作,瓶颈对输入序列x应用标记级别注意力。
实验效果:
就计算效率和性能而言,我们在任务和序列级别仔细比较了我们提出的MEO与MoE。与MoE相比,MEO在实现相当性能的同时显著降低了计算成本。具体来说,与普通前馈层相比,MEO的浮点运算(FLOPs)仅略微增加(即约1%),而MoE的FLOPs增加了约2.53倍,并且句子级别的MEO和MoE都要效果最好。
5.MMoE 与Customized(特定任务)MoE架构
论文:Customizable Combination of Parameter-Efficient Modules for Multi-Task Learning (https://arxiv.org/abs/2312.03248)
背景:Customized Polytropon(C-Poly)方法由蚂蚁集团提出,基于MoE加入特定任务的专家模型,其应用在AntGLM上,10B的参数量模型效果比参数量还大的效果还好。我们先看效果如下所示:
10B的参数量模型效果排名第三,并且比参数量还大的效果还好
该方法结合了
共享专家和特定技能专家
,在模型执行任务时有对应
特定技能的专家模型
与
根据任务选择共享的专家模型联合起来进行预测
。实验结果表明,C-Poly优于完全共享专家模型,在Super-NaturalInstructions和SuperGLUE基准测试中表现出色。
假设有T个任务,对于每个任务数据输入为xt,其中t∈{1, 2,..., T}
MoE-like结构由多个专家Φ={Expert1, Expert2,..., Expert|Φ|}组成,每个Experti可以被视为输入数据xt的函数。C-Poly的主要改进是将适配器模块Φ明确分类为两个单独的部分: