目录
自2022年ChatGPT诞生以来,因其在语言理解和知识问答方面的优异表现,大模型受到了学术界和工业界的广泛关注,并被认为具备记忆和应用世界知识的能力。但训练大模型和提高模型的推理速度并非易事,近期在大模型训练领域,MoE这一范式吸引了很多科研人的目光。
Mixture-of-Experts (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.
作者在该篇论文中提出了一个全新的监督学习范式!这个范式将一个系统巧妙地拆分成了多个独立的网络,每个网络都针对性地处理一部分训练数据集。这些独立的神经网络就像是一群各具专长的专家,各司其职。当我们把每个专家的学习成果加权汇总起来,就得到了最终的结果。
MoE的学习过程可以看做是多层监督网络的超级模块版,或者说是竞争学习的新概念版。更有趣的是,由于每个专家都是独立训练的,它们只专注于自己“擅长”的那一部分数据,这有效地减少了各种数据间的干扰,同时也让学习速度和泛化能力都得到了极大的提升!
MoE的结构说明
MoE架构的基本原理非常简单明了,它主要包括两个核心组件:GateNet和Experts。GateNet的作用在于判定输入样本应该由哪个专家模型接管处理。而Experts则构成了一组相对独立的专家模型,每个专家负责处理特定的输入子空间。
在MoE架构中,首先,输入样本会经过GateNet进行一个多分类的判别过程,以确定最适合的专家模型。这个过程被称为“experts selection”,也是整个MoE模型中的核心思想,学术界也称为稀疏性激活。接着,被选定(激活)的专家模型接管输入样本的处理,从而产生最终的预测结果。
MoE模型的另一个重要特点是专家模型的相对独立性。每个专家负责处理特定的输入子空间,这使得MoE能够灵活地应对不同领域或特定类型的输入数据。因此,MoE架构通过有效地利用GateNet和一组相对独立的Experts,为输入样本提供高效而灵活的处理方式。
MoE和集成学习的对比
MoE和集成学习的思想异曲同工,都是集成了多个模型的方法,但它们的实现方式有很大不同。下面将以表格的形式比较两者的区别。
MoE | Ensemble Learning | |
---|---|---|
技术类别 | 神经网络技术 | 机器学习技术 |
应用目的 | 提高模型收敛和推理速度 | 提高模型预测精确度 |
训练步骤 | 1.将预测建模任务分解为若干子任务,在每个子任务上训练一个专家模型(Expert Model) 2.开发一个门控模型(Gating Model),来预测的输入应分配给哪个专家 | 训练不同的学习器或者多个相同的学习器,比决策树、SVM、朴素贝叶斯、逻辑回归等,这些基础学习器可以使用相同或不同的训练数据。按照学习策略和训练串行或者并行方式可分为Bagging(独立)、Boosting(依赖)、Stacking等 |
结果输出 | 组合各个模型的结果输出 |
总的来讲,与MoE的最大不同的地方是集成学习不需要将任务分解为子任务,而是将多个基础学习器组合起来。这些基础学习器可以使用相同或不同的算法,并且可以使用相同或不同的训练数据
大模型中的MoE应用
目前的研究结果大多表明模型的呈现效果与参数量呈正相关——高要求,大体量。下表是几个著名大模型的参数量以及训练所用的数据体量。可以看到,目前的大模型参数量已经堆到千亿级甚至万亿级(1亿参数以16位float存储,大约占250MB),而用于训练这些模型的数据则更为庞大。
模型名称(研发机构) | 参数量 | 训练数据 |
---|---|---|
ChatGPT-3.5(openAI) | 1750亿 | 3000亿 token |
ChatGPT-4.0(openAI) | 10000亿 | 14200亿 token |
LLaMA (Meta) | 650亿 | 10000亿 token |
GLaM (Google)
| 12000亿 | 16000亿 token |
文心一言(百度) | 2600亿 | 10000亿+ 网页数据 |
星火大模型(科大讯飞) | 1700亿 | 中国科技论文数据库(CSTDP)1.7亿+论文 |
天工大模型(昆仑万维) | 1000亿 | 30000亿 token |
Ernie3.0 Titan | 2600亿 | -- |
Megatron-Turing NLG | 5300亿 | -- |
MoE提供了一种加速大型模型训练和推理的策略。举例来说,Google借助MoE开发了名为GLaM的语言模型。最大的GLaM拥有1.2万亿个参数,相比之下,GPT-3.5拥有1750亿个参数,但GLaM只需1/3的训练成本。此外,GLaM在zero-shot和one-shot的性能表现也优于GPT-3.5。
微软的报告指出,他们基于MoE的语言模型在与具有相同模型质量的密集模型相比时,训练成本降低了5倍。这表明MoE的运用可以极大地提升大型模型的训练效率,同时保持了出色的性能表现。