AICon全球人工智能与机器学习技术大会9折特惠中,点击立减¥480>> 了解详情
写点什么

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

2021 年 10 月 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:112

评论

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

有内味了!阿里内部Tomcat高阶调优笔记成功刷新了我的认知

Java架构之路

Java 程序员 架构 面试 编程语言

COCO聊天挖矿系统开发|COCO聊天挖矿软件APP开发

开發I852946OIIO

系统开发

2020中国ToB独角兽:估值逆势起飞,寡头效应加剧

ToB行业头条

首次公开!阿里技术团队编写的“大厂面试参考指南”v1.0版本

Crud的程序员

Java 程序员 架构

使用Apollo升级一下yml文件管理和发布

Sky彬

springboo

从根上理解高性能、高并发(五):深入操作系统,理解高并发中的协程

JackJiang

网络编程 高并发 协程 高性能 即时通讯

给跨专业程序员的一些建议

Ryan Zheng

限量!腾讯高工用4部分讲清楚了Spring全家桶+微服务

996小迁

Java 架构 面试 springboot SpringCloud

阿里架构师深入讲解Android开发!教你一种更清晰的Android架构!BAT大厂面试总结

欢喜学安卓

android 程序员 面试 移动开发

怎么提升写代码的能力

阿里巴巴云原生

程序员 个人成长 方法论 云原生 自我思考

Kubernetes安装篇(上):基于Minikube方式部署本地环境

xcbeyond

Kubernetes 安装 minikube 28天写作 Kubernetes从入门到精通

基于gRPC的注册发现与负载均衡的原理和实战

万俊峰Kevin

Go 微服务 go-zero

热情空前,家长纷纷变身“寒假规划师”,如何抓住这波热潮?

ZEGO即构

AI 在线教育 在线课堂

dubbo-go 白话文 | 从零搭建 dubbogo 和 dubbo 的简单用例

阿里巴巴云原生

Java 云原生 dubbo 中间件 dubbogo

新年Flag 中奖名单公布|如何科学的从55人中随机选出11个中奖名额

InfoQ写作平台官方

活动专区

安装Android系统 missing operating system

mengxn

android

阿里架构师经验分享!Android面试知识点总结宝典助你通关!顺利通过阿里Android岗面试

欢喜学安卓

android 程序员 面试 移动开发

云原生 DevOps 的 5 步升级路径

阿里巴巴云原生

Serverless 容器 DevOps 微服务 云原生

阿里巴巴2021年最新开源十亿级Java高并发系统设计手册

Java架构追梦

Java 阿里巴巴 架构 并发 系统架构设计手册

WebRTC 的现状和未来:专访 W3C WebRTC Chair Bernard Aboba

阿里云视频云

阿里云 WebRTC 视频云

【有奖调研】中国人工智能开发者调研

百度大脑

盘点2020 | 百度AI的2020

百度大脑

盘点2020

SpringCloud 从入门到精通 12---Nacos配置中心

Felix

惊喜来袭!253页全彩免费电子书《Python 编程参考》正式上线发布

穿甲兵

Python Go redis 程序设计

iOS音视频--视频合集

程序员 音视频 OpenGL ES GPUImage Metal

《我想进大厂》之分布式事务篇

艾小仙

Java 面试 后端

是找茬?还是装B?阿里面试每轮必问的“Spring Boot”意义何在?

比伯

Java 编程 架构 面试 计算机

架构师训练营第八周作业

zamkai

架构师 3 期 3 班 -week8- 作业

zbest

作业 week8

案例加源码:万字长文带你彻底搞懂MySQL的索引优化

程序员小毕

MySQL sql 源码 性能优化 索引

案例集锦|科技赋能,华为云GaussDB助千行百业数字化转型

华为云开发者社区

数据库 华为云 企业应用

数据cool谈(第1期)数据库寻路,开源有态度

数据cool谈(第1期)数据库寻路,开源有态度

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