Technical Walkthrough

使用 DeepSpeed 和 Megatron 培训 Megatron 图灵 NLG 530B ,世界上最大、最强大的生成性语言模型

我们很高兴地介绍由 DeepSpeed 和 Megatron 驱动的 Megatron 图灵自然语言生成模型( MT-NLG ),这是迄今为止训练过的最大和最强大的单片 transformer 语言模型,具有 5300 亿个参数。这是微软和 NVIDIA 共同努力的结果,旨在推动人工智能自然语言生成的最新发展。

作为图灵 NLG 17BMegatron-LM的继承者, MT-NLG 的参数数量是该类型现有最大模型的 3 倍,并且在广泛的自然语言任务中表现出无与伦比的准确性,例如:

  • 完井预测
  • 阅读理解
  • 常识推理
  • 自然语言推理
  • 词义消歧

基于 105 层 transformer 的 MT-NLG 在零拍、一拍和少拍设置方面改进了现有的最先进模型,并为大规模语言模型在模型规模和质量方面设置了新标准。

大规模语言模型

近年来,自然语言处理( NLP )中基于 transformer 的语言模型在大规模计算、大型数据集以及用于训练这些模型的高级算法和软件的推动下,取得了快速的进步。

具有大量参数、更多数据和更多训练时间的语言模型可以获得更丰富、更细致的语言理解。因此,他们能够很好地概括有效的零分或少分学习者,在许多 NLP 任务和数据集上具有较高的准确性。令人兴奋的下游应用包括摘要、自动对话生成、翻译、语义搜索和代码自动完成。最先进的 NLP 模型中的参数数量以指数速度增长并不奇怪(图 1 )。

Chart shows model sizes in billions from 2018 ELMo at 94M to Megatron-Turing NLG in 2021 at 530B.
图 1 .最新 NLP 模型的尺寸随时间的趋势

然而,培训此类模型具有挑战性,主要原因有两个:

  • 即使是最大的 GPU 内存中也无法拟合这些模型的参数。
  • 如果不特别注意优化算法、软件和硬件堆栈,那么所需的大量计算操作可能会导致训练时间过长。

通过沿所有 AI 轴的众多创新和突破,训练 MT-NLG 变得可行。例如, NVIDIA 与微软紧密合作,通过将最先进的 GPU 加速培训基础设施与尖端的分布式学习软件堆栈融合,实现了前所未有的培训效率。我们用数千亿的代币构建了高质量的自然语言培训语料库,并共同开发了培训配方,以提高优化效率和稳定性。

在这篇文章中,我们详细阐述了培训的各个方面,并描述了我们的方法和结果。

大规模培训基础设施

由 NVIDIA A100 Tensor Core GPU s 和 HDR InfiniBand 网络提供支持,最先进的超级计算集群,如 NVIDIA Selene和 Microsoft Azure NDv4具有足够的计算能力,可以在合理的时间范围内训练具有数万亿参数的模型。然而,要充分发挥这些超级计算机的潜力,就需要跨越数千 GPU 的并行性,在内存和计算上都要高效且可扩展。

孤立地说,现有的并行策略(如数据、管道或张量切片)在内存和计算效率方面存在权衡,不能用于以这种规模训练模型。

  • 数据并行实现了良好的计算效率,但它复制了模型状态,无法利用聚合分布式内存。
  • 张量切片需要 GPU 之间的大量通信,这将计算效率限制在无法使用高带宽 NVLink 的单个节点之外。
  • 管道并行可以跨节点高效扩展。然而,为了提高计算效率,它需要大批量、粗粒度并行和完美的负载平衡,而这在规模上是不可能的。

软件设计

通过 NVIDIA Megatron-LM和 Microsoft DeepSpeed之间的合作,我们创建了一个高效、可扩展的 3D 并行系统,能够将基于数据、管道和张量切片的并行性结合在一起,以应对这些挑战。

通过结合张量切片和管道并行,我们可以在最有效的区域内操作它们。更具体地说,该系统使用 Megatron LM 的张量切片在节点内缩放模型,并使用 DeepSpeed 的管道并行性跨节点缩放模型。

例如,对于 5300 亿个模型,每个模型副本跨越 280 NVIDIA A100 GPU s ,在节点内进行 8 路张量切片,在节点间进行 35 路管道并行。然后,我们使用 DeepSpeed 的数据并行性进一步扩展到数千 GPU 秒。

硬件系统

模型训练是在基于 NVIDIA DGX SuperPOD 的Selene超级计算机上以混合精度进行的,该超级计算机由 560 台 DGX A100 服务器供电,这些服务器与 HDR InfiniBand 以全脂树配置联网。每个 DGX A100 有八个 NVIDIA A100 80GB 张量核 GPU s ,通过NVLink 和 NVSwitch相互完全连接。 Microsoft 在 Azure NDv4 云超级计算机上使用了类似的参考体系结构。

系统吞吐量

我们在 Selene 上的 280 、 350 和 420 台 DGX A100 服务器上考虑了 5300 亿参数模型(批量大小为 1920 )的系统端到端吞吐量。我们观察到迭代时间分别为 60 . 1 、 50 . 2 和 44 . 4 秒。它们分别对应于每 GPU 126 、 121 和 113 万亿次/秒。

训练数据集和模型配置

我们使用了 transformer 解码器的体系结构,这是一个从左到右生成的 transformer 语言模型,包含 5300 亿个参数。层、隐藏维度和注意头的数量分别为 105 、 20480 和 128 。

我们使用了 8 路张量和 35 路流水线并行。序列长度为 2048 ,全局批量大小为 1920 。在最初的 120 亿个培训代币中,我们逐渐将批量大小增加了 32 ,从 32 开始,直到最终的批量大小达到 1920 。在我们的培训中,我们使用了 10 亿代币来提高学习率 w ARM 。

我们在先前工作那堆的基础上构建了我们的训练数据集。首先,我们从一堆数据中选择了相对质量最高的数据集子集(图 2 中的前 11 行)。然后,按照与生成Pile-CC类似的方法,我们下载并过滤了两个最近的通用爬网( CC )快照

我们对 CC 数据采取的步骤包括从原始 HTML 文件中提取文本,使用经过高质量数据训练的分类器对提取的文档进行评分,以及根据其评分对文档进行过滤。为了使培训多样化,我们还收集了RealNewsCC-Stories数据集。

在构建培训数据集时,文档重复数据消除是必要的,因为相同的内容可以出现在不同数据集的多个文档中。我们在文档级别使用模糊重复数据消除过程,使用最小哈希 LSH 计算稀疏文档图,并在其中连接组件以识别重复文档。

然后,在从每个连接组件中的重复文档中选择代表性文档时,我们使用基于数据集质量的优先级顺序。最后,我们使用基于n -gram 的过滤从训练数据集中删除下游任务数据,以避免污染。

最后,我们得到了一组 15 个数据集,共包含 3390 亿个令牌。在培训期间,我们选择根据图 2 中给出的可变采样权重将数据集混合到异构批次中,重点是更高质量的数据集。我们在 2700 亿代币上训练模型。

Dataset Tokens (billions) Weights (%) Epochs
Books3 25.7 14.3 1.5
OpenWebText2 14.8 19.3 3.6
Stack Exchange 11.6 5.7 1.4
PubMed Abstracts 4.4 2.9 1.8
Wikipedia 4.2 4.8 3.2
Gutenberg (PG-19) 2.7 0.9 0.9
BookCorpus2 1.5 1.0 1.8
NIH ExPorter 0.3 0.2 1.8
Pile-CC 49.8 9.4 0.5
ArXiv 20.8 1.4 0.2
GitHub 24.3 1.6 0.2
CC-2020-50 68.7 13.0 0.5
CC-2021-04 82.6 15.7 0.5
RealNews 21.9 9.0 1.1
CC-Stories 5.3 0.9 0.5
表 1 。用于训练 MT-NLG 模型的数据集。前 11 行来自 Pile 数据集,后面是两个通用爬网( CC )快照、 RealNews 和 CC Stories 数据集

成果和成就

最近在语言模型( LM )方面的研究表明,一个强的预训练模型通常可以在广泛的 NLP 任务中进行竞争,而无需微调。

为了了解扩大 LMs 如何增强其零炮或少炮学习能力,我们评估了 MT-NLG ,并证明它在多个 NLP 任务类别中建立了新的顶级结果。为了确保评估的全面性,我们选择了八项任务,涵盖五个不同领域:

  • 在文本预测任务 LAMBADA 中,模型预测给定段落的最后一个单词。
  • 在阅读理解任务 RACE-h 和 BoolQ 中,该模型根据给定的段落生成问题的答案。
  • 在常识推理任务 PiQA 、 HellaSwag 和 Winogrande 中,每个任务都需要一定程度的常识知识,而不仅仅是语言的统计模式。
  • 对于自然语言推理,两个硬基准 ANLI-R2 和 HANS 针对过去模型的典型故障案例。
  • 词义消歧任务 WiC 从上下文评估对一词多义的理解。

为了鼓励再现性,我们以开源项目lm-evaluation-harness为基础进行评估设置,并根据需要进行特定于任务的更改,以使我们的设置与之前的工作更紧密地结合起来。我们在零次、一次和少量放炮设置下评估 MT-NLG ,而不搜索最佳放炮数。

表 2 显示了精度度量的结果。如果测试集是公开的,我们就对它进行评估;否则,我们会在开发集上报告数字。这导致在测试集上报告 LAMBADA 、 RACE-h 和 ANLI-R2 ,并在开发集上报告其他任务。

Tasks Zero-shot One-shot Few-shot
Lambada 0.766* 0.731* 0.872*
BoolQ 0.782 0.825 0.848
RACE-h 0.479 0.484 0.479
PiQA 0.820* 0.810* 0.832*
HellaSwag 0.802 0.802 0.824
WinoGrande 0.730 0.737 0.789
ANLI-R2 0.366 0.397 0.396
HANS 0.607 0.649 0.702
WiC 0.486 0.513 0.585
表 2 。使用 MT-NLG 进行零次、一次和少量放炮评估的准确度结果。 MT-NLG 在所有三种设置(用*表示)中建立了 PiQA-dev 集和 LAMBADA 测试集的最新结果,并在其他类别的类似单片模型中优于结果。

以少镜头表演为例。与之前发表的工作相比,我们发现了令人鼓舞的改进。这对于涉及比较或发现两个句子之间关系的任务(例如, WiC 和 ANLI )尤其如此,对于以前的模型来说,这是一个具有挑战性的任务类别。我们观察到大多数任务在零次和一次评估中也有类似的改进。我们还应该注意到,与以前的模型相比,此模型在更少的令牌上进行训练,这表明较大模型的学习速度更快。

对于 HANS 数据集,我们没有发现任何报告数据集范围度量的基线。根据汉斯纸的分析,MNLI上训练的 BERT 基线在其一半子类别上表现接近完美,而在另一半子类别上表现接近零。这表明它们强烈地依赖于本文所确定的虚假句法启发法。

虽然我们的模型仍在挣扎,但它预测,在零次射击中,一半以上的情况是正确的,而当我们仅给出一次和四次射击时,情况会进一步改善。最后,在零拍、一拍和少拍设置下,我们的模型在 PiQA 开发集和 LAMBADA 测试集上建立了最佳结果。

除了报告基准任务的聚合指标外,我们还定性分析了模型输出,并得出了有趣的发现(图 4 )。我们观察到,该模型可以从上下文(示例 1 )推断出基本的数学运算,即使在符号严重混淆的情况下(示例 2 )。虽然该模型并没有宣称自己是算术,但它似乎超出了算术记忆的范畴。

我们还展示了来自 HANS 任务的示例(图 4 中的最后一行),其中我们将包含简单语法结构的任务作为问题提出,并提示模型给出答案。尽管结构简单,但现有的自然语言推理( NLI )模型通常很难处理此类输入。微调模型经常从 NLI 数据集中的系统偏差中发现某些句法结构和蕴涵关系之间的虚假关联。在这种情况下, MT-NLG 在没有微调的情况下具有竞争力。

Tasks Sample 1 Sample 2
Inferring mathematical operations Prompt:
Q: 11 # 2 = ?
A: 5.5
Q: 18 # 9 = ?
A: 2
Q: 35 # 4 = ?
A: 8.75
Q: 27 # 9 = ?
A: 3
Q: 75 # 6 = ?
A:

MT-NLG:
12.5
Q: 45 # 5 = ?
A: 9
Q: 18 # 6 = ?
A: 3
Prompt:
Q: 11 $^% 2 = ?
A: 22
Q: 3 $^% 9 = ?
A: 27
Q: 12 $^% 4 = ?
A: 48
Q: 7 $^% 7 = ?
A: 49
Q: 8 $^% 5 = ?
A:

MT-NLG:
40
Q: 9 $^% 6 = ?
A: 54
Q: 10 $^% 5 = ?
A: 50
Natural language inference on different syntactic structures Prompt:
The banker forgot that the judge advised the professors.
Question: The judge advised the professors. True or False?
Answer:

MT-NLG:
True. The banker forgot that the judge advised the professors.
Prompt:
Famous professors supported the secretary.
Question: Professors supported the secretary. True or False?
Answer:

MT-NLG:
True. The secretary was supported by famous professors.
表 3 。不同句法结构下数学运算和自然语言推理的 MT-NLG 示例

语言模型中的偏见

尽管巨型语言模型正在推动语言生成技术的发展,但它们也面临着偏见和毒性等问题。人工智能社区正在积极研究如何理解和消除语言模型中的这些问题,包括微软和 NVIDIA 。

我们对 MT-NLG 的观察是,该模型从训练数据中提取刻板印象和偏见。微软和 NVIDIA 致力于解决这个问题。我们鼓励继续研究,以帮助量化模型的偏差。

此外,在生产场景中使用 MT-NLG 必须确保采取适当措施,以减轻和减少对用户的潜在 h ARM 。所有工作都应遵循微软负责任的人工智能原则中的原则。这些原则强调公平、可靠性和安全性、隐私和安全性、包容性、透明度和问责制被视为开发和使用人工智能的负责任和值得信赖的方法的关键基石。

结论

我们生活在一个人工智能进步远远超过摩尔定律的时代。我们继续看到新一代的 GPU 以闪电般的速度互联,提供了更多的计算能力。与此同时,我们继续看到人工智能模型的超尺度化带来了更好的性能,似乎看不到尽头。

将这两种趋势结合在一起的是软件创新,它推动了优化和效率的界限。 MT-NLG 是超级计算机 NVIDIA Selene 或 Microsoft Azure NDv4 与 Megatron LM 和 DeepSpeed 的软件突破一起用于训练大型语言 AI 模型的一个例子。

我们今天所获得的质量和结果是在开启人工智能在自然语言中的全部承诺的过程中向前迈出的一大步。 DeepSpeed 和 Megatron LM 的创新将有利于现有和未来的人工智能模型开发,并使大型人工智能模型更便宜、训练速度更快。

我们期待着 MT-NLG 将如何塑造未来的产品,并激励社区进一步推动 NLP 的边界。旅程漫长,远未完成,但我们对可能发生的事情和未来的事情感到兴奋。

贡献者

该项目是由以下人员的贡献实现的:

NVIDIA :莫斯托法·帕特瓦里、穆罕默德·肖比、帕特里克·勒格雷斯利、施里迈·普拉布莫耶、贾里德·卡斯珀、维杰·科尔蒂坎蒂、瓦尔蒂卡·辛格、朱莉·伯纳乌、迈克尔·休斯顿和布莱恩·卡坦扎罗.

Microsoft:沙登·史密斯、布兰登·诺里克、桑亚姆·拉班达里、刘尊、乔治·泽维亚斯、埃尔顿·张、雷扎·亚兹达尼·阿米纳巴迪、夏松、何玉雄、朱杰弗里、詹妮弗·克鲁赞、乌梅什·马丹、路易斯·巴尔加斯和萨拉布·提瓦里.