窝牛号

Google 发布GLaM:万亿权重语言学习模型来更好地理解上下文信息

在不同任务中执行小样本学习,包括阅读理解和用很少或没有训练示例的问题回答。虽然这些模型可以通过简单地使用更多参数来获得更好的性能,但训练和服务这些大型模型的计算量可能非常大。是否可以更有效地训练和使用这些模型?

为了解决这个问题,Google介绍了通用语言模型 (GLaM),这是一个万亿权重的模型,由于稀疏性,可以有效地训练和服务(在计算和能源使用方面),并在多个小样本上实现有竞争力的性能学习任务。GLaM 性能优于密集语言模型 GPT-3 (175B),在七个类别的 29 个公共 NLP 基准测试中显着提高了学习效率,涵盖语言完成、开放域问答和自然语言推理任务。

数据集

为了构建 GLaM,Google首先构建了一个高质量的 1.6 万亿令牌数据集,其中包含代表模型广泛下游用例的语言使用情况。网页构成了这个未标记语料库中的大量数据,但它们的质量范围从专业写作到低质量的评论和论坛页面。然后,Google开发了一个文本质量过滤器,该过滤器根据来自 Wikipedia 和书籍(两者通常都是更高质量的来源)的文本集合进行训练,以确定网页内容的质量。最后,Google应用这个过滤器来生成最终的网页子集,并将其与书籍和维基百科相结合来创建最终的训练数据集。

模型和架构

GLaM 是专家( MoE ) 模型的混合模型,这种模型可以被认为具有不同的子模型(或专家),每个子模型都专门用于不同的输入。每一层的专家都由一个门控网络控制,该网络根据输入数据激活专家。对于每个标记(通常是一个词或词的一部分),门控网络选择两个最合适的专家来处理数据。GLaM 完整版本在每个 MoE 层的 64 个专家中有 1.2T 的总参数,总共有 32 个 MoE 层,但在推理期间每个令牌预测仅激活97B(1.2T 的 8%)参数的子网络。

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

与GShard MoE Transformer类似,Google用MoE层替换了每个其他变压器层的单个前馈网络(人工神经网络中最简单的层,蓝色框中的“前馈或 FFN”)。这个 MoE 层有多个专家,每个专家都是一个具有相同架构但权重参数不同的前馈网络。尽管这个 MoE 层有更多的参数,但专家被稀疏地激活,这意味着对于给定的输入令牌,只使用两个专家,在限制计算的同时为模型提供更多容量。在训练期间,每个 MoE 层的门控网络都经过训练,以使用其输入激活每个令牌的最佳两个专家,然后将其用于推理。对于E的 MoE 层专家,这本质上提供了E ×( E -1) 个不同前馈网络组合的集合(而不是经典Transformer架构中的一个),从而带来更多的计算灵活性。

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

Google使用零样本和单样本设置,其中在训练期间从未见过任务。用于评价的基准包括(1)填空和完成任务

(2)打开域问答

(3) Winograd 式任务

(4)常识推理

(5)在上下文中阅读理解

(6) SuperGLUE任务;

(7) 自然语言推理 。总共有 8 个自然语言生成任务 (NLG),其中通过精确匹配(EM) 准确度和F1 度量针对真实目标评估生成的短语,以及 21 个语言理解任务 (NLU),其中来自多个选项的预测是通过条件对数似然选择。一些任务有变体,SuperGLUE 由多个任务组成。在Google所有的结果中,EM 准确度和 F1 都从 0 到 100 缩放,并为下面的 NLG 分数取平均值。NLU 分数是准确率和 F1 分数的平均值。

当每个 MoE 层只有一个专家时,GLaM 简化为一个基本的密集的基于 Transformer 的语言模型架构。在所有实验中,Google采用(基础密集模型大小)/(每个MoE层的专家数量)来描述 GLaM 模型。例如,1B/64E 表示 1B 参数密集模型的架构,每隔一层由 64 个专家 MoE 层代替。在以下部分中,Google将探讨 GLaM 的性能和缩放特性,包括在相同数据集上训练的基线密集模型。与最近公布的威震天-图灵模型相比,如果使用 5% 的余量,GLaM 在七个各自的任务上是不相上下的,同时在推理过程中使用的计算量减少了 5 倍。

下面,Google展示了与175B 参数密集 GPT-3 模型相比,1.2T 参数稀疏激活模型 (GLaM) 在平均和更多任务上取得了更高的结果,同时在推理过程中使用的计算量更少。

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

下面Google展示了与密集模型 (GPT-3, 175B) 相比的 29 个基准测试的性能摘要。GLaM 在近 80% 的零样本任务和近 90% 的单样本任务上超过或与密集模型的性能相当。

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

扩展行为

GLaM 有两种扩展方式:1) 扩展每层的专家数量,其中每个专家都托管在一个计算设备中,或者 2) 扩展每个专家的规模以超出单个设备的限制。为了评估缩放属性,Google在推理时比较每个令牌的类似FLOPS的相应密集模型(FFN 层而不是 MoE 层)。

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

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

数据效率

训练大型语言模型是计算密集型的,因此提高效率有助于降低能耗。

下面Google展示了完整版 GLaM 的计算成本。

GFLOPS 中的计算成本,用于推理、每个令牌(左)和训练(右)。

这些计算成本表明 GLaM 在训练期间使用了更多的计算,因为它在更多的令牌上训练,但在推理期间使用的计算却少得多。Google在下面展示了使用不同数量的令牌进行训练的比较。

与密集基线相比,Google还评估了模型的学习曲线。

随着在训练中处理更多标记,稀疏激活和密集模型在八个生成任务上的平均零次和一次性能。

随着在训练中处理更多标记,稀疏激活和密集模型在 21 个理解任务上的平均零次和一次性能。

上面的结果表明,稀疏激活模型需要用比密集模型少得多的数据进行训练才能达到类似的零次和一次性能,如果使用相同数量的数据,稀疏激活模型的性能明显更好。

最后,Google评估了 GLaM 的能源效率。

训练时的功耗比较

虽然华丽训练过程中使用更多的计算,这要归功于更高效的软件实现搭载GSPMD和优势TPUv4,它使用小于其他车型的列车动力。

Google的大规模稀疏激活语言模型 GLaM 在零样本和单样本学习方面取得了有竞争力的结果,并且是比之前的整体密集模型更有效的模型。Google还定量地表明,高质量的数据集对于大型语言模型是必不可少的。Google希望Google的工作能激发更多对计算效率高的语言模型的研究。

本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除

窝牛号 wwww.93ysy.com   沪ICP备2021036305号-1