简短不看版:
- 混合专家模型 (MoEs) 是一种预训练模型,相比稠密模型,其预训练速度更快。
- 在具有相同参数数量的情况下,MoEs具有更快的推理速度。
- MoEs需要大量显存,因为所有专家系统都需要加载到内存中。
- 尽管在微调方面存在挑战,但最新研究表明,对混合专家模型进行指令调优具有很大的潜力。
一、马斯克开源Grok模型
马斯克旗下的巨头 xAI 在北京时间3月18日凌晨正式开源了拥有 3140 亿参数的混合专家(MoEs)模型「Grok-1」,并公布了该模型的权重和网络架构。
这一消息让Grok-1成为了当前参数量最大的开源大语言模型。
之前备受关注的Meta开源的Llama 2在参数量上只有 700 亿,远远比不上Grok-1 3140 亿参数的规模。
xAI 在 GitHub 页面中特别提醒,由于Grok 模型的规模巨大,需要配备足够 GPU 和内存的机器才能运行。
根据大致推算,跑 8bit 量化的话,可能需要 8 块 NVIDIA H100 GPU。
那么,Grok-1 到底有多强大呢?
- 模型概况:Grok-1 有着 3140 亿个参数,是目前参数量最大的开源模型之一。
它是基于 Transformer 的自回归模型,xAI 利用了来自人类和早期 Grok-0 模型的大量反馈对其进行了微调。
初始的 Grok-1 能够处理长度为 8192 个 token 的上下文,这一版本发布于 2023 年 11 月。
- 特点:这个模型采用了混合专家架构,共有 8 个专家模型,其中每个数据单元(Token)由 2 位专家处理。
这使得每次对 Token 的处理涉及 860 亿激活参数,比目前开源的最大模型 Llama-2 70B 的总参数量还要多。
模型包含 64 个处理层,使用了 48 个用于处理查询的注意力机制单元和 8 个用于处理键/值对的注意力机制单元模型,支持 8bit 精度量化。
- 缺陷:然而,Grok-1 语言模型并不具备独立搜索网络的能力。
要增强模型的能力和真实性,在 Grok 中部署搜索工具和数据库是必不可少的。
虽然可以访问外部信息源,但模型仍然会产生幻觉。
- 训练数据:Grok-1 发布版本所使用的训练数据来自截至 2023 年第三季度的互联网数据和 xAI 的 AI 训练师提供的数据。
从各方面来看 Grok-1 确实很能打,或许此次开源将为人工智能领域带来进一步推动和变革。
那么什么是混合专家(MoEs)模型呢?
二、什么是混合专家(MoEs)模型
混合专家模型(Mixture of Experts, MoEs)是一种并行计算模型,旨在提高大型神经网络的计算效率和泛化能力。
传统的全连接网络在规模增大时,参数和计算量也会成指数级增长,而MoE则采用了条件计算的思想,只对输入激活部分专家(子网络),大大降低了计算复杂度。
三、混合专家模型 (MoEs)的提出
在人工智能研究和发展到一定阶段后,遇到了一些现实中的问题和挑战,
比如大模型产生的“幻觉”问题,
以及在深层次逻辑理解和数学推理能力等方面的挑战。
为了解决这些问题,计算机科学家们逐渐形成了两个方向的解决思路:
第一条思路是做加法: 简单来说就继续增加 大模型的复杂度。
但是随着不同应用场景的需求增加,大型模型的参数也会变得越来越大,复杂性和规模不断增加,特别是在开发多模态大型模型时,每个数据集可能都是不同的,包括文本、图像、语音等多种类型的数据,这进一步增加了训练的难度,也提高了推理的成本。
第二条思路是做减法: 为了提升大模型的训练和推理的效率,有的科学家团队研究从底层模型架构入手,比如改变底层模型架构,将原来的Transformer架构改成基于状态空间模型(SSM)的新架构;
有的从预训练微调方法入手,比如利用上下文学习(ICL)进行有效对齐的URIAL方法;
还有一种方法是将处理模型进行简化,这就是本文中提到的基于门控网络的混合专家模型(Mixture of Experts:MoEs)。
混合专家模型(MoE)并不是一个全新的概念,
它的理念可以追溯到1991年由MichaelJordan和GeoffreyHinton等人发表的论文"Adaptive Mixture of Local Experts",
距今已经有30多年的历史。
这个概念类似于集成学习方法,旨在为由多个单独网络组成的系统建立一个协调机制。
在这种架构中,每个子网络(被称为"专家")专注于处理输入空间的特定区域。
然而,如何选择恰当的专家来处理特定输入呢?
这就需要一个门控网络根据输入来分配给每个专家相应的权重。
在训练过程中,专家和门控网络会同步优化,提升整体性能。
2010年至2015年期间,两个独立的研究领域推动了MoE的进一步发展:
-
**组件专家:**传统MoE是将门控和专家视为整个模型。但Eigen、Ranzato和Ilya等人的研究将MoE作为更深层网络中的一个组件,使模型能够同时具有大规模和高效性。
-
**条件计算:**传统神经网络对每一层的所有输入进行全量计算。在此期间,Yoshua Bengio等人开始探索基于输入动态激活或停用网络组件的方式。
这两个领域的融合催生了MoE在自然语言处理领域的应用。
2017年,Shazeer等人(包括Geoffrey Hinton和Google的Jeff Dean)将MoE应用于137B参数的LSTM模型。
通过引入稀疏性,该工作在保持大规模的同时实现了快速推理,但也面临如通信成本高、训练不稳定等挑战,主要集中在机器翻译任务。
2017年,谷歌的研究人员在论文"Outrageously Large Neural Networks"中,首次将混合专家模型(MoE)引入自然语言处理领域,将MoE应用于机器翻译任务。
具体做法是,
他们在一个基于LSTM的序列到序列模型的编码器和解码器层之间插入了MoE层。
该MoE层由多个LSTM"专家"子网络和一个门控网络组成。
在每个时间步,输入通过门控网络,只有被分类激活的少数几个专家子网络会对输入进行处理,其他专家保持静默。
通过这种条件计算机制,整个大型网络中的绝大部分参数和计算在任何给定时间都处于非活动状态,从而在保持大规模模型容量的同时大幅降低了计算复杂度和内存需求。
实验表明,引入MoE后该翻译系统比相同大小的非MoE模型具有更好的性能,例如在WMT’14英德翻译任务上提高了约4个BLEU分数。
这为将MoE架构应用于其他自然语言处理任务奠定了基础。
该工作也首次在工业级系统中展示了MoE在大规模并行训练和推理场景的实用性,对后续大规模语言模型的发展产生了重要影响。
2020年,DeepMind提出了GShard,首次将MoE技术引入Transformer模型架构。
GShard设计了一种高效的分布式数据并行和模型并行混合训练系统,可在大规模TPU集群上高效训练包含MoE层的大型Transformer模型。
此后,谷歌在2021年发布的Switch Transformer和GLaM(Google Language Model)等大型语言模型中进一步应用和改进了MoE技术:
-
Switch Transformer引入了路由策略的改进,提高了MoE层的计算效率。
-
GLaM则在每一层都使用了MoE,大幅降低了计算需求,最终实现了惊人的1.2万亿参数规模。
这些工作展现了 MoE 技术在 Transformer 架构下高效训练和推理大规模语言模型的优异性能,
有力推动了自然语言处理领域的发展。
实验表明,采用MoE的模型在下游任务如机器翻译、问答等上往往可以获得比同等大小的dense模型更好的性能。
2022年谷歌发布了的LIMoE,首次将稀疏化方法用在了图像文本混合模型上,也是首个应用了稀疏混合专家模型技术的多模态模型。
要知道,随着大模型参数呈指数级增加,训练成本也随之一路飙升,现在的AI大模型,不是有钱人还真的玩不起。
咱们随便举几个例子看下:
- 2020年OpenAI的GPT-3模型参数量达到1750亿,训练成本约为460万美元。
- 2021年华为的盘古α模型参数量: 2000亿,训练耗时数周,算力成本高达数百万美元。
- 2022年Google的LaMDA模型参数量达到1370亿,训练成本约为340万美元。
- DeepMind的Gopher模型参数量达到2800亿,训练成本约为4600万美元。
- 2022年Meta的Galactica 模型参数量达到2800亿,训练耗时3周,使用了16000个A100 GPU。
- 2022年Google的GLaM模型参数量高达1.2万亿,训练使用了6144个TPU芯片。
所以如何降低训练成本,成为了目前学术界和工业界重点关注的一个问题。
谷歌想到的办法,不是拼硬件去提升算力,而是从模型架构本身入手,通过逆向思维做减法。
采取了一种创新的稀疏化策略,让每次输入只需激活部分网络就能完成任务。
它们在模型内部引入多个"专家"子模块,每个“专家”只需处理与其相关的输入部分,每次根据任务情况按需使用部分“专家”就好。
这样一来,尽管模型整体容量和规模很大,但实际的计算开销和训练成本并没有呈指数级增长。
而且还不会降低大模型的性能。
事实上,谷歌最新提出的 LIMoE(Linguistics-Instructed Mixture of Experts) 架构在零样本学习任务上的表现,不仅没有受到性能折损,反而直接超越了视觉语言领域的权威基线——CLIP模型。
2023年12月,法国的 AI 初创企业 Mistral AI 发布的 Mistral-8x7B-MoE 模型,在AI界引发了轰动。
这一里程碑事件标志着AI技术的一个重要突破,尤其是在模型结构和效率上的创新,让它在业界赢得了“超越GPT-4”的评价。
Mistral-8x7B-MoE 模型由 8 个拥有 70亿 参数的专家网络组成,每个token的处理交由最相关的两个专家进行,总参数量仅为 560 亿(8*70),却在多个跑分上超过了拥有 700 亿参数的 Llama 2 模型。
这表明 MoE 可以有效地利用多个小模型来实现比单个大模型更好的性能。
四、混合专家模型 (MoEs) 的核心思想
MoE的提出基于这样一个前提:对于一个涉及多个领域知识的复杂问题,应该采用什么样的方法来解决?
最简单的方法就是将各个领域的专家集合在一起来解决这个问题。
MoE由多个专业化的子模型(即“专家”)组成,每个“专家”在其擅长的领域内做出贡献。
决定哪个“专家”参与解答特定问题的,是一个称为“门控网络”的机制。
混合专家模型(MoEs)的核心思想是将多个专家系统结合起来,以解决复杂问题。
在MoEs中,每个专家系统都是针对特定方面或情境进行优化的,而整个模型通过一种称为“门控网络”的机制来决定在特定情境下哪个专家系统应该发挥主导作用。
这种结构使得MoEs能够在不同的输入数据或情境下灵活地调整,并根据需要动态地选择合适的专家系统来处理输入。
具体来说,MoEs包含两个关键组成部分:专家系统和门控网络。
- 专家系统(Experts):每个专家系统都是一个独立的子模型,专门针对特定类型的数据或情境进行训练和优化。
例如,在自然语言处理任务中,可以有一个专家系统负责处理语法结构,另一个负责处理语义理解。
- 门控网络(Gating Network):门控网络负责根据输入数据的特征,
通过路由机制(Routing function)来动态地选择哪个专家系统应该被激活,
以允许不同的专家模型对输入进行独立处理,并通过加权组合它们的输出来生成最终的预测结果。
门控网络通常会生成一组权重,用于加权不同专家系统的输出,从而产生最终的模型输出。
这种权重可以根据输入数据的不同而变化,使得模型可以适应不同的情境。
MoEs的优势在于,它能够充分利用不同专家系统的优势,从而提高整体模型的性能。
每个专家系统可以被训练成高度专业化,只处理特定类型的数据或情境,这样可以提高模型在特定任务上的准确性和效率。
同时,门控网络的存在使得模型能够在不同情境下灵活地调整,从而提高了模型的泛化能力和适应性。
相比全连接大网络模型,MoE的优势主要有:
- 模型容量更大 - 可训练更多参数,且增加参数只会线性增加计算代价。
- 更好的泛化性 - 不同专家分别学习不同特征模式,便于建模复杂任务。
- 高计算效率 - 每次只激活部分专家,避免了大量冗余计算。
- 可解释性较好 - 专家对应于不同子任务,网络分工更清晰。
MoEs 架构是解决大规模模型训练和推理困难,并降低训练成本的有效途径。
随着硬件加速等技术发展,这种做减法思维的条件计算方式将会更加高效和普及。
总的来说,混合专家模型的核心思想是通过结合多个专家系统的意见和决策,以及灵活的门控机制,来构建一个更加强大和灵活的模型,从而提高模型在复杂任务上的表现。