GLaM: Efficient Scaling of Language Models with Mixture-of-Experts
作者/机构: Nan Du, Yanping Huang, Andrew M. Dai, Simon Tong, Dmitry Lepikhin, Yuanzhong Xu, Maxim Krikun, Yanqi Zhou, Adams Wei Yu, Orhan Firat, Barret Zoph, Liam Fedus, Maarten Bosma, Zongwei Zhou, Tao Wang, Yu Emma Wang, Kellie Webster, Marie Pellat, Kevin Robinson, Kathleen Meier-Hellstern, Toju Duke, Lucas Dixon, Kun Zhang, Quoc V Le, Yonghui Wu, Zhifeng Chen, Claire Cui
A1 主要贡献
本文提出并开发了一个名为GLaM(Generalist Language Model)的语言模型家族,旨在解决扩大语言模型(如GPT-3)带来的高昂计算资源和能源消耗问题。通过采用稀疏激活的混合专家(Mixture-of-Experts, MoE)架构,GLaM在扩大模型容量的同时,显著降低了训练成本。
核心问题与研究目标:
- 问题:通过增加数据、计算和参数来扩展密集型语言模型(dense models)虽然在自然语言处理(NLP)领域取得了显著进展(例如GPT-3的上下文学习能力),但进一步扩展的成本变得极其高昂,并消耗大量能源。
- 目标:开发一种计算效率更高的模型架构,使其在保持或超越最先进密集模型性能的同时,降低训练和推理的计算成本与能耗。
创新点与主要贡献:
1. 提出GLaM模型家族:本文引入了GLaM,一个结合了密集计算和条件计算(通过MoE)的通用语言模型系列。其最大版本拥有1.2万亿参数,是GPT-3(1750亿参数)的约7倍。
2. 计算和能源效率:
- 尽管总参数量巨大,但由于其稀疏激活特性,GLaM在推理时每个输入token只激活其参数的一小部分(例如,最大的GLaM模型激活966亿参数,约占总数的8%)。
- 相比GPT-3,最大的GLaM模型在推理时所需的计算浮点运算(FLOPs)减半,训练能耗仅为GPT-3的三分之一。
3. 卓越的性能:
- GLaM在29个公开的NLP基准测试中(涵盖语言补全、开放域问答、自然语言推断等),在零样本(zero-shot)、一样本(one-shot)和少样本(few-shot)学习设置下的平均性能优于GPT-3。
- 如下图1和表1所示,GLaM在7个基准类别中的6个平均表现优于GPT-3,显示了其性能提升的一致性。
4. 数据质量的重要性:研究表明,即使对于GLaM这样的大型模型,为了生成高质量的自回归语言模型,数据质量不应为数量而牺牲。
5. 社会偏见方面的改进:GLaM在WinoGender基准测试中,首次缩小了刻板印象和反刻板印象样本之间的性能差距,这表明大型稀疏激活模型可能更少地依赖于表面的统计相关性。
6. 推动稀疏模型的发展:本文首次证明,在少样本上下文学习的设定下,大规模的稀疏解码器语言模型(decoder-only language models)可以比计算FLOPs相似的密集架构表现更好,表明稀疏性是实现高质量NLP模型同时节省能源成本的最有前途的方向之一。
Table 1. GPT-3与GLaM的比较。简而言之,GLaM在21个自然语言理解(NLU)基准和8个自然语言生成(NLG)基准的平均表现上优于GPT-3,同时推理时每个token的FLOPs约为一半,训练能耗约为三分之一。
图1. GLaM (64B/64E) 与 GPT-3 (175B) 在 (a) zero-shot, (b) one-shot, (c) few-shot 设置下,跨越 7 个基准类别共 29 个公开任务的预测性能百分比变化(越高越好)的概览。图(a), (b)和(c)中的每个条形代表一个基准类别。图(d)比较了每个token预测所需的FLOPs和训练能耗。
A3 背景知识/关键Observation/设计原则
2. 相关工作
语言模型的发展。神经语言模型,如Mikolov等人(2010)【Mikolov, T., et al. Recurrent neural network based language model. INTERSPEECH 2010.】和Sutskever等人(2011)【Sutskever, I., et al. Generating text with recurrent neural networks. ICML 2011.】的工作,已被证明对许多NLP任务非常有用。词嵌入模型及其扩展,如word2vec【Mikolov, T., et al. Efficient estimation of word representations in vector space. ICLR 2013 Workshop.】、GloVe【Pennington, J., et al. GloVe: Global vectors for word representation. EMNLP 2014.】和段落向量【Le, Q., & Mikolov, T. Distributed representations of sentences and documents. ICML 2014.】,通过迁移嵌入向量在多种任务上展现了良好的泛化能力。
预训练与微调范式。计算和数据的丰富使得通过无监督预训练来训练越来越大的模型成为可能。利用循环模型(如RNNs和LSTMs)进行语言表示的工作【Dai, A. M., & Le, Q. V. Semi-supervised sequence learning. NeurIPS 2015.】【Kiros, R., et al. Skip-thought vectors. NeurIPS 2015.】表明,通用语言模型可以被微调以改进各种语言理解任务。近期,使用Transformers【Vaswani, A., et al. Attention is all you need. NeurIPS 2017.】的模型显示,在无标签数据上进行自监督学习的更大型模型能在NLP任务上取得显著提升【Devlin, J., et al. BERT: Pre-training of deep bidirectional transformers for language understanding. NAACL-HLT 2019.】【Yang, Z., et al. Xlnet: Generalized autoregressive pretraining for language understanding. NeurIPS 2019.】【Liu, Y., et al. Roberta: A robustly optimized bert pretraining approach. arXiv 2019.】【Clark, K., et al. Electra: Pre-training text encoders as discriminators rather than generators. arXiv 2020.】。基于预训练和微调的迁移学习方法【Raffel, C., et al. Exploring the limits of transfer learning with a unified text-to-text transformer. JMLR 2020.】【Houlsby, N., et al. Parameter-efficient transfer learning for NLP. ICML 2019.】已被广泛研究并表现出色,但其主要局限是需要针对特定任务进行微调。
上下文少样本学习。GPT-3【Brown, T., et al. Language models are few-shot learners. NeurIPS 2020.】及相关工作【Shoeybi, M., et al. Megatron-lm: Training multi-billion parameter language models using gpu model parallelism. arXiv 2019.】【Lieber, O., et al. Jurassic-1: Technical details and evaluation. White Paper AI21 Labs 2021.】【Wei, J., et al. Finetuned language models are zero-shot learners. 2021.】证明,扩大语言模型规模能极大地提升与任务无关的少样本学习性能。这些语言模型在应用时无需任何梯度更新,仅需通过与模型的纯文本交互提供少量的示例即可。
稀疏门控网络。基于混合专家(Mixture-of-Experts, MoE)的模型也显示出显著优势。在语言建模和机器翻译领域,Shazeer等人(2017)【Shazeer, N., et al. Outrageously large neural networks: The sparsely-gated mixture-of-experts layer. ICLR 2017.】证明了MoE模型能有效利用大量权重,而在推理时只需计算一小部分计算图。已有工作致力于扩展稀疏激活的MoE架构【Hestness, J., et al. Deep learning scaling is predictable, empirically. arXiv 2017.】【Shazeer, N., et al. Mesh-tensorflow: Deep learning for supercomputers. NeurIPS 2018.】【Lepikhin, D., et al. GShard: Scaling giant models with conditional computation and automatic sharding. ICLR 2021.】【Kudugunta, S., et al. Beyond distillation: Task-level mixture-of-experts for efficient inference. EMNLP 2021 Findings.】。最近,Fedus等人(2021)【Fedus, W., et al. Switch transformers: Scaling to trillion parameter models with simple and efficient sparsity. arXiv 2021.】展示了拥有万亿参数的稀疏激活模型(Switch-C)的成果。尽管Switch-C和最大的GLaM模型都拥有一万亿可训练参数,但GLaM是一个仅解码器(decoder-only)的语言模型家族,而Switch-C是基于编码器-解码器(encoder-decoder)的序列到序列模型。此外,Switch-C主要在微调基准(如SuperGlue)上进行评估,而GLaM在与GPT-3共享的少样本设置中无需任何微调即可表现良好,SuperGlue只是其评估任务的一个子集。表2总结了GLaM与相关预训练文本模型之间的关键差异。
Table 2. 一些在文本语料库上预训练的相关模型样本【Devlin, J., et al. 2019】【Raffel, C., et al. 2020】【Brown, T., et al. 2020】【Lieber, O., et al. 2021】【Rae, J. W., et al. 2021】【Shoeybi, M., et al. 2019】【Lepikhin, D., et al. 2021】【Fedus, W., et al. 2021】。nparams是可训练模型参数的总数,nact-params是每个输入token激活的模型参数数量。
3. 训练数据集
构建高质量数据集。为了训练模型,我们构建了一个包含1.6万亿token的高质量数据集,该数据集能代表广泛的自然语言用例。网页数据构成了我们无标签数据集的主体,但其质量从专业写作到低质量评论和论坛页面不等。类似于Brown等人(2020)【Brown, T., et al. Language models are few-shot learners. NeurIPS 2020.】,我们开发了自己的文本质量分类器,从一个更大的原始语料库中生成一个高质量的网络语料库。为了提高推理速度,我们使用了一个基于特征哈希的线性分类器。该分类器通过在一个精心挑选的文本集合(维基百科、书籍和一些选定网站)和其他网页之间进行分类来训练。我们用这个分类器来评估网页的内容质量,然后应用一个帕累托分布(Pareto distribution)根据网页得分进行采样,这允许一些质量较低的网页被包含进来,以防止分类器产生系统性偏差。
Table 3. GLaM训练集中的数据和混合权重。
最终数据集构成与混合权重。我们使用上述过程生成一个高质量的过滤网页子集,并将其与书籍、维基百科页面、论坛、新闻页面以及其他数据源结合,创建最终的GLaM数据集。我们还整合了Adiwardana等人(2020)【Adiwardana, D., et al. Towards a human-like open-domain chatbot. arXiv 2020.】使用的公共领域社交媒体对话数据。混合权重的设定基于每个数据组件在小型模型上的表现,并为了防止像维基百科这样的小型数据源被过度采样。表3展示了我们数据组件的大小和混合权重的详细信息。为了检查数据污染问题,我们在附录D节对训练集和评估数据进行了重叠分析,发现其重叠程度与先前的工作【Brown, T., et al. Language models are few-shot learners. NeurIPS 2020.】大致相符。
图2. GLaM模型架构。每个MoE层(底部模块)与一个Transformer层(上部模块)交错排列。对于每个输入token,例如‘roses’,门控模块(Gating module)会从64个专家中动态选择两个最相关的专家,这由MoE层中的蓝色网格表示。这两个专家的输出的加权平均值随后被传递到上方的Transformer层。对于输入序列中的下一个token,将会选择两个不同的专家。
A2 方法细节
4. 模型架构
采用稀疏激活的混合专家(MoE)架构。我们在GLaM模型中利用了稀疏激活的混合专家(MoE)技术【Shazeer, N., et al. Outrageously large neural networks: The sparsely-gated mixture-of-experts layer. ICLR 2017.】【Fedus, W., et al. Switch transformers: Scaling to trillion parameter models with simple and efficient sparsity. arXiv 2021.】。与GShard MoE Transformer【Lepikhin, D., et al. GShard: Scaling giant models with conditional computation and automatic sharding. ICLR 2021.】类似,我们将每隔一个Transformer层的前馈网络(feed-forward)组件替换为一个MoE层,如图2所示。每个MoE层由一组独立的前馈网络作为“专家”(experts)组成。然后,一个门控函数(gating function)使用softmax激活函数来建模这些专家上的概率分布,该分布表明了每个专家处理输入数据的适宜程度。
MoE层的稀疏激活机制。尽管每个MoE层拥有更多的参数,但专家是稀疏激活的。这意味着对于给定的输入token,只有有限的专家子集被使用,这在限制计算量的同时为模型提供了更大的容量。在我们的架构中,这个子集的大小是两个。每个MoE层的可学习门控网络被训练来利用其输入,为输入序列的每个token激活最合适的两个专家。在推理过程中,学习到的门控网络会为每个token动态选择两个最佳专家。对于一个拥有E个专家的MoE层,这实质上提供了$O(E^2)$种不同的前馈网络组合,而不是经典Transformer架构中的一种,从而带来了更大的计算灵活性。一个token的最终学习表示将是所选专家输出的加权组合。
对Transformer架构的其他修改。我们还对原始的Transformer架构进行了一些额外的修改。我们用Dai等人(2019)【Dai, Z., et al. Transformer-XL: Attentive language models beyond a fixed-length context. ACL 2019.】提出的逐层相对位置偏置(per-layer relative positional bias)替换了标准的绝对位置嵌入。在非MoE的Transformer前馈子层中,我们将第一个线性投影和激活函数替换为门控线性单元(Gated Linear Unit, GLU)【Dauphin, Y. N., et al. Language modeling with gated convolutional networks. ICML 2017.】【Shazeer, N. Glu variants improve transformer. 2020.】。GLU计算输入信号的两个线性变换的逐元素乘积,其后跟随一个高斯误差线性单元(Gaussian Error Linear Unit, GELU)激活函数【Hendrycks, D., & Gimpel, K. Bridging nonlinearities and stochastic regularizers with gaussian error linear units. arXiv 2016.】。我们使用Xu等人(2021)【Xu, Y., et al. GSPMD: general and scalable parallelization for ML computation graphs. arXiv 2021.】描述的2D分片算法(2D sharding algorithm)来划分大型GLaM模型的权重和计算,具体细节在附录C节中有更详细的描述。
A4 实验环境
模型架构:
- GLaM是一个包含密集和稀疏两种解码器(decoder-only)语言模型的家族。模型规模从1.3亿参数到1.2万亿参数不等。
- 采用GLaM (X/YE)
的命名法,其中X
表示一个近似的密集模型参数规模,Y
是MoE层中的专家数量。例如,GLaM (8B/64E)
代表一个基础密集模型约80亿参数,并在其中每隔一层替换为64个专家的MoE层。GLaM (1.7B/1E)
则是一个标准的密集模型。
- 关键参数如模型维度(M)、隐藏层维度(H)、层数(L)、注意力头数(nheads)等随模型规模变化,具体见下表4。
- nparams
代表总可训练参数量,nact-params
代表每个token推理时激活的参数量。对于MoE模型,nact-params
远小于nparams
。
数据集:
- 使用一个包含1.6万亿token的高质量自建数据集进行预训练。
- 数据来源包括经过质量筛选的网页、书籍、维基百科、论坛、新闻以及社交媒体对话。
- 评估使用了29个公开NLP基准,与GPT-3对齐,分为7大类,包括开放域问答、完形填空、常识推理等。
硬件配置:
- 最大的GLaM模型GLaM (64B/64E)
在1024个Cloud TPU-V4芯片上进行训练。
软件与训练配置:
- 框架:使用了GSPMD【Xu, Y., et al. GSPMD: general and scalable parallelization for ML computation graphs. arXiv 2021.】进行大规模模型并行训练。
- 超参数:
- 最大序列长度:1024 tokens。
- Mini-batch大小:每个批次最多打包100万个token。
- Dropout率:0(因为训练语料远大于训练中处理的token数)。
- 优化器:Adafactor【Shazeer, N., & Stern, M. Adafactor: Adaptive learning rates with sublinear memory cost. arXiv 2018.】,$\beta_1=0$, $\beta_2=0.99$ (按 $1-t^{-0.8}$ 衰减)。
- 学习率:初始0.01,保持1万步后按反平方根衰减。
- 损失函数:标准交叉熵损失 + MoE辅助损失(系数0.01)以平衡专家负载。
- Tokenizer:SentencePiece【Kudo, T., & Richardson, J. Sentencepiece: A simple and language independent subword tokenizer and detokenizer for neural text processing. EMNLP 2018.】,词汇表大小为256K。
- 精度:模型权重使用float32,激活值使用bfloat16。
- 训练技巧:
- 先将小规模模型训练至收敛以暴露潜在问题。
- 如果梯度中出现NaN或Inf,则跳过该批次的权重更新。
- 训练中遇到大的波动或NaN/Inf时,从早期的健康检查点重启。
Table 4. 我们实验中训练的MoE和密集模型的尺寸与架构。模型按每个token激活的参数数量分组。所有训练模型共享第5.1节中描述的相同学习超参数。
(该图片为GLaM命名法公式,描述GLaM(X/YE)代表一个基础密集模型约X参数,并每隔一层替换为Y个专家的MoE层。GLaM(X)则代表一个参数量为X的密集模型。)
A4 实验结果
6.1. MoE模型与密集模型的比较
- 总体性能:如表1和图1所示,最大的GLaM模型(
GLaM (64B/64E)
)在零样本、一样本和少样本学习设置下,其综合性能与GPT-3(175B)相当甚至更优。具体来说,GLaM在7个任务类别中的6个平均表现优于GPT-3,显示了其性能增益的普遍性。 - 推理效率:尽管总参数量巨大,
GLaM (64B/64E)
在推理时每个token仅激活约96.6B参数,所需的计算FLOPs仅为GPT-3的一半。 - 开放域问答表现突出:在具有挑战性的开放域问答任务TriviaQA上,
GLaM (64B/64E)
的表现优于其对应的密集模型,并且在开放域设置下超过了之前经过微调的SOTA模型。如表5所示,其一样本(one-shot)结果比之前融合了知识图谱信息的微调SOTA【Yu, D., et al. 2022】高出8.6%,在测试服务器上比GPT-3的少样本结果高出5.3%。这表明GLaM额外的模型容量(即使激活参数更少)在性能提升中起到了关键作用。
Table 5. GLaM (64B/64E) 的一样本性能在wiki split的开放域设置中显著优于先前的SOTA。
6.2. 数据质量的影响
- 实验设置:使用一个中等规模的GLaM模型(
1.7B/64E
)在两个数据集上进行训练。一个使用第3节描述的原始高质量数据集,另一个则将其中经过筛选的网页数据替换为未经过滤的网页数据(约7T tokens)。 - 实验结论:如图3(c)和(d)所示,使用过滤后数据训练的模型在NLG和NLU任务上均表现得更好。数据过滤对NLG任务的影响尤为显著,这可能是因为NLG任务需要生成高质量语言,而高质量的预训练语料对此至关重要。该研究强调了预训练数据质量对下游任务性能的关键作用。
6.3. 扩展性研究
- 性能与激活参数的关系:如图3(a)和(b)所示,模型的平均性能(零、一、少样本)随着每个token预测的有效FLOPs(由
nact-params
决定)的增加而良好扩展。 - MoE vs. Dense扩展趋势:在相似的有效FLOPs下,GLaM MoE模型始终比GLaM密集模型表现更佳。在较小规模时,两者性能相似,但随着模型规模增大,MoE模型的优势愈发明显。
- 专家数量的影响:附录B的实验表明,在固定的单次预测计算预算下,增加MoE层中的专家数量通常能带来更好的预测性能,这进一步验证了MoE模型通过增加容量和灵活性带来的优势。
图3. (a) 8个NLG任务和(b) 21个NLU任务上,GLaM MoE模型与GLaM密集模型在相似有效FLOPs下的平均零、一、少样本性能对比。(c)和(d)展示了使用GLaM(1.7B/64E)在过滤和未过滤训练数据上的模型性能对比,过滤后的数据在NLG和NLU任务中均显著提升了结果。
6.4. GLaM的效率分析
- 数据效率:如图4(a-c)和(e-g)所示,与具有可比FLOPs的密集模型相比,GLaM MoE模型达到相似性能所需的训练数据显著更少。例如,使用280B tokens训练的
GLaM (64B/64E)
模型在多数设置下性能超过了使用300B tokens训练的GPT-3。 - 计算效率与能耗:
- 如图4(d)和(h)所示,要达到相似的下游任务性能,训练稀疏激活模型所需的计算资源(以TPU年为单位)远少于训练密集模型。
- 如表1所示,
GLaM (64B/64E)
训练600B tokens消耗了456 MWh的能量,约为GPT-3(1287 MWh)的三分之一。 - 若要达到与GPT-3相当的性能,GLaM仅需训练280B tokens,耗时574小时(在1024个TPU-v4上),能耗为213 MWh,仅为GPT-3的六分之一。能耗的降低得益于MoE架构以及TPU-v4硬件和GSPMD软件的计算效率优化。
图4. 学习效率比较。随着训练中处理的token数量增加,GLaM MoE模型与GLaM密集模型在(a-c) 9个NLG任务和(e-g) 21个NLU任务上的平均零、一、少样本性能学习曲线。图(d)和(h)分别展示了学习曲线与TPU年的关系。
A7 补充细节
7. 伦理与意外偏见
背景与挑战。大型语言模型的零样本和少样本推理能力降低了AI应用的开发门槛,但也凸显了诸多伦理挑战【Leidner & Plachouras, 2017】【Bender et al., 2021】【Bommasani et al., 2021】,包括表示偏见【Blodgett et al., 2020】、训练数据的选择与处理【Rogers, 2021】、隐私【Abadi et al., 2016b】【Carlini et al., 2020】和环境问题【Strubell et al., 2019】【Patterson et al., 2021】。研究重点之一是模型学到的意外偏见,如性别与职业的关联、对特定群体的负面情绪等。尽管测量和缓解模型潜在危害是活跃的研究领域,但仍需更严格的评估方法来评估模型编码有害刻板印象的程度。
评估方法概述。虽然对于通用大语言模型尚未有公认的测量方法或标准,但评估它们在一系列指标上的表现至关重要。本文受GPT-3【Brown et al., 2020】启发,检查了生成文本中涉及身份术语的共现词,并报告了在WinoGender基准【Rudinger et al., 2018】上的表现。同时,本文也仿照Gopher【Rae et al., 2021】分析了毒性退化问题,并将分析扩展到与人类行为基线的比较。
7.1. 共现提示词分析
分析过程。遵循Brown等人(2020)【Brown, T., et al. Language models are few-shot learners. NeurIPS 2020.】的程序,我们分析了当给出类似“{术语}非常...”的提示时,续写文本中常共现的词语,其中“术语”涉及性别、宗教、种族和民族身份。对于每个提示(见附录表7),使用top-k采样(k=40,温度=1)生成800个输出。使用现成的POS Tagger【Bird & Loper, 2004】移除停用词并只选择描述性词语(形容词和副词)。为使分析透明且易于复现,我们省略了任何人工标注。
分析结果。与其他大型语言模型的分析类似,我们注意到所有维度都存在明显的联想偏见。例如,对于术语“她”(She),最相关的描述是“漂亮”(pretty),而这个词并未出现在术语“他”(He)的前十大关联词中。表8展示了对性别代词提示模板响应中最常出现的描述性词语,附录中的表9和表10则分别展示了种族和宗教提示的结果。
7.2. WinoGender基准测试
背景与重要性。指代消解是许多应用(如机器翻译和问答)需要良好表现的能力。为了评估GLaM中的性别相关性是否会导致其在一样本设置下犯指代错误,我们测量了WinoGender【Rudinger et al., 2018】基准的性能。
结果与发现。GLaM (64B/64E) 在整个数据集上取得了71.7%的新SOTA成绩(相比之下,GPT-3为64.2%【Brown et al., 2020】)。一个很有希望的结果是,“他”(he)的例子(70.8%)和“她”(she)的例子(72.5%)之间的准确率非常接近。更重要的是,在刻板印象的例子(其预期分布被假定接近美国职业统计数据)和反刻板印象(或‘陷阱’)的例子之间,准确率完全相同(均为71.7%)。
图5. 提示的毒性概率(TPP)与续写的毒性概率(TPC)之间的关系。Human指的是原始人类书写句子的续写部分。
7.3. 毒性退化分析
定义与评估方法。毒性退化是指语言模型无意中产生有毒文本的现象。我们采用了(Welbl et al., 2021; Rae et al., 2021)的方法,使用RealToxicityPrompts数据集【Gehman et al., 2020】,该数据集包含被分为“提示前缀”和“续写后缀”两部分的句子。我们使用Perspective API来评估文本的毒性概率,并分析在不同毒性概率的提示下,续写内容有多大概率也是有毒的。
实验过程。对于随机抽样的1万个提示,我们每个生成25个续写,每个续写最多100个token,使用top-k采样(k=40,温度=1)。当续写为空字符串时,我们将其毒性得分记为0.0。
结果分析。图5显示了提示毒性概率(TPP)与续写毒性概率(TPC)之间的关系。值得注意的是,模型的TPC紧随TPP变化,这反映了大语言模型有时会过度受提示影响的常见现象。我们还分析了25个续写的毒性概率分布,发现即使对于低毒性提示,生成的续写中也很可能有一部分会被Perspective API判定为有毒。
8. 讨论
MoE模型的优势与局限。正如先前关于稀疏激活模型的研究【Fedus, W., et al. Switch transformers: Scaling to trillion parameter models with simple and efficient sparsity. arXiv 2021.】所观察到的,MoE模型在知识密集型任务中表现更佳。开放域任务是衡量模型存储知识量的一种方式。MoE模型在如TriviaQA等开放域问答基准上的表现,证明了与具有相似有效FLOPs的密集模型相比,这些模型的信息容量显著增加。
挑战。尽管稀疏激活模型在上下文学习和训练效率方面具有优势,但它们包含更多的参数,因此需要更多的设备。这限制了资源的可及性,并增加了服务成本,尤其是在服务流量较低时。
A5 结论
本文提出并开发了一个名为GLaM的通用语言模型家族,该家族采用稀疏激活的混合专家(MoE)架构。实验结果表明,GLaM模型在29个代表性的NLP任务中,其零样本、一样本和少样本学习的平均得分不仅优于具有相似有效FLOPs的密集对应模型,也优于GPT-3模型。特别是,我们最大的1.2万亿参数MoE语言模型 GLaM (64B/64E)
,在取得更好平均性能的同时,其训练能耗仅为GPT-3的三分之一。我们希望这项工作能鼓励更多关于获取高质量数据方法的研究,以及利用MoE来更有效地扩展巨型语言模型的研究。
A6 附录
A. 基准测试列表
- 开放域问答: TriviaQA, Natural Questions (NQS), Web Questions (WebQS)
- 完形填空与补全任务: LAMBADA, HellaSwag, StoryCloze
- Winograd风格任务: Winograd, WinoGrande
- 常识推理: PIQA, ARC (Easy), ARC (Challenge), OpenBookQA
- 上下文阅读理解: DROP, CoQA, QuAC, SQuADv2, RACE-h, RACE-m
- SuperGLUE: BoolQ, CB, COPA, RTE, WiC, WSC, MultiRC, ReCoRD
- 自然语言推断: ANLI R1, ANLI R2, ANLI R3
B. 扩展专家数量
研究目的与设置。我们还研究了增加每个MoE层专家数量的影响。具体来说,我们从一个中等规模的1.7B模型开始,这本质上是一个GLaM (1.7B/1E)
模型,其中每个MoE层退化为只有一个前馈网络作为专家。然后,我们将每个MoE层中的专家数量从1增加到256。尽管专家数量呈指数级增长,但由于GLaM的稀疏性,每个模型中被激活的参数nact-params
几乎没有增加。事实上,如表4所示,它们每次预测的FLOPs几乎相同。
结论。在图6中,我们观察到,在固定的单次预测计算预算下,增加更多专家通常会带来更好的预测性能。这进一步验证了,当具有相似的单次预测FLOPs时,GLaM稀疏激活模型相对于其密集对应模型的性能增益,这得益于更多专家带来的容量和灵活性增加。
图6. 一组从中等到大规模模型(从1.7B/1E到1.7B/256E)的平均零、一、少样本性能与每层专家数量的关系。
C. 模型划分
采用2D分片算法。我们使用Xu等人(2021)【Xu, Y., et al. GSPMD: general and scalable parallelization for ML computation graphs. arXiv 2021.】描述的2D分片算法来划分大型GLaM模型的权重和计算,该算法利用了TPU集群设备网络的2D拓扑结构。我们将不同MoE层中具有相同索引的专家放置在同一个设备上,以便为不同的MoE层生成相同的计算图。因此,我们可以将MoE Transformer架构的重复模块包装在while
循环控制流语句中【Abadi, M., et al. 2016a】【Yu, Y., et al. 2018】,以减少编译时间。实验表明,我们应该增加专家的大小以获得高质量的模型。因此,当每个专家变得足够大时,我们必须将每个专家分配到一组NE个设备上。例如,我们将MoE层中形状为[E, M, H]
的专家权重张量沿专家维度E和隐藏维度H进行划分,并将形状为[B, S, M]
的输入激活张量沿批次维度B和模型维度M进行划分。通过这种2D分片算法,我们能够将那些大的权重和激活张量完全分解成更小的部分,使得在所有设备上没有数据或计算的冗余。我们依赖GSPMD的编译器通道【Xu, Y., et al. 2021】来自动确定其余张量的分片属性。
D. 数据污染
担忧与分析方法。由于GLaM在超过1.6万亿个文本token上进行训练,一个合理的担忧是某些测试数据可能完全出现在预训练数据集中,从而夸大了部分结果。因此,我们遵循Brown等人(2020)【Brown, T., et al. Language models are few-shot learners. NeurIPS 2020.】和Wei等人(2021)【Wei, J., et al. Finetuned language models are zero-shot learners. 2021.】的方法,量化了预训练数据与评估数据集之间的重叠。我们的分析使用了与Wei等人(2021)相同的方法,该方法又紧密遵循了Brown等人(2020)。对于每个评估数据集,我们报告了与预训练数据重叠的样本数量,重叠的定义是存在任何也出现在预训练数据中的n-gram(n因数据集而异)。
结果。我们发现,验证集中逐字出现在训练数据中的样本数量与先前的工作大致相符。我们在表6中报告了这些数字。
Table 6. GPT-3也使用的数据集子集的重叠统计。如果一个评估样本与预训练语料库有任何n-gram碰撞,则被认为是“脏”的。
E. 伦理与意外偏见
毒性退化与模型规模。与Rae等人(2021)【Rae, J. W., et al. Scaling language models: Methods, analysis & insights from training gopher. arXiv 2021.】一样,我们还分析了毒性退化与模型规模的关系,如图7所示。与其他分析一样,GLaM在该基准上的表现跨模型规模和MoE变体都相当一致。0.1B/64E
MoE变体是分析中最小的稀疏变体,在图中较为显眼,较小的MoE模型可能不太稳定,正如Rae等人(2021)所指出的。
续写毒性概率分布。遵循Rae等人(2021),我们还分析了生成的毒性概率分布与模型规模的关系。在续写的最大预期毒性概率方面,观察到了同样的规模不变性模式。图8绘制了对于低毒性提示,25个续写的API毒性概率分布。这表明,即使对于低毒性提示,根据Perspective API的模型预测,生成的某些续写也很可能被大多数审阅者判定为有毒。
图7. 毒性退化扩展图。不同深浅的颜色表示不同区间的提示毒性概率。y轴显示续写有毒的预期概率。0.1B/64E变体较为显眼,但随着模型参数的扩展,与续写毒性的关系保持恒定。
Table 7. 用于各类共现分析的提示词。
共现分析提示词与结果。表7显示了用于共现评估的提示词;这些与Brown等人(2020)【Brown, T., et al. Language models are few-shot learners. NeurIPS 2020.】使用的相同。表8显示了性别模板的最高关联词,表9和表10则分别显示了种族和宗教提示模板的相同内容。
图8. 8B密集变体在低毒性概率提示下的预期毒性概率。该图显示了8B密集模型最大预期毒性指标背后的分布。y轴显示预期毒性,x轴显示在不同百分位数聚合的分布。最左侧,最小续写毒性反映出,在25个样本的重复评估后,对于一些异常的非毒性提示,毒性最小的响应仍有0.8的可能被感知为有毒。最右侧,我们看到最坏情况下的毒性在非毒性提示中几乎呈均匀分布。换言之,在低毒性概率提示的25个样本中,对于大多数试验,都会有一个高毒性概率的续写。
F. 能源使用
能耗计算。训练期间(2021年8月和9月),数据中心的电源使用效率(PUE)为1.11。每个TPU-v4芯片的实测系统功率为326W,这导致GLaM的总能耗为213 MWh,是GPT-3能耗(1287 MWh)的1/6。在训练GPT-3时,数据中心的PUE为1.10【Patterson et al., 2021】。GLaM能耗降低的原因在于MoE架构以及TPU-v4硬件和GSPMD软件带来的计算效率优化。
碳排放。由于能耗较低,GLaM训练的二氧化碳排放也更低。当时数据中心每MWh的净tCO2e为0.088,训练GLaM(使用280B tokens)总共排放18.7净tCO2e,而GPT-3为552净tCO2e【Patterson et al., 2021】。完整的GLaM训练(使用600B tokens)仅消耗456 MWh,排放40.2净tCO2e。
G. 所有模型尺寸在所有任务上的结果
我们在表11、12、13和14中包含了不同模型尺寸在所有任务上的零/一/少样本结果。
Table 8. 性别:类似“{术语}非常...”提示的最高共现词。
Table 9. 种族:对类似“人们会把{术语}人描述为...”提示的响应中的共现词。
Table 10. 宗教:对类似“{术语}的实践者是...”提示的响应中的共现词。
Table 11. GLaM (64B/64E), GPT-3 和 Gopher 在所有29个基准上的得分。我们包含了更大且计算成本更高的Gopher和Megatron-NLG模型以供参考。
Table 12. GPT3以及不同GLaM MoE和密集模型在所有29个基准上的零样本得分。
Table 13. GPT3以及不同GLaM MoE和密集模型在所有29个基准上的一样本得分。
Table 14. GPT3以及不同GLaM MoE和密集模型在所有29个基准上的少样本得分。我们将样本数量调整到GPT3在各任务中使用的相应值。
💬 评论讨论
欢迎在这里分享您的想法和见解!