AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

微软和英伟达推出训练语言模型 MT-NLG:5300 亿参数量,是 GPT-3 的 3 倍

  • 2021-10-12
  • 本文字数:3634 字

    阅读完需:约 12 分钟

微软和英伟达推出训练语言模型MT-NLG:5300亿参数量,是GPT-3的3倍

OpenAI 最强预训练语言模型 GPT-3 具有 1750 亿个参数,MT-NLG 参数量是前者的 3 倍。

训练语言模型 MT-NLG 问世


10 月 11 日,微软和英伟达正式推出由 DeepSpeed 和 Megatron 驱动的 Megatron-Turing 自然语言生成模型(MT-NLG),这是迄今为止训练的最大最强的解码语言模型。据了解,该模型具有 5300 亿个参数,是现有最大的模型 GPT-3 的 3 倍。


信息显示,近年来,使用基于 Transformer 语言模型实现的自然语言处理(NLP)已经在大规模计算、大型数据集以及用于模型训练的高级算法与软件的强势推动下,迎来快速发展。此外,最先进的 NLP 模型中参数的数量也保持着指数级增长趋势。


图一:最先进NLP模型随时间推移的规模变化趋势


不过,训练这样的大型模型往往极具挑战,主要原因包括以下两点:


即使是最强大的 GPU 也无法在内存中直接拟合这些模型的参数。如果不高度关注算法、软件及硬件堆栈的优化,那么任务中涉及的大量计算操作可能将训练时长提升到失去实际意义的水平。


据介绍,微软和英伟达将最先进的 GPU 加速训练基础设施与尖端分布式学习软件堆栈进行融合,实现了极高的训练效率。此外,微软和英伟达还使建立了高质量的自然语言训练语料库,其中包含数千亿个标记,并共同开发了训练配方,以提高优化效率和稳定性。


在微软和英伟达联合发布的一篇论文中,二者对 MT-NLG 训练流程中的方法与结果做了详细介绍。

大规模训练基础设施


在英伟达 A100 Tensor Core GPU 与 HDR InfiniBand 网络的支持下,英伟达 Selene 与微软 Azure NDv4 等超级计算集群已经获得充足的算力,能够在合理的时间周期之内训练出包含数万亿个参数的模型。然而,要充分发挥这些超级计算机的潜力,需要在数千个 GPU 之间实现良好的并行性,同时保证负载能够在内存与计算层面同时获得高效性与可扩展性。遗憾的是,现有并行策略(例如数据、管道或张量切片)往往在内存与计算效率之间存在冲突与取舍,无法支撑起如此规模的模型训练任务。


数据并行能够带来良好的计算效率,但需要复制模型状态且无法利用分布式内存聚合机制。张量切片要求各 GPU 之间进行大量通信,这就限制了高带宽 NVLink 支持下的单节点场景之外的计算效率。管道并行可以实现跨节点高效扩展。但为了提高计算效率,这种方法需要大批次、粗粒度的并行机制再加上完美的负载均衡,这些要求在 MT-NLG 庞大的规模之下根本无法实现。


软件设计方面,在 DeepSpeed 和 Megatron-LM 的驱动下,微软和英伟达创建了一套高效且可扩展的 3D 并行系统,能够将数据、管道以及基于张量切片的并行机制结合起来,共同应对挑战。


具体来讲,这套系统使用 Megatron-LM 的张量切片扩展节点内模型,再使用 DeepSpeed 的管道并行实现跨节点模型扩展。例如,对于 5300 亿参数的模型,每套模型副本都跨越 280 个英伟达 A100 GPU,采用的则是节点内 8 路张量切片与跨节点 35 路管道并行。接下来,使用 DeepSpeed 的数据并行进一步将负载扩展到数千个 GPU。


硬件系统方面,模型训练是在基于英伟达 DGX SuperPOD 的 Selene 超级计算机上以混合精度完成的。这台超级计算机由 560 个 DGX A100 服务器构建而成,采用完整的胖树拓扑(FatTree)加 HDR InfiniBand 联网配置。每个 DGX A100 包含 8 个英伟达 A100 80GB Tensor Core GPU,通过 NVLink 与 NVSwitch 实现完全互连。微软也在 Azure NDv4 云超级计算机中采用了类似的参考架构。


研究人员分别在 Selene 上使用 280、350 以及 420 台 DGX A100 服务器试验批次大小为 1920 的 5300 亿参数模型的端到端吞吐量,并观察到其迭代时间分别为 60.1 秒、50.2 秒以及 44.4 秒;这些结果各自对应每 GPU 每秒 126、121 以及 113 万亿次计算。

训练数据集与模型配置


微软和英伟达的研究人员使用 Transformer 解码器架构,这是一套从左到右生成的基于 Transformer 的语言模型,共包含 5300 亿个参数。其层数、隐藏维度与注意力头数(attention heads)分别为 105、20480 与 128。


研究人员使用 8 路张量与 35 路管道并行,序列长度为 2048,全局批次大小为 1920。在前 120 亿个训练 token 中,以 32 为单位逐步增加批次大小,从 32 开始慢慢增加至最终批次大小 1920。共使用 10 亿个 token 对训练学习率进行预热。


新的训练数据集主要基于之前的工作成果 The Pile 构建而成。研究人员首先从 The Pile 当中选择质量相对最高的数据子集(图二中的前 11 行),之后采用与生成 Pile-CC 类似的方法下载并过滤两份最近的 Common Crawl(CC)快照。并对 CC 数据执行了分步操作,包括从原始 HTML 文件中提取文本、利用在高质量数据上训练完成的分类器对提取到的文档进行评分,再根据评分过滤文档等。为了保证训练多样化,研究人员还从 RealNews 与 CC-Stories 数据集中进行了采样。


在构建训练数据集时,文档去重也是非常重要的一环,毕竟不同数据集的多个文档中可能包含相同的内容。研究人员使用 min-hash LSH 在文档层级使用模糊重复数据删除流程,用以计算稀疏文档图及其中的连接部分,由此快速识别出重复文档。又从各连接部分的重复文档中选定代表性文档,并根据数据集的质量进行优先级排序,并使用基于 n-gram 的过滤器从训练数据集中删除下游任务数据以避免污染。


最后,研究人员用一组 15 套数据集完成了训练,其中共包含 3390 亿个 token。在训练期间,根据图二给出的可变采样权重将数据集混合至异构批次当中,重点放在质量更高的数据集身上。最终,整个模型的训练使用到 2700 亿个 token。


数据集

数据集来源

Token (单位为10亿)

权重 (%)

轮次

Books3

Pile数据集

25.7

14.3

1.5

OpenWebText2

Pile数据集

14.8

19.3

3.6

Stack Exchange

Pile数据集

11.6

5.7

1.4

PubMed Abstracts

Pile数据集

4.4

2.9

1.8

Wikipedia

Pile数据集

4.2

4.8

3.2

Gutenberg (PG-19)

Pile数据集

2.7

0.9

0.9

BookCorpus2

Pile数据集

1.5

1.0

1.8

NIH ExPorter

Pile数据集

0.3

0.2

1.8

Pile-CC

Pile数据集

49.8

9.4

0.5

ArXiv

Pile数据集

20.8

1.4

0.2

GitHub

Pile数据集

24.3

1.6

0.2

CC-2020-50

Common Crawl (CC)快照

68.7

13.0

0.5

CC-2021-04

Common Crawl (CC) 快照

82.6

15.7

0.5

RealNews

RealNews

21.9

9.0

1.1

CC-Stories

Common Crawl (CC) stories

5.3

0.9

0.5

图二:用于训练 MT-NLG 模型的数据集。

结果与成就


近期在语言模型(LM)领域的工作表明,强大的预训练模型往往能够在无需微调的情况下实现极具竞争力的广泛 NLP 任务处理能力。


为了理解纵向扩展语言模型在零样本或少样本场景下实现的具体学习能力增强水平,微软和英伟达的研究人员对 MT-NLG 开展评估,并证明它在多种 NLP 任务中均获得了最佳结果。为了保证评估的全面性,研究人员选择了跨五大领域的八项不同任务:


在文本预测任务 LAMBADA 中,模型预测特定段落的最后一个单词。在阅读理解任务 RACE-h 与 BooIQ 中,模型根据特定段落生成问题的答案。在常识推理任务 PiQA、HellaSwag 与 Winogrande 中,各项任务都需要一定程度的常识指导,超出了传统语言统计模式的解决范畴。在自然语言推理方面,采用 ANLI-R2 与 HANS 两项过往模型普遍无法通过的硬基准测试。词义消歧任务 WiC,结合上下文评估多义词理解。


为了验证可重复性,研究人员还以开源项目 Im-evaluation-harness 为基础开展评估并做出了适当调整,确保设置与之前的工作负载保持高度一致。在零样本、单样本与少样本等场景下评估了 MT-NLG,且没有执行最佳样本数搜索。


图三为准确度指标结果。如果测试集为公开可用,会在测试集上直接评估;对于非公开测试集,则直接报告使用开发数据集获得的数字。评估中只有 LAMBADA、RACE-h 以及 ANLI-R2 属于公开测试集,其他均属于开发数据集。


类别

任务

零样本

单样本

少样本

补全预测

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

图三:使用 NT-NLG 进行零样本、单样本与少样本评估时获得的准确率结果。MT-NLG 在所有三种设置(以*表示)中均在 PiQA 开发集与 LAMBADA 测试集上获得了最高得分,并在其他类别的同类单体模型中同样拿下最佳结果。


以少样本性能为例,研究人员观察到 MT-NLG 具备不错的提升效果,特别是在 WiC 与 ANLI 这类对先前模型极具挑战的句子间关系比较或联系等任务当中。此外,在零样本与单样本评估中同样看到了广泛的性能提升效果。另外需要注意的是,与以往模型相比,MT-NLG 模型对训练数据集中的标记依赖性更低,这代表着模型规模越大、学习速度反而越快。


对于 HANS 数据集,研究人员没有找到任何报告数据集范围指标的基准。但根据 HANS 论文的分析,在 MNLI 上训练的 BERT 基准能够在约半数子类上获得近乎完美的结果,但在另一半上得分却趋近于零。这表明原有模型高度依赖于论文中确定的伪句法启发式方法。


在零样本、单样本与少样本场景中,MT-NLG 在 PiQA 开发集与 LAMBADA 测试集上都拿下了最高分。除了报告基准任务的汇总指标之外,研究人员还对模型输出进行了定性分析,并得出了更多有趣发现:即使符号经过严重混淆(示例 2),模型仍然可以结合上下文推理出基础数学运算(示例 1)。虽然还不能说 MT-NLG 真正具备自述能力,但该模型似乎已经超出了记忆算术的范畴。


此外,研究人员还展示了来自 HANS 任务的样本。在此任务中,研究人员将包含简单句法结构的任务作为问题,提示模型给出答案。尽管结构非常简单,但现有自然语言推理(NLI)模型往往很难处理此类输入。微调模型则需要从 NLI 数据集中的系统念头中提取某些句法结构与蕴含关系之间的伪关联。但 MT-NLG 无需任何微调,就能在这类场景下带来颇具竞争力的表现。


任务

示例1

示例2

推理数学运算

提示:

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

提示:

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

不同句法结构的自然语言推理

提示:

银行家忘记了法官给教授们提供的建议。

问:法官给教授们建议。对或错?答案:

MT-NLG:是的。银行家忘记了法官给教授们提供了建议。

提示:

著名教授支持秘书。

问:教授支持秘书。对或错?

答案:

MT-NLG:是的。秘书得到了著名教授的支持。

图四:NT-NLG 在不同句法结构下的数学运算与自然语言推理示例。


虽然大规模语言模型确实推动着语言生成技术的不断进步,但其中也存在着严重的偏差/偏见与污染问题。研究人员发现,MT-NLG 模型继承了它从训练数据中获得的刻板印象与偏见,当前,微软与英伟达正在努力解决这个问题。此外,研究人员表示,在生产场景中使用 MT-NLG 还需要配合适当措施,用以确保缓解并最大程度降低对用户造成的潜在伤害。

2021-10-12 14:113445

评论

发布
暂无评论
发现更多内容

Week9-课后总结 & 课后作业 JVM垃圾回收机制

Geek_165f3d

JVM 垃圾回收原理及秒杀系统设计思路

Acker飏

架构师训练营 第九周 总结

CR

8.5小结

朱月俊

JVM系列之:从汇编角度分析NullCheck

程序那些事

Java JVM JIT

《深度工作》学习笔记(5)

石云升

读书笔记 专注 深度工作

第九周总结

Jam

9-2 秒杀系统的挑战和问题

burner

架构师训练营 -week09 学习总结

GunShotPanda

Week 09 学习总结

Jeremy

产品经理【三句半】,说清你的【酸甜苦辣】

Java_若依框架教程

产品经理 产品设计

未来云原生世界的“领头羊”:容器批量计算项目Volcano 1.0版本发布

华为云开发者联盟

Kubernetes 容器 华为云 Volcano 元原生

JVM原理

朱月俊

第九周命题作业

菲尼克斯

架构师培训 -08 总结 JVM、秒杀

刘敏

学习总结(训练营第九课)

看山是山

Week 09 命题作业

Jeremy

「查缺补漏」巩固你的Redis知识体系

Kerwin

Java redis

获得高手的精英思维,从写作开始。

叶小鍵

高手 万维钢 得到精英日课

换一种方式构建镜像

北漂码农有话说

week09总结

Safufu

第 09 周作业

Jam

week09 小结

Geek_196d0f

9-1垃圾回收原理和秒杀系统

burner

一文教会你嵌入式网络模块的联网操作

良知犹存

物联网 网络 嵌入式

第九周学习总结

菲尼克斯

架构师训练营-week09 作业

GunShotPanda

如何保存我们的资产

不在调上

第9周作业

小胖子

《RabbitMQ》如何保证消息不被重复消费

Java旅途

RabbitMQ 消息队列

week9 学习总结

任小龙

微软和英伟达推出训练语言模型MT-NLG:5300亿参数量,是GPT-3的3倍_文化 & 方法_核子可乐_InfoQ精选文章