1.2万亿参数:谷歌通用稀疏语言模型GLaM,小样本学习打败GPT-3

1.2万亿参数:谷歌通用稀疏语言模型GLaM,小样本学习打败GPT-3

原标题:1.2万亿参数:谷歌通用稀疏语言模型GLaM,小样本学习击败GPT-3

机器心脏报告

机器之心编辑部

大规模语言模型性能固然好,但计算和资源成本太高了,有没有方法可以更有效地训练和使用 ML 模型呢?

近年来,我们看到模型的规模越来越大。例如,2018年出生的GPT有1.17亿个参数。一年后,2019年GPT-2参数数量将达到15亿,2020年将扩展到GPT-3,参数数量为1750亿。据了解,OpenAI打造的超级计算机拥有28.5万个CPU内核和1万个GPU,供OpenAI对所有AI模型进行训练。

虽然大规模语言模型的训练成本很高,但它们也有重要的方面。例如,小样本学习可以在各种任务中进行,包括阅读理解和问答。虽然这些模型可以通过简单地使用更多的参数来获得更好的性能。但是有什么方法可以更有效地训练和使用这些模型呢?

为了回答这个问题,谷歌推出了拥有数万亿权重的通用语言模型(GLaM)。该模型的一个主要特点是稀疏性,可以有效地用于训练和服务(在计算和资源使用方面),并且可以在许多小样本学习任务中获得有竞争力的性能。

我们来看看GLaM模型的具体情况。

数据集

首先,谷歌用1.6万亿代币构建了一个高质量的数据集。这个无标签的数据集很大一部分来自网页,从专业写作到低质量的评论和论坛页面。此外,谷歌还开发了一个文本质量过滤器,该过滤器在维基百科和书籍文本数据集上进行训练。因为过滤器训练的数据集质量很高,谷歌会过滤网页内容的质量。最后,谷歌应用这个过滤器来生成最终的网页子集,并将其与书籍和维基百科数据相结合来创建最终的训练数据集。

GLaM模型架构

GLaM是一种混合专家模型(MoE),可以认为它有不同的子模型(或专家),每个子模型都专用于不同的输入。每层楼的专家由一个门控网络控制,该网络根据输入数据激活专家。对于每个标记(通常是一个单词或单词的一部分),门控网络选择两个最合适的专家来处理数据。完整的GLaM共有1.2T参数,每个MoE包含64位专家,共32个MoE层。但在推理期间,模型只激活了97B的参数,占总参数的8%。

GLaM架构下,每个输入令牌动态路由到从64个专家网络中选出的两个专家网络进行预测。

与GShard MoE Transformer类似,Google用MoE层(人工神经网络最简单的一层,如上图蓝框中的前馈或FFN)代替了其他变压器层的单一前馈网络。MoE层的专家很多,每个专家都是一个结构相同但权重参数不同的前馈网络。

虽然MoE层有很多参数,但专家被稀疏激活,这意味着给定的输入令牌只使用两个专家,这样做的好处是在限制计算的同时为模型提供了更多的容量。训练期间,对每个MoE层选通网络进行训练,其输入用于激活每个token的最佳两位专家,然后用于推理。对于MoE层的e专家来说,这本质上提供了一个E×(E-1)不同前馈网络组合的集合,而不是经典Transformer中的一个组合,从而带来了更大的计算灵活性。

最终学习的令牌表示来自两个专家的输出的加权组合,这使得不同的专家能够激活不同类型的输入。为了扩展到更大的模型,GLaM架构中的每个专家都可以跨越多个计算设备。利用Google GSPMD编译器后端解决扩展专家的挑战,训练几个变体(基于专家的规模和数量)来理解稀疏激活语言模型的扩展效果。

评估设置

使用谷歌零拍和一拍设置,其中训练使用了以前从未见过的任务。评估基准包括以下内容:

完形填空和完成任务; 开放域问答; Winograd-style 任务; 常识推理; 上下文阅读理解; SuperGLUE 任务; 自然语言推理。

谷歌已经使用了八个NLG任务,其中生成的短语是基于真实目标进行评估的(以精确匹配和F1度量为指标),以及21个NLU任务,其中几个选项中的预测是通过条件对数似然来选择的。

实验结果

当每个MoE层只有一个专家时,GLaM就简化为基于Transformer的基本密集模型架构。在所有的实验中,谷歌都用“基本密集模型的规模/每个MoE层的专家数量”来描述GLaM模型。例如,1B/64E代表具有1B参数的密集模型架构,每隔一层由64个专家MoE层替换。

谷歌测试了GLaM的性能和扩展属性,包括在同一数据集上训练的基线密集模型。与微软和英伟达最近推出的威震天-图灵相比,GLaM在使用5%余量的情况下,在7个不同的任务上取得了相当的性能,推理过程中使用的计算能力降低了4/5。

此外,当推理过程中使用较少的计算能力时,1.2T参数的稀疏激活模型(GLaM)在更多的任务上比1.75B参数的密集GPT-3模型获得更好的平均结果。

在NLG(左)和NLU(右)的任务中,GLaM和GPT-3的平均分数(越高越好)。

谷歌总结了GLaM和GPT-3在29个基准上的性能对比结果。结果表明,GLaM在80%的零射任务和90%的单射任务中优于或等于GPT-3。

此外,虽然完整版本的GLaM总参数为1.2T,但在推理过程中,每个令牌只激活97B参数的子网(1.2T的8%)。

扩展

GLaM可以通过两种方式扩展:1)扩展每一层的专家数量,其中每个专家都托管在一个计算设备中;2)将每个专家的规模扩大到超过单个设备的限制。为了评估扩展属性,本研究将相应的密集模型与推理中每个标记的相似FLOPS进行比较。

通过增加每个专家的规模来平均零射和一射的表现。随着专家规模的增加,每个令牌预测的FLOPS在推理时也会增加。

如上图所示,跨任务表现与专家规模成正比。在生成任务的推理过程中,GLaM稀疏激活模型的性能也优于FLOP的同类密集模型。对于理解任务,研究人员观察到,它们在较小规模上的表现相似,但稀疏激活模型在较大规模上的表现更好。

数据效率

训练大型语言模型是计算密集型的,因此提高效率有助于降低能耗。这项研究显示了完整版本GLaM的计算成本。

模型推理(左)和训练(右)的计算成本(GFLOPS)。

这些计算成本表明,GLaM在训练期间使用了更多的计算,因为它在更多的令牌上进行训练,但在推理期间使用的计算要少得多。下图显示了不同令牌数训练的比较结果,并评估了模型的学习曲线。

随着训练中处理更多的令牌,稀疏主动模型和密集模型在八代任务上的平均零触发和单触发性能。

随着训练中更多的表征被处理,稀疏主动模型和密集模型在21个理解任务上的平均零射和单射表现。

结果表明,当稀疏激活模型达到与密集模型相似的零触发和单触发性能时,训练中使用的数据显著减少。此外,如果适用的数据量相同,稀疏模型将表现得更好。

最后,谷歌评估了GLam的能效:

GLaM和GPT-3在训练中能量消耗的比较。

虽然GLaM在训练过程中使用了更多的计算能力,但得益于GSPMD(Google在5月推出的基于编译器的通用机器学习图自动并行系统)更高效的软件实现以及TPUv4的优势,它在训练过程中消耗的能量比其他模型要少。

中文:https://ai.googleblog回到搜狐看更多。

负责编辑:

  • 姓名:
  • 专业:
  • 层次:
  • 电话:
  • 微信:
  • 备注:
文章标题:1.2万亿参数:谷歌通用稀疏语言模型GLaM,小样本学习打败GPT-3
本文地址:http://www.55jiaoyu.com/show-254523.html
本文由合作方发布,不代表展全思梦立场,转载联系作者并注明出处:展全思梦

热门文档

推荐文档