大模型LLM之混合专家模型MoE(上-基础篇)

前言

大模型的发展已经到了一个瓶颈期,包括被业内所诟病的罔顾事实而产生的“幻觉”问题、深层次的逻辑理解能力、数学推理能力等,想要解决这些问题就不得不继续增加模型的复杂度。

随着不同应用场景的实际需求,大模型的参数会变得越来越大,复杂性和规模不断的增加,尤其是在多模态大模型的开发中,每个数据集可能完全不同,有来自文本的数据、图像的数据、语音的数据等,包含不同的模式,特征和标注之间的关系可能也大有不同,这不但增加了训练的难度,也提高了推理的成本,如何将大模型的训练难度和推理成本降低已经是各大研究机构和大厂都在攻克的任务

为了实现大模型的高效训练和推理,有的是从模型底层下手,比如直接改变底层模型架构,将原来的Transformer架构改成近期新出的基于状态空间模型(SSM)的mamba架构;有的是在预训练微调方法上下手,比如论文《大模型免微调的上下文对齐方法》中提到的利用上下文学习(ICL),通过采用少量精心策划的风格示例和精心设计的系统提示,对基础LLMs进行有效对齐的URIAL方法;还有一种方法就是对模型大而化之的处理方法,也就是基于门控网络的混合专家模型(Mixture of Experts:MoE)。

MoE前提

MoE提出的前提是如果有一个包括了多个领域知识的复杂问题,我们该使用什么样的方法来解决呢?最简单的办法就是把各个领域的专家集合到一起来攻克这个任务,当然我们事先要把不同的任务先分离出来,这样才便于分发给不同领域的专家,让他们来帮忙处理,最后再汇总结论。

混合专家模型(Mixture of Experts:MoE)正是基于这样的理念,它由多个专业化的子模型(即“专家”)组合而成,每一个“专家”都在其擅长的领域内做出贡献。而决定哪个“专家”参与解答特定问题的,是一个称为“门控网络”的机制。

思想追溯

混合专家模型(MixtureofExperts:MoE)的思想可以追溯到集成学习,集成学习是通过训练多个模型(基学习器)来解决同一问题,并且将它们的预测结果简单组合(例如投票或平均)。集成学习的主要目标是通过减少过拟合,提高泛化能力,以提高预测性能。常见的集成学习方法包括Bagging,Boosting和Stacking。

集成学习在训练过程中,利用训练数据集训练基学习器,基学习器的算法可以是决策树、SVM、线性回归、KNN等,在推理过程中对于输入的X,在每个基学习器得到相应的答案后将所有结果有机统一起来,例如通过求均值的方法解决数值类问题,通过投票方式解决分类问题。

MoE和集成学习的思想异曲同工,都是集成了多个模型的方法,但它们的实现方式有很大不同。与MoE的最大不同的地方是集成学习不需要将任务分解为子任务,而是将多个基础学习器组合起来。这些基础学习器可以使用相同或不同的算法,并且可以使用相同或不同的训练数据。

集成学习与混合专家模型的区别

MoE模型本身也并不是一个全新的概念,它的理论基础可以追溯到1991年由MichaelJordan和GeoffreyHinton等人提出的论文,距今已经有30多年的历史,但至今依然在被广泛应用的技术。这一理念在被提出来后经常被应用到各类模型的实际场景中,在2017年得到了更进一步的发展,当时,一个由QuocLe,GeoffreyHinton和JeffDean领衔的团队提出了一种新型的MoE层,它通过引入稀疏性来大幅提高模型的规模和效率。

随着应用场景的复杂化和细分化,大模型越来越大,垂直领域应用更加碎片化,想要一个模型既能回答通识问题,又能解决专业领域问题,似乎MoE是一种性价比更高的选择。在多模态大模型的发展浪潮之下,MoE大有可能成为2024年大模型研究的新方向之一,而大模型也会带着MoE,让其再次伟大。

MoE的发展历程

1991年,混合专家模型(MoE)的创始论文《Adaptive Mixtures of Local Experts》由机器学习领域的大牛Michael Jordan和人工智能教父、图灵奖得主Geoffrey Hinton等联合发表。

这篇论文的摘要中提到:We present a new supervised learning procedure for systems composed of many separate networks, each of which learns to handle a subset of the complete set of training cases.

2017年,谷歌首次将MoE引入自然语言处理领域,通过在LSTM层之间增加MoE实现了机器翻译方面的性能提升:

2020年,Gshard首次将MoE技术引入Transformer架构中,并提供了高效的分布式并行计算架构,而后谷歌的Swtich Transformer和GLaM则进一步挖掘MoE技术在自然语言处理领域中的应用潜力,实现了优秀的性能表现。

2021年的V-MoE将MoE架构应用在计算机视觉领域的Transformer架构模型中,同时通过路由算法的改进在相关任务中实现了更高的训练效率和更优秀的性能表现;

2022年的LIMoE是首个应用了稀疏混合专家模型技术的多模态模型,模型性能相较于CLIP 也有所提升。

Mistral AI发布的Mistral 8x7B模型是由70亿参数的小模型组合起来的MoE模型,直接在多个跑分上超过了多达700亿参数的Llama 2。

模型结构

混合专家模型(MoE)是一种稀疏门控制的深度学习模型,它主要由一组专家模型和一个门控模型组成。MoE的基本理念是将输入数据根据任务类型分割成多个区域,并将每个区域的数据分配一个或多个专家模型。每个专家模型可以专注于处理输入这部分数据,从而提高模型的整体性能。

MoE架构的基本原理非常简单明了,它主要包括两个核心组件:GateNet和Experts。GateNet的作用在于判定输入样本应该由哪个专家模型接管处理。而Experts则构成了一组相对独立的专家模型,每个专家负责处理特定的输入子空间。

门控网络:

GateNet:混合专家模型中“门”是一种稀疏门网络,它接收单个数据元素作为输入,然后输出一个权重,这些权重表示每个专家模型对处理输入数据的贡献。一般是通过softmax门控函数通过专家或token对概率分布进行建模,并选择前K个。例如,如果模型有三个专家,输出的概率可能为0.5和0.4、0.1,这意味着第一个专家对处理此数据的贡献为50%,第二个专家为40%,第二个专家为10%,这个时候的K就可以选择为2,我们认为前两个专家模型的建议会更好,可以用于更加精确的回答中,而第三个专家模型的建议可以用于更加富有创意性的答案中。

专家:

Experts:在训练的过程中,输入的数据被门控模型分配到不同的专家模型中进行处理;在推理的过程中,被门控选择的专家会针对输入的数据,产生相应的输出。这些输出最后会和每个专家模型处理该特征的能力分配的权重进行加权组合,形成最终的预测结果。

混合专家模型在训练过程中通过门控模型实现“因材施教”,进而在推理过程中实现专家模型之间的“博采众长”。MoE的专家模型可以是小型的MLP或者复杂的LLM。

MoE模型的稀疏性

为了有效控制稀疏性,主要依赖于门控网络的设计和参数调整。门控网络负责决定哪些专家模型参与处理当前的输入数据。然而,在进行参数选择时需要注意一个权衡:如果门控网络在单次选择中激活了较多的专家模型,虽然这可能提升了模型的表现能力,但却会导致稀疏性的降低。因为更多的专家模型参与计算,这会带来额外的计算复杂性和耗时。

MoE模型的稀疏性存在一种平衡挑战,需要根据具体的应用需求和计算资源限制来调整门控网络的设计和参数。在实际应用中,可以根据不同的场景,灵活地选择专家模型的数量,以在效率和性能之间找到最佳的平衡点。这种个性化的调整能够确保混合专家模型在各种应用中发挥出最佳的优势,为深度学习领域的发展提供更大的灵活性和可塑性。

这里的“门”概念,与LSTM网络的“门”概念有所不同,MoE的“门”概念主要是用于匹配数据和专家模型之间的连接,就好比不同班级的学生要进不同的教室上课一样,而LSTM的“门”概念主要是一种控制信息流动的装置,它可以保留或通过一定比例的数据,更像是在控制流量,而MoE的“门”概念可以看作是选择要通过的对象。

MoE的稀疏性与dropout的原理类似,MoE是根据任务的具体情况选择激活一定数量的专家模型来完成这个任务,而dropout则是对神经网络中的神经元进行随机性失活,每次训练的时候只保留一定的参数,这不但让网络具备了稀疏性特征,减轻了整个网络的参数压力,还会降低模型发生过拟合的概率,提高模型的泛化能力。

微软研究报告

https://www.microsoft.com/en-us/research/blog/deepspeed-advancing-moe-inference-and-training-to-power-next-generation-ai-scale/

在多场景多任务预估下,由于场景间的数据存在分布差异,该如何更好的利用不同场景之间的共性,并避免不同场景数据差异所带来的影响,混合专家模型已经成为一种有效的解决方案,下一篇将会讲述混合专家模型的实现步骤~欢迎大家收藏点赞关注

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值