论文翻译:PaLM: 使用Pathways扩大语言模型(1)

*声明:本翻译仅为个人观看方便所用,无意向任何人提供盗版资料,也无意侵犯任何人的权利。若版权方认为侵权,请联系我,我会将侵权部分删除。

*本文使用ChatGPT翻译。

原文标题:PaLM: Scaling Language Modeling with Pathways

作者:Aakanksha Chowdhery∗ Sharan Narang∗ Jacob Devlin∗
Maarten Bosma Gaurav Mishra Adam Roberts Paul Barham
Hyung Won Chung Charles Sutton Sebastian Gehrmann Parker Schuh Kensen Shi
Sasha Tsvyashchenko Joshua Maynez Abhishek Rao† Parker Barnes Yi Tay
Noam Shazeer‡ Vinodkumar Prabhakaran Emily Reif Nan Du Ben Hutchinson
Reiner Pope James Bradbury Jacob Austin Michael Isard Guy Gur-Ari
Pengcheng Yin Toju Duke Anselm Levskaya Sanjay Ghemawat Sunipa Dev
Henryk Michalewski Xavier Garcia Vedant Misra Kevin Robinson Liam Fedus
Denny Zhou Daphne Ippolito David Luan‡ Hyeontaek Lim Barret Zoph
Alexander Spiridonov Ryan Sepassi David Dohan Shivani Agrawal Mark Omernick
Andrew M. Dai Thanumalayan Sankaranarayana Pillai Marie Pellat Aitor Lewkowycz
Erica Moreira Rewon Child Oleksandr Polozov† Katherine Lee Zongwei Zhou
Xuezhi Wang Brennan Saeta Mark Diaz Orhan Firat Michele Catasta† Jason Wei
Kathy Meier-Hellstern Douglas Eck Jeff Dean Slav Petrov Noah Fiedel

谷歌是用什么方法训练出一个540B的模型的呢……

阅读更多

1 引言

在过去几年中,针对语言理解和生成训练的非常大型神经网络在各种任务中取得了令人惊讶的成果。其中许多模型,如 BERT(Devlin 等,2019)和 T5(Raffel 等,2020),使用填充(“掩码语言模型”或“跨度破坏”)的预训练目标,在大型文本语料库上训练了仅有编码器或编码器-解码器结构,然后通过微调来适应一个或多个特定任务。尽管这些模型在成千上万的自然语言任务中几乎达到了普遍的最先进水平,但缺点是它们需要大量特定任务的训练示例来微调模型。此外,至少部分模型参数必须更新以适应任务,这增加了模型微调和部署的复杂性。

GPT-3(Brown 等,2020)证明了极其大型的自回归语言模型(LMs)可以用于少样本预测,其中模型只接收自然语言任务描述(可选)以及一些示例,演示任务应如何完成。这类模型使用仅有解码器的架构和标准的从左到右的语言建模目标在大型文本语料库上训练,其目标是在给定示例中的前面令牌的情况下预测下一个令牌。已经证明少样本评估可以在不需要大规模任务特定数据收集或模型参数更新的情况下实现非常强大的结果。

自 GPT-3 以来,已经开发了许多其他大型自回归语言模型,继续推动最新技术的进步。这些后 GPT-3 模型中最强大的包括 GLaM(Du 等,2021)、Gopher(Rae 等,2021)、Chinchilla(Hoffmann 等,2022)、Megatron-Turing NLG(Smith 等,2022)和 LaMDA(Thoppilan 等,2022),它们在发布时在大量任务中实现了少样本最先进的结果。与 GPT-3 一样,这些模型都是 Transformer 架构(Vaswani 等,2017)的变体。这些模型的改进主要来自以下一种或多种方法:(1)在深度和宽度上扩展模型的规模;(2)增加模型训练的令牌数量;(3)训练更干净的来自更多来源的数据集;以及(4)通过稀疏激活模块增加模型容量而不增加计算成本。

在这项工作中,我们延续了语言建模改进的规模化路线,并在 7800 亿标记的高质量文本上训练了一个拥有 5400 亿参数、密集激活的自回归 Transformer 模型。这是通过使用 Pathways(Barham 等,2022)实现的,Pathways 是一个新的 ML 系统,可以在数千个加速器芯片上实现非常大型神经网络的高效训练,包括跨多个张量处理单元(TPU)v4 Pod 的芯片。这个新模型,称为 Pathways 语言模型(PaLM),在数百个自然语言、代码和数学推理任务中取得了最先进的少样本结果。我们在其中一些任务中取得了突破性的表现。

这项工作的主要要点如下:

高效的扩展 - 我们展示了 Pathways(Barham 等,2022)的首次大规模应用,这是一种新的 ML 系统,可以以高效的方式跨数千个或数万个加速器芯片训练单个模型。利用 Pathways,我们在 6144 个 TPU v4 芯片上以前所未有的效率水平训练了一个 5400 亿参数的语言模型。大多数先前的大型语言模型要么在单个 TPU 系统上训练(Du 等,2021;Thoppilan 等,2022),要么使用管道并行性(Huang 等,2019)在 GPU 集群(Smith 等,2022)或多个 TPU v3 Pod(Rae 等,2021)上进行扩展,最大规模为 4096 个 TPU v3 芯片。在第 4 节中,我们描述了如何能够将 PaLM 540B 的无管道训练扩展到 6144 个芯片,跨越两个 TPU v4 Pod,并在模型 FLOPs 利用率方面实现了非常高的效率,达到了46.2%(相对于理论最大吞吐量的观察吞吐量)以及57.8%的硬件 FLOPs 利用率。

规模化带来的持续改进 - 在第 6 节中,我们评估了 PaLM 在数百个自然语言、代码和数学推理任务上的表现,并在绝大多数基准测试中取得了最先进的结果,通常差距很大。这个关键的证明表明,大型 LM 的扩展改进既没有达到平稳状态,也没有达到饱和点。例如,在表 4 中,我们提出了对 29 个最广泛评估的英语语言理解基准测试中的 28 个新的少样本最先进结果,与 GLaM(Du 等,2021)、GPT-3(Brown 等,2020)、Megatron-Turing NLG(Smith 等,2022)、Gopher(Rae 等,2021)、Chinchilla(Hoffmann 等,2022)和 LaMDA(Thoppilan 等,2022)每个任务的最佳结果进行比较。

突破性能力 - 我们在一些困难任务中展示了语言理解和生成的突破性能力。具体来说,第 6.3 节展示了对一系列推理任务的评估,这些任务需要多步数学或常识推理来产生正确答案。先前的最先进结果使用了任务特定的微调、领域特定的架构和任务特定的验证器来获得强大的结果。在这项工作中,我们证明了当模型规模与思维链提示(Wei 等,2022b)相结合时,简单的少样本评估可以在广泛的推理任务上超过或与微调状态下的最先进结果相匹配。在第 6.2 节中,我们还突出展示了在 BIG-bench(BIG-bench collaboration,2021)上的突破性能力,这是一个最近发布的包含 150 多个新的语言理解和生成任务的套件,其中许多任务即使对于人类来说也非常难以正确回答。在图 1 和第 9 节中,我们展示了 PaLM 在解释和说明复杂推理链方面的探索能力。

不连续的改进 - 为了更好地了解规模化行为,我们在三种不同的参数规模下提供了结果:8B、62B 和 540B。通常,从 62B 扩展到 540B 的效果与从 8B 扩展到 62B 的效果相似,这与神经网络扩展中常见的“幂律”规则一致(Kaplan 等,2020)。然而,对于某些任务,我们观察到不连续的改进,即从 62B 扩展到 540B 导致准确度与从 8B 扩展到 62B 相比大幅跃升。这种行为在第 6.2 节的大约 25% 的 BIG-bench 任务中观察到。这表明当模型达到足够的规模时,大型 LM 的新能力可能会出现,并且这些能力将持续出现超过先前研究的规模。

多语言理解 - 先前对大型语言模型的研究在多语言领域进行了有限的评估。在这项工作中,我们对多语言基准进行了更全面的评估,包括机器翻译(第 6.5 节)、摘要(第 6.6 节)和问答(第 6.7 节),涉及多种语言。即使在训练语料库中非英语数据的比例相对较小(约为 22%),540B 模型的少样本评估结果也能弥合与以前的微调最先进在非英语摘要任务中的差距,并在翻译任务中胜过以前的最先进水平。进一步的工作是必要的,以了解增加多语言数据比例对英语和多语言任务的影响。

偏见和毒性 - 我们还评估了模型在分布偏见和毒性方面的表现,得出了几个见解(第 10 节)。首先,在性别和职业偏见方面,我们发现 Winogender 共指任务的准确性随着模型规模的增加而提高,而 PaLM 540B 在 1 次射击和少样本设置下创造了一个新的最先进结果。其次,在种族/宗教/性别提示延续的共现分析中,我们发现模型可能错误地肯定了刻板印象,例如,将穆斯林与恐怖主义、极端主义和暴力联系起来。这种行为在模型规模上保持一致。最后,在提示延续任务的毒性分析中,相对于 8B 模型,62B 和 540B 模型的总体毒性水平略高。然而,模型生成的延续的毒性与提示文本的毒性高度相关,而人类生成的延续则没有强烈的毒性相关性。这表明模型更受提示样式的影响,而不像人类生成的文本那样。在未来的工作中,我们计划将这些基准扩展到非英语语言,并更全面地考虑潜在风险。

解释笑话逻辑推理

输入:你看到了吗?谷歌刚刚为他们的 TPU 团队聘请了一只雄辩的鲸鱼?它向他们展示了如何在两个不同的 Pod 之间进行通信!
模型输出:TPU 是谷歌用于深度学习的一种计算机芯片。一个“Pod”是一组 TPU。一个“Pod”也是一组鲸鱼。这个笑话是说鲸鱼能够在两个鲸鱼群之间进行通信,但说话者假装鲸鱼能够在两组 TPU 之间进行通信。

输入:雪莉来自弗吉尼亚,但正在访问那个有着著名鱼市场的城市。下周二回家! 问题:雪莉在这个周末可能会靠近太平洋吗?
模型输出:有一个著名的鱼市场的城市是西雅图,华盛顿。西雅图位于太平洋。雪莉正在访问西雅图,所以她这个周末将会靠近太平洋。答案是“是”,雪莉在这个周末可能会靠近太平洋。

图 1:这些示例展示了使用思维链提示(Wei 等,2022b)来促使 PaLM 生成解释的探索能力。所有示例都是使用 PaLM 540B 的贪婪(1-最佳)解码生成的。提示是使用 2 次射击示例完成的,这些示例在第 9 节中展示,以及使用相同示例的更多示例的输出。

2 模型架构

PaLM 使用了标准的 Transformer 模型架构(Vaswani 等,2017),采用了仅有解码器(Decorder-Only)的设置(即,每个时间步只能注意到自身和过去的时间步),具有以下修改:

SwiGLU 激活函数 - 我们使用 SwiGLU 激活函数(Swish(xW) · xV),因为已经证明与标准的 ReLU、GeLU 或 Swish 激活函数相比,它们可以显著提高质量(Shazeer,2020)。需要注意的是,这在 MLP 中需要三次矩阵乘法,而不是两次,但 Shazeer(2020)在等价计算实验中展示了质量的提高(即,标准的 ReLU 变体具有比例上更大的维度)。

并行层 - 我们在每个 Transformer 块中使用“并行”形式(Wang & Komatsuzaki,2021),而不是标准的“串行”形式。具体来说,标准形式可以写成:

y = x + MLP(LayerNorm(x + Attention(LayerNorm(x)))

而并行形式可以写成:

y = x + MLP(LayerNorm(x)) + Attention(LayerNorm(x))

并行形式在大规模下训练速度大约快了 15%,因为 MLP 和 Attention 输入矩阵乘法可以合并。消融实验表明在 8B 规模下存在一定程度的质量下降,但在 62B 规模下没有质量下降,因此我们推断并行层的影响在 540B 规模下应该是质量中性的。

多查询注意力 - 标准的 Transformer 公式使用 k 个注意力头,其中每个时间步的输入向量被线性投影到形状为 [k, h] 的“查询”、“键”和“值”张量中,其中 h 是注意力头的大小。在这里,键/值投影被共享到每个头部,即“键”和“值”被投影到 [1, h] 的形状,但“查询”仍然被投影到形状 [k, h]。我们发现这对模型质量和训练速度没有影响(Shazeer,2019),但在自回归解码时间上节省了显著的成本。这是因为标准的多头注意力在自回归解码期间在加速器硬件上效率低下,因为键/值张量在例子之间不共享,并且每次只解码一个令牌。

RoPE 嵌入 - 我们使用 RoPE 嵌入(Su 等,2021),而不是绝对或相对位置嵌入,因为 RoPE 嵌入已经被证明在长序列长度上具有更好的性能。

共享输入-输出嵌入 - 我们共享输入和输出嵌入矩阵,这在过去的工作中经常(但不是普遍)这样做。

无偏见 - 在任何密集核或层归一化中都没有使用偏见。我们发现这样做可以提高大型模型的训练稳定性。

词汇表 - 我们使用了一个具有 256k 个标记的 SentencePiece(Kudo&Richardson,2018a)词汇表,这个选择是为了支持训练语料库中众多语言的需求,而不会产生过度的标记化。该词汇表是从训练数据中生成的,我们发现这样做可以提高训练效率。该词汇表完全无损和可逆,这意味着词汇表中的空白符完全保留(对于代码特别重要),并且超出词汇表的 Unicode 字符被拆分为 UTF-8 字节,每个字节都有一个词汇表标记。数字总是被拆分为单个数字标记(例如,“123.5 → 1 2 3 . 5”)。


2.1 模型规模超参数(Model Scale Hyperparameters)


在这项工作中,我们比较了三种不同的模型规模:540B 参数、62B 参数和8B 参数。每个标记的 FLOPs 数量大约等于参数数量,因为这些模型是标准的密集 Transformer。这些模型是使用表格 1 中的超参数构建的。这三个模型在相同的数据和词汇表下进行了相同(除了批量大小)的训练。训练过程在第 3 和第 5 节中有更详细的描述。

表1:模型架构细节。我们列出了层数、d_{model}、注意力头的数量和注意力头大小。前馈大小 d_{ff} 总是 4 × d_{model},而注意力头大小总是 256。

2.2 模型卡片

PaLM 的模型卡片(Mitchell等人,2019)提供在附录 E 中。这提供了对模型架构、训练设置、训练数据和预期用途的高层次摘要。

3 训练数据集

PaLM 的预训练数据集包括一个高质量的语料库,共包含 7800 亿个标记,代表了广泛的自然语言使用情况。该数据集是由经过筛选的网页、书籍、维基百科、新闻文章、源代码和社交媒体对话的混合物组成。这个数据集基于用于训练 LaMDA(Thoppilan等人,2022)和 GLaM(Du等人,2021)的数据集。我们对所有三个模型都训练了完全相同的数据集(对所有模型进行了相同的洗牌),并选择了混合比例,以避免在任何子组件中重复数据。

除了自然语言数据之外,预训练数据集还包含代码。预训练数据集中的源代码来自 GitHub 上的开源代码库。我们通过存储库中包含的许可证对文件进行了筛选; copyleft 许可证被排除在外。我们通过文件名扩展名对文件进行过滤,以限制到 24 种常见编程语言之一,包括 Java、HTML、Javascript、Python、PHP、C#、XML、C++ 和 C,从而获得了 196GB 的源代码。此外,我们根据文件之间的 Levenshtein 距离删除重复项,因为在源代码存储库中已知存在大量重复文件(Lopes等人,2017;Allamanis,2019)。

表 2 列出了用于创建最终 PaLM 数据集混合物的各种数据源的比例。我们在第 8 节中检查数据污染,并展示了我们的训练数据集与评估数据之间的重叠分析。附录 D 包含了一份数据表(Gebru等人,2021),其中包含更多信息,包括语言比例的详细分析。

表 2:训练数据集中来自每个来源的数据比例。多语种语料库包含来自100多种语言的文本,其分布见附录表29。

4 训练的基础设施

我们的训练和评估代码基于 JAX(Bradbury等人,2018)和 T5X(Roberts等人,2022),所有模型都在 TPU v4 Pods(Jouppi等人,2020)上进行训练。PaLM 540B 是通过两个通过数据中心网络(DCN)连接的 TPU v4 Pod(Xu等人,2021)上进行训练的,使用了模型和数据并行的组合。每个 Pod 上连接了 3072 个 TPU v4 芯片,连接了 768 个主机。这个系统是迄今为止描述的最大 TPU 配置,使我们能够有效地将训练扩展到 6144 个芯片,而无需使用任何管道并行性(Huang等人,2019)。

在可比较规模的端到端模型训练的先前报告中,有两种方法。LaMDA(Thoppilan等人,2022)和 GLaM(Du等人,2021)分别在单个 TPU 系统上进行训练,而没有利用管道并行性或 DCN。Megatron-Turing NLG 530B(Smith等人,2022)使用模型、数据和管道并行性的组合,在 2240 个 A100 GPU 上进行训练,而 Gopher(Rae等人,2021)则在四个通过 DCN 连接的 TPU v3 Pod(每个具有 1024 个 TPU v3 芯片)上进行训练,并在 Pod 之间使用流水线。

流水线通常与 DCN 一起使用(Smith等人,2022),因为它具有较低的带宽要求,并且提供了超出模型和数据并行性所能承受的最大有效规模的额外并行化。流水线通常将训练批次分成“微批次”,但它也具有重要的缺点。首先,在流水线“气泡”的步骤时间开销中,许多设备在填充和排空管道时完全闲置,这是前向和后向传递的开始和结束。其次,由于要为每个微批次中的小批次重新加载权重,它要求更高的内存带宽。在某些情况下,它还涉及增加的软件复杂性。我们能够使用以下策略有效地将 PaLM 540B 的训练扩展到 6144 个芯片而无需使用流水线。

每个 TPU v4 Pod 包含模型参数的完整副本,每个权重张量都使用 12 路模型并行和 256 路完全分片数据并行(称为“2D finalized”方法)进行划分(Xu等人,2021)。在前向传递期间,权重在数据并行轴上进行全收集,并且从每个层保存一个完全分片的激活张量。在反向传递期间,其余的激活被重新生成,因为与备选重新计算选择相比,这会在更大的批次大小时提高训练吞吐量。

我们使用 Pathways 系统(Barham等人,2022)将训练扩展到超出单个 TPU v4 Pod 的范围。PaLM 540B 利用 Pathways 的客户端-服务器架构,在 Pod 级别实现双向数据并行。一个单独的 Python 客户端将一半的训练批次分发给每个 Pod,每个 Pod 使用标准的 Pod 内数据和模型并行计算前向和反向计算以并行计算梯度。然后,Pod 传输(计算其一半批次上的)梯度与远程 Pod,最后,每个 Pod 积累本地和远程梯度,并并行应用参数更新,以获得下一个时间步的位相同的参数。


图2: Pathways 系统(Barham等人,2022)通过在 Pod 级别使用双向数据并行扩展了跨两个 TPU v4 Pod 的训练。

图2显示了Pathways系统如何执行双向Pod级数据并行。单个Python客户端构建了一个分片数据流程序(在图2左侧显示),该程序在每个包含TPU Pod的远程服务器上启动JAX/XLA工作。该程序包含一个用于Pod内前向+后向计算的组件A(包括Pod内梯度归约)、用于跨Pod梯度传输的转移子图,以及一个用于优化器更新的组件B(包括本地和远程梯度的求和)。Pathways程序在每个Pod上执行组件A,然后将输出梯度传输到另一个Pod,最后在每个Pod上执行组件B。Pathways系统设计具有几个特点,使其能够将程序执行扩展到数千个加速器芯片——首先,它通过Pod级调度器(在图2右侧显示)的异步组调度掩盖了从单个Python客户端向远程服务器分发JAX/XLA工作的延迟,其次,通过分片数据流执行模型摊销了管理数据传输的成本(有关详细信息,请参阅Barham等人(2022年))。

双向Pod级数据并行的一个有趣方面是在连接到两个Pod的总共1536个主机上的6144个TPU v4芯片的规模下实现高训练吞吐量的挑战。请注意,跨Pod梯度传输仅需要在两个Pod上对应的主机之间进行1:1的传输,因为每个核心只需要其模型分片参数的远程梯度。此外,两个Pod之间的主机通过谷歌数据中心网络连接。由于传输直到每个核心完成梯度计算才开始(如图2所示),这导致了一个非常突发的工作负载,其中所有主机在数据中心网络链路上同时传输其梯度。特别地,每对主机在每个训练步骤中交换大约1.3GB的梯度,总共产生了81 Tbps的聚合突发。这种工作负载的突发特性引入了挑战,我们通过精心设计Pathways网络堆栈来解决这些挑战,以实现最佳的数据中心网络链路利用率。例如,为了减轻拥塞的影响,梯度传输的数据被分解为较小的块,并通过多个较小的流路由到多样化的数据中心网络链路。通过这些优化,我们实现了相对于训练时单个Pod的约1.95倍的训练吞吐量(相对于单个Pod,我们将批处理大小在两个Pod之间翻了一番,相当于理论上的完美弱可伸缩性的97%)。与理论上的2倍吞吐量相比,性能差距是由于向后传递和跨Pod梯度归约之间缺乏重叠造成的。我们期望在未来的工作中解决这个问题。

4.1 训练效率

先前报告的大多数有关加速器效率的数字都使用了我们称之为硬件 FLOPs 利用率(HFU)的指标。这通常反映了在给定设备上观察到的 FLOPs 数与其理论峰值 FLOPs 的比率的估计。然而,硬件 FLOPs 利用率存在几个问题。首先,执行的硬件 FLOPs 数量取决于系统和实现,编译器中的设计选择可能导致不同数量的操作。重生成是一种广泛使用的技术,用于在内存使用和计算之间进行权衡。为了有效地计算大多数神经网络架构的反向传播,必须在内存中存储批处理的许多中间激活。如果无法全部容纳,可以重新计算一些前向传播操作(使一些激活重新生成而不是存储)。这创建了一个权衡,使用额外的硬件 FLOPs 可以节省内存,但培训系统的最终目标是实现每秒标记的高吞吐量(因此是快速培训),而不是尽可能多地使用硬件 FLOPs。其次,测量观察到的硬件 FLOPs 取决于用于计数或跟踪它们的方法。已根据分析会计(Narayanan等人,2021b)以及使用硬件性能计数器(Xu等人,2021)报告了观察到的硬件 FLOPs。

鉴于这些问题,我们认识到 HFU 不是 LLM 训练效率的一致且有意义的度量标准。我们提出了一种新的效率度量标准,即模型 FLOPs 利用率(MFU),该度量标准与实现无关,并允许对系统效率进行更清洁的比较。MFU 是观察吞吐量(每秒标记数)与在峰值 FLOPs 下操作的理论最大吞吐量之间的比率。至关重要的是,“理论最大”吞吐量仅考虑了计算前向+后向传播所需的操作,而不考虑重生成。因此,MFU 允许在不同系统上进行训练运行的公平比较,因为分子仅仅是观察到的每秒标记数,而分母仅取决于模型架构和给定系统的已发布最大 FLOPs。我们在附录 B 中详细阐述了计算 MFU 的数学公式。


表3: PaLM 和先前大型模型的模型 FLOPs 利用率。PaLM 通过模型、编译器和并行策略的多项优化实现了显著高的 MFU。PaLM 相应的硬件 FLOPs 利用率为 57.8%。计算细节请参见附录 B。

我们在表3中展示了PaLM 540B模型的模型FLOPs利用率,并将其与先前的大型模型进行了对比。在不同模型参数数量、架构和模型质量的背景下,MFU对比模型和系统非常有用。根据OpenAI通过Patterson等人(2021)报告的数据,GPT-3的MFU数字为21.3%,基于每个GPU的24.6个非注意力模型TFLOP/s,而Gopher的MFU数字为32.5%,基于每秒0.0152步的训练速度。Megatron–Turing NLG 530B的MFU数字是29.7%,没有自注意力,或者是30.2%,有自注意力,基于65.43K个tokens/秒的训练吞吐量(Smith等人,2022)。 相比之下,PaLM 540B在批量大小为2048时实现了平均训练吞吐量为238.3K个tokens/秒。PaLM 540B的训练使用了重新计算技术,因为使用重新计算可以实现更高的训练吞吐量。PaLM 540B的MFU是45.7%,没有自注意力,或者是46.2%,有自注意力。我们通过分析计算出的硬件FLOPs利用率,包括重新计算的FLOPs,为57.8%。PaLM通过其并行策略和其他几个因素,包括XLA TPU编译器优化和“并行层”的使用(见第2节),实现了高加速器利用率。我们认为PaLM在LLM训练效率方面代表了重要的进步。

5 训练设置

模型训练遵循了大型Transformer语言模型的标准设置。具体细节如下:

权重初始化 - 内核权重(即除了嵌入和层归一化尺度之外的所有内容)采用“输入方差缩放”进行初始化,即W ∼ N(0, 1/sqrt(nin)),其中nin是内核的输入维度。输入嵌入被初始化为E ∼ N(0, 1),因为嵌入层归一化不适用于嵌入。由于输入和输出嵌入层是共享的,因此我们通过1/sqrt(n)对预softmax输出对数进行缩放,其中n是嵌入的大小。

优化器 - 模型使用Adafactor优化器(Shazeer&Stern,2018)进行训练,没有分解。这实际上相当于Adam(Kingma&Ba,2014)与“参数缩放”的等效,它通过参数矩阵的均方根来缩放学习率。由于权重初始化与1/sqrt(n)成正比,这种效果与Brown等人(2020)中手动缩放Adam学习率的效果类似。然而,参数缩放的好处在于,操作在不同尺度上运行的参数矩阵(嵌入和层归一化尺度)的学习率不会以相同的速率缩小。

• 优化超参数 - 我们使用Adafactor学习率为10-2进行前10000步的训练,然后以1/sqrt(k)的速率进行衰减,其中k是步数。我们使用β1 = 0.9的动量。第二阶矩插值值计算为β2 = 1.0 - k-0.8,其中k是步数。我们发现,在训练大型语言模型时,这比标准β2 = 0.99更稳定,因为稀有嵌入标记可能在较短窗口内估计第二时刻时有很大的误差。我们在训练过程中使用全局范数梯度裁剪(Pascanu等人(2012)),对于所有模型,值为1.0。我们在训练期间使用动态权重衰减lr2.0,其中lr是当前学习率。

损失函数 - 模型使用标准的语言建模损失函数进行训练,即所有标记的平均对数概率,不使用标签平滑。我们另外使用辅助损失z损失= 10-4·log2Z,以鼓励softmax归一化器log(Z)接近0,我们发现这样增加了训练的稳定性。

序列长度 - 所有模型的序列长度都为2048。输入示例被连接在一起,然后被分割成确切的2048个标记的序列,以便没有填充标记,但是示例可能被分割在中间。输入示例通过特殊的[eod]标记与彼此区分开来。

批量大小 - 对于所有模型,我们在训练期间增加批量大小。对于最大的模型,我们在50k步时使用批量大小512(100万个标记),然后将其加倍到115k步时的1024(200万个标记),最后再次加倍到255k步时的2048(400万个标记)直到训练完成。较小的模型遵循类似的计划。使用这种批量大小计划的原因有两个:(1)在训练初期,较小的批量大小更有效率(即看到的标记的损失更好),而在训练后期,较大的批量大小由于更好的梯度估计(Smith等人,2018;McCandlish等人,2018)而受益,(2)较大的批量大小导致更大的矩阵乘法维度,从而增加了TPU的效率。

位确定性 - 模型可以从任何检查点完全位确定地再现。换句话说,如果模型在单次运行中训练到17,000步,然后我们从检查点15,000重新开始,那么训练框架保证在检查点15,000到17,000之间的两次运行中产生相同的结果。这通过两种方式实现:(1)由JAX + XLA + T5X提供的位确定性建模框架,以及(2)确定性数据集管道,其中打乱的数据以随机访问格式写入,因此给定训练批次的内容仅取决于步数(Roberts等人,2022)。 •

退出 - 模型在训练时没有使用退出,尽管在大多数情况下,微调使用0.1的退出。

5.1 训练不稳定性

对于最大的模型,在训练过程中我们大约观察到了20次损失的尖峰,尽管梯度裁剪已经启用。这些尖峰发生在高度不规则的间隔内,有时发生在训练后期,并且在训练较小的模型时并未观察到。由于训练最大模型的成本,我们无法确定一个原则性的策略来缓解这些尖峰。

相反,我们发现了一个简单有效地缓解问题的策略:我们从尖峰开始前大约100步的检查点重新开始训练,并跳过大约200-500个数据批次,其中包括在尖峰之前和之后看到的批次。通过这种缓解,损失在相同的时间点不再出现尖峰。我们不认为这些尖峰本质上是由“坏数据”引起的,因为我们进行了几项消融实验,其中我们取了围绕尖峰的数据批次,然后从不同的、更早的检查点开始对这些相同的数据批次进行训练。在这些情况下,我们并没有观察到尖峰。这意味着尖峰只会在特定的数据批次与特定的模型参数状态的组合下发生。在未来,我们计划研究更加原则性的策略来缓解非常大型语言模型中损失尖峰的问题。

6 评估

6.1 英语自然语言处理任务

为了与之前的大型语言模型进行比较,我们在与 Du 等人 (2021) 和 Brown 等人 (2020) 相同的 29 个英语基准测试上评估 PaLM 模型。这些基准测试包括:

开放领域闭卷问答任务: TriviaQA (Joshi 等人,2017),自然问题 (Kwiatkowski 等人,2019),Web 问题 (Berant 等人,2013) • 填空和补全任务:LAMBADA (Paperno 等人,2016),HellaSwag (Zellers 等人,2019),StoryCloze (Mostafazadeh 等人,2016)

Winograd 风格任务:Winograd (Levesque 等人,2012),WinoGrande (Sakaguchi 等人,2020) • 常识推理:PIQA (Bisk 等人,2019),ARC (Clark 等人,2018),OpenBookQA (Mihaylov 等人,2018) • 上下文阅读理解:DROP (Dua 等人,2019),CoQA (Reddy 等人,2018),QuAC (Choi 等人,2018),SQuADv2 (Rajpurkar 等人,2018),RACE (Lai 等人,2017) • SuperGLUE (Wang 等人,2019a)

自然语言推理 (NLI):对抗性 NLI (Nie 等人,2019)

表 4 包括了 PaLM 540B 的结果以及其他大型语言模型的先前最优结果。在这个表格中,我们只考虑预训练语言模型的单一检查点结果。任何使用微调或多任务适应 (Wei 等人 (2022a),Sanh 等人 (2021)) 的模型都不包含在表格中。

在 1-shot 设置中,PaLM 540B 在 29 项任务中有 24 项超越了先前的最优结果,在 few-shot 设置中有 28 项任务超越了先前的最优结果。有趣的是,PaLM 540B 在一些阅读理解和 NLI 任务的 few-shot 设置中超过先前的最优结果超过 10 分。虽然模型大小在实现这些结果中起到了重要作用,但是 PaLM 540B 在所有基准测试中均超过了相似规模的模型 (Megatron-Turing NLG 530B)。这表明,预训练数据集、训练策略以及训练过程中观察到的令牌数量也在实现这些结果中起着重要作用。


表5列出了自然语言理解(NLU)和自然语言生成(NLG)任务的平均得分。PaLM 540B 在两个类别的平均得分上都提高了超过5分。正如表中所示,每个类别的平均得分也随着PaLM模型的规模而提高。有趣的是,PaLM 62B 在两个类别中均超过了GPT-3 175B。8B和62B模型的所有任务结果可以在附录H.1中找到。


表4:PaLM 540B模型在29个NLP基准测试中取得的结果。对于少样本结果,每个任务的样本数在括号中标明。每个任务的分割与Du等人(2021年)和Brown等人(2020年)使用的相同。上标表示来自过去工作的结果:aGLaM 62B/64E(Du等,2021年)、bGPT-3 175B(Brown等,2020年)、cMegatron-Turing NLG 530B(Smith等,2022年)、dGopher(Rae等,2021年)、eLaMDA(Thoppilan等,2022年)(结果来自Wei等人(2022a)),fChinchilla(Hoffmann等,2022年)。† Rae等人(2021年)和Hoffmann等人(2022年)的工作在RACE-m/h上取得了更高的分数,但这些论文的作者指出,由于任务设置的差异,他们的分数不能与GPT-3和其他大型LM进行比较。我们遵循GPT-3样式的RACE-m/h任务设置,并与使用相同设置的先前结果进行比较。
表5:使用1-shot评估在29个基准测试中的平均(Avg)自然语言生成(NLG)和自然语言理解(NLU)结果。NLG基准测试包括八个任务 - TriviaQA,NQS,WebQS,SQuADv2,LAMBADA,DROP,QuAC和CoQA - 而其余的是NLU基准测试。GPT-3和GLaM的结果来自Du等人(2021年)。

6.1.1 大规模多任务语言理解

我们还评估了PaLM模型在大规模多任务语言理解(MMLU)(Hendrycks等人,2021年)基准测试上的表现。这个多项选择问答基准测试涵盖了57个不同主题的任务,包括数学、历史和法律等。如表6所示,PaLM 540B将MMLU基准测试的平均得分提高了约2个点。PaLM 540B在除了其他任务类别之外的所有类别上都优于Chinchilla模型。

表7报告了在超级粘合任务的微调中使用任务比例混合的验证结果。在超级粘合任务上,我们与T5-11B(Raffel等人,2020年)和ST-MoE-32B(Zoph等人,2022年)等最先进的模型进行比较,并表明PaLM获得了竞争性的接近最先进水平的性能。值得注意的是,超级粘合的两个表现最佳模型都是使用跨度破坏目标训练的编码器-解码器模型。已经证明,当训练成本相等时,这种架构通常会在分类任务微调上优于仅解码器的自回归模型(Raffel等人,2020年)。这些结果表明,规模可以帮助弥合差距。表8还表明,少样本微调结果与微调结果之间仍然存在显着差距。最后,表9报告了超级粘合排行榜测试集上的结果。我们表明,PaLM在与最先进技术的竞争中表现出色,同时在排行榜上优于最佳的仅解码器自回归语言模型。

BIG-bench是一个合作基准,旨在为大型语言模型提供具有挑战性的任务(BIG-bench合作,2021年)。它包括150多个任务,涵盖了各种语言建模任务,包括逻辑推理、翻译、问答、数学等等。在本节中,我们介绍和分析了PaLM模型系列在BIG-bench上的少样本评估结果。BIG-bench包括文本任务和程序任务。在这次评估中,只考虑了文本任务。BIG-bench数据发布包括人类表现度量标准,其中在众包平台上的若干工作者(通常为10人)被要求解决每个任务。这些工作者被给予与少样本模型看到的类似的任务描述和示例,并且被允许使用任何外部工具来提供答案(搜索引擎、计算器等)。模型和人类的表现都使用相同的指标针对黄金标签进行度量,这些标签由每个任务的原始创建者提供。通过使用具有最高每个示例指标分数的人类生成的答案计算“最佳”人类表现,而通过使用所有人类生成的答案的平均指标分数来计算“平均”人类表现。

图3左显示了对PaLM模型系列在BIG-bench上进行评估的结果,与先前发表的结果进行了比较(Rae等人,2021年)。请注意,由于BIG-bench数据集最近发布,并且先前的模型仅在部分任务和样本上进行了基准测试,因此与其他更成熟的基准相比,比较更为有限。在58个常见任务上评估了三个模型,因此此图仅呈现了这58个任务的结果。我们看到,PaLM显著优于GPT-3、Gopher和Chinchilla,而5-shot PaLM 540B在相同任务上的平均得分高于人类被要求解决相同任务的平均得分。在58个常见任务中,PaLM 540B 5-shot优于先前的SOTA的44个任务,具体任务结果如图4所示。此外,PaLM模型的性能随规模的增加似乎遵循对数线性行为,表明进一步扩展可能会导致性能提升。图3右显示了PaLM在BIG-bench文本任务集合(150个任务)上的结果,其性能特征类似。


图3:PaLM的BIG-bench评估。(左)对PaLM、GPT-3、Gopher和Chinchilla的评估。先前的模型只对部分任务进行了评估,因此此图显示了这三个模型都进行了评估的58个任务的汇总结果。(右)对PaLM在更大的150个BIG-bench任务集合上进行评估。对于每个任务,使用其首选指标的结果。结果经过归一化处理,将最大分数设置为100,将随机机会分数设置为0,以便对多选任务进行负值化,如果模型表现比随机机会差,则为负值。对归一化的结果进行所有任务的平均值计算。
图4:PaLM 540B 5-shot与先前SOTA在58个BIG-bench文本任务的共同子集中的“归一化首选指标”之间得分差异的分布。正数(蓝色)表示PaLM 540B的得分高于先前SOTA,而负数(橙色)表示先前SOTA高于PaLM 540B。先前SOTA包括GPT-3 175B 1-shot(Brown等人,2020)、Gopher 5-shot(Rae等人,2021)和Chinchilla 5-shot(Hoffmann等人,2022)。出于视觉清晰性,此处不显示各个任务的名称。


接下来,我们重点介绍了几个来自BIG-bench的任务,其中PaLM表现出特别有趣的性能特征。这些任务的个别评估结果显示在图5中。我们将简要描述以下每个任务:

goal step wikihow - 目标是推理事件之间的目标步骤关系。例如:

输入:为了“清洁银器”,应该首先执行哪个步骤? (a) 将银器擦干 (b) 用手洗银器

答案:(b) 用手洗银器

logical args - 目标是从段落中预测正确的逻辑推理。例如:

输入:学生告诉代课老师他们正在学三角函数。代课老师告诉他们,与其教他们关于三角形的无用知识,他宁愿教他们如何处理概率。他在暗示什么?(a) 他认为数学不需要有用才有趣。(b) 他认为理解概率比学三角函数更有用。(c) 他认为概率理论是一个无用的学科。

答案:(b) 他认为理解概率比学三角函数更有用。

english proverbs - 目标是猜测哪个谚语最能描述文本段落。例如:

输入:Vanessa在当地无家可归救助中心周末帮助了许多年。最近,当她失去工作时,中心立即准备给她提供一份新工作。以下哪个谚语最适合这种情况?(a) 诅咒,就像鸡一样回家了。(b) 哪里有烟就有火。(c) 种瓜得瓜,种豆得豆。

答案:(c) 种瓜得瓜,种豆得豆。

logical sequence - 目标是将一组“事物”(月份、行动、数字、字母等)按照其逻辑顺序排列。例如:

输入:以下哪个列表按时间顺序正确排序?(a) 喝水、感到口渴、封住水瓶、打开水瓶 (b) 感到口渴、打开水瓶、喝水、封住水瓶 (c) 封住水瓶、打开水瓶、喝水、感到口渴

答案:(b) 感到口渴、打开水瓶、喝水、封住水瓶

navigate - 目标是按照一组简单的导航指示前进,并弄清楚最终会到达何处。例如:

输入:如果按照这些说明,您会回到起点吗?始终朝前。向左走6步。向前走7步。向左走8步。向左走7步。向前走6步。向前走1步。向前走4步。

答案:不会

mathematical induction - 目标是执行逻辑推理数学归纳规则,即使它们与现实世界的数学相矛盾。例如:

输入:已知将2添加到任何奇整数会产生另一个奇整数。2是一个奇整数。因此,6是一个奇整数。这是一个正确的归纳论证吗(尽管一些假设可能是错误的)?

答案:是的


图5:对具有有趣的缩放特性的六个个体任务进行了 5 次评估。对于每个任务,使用了“标准化首选指标”,其中对于多项选择任务,0% 对应于随机猜测。(a)显示了随规模的对数线性改进,(b)显示了随规模的“不连续”改进,(c)显示了相对平坦的随规模改进。


从图5中可以看出,goal step wikihow 和 logical args 的表现遵循对数线性的缩放曲线,PaLM 540B 模型的准确性接近最佳人类表现。而英语谚语和逻辑顺序的表现也非常强大,但它们遵循的是不连续改进曲线——从 62B → 540B 的改进远远大于从 8b → 62B 的改进。这些任务在这里特别引人关注,因为这样的缩放曲线意味着模型的某些能力只有在达到一定规模后才会显现出来。例如,英语谚语需要非常高水平的抽象推理能力来理解复杂的比喻,因此,从 PaLM 62B 的 25% 提高到 PaLM 540B 的 87% 是一个非常令人兴奋的结果。

为了进一步量化 BIG-bench 中不连续的改进,我们首先用一个例子来解释我们对不连续性的定义。逻辑顺序任务的标准化准确率分别为 PaLM 8b、62b 和 540b 的 13%、25% 和 87%。因此,使用 8b → 62b 的对数线性预测,预计 540b 的准确率大约为 37%(= 25% +(25% - 13%))。实际准确率为 87%,所以不连续性为 +50%(= 87% - 37%)。在所有 150 个任务中,25% 的任务的不连续性大于 +10%,15% 的任务的不连续性大于 +20%。这表明,从规模上来看,不连续的改进是在具有挑战性的少样本语言任务中的一种常见现象。


图6: PaLM 540B 与所有 150 个 BIG-bench 文本任务的平均人类表现之间的“标准化首选指标”得分差异分布情况。正数(蓝色)表示 PaLM 540B 的表现高于平均人类表现,而负数(橙色)表示平均人类表现高于 PaLM 540B 的表现。为了视觉清晰起见,此处未显示各个任务的名称。


然而,并非所有任务都受益于规模的扩大。对于 navigate 和 mathematical induction 任务,PaLM 540B 仅略微优于 PaLM 62B,而且两者距离最佳人类表现还有很大差距。这表明任务在示例级难度上存在很高的方差。例如,在数学归纳任务中,一些示例具有正确的假设(例如,“2 是一个偶数。”),而一些示例具有不正确的假设(例如,“2 是一个奇数。”)。通过分析这个任务的几个示例,似乎所有的 PaLM 模型(以及被要求解决任务的人类)在假设不正确的情况下都很难,尽管指令说明假设的正确性并不重要。

在图 6 中,我们展示了比较 PaLM 540B 与人类评估的平均表现分数时任务改进的分布情况。我们可以看到,尽管 PaLM 540B 在总体上优于平均人类表现,但在 35% 的单个任务中,平均人类表现仍然高于 PaLM 540B(请参见附录中的表 43 中的示例)。这表明在 BIG-bench 上仍有很大的改进空间。

我们考虑了几个任务,其中 PaLM 540B 的表现超过了平均人类表现(请参见附录中表 42 的详细结果)。我们观察到其中几个任务展示了 PaLM 在许多语言中表现良好的能力,例如,persian idioms 和 swedish to german proverbs,评估这些任务的人类池可能对所有语言都不太熟悉。其中一个任务,periodic elements,依赖于大型语言模型的记忆能力。大多数其他任务,如 common morpheme、sufficient information 和 logical args,强调了 PaLM 540B 令人印象深刻的自然语言处理能力。为了进一步说明这一点,我们考虑了因果关系任务,该任务要求模型确定两个呈现的事件中的哪一个导致了另一个事件。该任务有两个版本:


因果关系(一句话无提示) - 在一句话无提示的子任务中,事件以两种不同的顺序合并成一句话,并使用模型对每个句子的对数似然进行评分。不提供提示。例如:

输入 A:I washed the car because my car got dirty.

输入 B:My car got dirty because I washed the car.

更高似然的句子:I washed the car because my car got dirty.

因果关系(两句话) - 在两句话的子任务中,模型展示两个事件,需要选择哪个句子对应于导致另一个事件的事件。例如:

输入:对于每个示例,给出两个事件。哪个事件导致了另一个事件?(a) 我的车变脏了。(b) 我洗了车。

正确预测:(a) 我的车变脏了。

我们发现所有的 PaLM 模型在这个任务的一句话无提示版本上表现良好,其中 8B 模型的准确率达到了80%以上,但较小的 PaLM 模型在这个任务的两句话版本上表现不佳,8B 模型的得分接近随机猜测。相比之下,540B 模型能够解决两句话版本,并且准确率达到了90%以上,展示了规模可以释放的通用语言建模能力。

最后,图 7 展示了 BIG-bench Lite 的详细评估结果,这是 BIG-bench 的一个精选子集,包含 24 个任务,作为轻量级评估目标。尽管其中一些 BIG-bench Lite 任务已经解决或接近解决,但与人类评估的最佳表现分数相比,其他任务距离解决仍有很大差距。


图 7:BIG-bench Lite 中 24 个任务的 5-shot 评估性能,按模型规模分类。PaLM 540B 在所有模型规模中表现最佳,但仅在 3 个任务中达到了超过最佳人类表现分数的性能,这表明还有进一步提升的空间。任务 t24 对模型和人类都很困难,性能接近 0.0。任务名称请参见脚注,每个任务的详细数据请参见附录 H.2。

我们采取了几项措施来确立这些结果的有效性,特别是排除模型通过记忆 BIG-bench 数据来达到这些结果的可能性。首先,BIG-bench 任务文件包含一个唯一的标记字符串;我们确保该字符串不会出现在 PaLM 的训练数据中。其次,BIG-bench 数据集在训练数据收集时并未在互联网上公开,而绝大多数 BIG-bench 任务都是由任务作者专门为 BIG-bench 构建的全新基准。最后,我们在几个模型表现强劲的任务上进行了抽查,手动验证了解码过程中未泄露任何来自金标签的信息。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇