本文主要阐述了大模型预训练技术中的encoder decoder transformer结构模型进展,特别是专家模型在FFN层的应用和分布式训练中的模型并行方法。文中提到大模型的全语种翻译能力,并强调了数据在模型训练中的重要性。同时,介绍了top-2门控路由等创新训练方法,以及模型在路由方面的改造。最后,本文提到了一些具体的模型实例,展示了当前自然语言处理领域的最新进展和挑战。整体上,本文全面深入地介绍了大型预训练语言模型的结构、训练方法和改进方向。
需要注明的是,本文材料源于培训视频、论文、github以及论坛等,笔者仅作为资源的理解者和整理者,以输出博文的方式来反馈自身学习质量和温故学习内容。该系列博文仅供相关学习人员参考,而不作为引用素材的实证依据。
混合专家模型(Mixture-of-Experts,MoEs)技术发展
混合专家模型概述
混合专家模型(MoE)是一种既有老技术又有新花样的技术门类。MoE结合了大模型的技术积淀,尤其是在大模型领域的技术统治力。MoE的发展历程中,Google的技术积淀非常强大,尽管没有推出杀手级大模型应用,但技术话语权十足。
混合专家模型最早可以追溯到1991年的论文,由Michael Jordan和Hinton共同发布。这个概念与集成学习方法相似,旨在为由多个单独网络组成的系统并建立一个监管机制。在这种系统中,每个网络处理训练样本的不同子集,专注于输入空间的特定区域。该模型最初被视为一种集成学习方法,但并未引起广泛关注。直到2013年,Ilya Sutskever提出将深度神经网络与MoE结合,开启了MoE的新篇章。
稀疏门控混合专家模型通过稀疏性门控网络支持超大网络训练。2017年实现了1700多亿参数的网络训练,并成功应用于LSTM变种。Transformer发布后,MoE与大模型的结合更加紧密,Google提出了多篇相关论文。
什么是MoE?
MoE是一类transformer模型, 使用“稀疏”方法,其中每个输入只使用模型组件的一个子集。这种设置允许更有效的预训练和更快的推理,同时管理一个更大的模型大小。每个专家模型一般都是一个神经网络,通常是一个前馈网络(FFN) ,专门处理输入数据的不同方面,使模型能够更有效地处理范围更广的任务。从溯源中可以看到,MoE 的基本思想在于“人多力量大”,这意味着利用多个专家网络,每个专家网络专门处理数据的不同方面,以获得更好的性能。其目的是创建一个动态系统,在这个系统中,可以根据输入数据利用各种专家的优势,从而比单一模型能够实现的预测更加灵活和准确。在技术上,MoE是一种集成学习方法,把一个大任务分解成更小的部分,让不同的专家处理每个部分。然后,有一个聪明的决策者,会根据情况决定采纳哪位专家的建议,所有这些建议都被混合在一起。
Mixtral 8x7B :质效并举的稀疏混合专家模型
Mixtral 8x7B即理解为8个7B的模型,其性能与市场上常见模型的基准测试结果如下:
- MMLU(Massive Multitask Language Understanding)大规模多任务语言理解,是评估大语言模型综合能力的重要基准。该测试包含覆盖广泛学科的多样化问题,旨在测试模型在多任务处理、理解和生成上的表现。由OpenAI设计的MMLU,是衡量模型处理复杂语言任务能力的关键指标。
- HellaSwag:通过句子补全来评估LLM模型的常识推理能力。
- ARC Challenge:常识与推理基准测试。AI2推理挑战(ARC)通过小学水平的多项选择科学问题测试LLMs,问题从简单到复杂不等。
- 评估设置:25-shot
- 指标:在3548个问题上的准确性,其中33%被指定为具有挑战性。
- 数据集大小为681MB,分为两组问题:ARC-Easy和ARC-Challenge,对应一个问题,多个选项和一个正确答案。
- WinoGrande:WinoGrande测试AI中的常识推理能力,挑战模型解决Winograd Schema Challenge(WSC)。
- 评估设置:5-shot
- 指标:在1267个问题上的准确性。
- MBPP:在HumanEval上评估根据docstrings生成代码的能力,MBPP根据文字描述生成代码包含974个编程任务,人给出所需程序的描述,引导模型生成正确的代码。
- GSM-8K:GSM8K向LLMs提出了小学数学文字问题,以测试其多步骤数学推理能力。
- MT Bench(for Instruct Models):MT-bench通过向聊天助手展示一系列多轮次开放式问题,并利用LLMs作为裁判,来评估聊天助手的质量。这种方法测试了聊天助手处理复杂交互的能力。MT-Bench使用GPT-4在10分制上对一次对话进行评分,并计算所有轮次的平均分以得到最终得分。
下图为常见的基准测试指标以及对应的测试能力。
性能对比: 由上表可得,Mixtral 8x7B 与 LlaMA 2-70B和GPT3.5基础模型性能相当,甚至略有领先。
幻觉和偏见: 在BBQ/BOLD上测量结果表明,Mixtral 8x7B模型的控制相比 LLaMA 2-70B 有进步。
从上图可知,最新发布的Mixtral 8x7B混合专家模型在多个基准测试上超越了LLaMA 2。该模型在推理预算上更为高效,质量提升的同时未牺牲效率。MoE技术的不断发展为大模型训练也提供了新的思路和方法。
MoEs技术发展简史
MoEs 开山鼻祖:自适应局部专家混合 (Adaptive Mixtures of Local Experts, 1991)
提出的场景
为了实现只需要用一个具备多种能力集成的模型,就能处理多种任务。并且保证处理每个任务时,如模型训练、计算模型权重等,都不存在干扰效应。
组成
自适应局部专家混合主要由混合专家模型、门控网络两大部分组成。同时,token在封装输入数据中的特征和信息方面发挥着重要作用。token表示为高维向量,作为一种综合的结构化格式,用于编码输入的相关特征。每个token由多个维度组成,每个维度表示数据的特定特征或方面。通过以高维向量格式组织信息,系统可以有效地捕捉输入数据中的复杂性和细微差别,为进一步分析提供丰富的数据来源。token的高维表示使系统内的专家能够从数据中提取详细的见解和模式。通过将token作为高维向量处理,专家模型可以利用先进的算法和技术来发现隐藏的相关性和关系,提高MoE系统的整体分析能力。
混合专家模型: 提出了一种有效减弱干扰效应的模型结构,设立多个独立的子网络(“专家”)来处理不同的输入数据子集(子任务),从而实现学习网络独立的权重更新。MoE 模型中,每个专家模型一般是一个经过训练的神经网络,能够很好地处理整个数据或任务的子集。这些专家之前的共同骨干网络充当特征提取器,将原始输入转化为专家可以更有效地工作的高级表示。这种设置允许每个专家关注它最适合处理的模式或数据特征,从而实现更加细致和准确的预测。
门控模型: 除了专家网络,这个模型还引入了一个称为“门控网络”(Gating Network)的结构。门控网络的职责,根据输入数据决定使用哪个专家网络(或组合)处理当前输入。门控模型决定了对于给定的输入应该使用哪个专家模型的预测。门控模型学习将输入路由到最合适的专家当门控模型是一个神经网络的时候, 有时也称为门控网络。门控网络基本上起到决策者的作用,根据不同专家的熟练程度和与输入数据的相关性为他们分配权重。也就是说,门控网络根据给出的信息动态调整专家模型的权重。
自适应学习: 同时对每个专家和门控网络进行训练,模型可以根据数据自适应地改变每个专家的权重和作用。
实现步骤
- 把大问题分成小块;
- 为每一块训练一个超级聪明的专家。
- 引入一个决策者,也就是众所周知的门控模型,来选择应该由哪位专家带头。
- 收集专家的意见和决策者的选择,提出最终的预测。
MoE的优势
在于更少的计算工作使得模型的预训练更快,与为更多步骤训练更小的模型相比,为更少步骤训练更大的模型可以产生更好的结果。在推理过程中,与其他大模型相比,参数数目相同的 MoE 模型表现出更快的推理速度。尽管有许多参数,但只使用了一个子集,从而导致更快的预测。
核心贡献
- 分治处理复杂问题:MoE 模型结构能够将复杂的任务分解为更小、更易于管理的子任务,每个由不同的专家网络处理。
- 引入了新的学习机制:通过结合多个专家的知识和专长,混合专家模型能够更灵活地适应各种不同的数据模式和任务。
- 对后续研究的启发:该论文在深度学习和机器学习领域具有重要影响,为后续关于神经网络架构创新、分布式学习以及模型优化方法的研究提供了灵感和基础。
MoEs与集成学习技术对比
MoE极端情况下出现的问题:过拟合。基于门控网络控制下,可能导致所有专家模型均不负责处理输入内容的情况。
深度 MoEs ( Learning Factored Representations in a Deep Mixture of Experts ,2013)
深度 MoEs可以理解为,将MoE模块化,再逐层对特定输入内容通过门控网络激活部分专家模型进行处理,最后输出结果的整条链路作为一个专家模型领域模块。由于每个任务不同同时激活所有专家模型,因此当多个任务同时进行时,便可以横向并行多个专家模型来处理不同任务。
随着Softmax和噪声top-k 门机制的引入,也推动了MoE模型的发展。Softmax是一种流行的选择,以确定每个专家模型的贡献模型的预测。它根据每个专家与输入数据的相关性为其分配权重,较高的权重给予更相关的专家。噪声 Top-k 门控机制通过选择一个Top-k 专家子集进行预测来引入随机性。这种随机元素有助于在专家选择过程中引入多样性,提高模型的鲁棒性和泛化能力。
主要贡献
- 结合深度学习与MoE:提出一种将深度神经网络与混合专家模型相结合的架构(DMoE),支持将DNN中的层作为 MoE来训练,使其能够应用于更深层次的网络结构。
- 分解表示:该模型着重于学习输入数据的分解表示(factored representations),这意味着每个专家网络学习数据的一部分特征或模式,而这些特征在整个模型中被综合起来形成完整的数据表示。
- 高效处理复杂数据:通过在深度网络中应用分解表示和专家模型,展示了如何更有效地处理高维和复杂的数据集。
Hinton 和 Jeff Dean 合作发表稀疏门控 MoE (2017 ICLR)
- 构建大型MoE模型:提出了一种模型架构,在堆叠的LSTM层之间卷积应用高达1370亿参数的MoEs。
- 引入稀疏性概念:研究中介绍了由数千个前馈子网络组成的Sparsely-Gated Mixture-of-Experts层(MoE)。通过训练的门控网络为每个样例确定使用哪些专家的稀疏组合。
- 实现了条件计算(网络的某些部分仅针对特定样本激活)目标,使得在不增加计算量的情况下扩大模型规模成为可能,从而在每层MoE 中使用了数千名专家。
训练开始时模型之间的巨大差异是由于批量大小不同造成的。除了没有专家的模型外,所有模型的计算预算都相同。
MoEs 与 大模型结合后的技术发展
GShard:基于 MoE 探索巨型 Transformer 网络(Google, 2020)
GShard 是一个由一系列轻量级注释 API和XLA编译器扩展组成的模块。它提供了一种优雅的方式来表达各种并行计算模式,只需对现有的模型代码做最小的改动,GShard 使我们能够利用自动分片技术,将多语言神经机器翻译 。Transformer model 与 Sparsely-Gated Mixture-of-Experts 扩展到超过 6000 亿个参数。文章表明,这样一个巨型模型可以在 2048 个 TPU v3 加速器上进行高效训练,只需 4 天,就能实现从 100 种语言到英语的高质量翻译。
Transformers 模型展示了一个明显的趋势:增加参数的数量可以显著提高性能。Google GShard 项目正是在这方面进行了深入探索,试图将 Transformers 模型扩展到超过 6000 亿个参数。
上图为不同大模型在机器翻译的任务表现,翻译质量指标BLEU的曲线图。可得随着参数规模的增长,从125亿或者从最开始的23亿一直增长到6000亿,MoE模型的翻译质量有所提升。
上图左侧第一张图为transformer的encoder经典的网络结构,输入为文本类embedding和位置编码embedding。MoE transformer encoder结构是基于一个Feed Forward FFN模块变为多个FFN和门控网络实现模型并行。
在 GShard 中,编码器和解码器里的部分 FFN (Feed-Forward Network) 层被 MoE (Mixture of Experts) 层替代,并采用了一种称为 top-2 的门控机制。这种设计对大规模计算尤其有利:当模型扩展到多个设备时,MoE层在这些设备间共享,而其他层则在每个设备上独立存在。
为了在大规模应用中保持效率和均衡的负载,GShard 团队在设计上做了一些创新,包括:
- 随机路由机制:在 top-2 设计中,我们始终选择表现最优的专家,但第二选择的专家则根据其权重以一定概率被选中。
- 专家处理能力限制:我们可以设定一个专家能处理的Token数量的上限。如果两个专家的处理能力都已达到上限,那么这个 Token 就会被认为是多余的,并通过残差连接传递到下一层,或在某些情况下被直接丢弃。这一概念在 MoEs 的应用中非常关键。
注:在模型编译时所有的张量形状(Tensor Shape)都是静态确定的,但无法预先知道每个专家将处理多少Token,因此需要设定一个固定的处理能力上限。
GLaM:使用 MoE 扩展语言模型性能(Google, 2021)
论文提出并开发了一系列名为 GLaM (Generalist Language Model) 的语言模型。这些模型采用了稀疏激活的混合专家(mixture-of-experts)架构,旨在扩展模型容量,同时显著降低与密集模型相比的训练成本。在29个自然语言处理任务上,GLaM 在零次学习、一次学习和少次学习的表现上均优于 GPT-3。
上图绿色部分为GLaM,橙色柱状图为GPT-3。GLaM 展示了如何通过采用稀疏激活的混合专家架构,在提高模型容量的同时降低训练成本。相比 GPT-3 模型,训练所需能源1/3,推理计算量 1/2。GLaM 的成功实验表明,通过智能设计和优化架构,可以在资源消耗和性能之间取得更好的平衡,这对于未来大规模语言模型的开发具有重要意义。
GShard vs GLaM
Switch Transformer:使用稀疏技术实现万亿模型(Google, 2022)
尽管混合专家模型(MoEs)充满潜力,但它们在训练和微调时面临稳定性挑战。Switch Transformers 这项研究深入剖析了这些问题,并发布了一个具有 2048 个专家和 1.6 万亿参数的 MoE 模型。Switch Transformers 采用了编码器 - 解码器的配置,实现了 T5 的多专家模型(MoE)版本。相较于 T5-XXL,Switch Transformers 的预训练速度提高了四倍。
实现MoE系统的关键在于体系结构的设计,其中一个比较前沿的方法涉及到利用Switch Transformer结构来集成混合的专家模型层。该体系结构使系统能够利用多个专家模型在作出决定和预测方面的综合专门知识。Switch Transformer本身也是一个稀疏模型,其模型变形可以总结为:第一,将FFN替换为Switching FFN Layer;第二,将初始的一个门控网络结构转变为两个Router,改造以后增加了模型训练的专家容量。
在构建Switch Transformer体系结构时,必须保证专家混合层的无缝集成。这些层负责从不同的角度处理和分析数据,使系统能够根据各种不同的见解作出明智的决定。典型的实现步骤如下:
- 结合Switch Transformer框架,设计MoE系统的总体架构;
- 将专家模型混合层集成到系统中,以支持并行的数据处理;
- 实现根据上下文和信息类型将数据路由到适当专家的机制;
- 优化训练过程,微调专家权重和切换机制。
Switch Transformers 提出专家容量的概念:
并行提升 MoEs 效率
在最初的多专家系统(MoE)研究中,MoE 层被设计成分支结构,这导致计算速度较慢,因为 GPU 本身并不适合这种设计。同时,由于设备间需要传输信息,网络带宽成为了性能瓶颈。以下是加速 MoEs 的并行技术:
实现MoE系统的另一个关键点是动态路由和负载均衡。此策略确保token在整个系统中有效分布,优化性能和资源利用率。动态路由涉及到根据工作量和信息的复杂性实时分配任务和数据给不同的专家模型。
- 通过动态路由token,系统能够适应不断变化的需求,在运行过程中保持最佳效率。
- 负载均衡对于在专家之间均匀分配计算任务和数据处理起着至关重要的作用。这可以防止瓶颈和资源浪费,最终提高系统的整体性能。
一般的策略实现方式如下:监控每个专家模型的工作负载,并动态地重新分发token以保持平衡。实现基于紧迫性和复杂性对任务进行优先排序的算法,以优化处理效率。利用反馈机制不断调整负载均衡参数。
Mixtral 8x7B 稀疏专家模型(2024)
Mixtral 8x7B 是一种decoder-only 的模型,每层由 8 个前馈块(即专家)组成。对于每个 token,在每一层,路由器网络都会选择两名专家来处理当前状态并组合他们的输出。尽管每个 token 只看到两个专家,但所选的专家在每个时间步上都可能不同。因此,每个 token 可以访问 47B 参数,但在推理过程中仅使用 13B 激活参数。Mistral 8x7B 在所有评估的基准测试中都优于或匹配 Llama 2 70B 和 GPT-3.5。特别注意,Mixtral 在数学、代码生成和多语言基准测试方面远远超过了Llama 2 70B 。
Mixtral 预训练上下文的大小为 32k,在多项基准测试中,它的性能达到或超过 Llama 2 70B 和 GPT-3.5。尤其是,Mixtral 在数学、代码生成和需要多语言理解的任务方面表现出了卓越的能力,并在这些领域显著优于 Llama 2 70B。实验表明,Mixtral 能够成功地从 32k token 的上下文窗口中检索信息,无论序列长度和信息在序列中的位置如何。
除了Mixtral 8x7B,该研究还推出了Mixtral 8x7B–Instruct聊天模型,其性能在人类评估基准上明显超过了 GPT-3.5 Turbo、Claude-2.1、Gemini Pro和 Llama 2 70B聊天模型。在BBQ和BOLD等基准中,Mixtral-Instruct 也显示出更少的偏见。
相关论文集已上传至资源栏
- Adaptive-mixtures-of-local-experts
- GLaM Efficient Scaling of Language Models with Mixture-of-Experts
- Learning Factored Representations in a Deep Mixture of Experts
- Mixtral AI
- Mixture-of-Experts with Expert Choice Routing
- ST-MOE DESIGNING STABLE AND TRANSFERABLE SPARSE EXPERT MODELS
- Switch Transformers Scaling to Trillion Parameter Models with Simple and Efficient Sparsity