5300亿参数!微软英伟达推最大单体AI语言模型,由560台DGX A100训练

智东西(公众号:zhidxcom)
编译 | ZeR0
编辑 | 漠影

智东西10月12日报道,微软与NVIDIA今日公布由DeepSpeed和Megatron训练出的Megatron-Turing自然语言生成模型(MT-NLG)。

这是迄今最大、最强大的AI单体Transformer语言模型,作为微软Turing-NLG 17B和NVIDIA Megatron-LM模型的继承者,MT-NLG模型包括5300亿个参数,参数数量比OpenAI GPT-3的3倍还多。

其训练在560台NVIDIA DGX A100服务器上进行。在阅读理解、常识推理、自然语言推理和词义消歧等一系列自然语言任务中,MT-NLG均实现了超高准确性。

““我们今天获得的质量和结果是在解开AI在自然语言中全部承诺道路上迈出的一大步。”NVIDIA加速计算产品管理和营销高级总监Paresh Kharya、微软图灵团队项目经理Ali Alvi在一篇博客文章中写道,“DeepSpeed的创新和Megatron-LM有利于现有和未来的AI模型开发和使大型AI模型更低成本、更快的训练。”

一、训练大量语言模型的两大主要挑战

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

具有大量参数、更多数据和更长训练时间的语言模型,会获得更丰富、更细致的语言理解能力,包括能提炼书籍要点、自动生成对话、机器翻译、语义搜索、自动补全代码编程等。

在最先进的NLP模型中,参数的数量以指数速度增长是不足为奇的。

5300亿参数!微软英伟达推最大单体AI语言模型,由560台DGX A100训练▲NLP模型参数规模增长趋势

然而,训练这些模型具有挑战性,原因有二:

1)即使是最大的GPU,也不可能在内存中匹配这些模型的参数。

2)如果不特别注意优化算法、软件和硬件堆栈,那么所需的大量计算操作可能会导致不切实际的长训练时间。

通过紧密合作,NVIDIA与微软将最先进的GPU加速训练基础设施与先进的分布式学习软件堆栈相结合,实现了前所未有的训练效率。

他们用数千亿token构建了高质量的自然语言训练语料库,并联合开发了训练配方,提高了优化效率和稳定性。基于Transformer的105层MT-NLG在一些零样本或少样本设置方面改进了此前最先进的模型,并进一步提升了模型规模和质量。

二、破解大模型挑战,将大算力与先进软件结合

MT-NLG模型由NVIDIA A100张量核心GPU和HDR InfiniBand网络驱动。NVIDIA Selene、微软Azure NDv4等先进超算集群有足够的计算能力,可在合理的时间框架内训练模型与数万亿参数。而要发挥这些超级计算机的全部潜力,需要实现跨越数千个GPU的并行性,在内存和计算上都是高效和可扩展的。

单独而言,现有的并行策略(好如数据、流水线或张量Tensor切片)在内存和计算效率方面存在权衡,不能用于这种规模的模型训练。

1)数据并行实现了良好的计算效率,但它复制模型状态,不能利用聚合的分布式内存。

2)张量切片需要GPU之间的大量通信,当高带宽NVLink不可用时,这限制了超过单节点的计算效率。

3)流水线并行可以有效地跨节点扩展。然而,为了计算效率高,它需要大的单次训练用的样本数(batch size)、粗粒度并行和完美的负载平衡,这几乎是不可能的。

通过将NVIDIA Megatron-LM和微软DeepSpeed结合,研究团队建了一个高效、可扩展的3D并行系统,能够将数据、流水线和基于张量切片的并行性结合在一起,以应对这些挑战。

结合张量切片和流水线并行,研究团队可以在它们最有效的区域内进行操作。更具体来说,该系统使用Megatron-LM的张量切片在节点内扩展模型,并使用DeepSpeed的流水线并行性在节点之间扩展模型。

例如,对于5300亿参数的模型,每个模型replica跨越280个NVIDIA A100 GPU,在一个节点中有8路张量切片和35路跨节点的流水线并行性。然后研究团队使用DeepSpeed的数据并行性进一步扩展到数千个GPU。

MT-NLG模型训练是在基于NVIDIA DGX Superpod架构搭建的Selene超级计算机上以混合精度完成的,该超算由560台DGX A100服务器提供支持,并以完整的胖树(Fat-tree)配置与HDR InfiniBand联网。

每个DGX A100有8个NVIDIA A100 80GB GPU,通过NVLink和NVSwitch完全连接。微软Azure NDv4云超级计算机也使用了类似的参考架构。

研究团队考虑了在Selene上的280、350和420 DGX A100服务器上的5300亿参数模型的端到端吞吐量,观察到迭代时间分别为60.1、50.2和44.4秒。每个GPU分别对应126、121和113 TFLOPS。

三、基于The Pile构建训练数据集

研究团队使用了transformer解码器的架构,它是一个由5300亿参数组成的基于从左到右生成的transformer语言模型,层数、隐藏维度和注意力头分别为105、20480和128。

他们采用8路张量和35路流水线并行。序列长度为2048,全局batch size为1920。在最初的120亿个训练token中,研究团队将batch size从32开始逐步增加32,直到达到最后的1920个。团队在训练中使用了10亿token来预热学习率。

他们主要是基于开源AI研究机构EleutherAI创建的The Pile数据集建立了MT-NLP训练数据集。与所有AI模型一样,MT-NLP必须通过输一系列案例来“训练”数据点之间的语法、句法规则等模式。

Pile覆盖了学术资源(如Arxiv、PubMed)、社区(StackExchange、维基百科)、代码库(Github)等,微软和英伟达表示他们对这些资源进行了管理,并结合了大型网页集合Common Crawl的过滤快照。为了多样化训练,他们还收集了RealNews和CC-Stories数据集。

在构建训练数据集时,文档重复数据删除是必要的,因为相同的内容可能出现在不同数据集的多个文档中。因此微软和英伟达在文档级使用模糊重复数据删除过程,使用最小哈希LSH计算稀疏文档图和其中的连接组件,以识别重复文档。

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

最后,研究团队得到了15个数据集,总共包含3390亿token。在训练过程中,他们选择根据图2中给出的可变采样权值将数据集混合成异构batch,重点是高质量的数据集。其训练模型使用2700亿token。

5300亿参数!微软英伟达推最大单体AI语言模型,由560台DGX A100训练▲用于训练MT-NLG的数据集。前11行来自Pile数据集,后面是CC快照、RealNews和CC Stories数据集。

四、在多项任务展示出更强准确性

最近在语言模型方面的研究表明,一个强大的预训练模型通常可以在大量的NLP任务中有竞争力地执行,而无需进行微调。

为了理解扩展语言模型如何增强其零样本或少样本学习能力,研究团队评估了MT-NLG,并证明了它在多个类别的NLP任务中建立了新的顶级结果。为确保评估的全面性,他们选择了5个领域的8个任务:

1)在文本预测任务LAMBADA中,该模型预测给定段落的最后一个单词。

2)在RACE-h和BoolQ阅读理解任务中,模型根据给定的段落生成问题的答案。

3)在PiQA、HellaSwag和Winogrande的常识推理任务中,每个任务都需要一些超越语言统计模式的常识知识来解决。

4)对于自然语言推理,两个硬基准测试ANLI-R2和HANS针对过去模型的典型失败案例。

5)词义消歧任务WiC从上下文评估多义理解。

为了鼓励可复现,研究团队基于开源项目lm-evaluation-harness建立了评估设置,并根据任务进行了适当的更改,使其设置与之前的工作更紧密地一致。他们在没有搜索最佳样本数量的情况下,在零样本、小样本和少样本的设置下评估MT-NLG。下表显示了准确性度量的结果。

5300亿参数!微软英伟达推最大单体AI语言模型,由560台DGX A100训练

经比较,MT-NLG在大多数任务的零样本、小样本和少样本评估中均表现出更快的学习能力。

除了报告基准任务的汇总指标,研究团队还定性地分析了模型输出,并观察到即使符号严重混淆,模型仍可以从上下文推理出基本的数学运算,虽然还不是非常准确,但该模型似乎超越了算术的记忆。

研究团队还展示了来自HANS任务的示例,其中他们将包含简单语法结构的任务作为问题提出,并提示模型给出答案。尽管结构很简单,但现有的自然语言推理(NLI)模型在处理此类输入时常常遇到困难。经过微调的模型经常从NLI数据集中的系统性偏差中发现某些句法结构和隐含关系之间的虚假关联。MT-NLG在没有微调的情况下在这种情况下表现得很有竞争力。

5300亿参数!微软英伟达推最大单体AI语言模型,由560台DGX A100训练

五、大模型的忧患:偏见、高成本与高能耗

虽然大模型正在推动语言生成的发展,但它们也存在从其训练数据中获取刻板印象和偏见的问题。微软和NVIDIA称他们“致力于解决这个问题”,并鼓励“继续进行研究,以帮助量化模型的偏差。”

微软和NVIDIA表示在生产中使用Megatron-Turing“必须确保采取适当的措施,以减轻和最小化对用户的潜在伤害”,所有工作应遵循微软负责任的AI原则。

除了潜在偏见外,大模型的成本高昂问题为研究设置了门槛。以拥有1750亿参数的OpenAI GPT-3模型为例,其训练数据集规模高达45TB,足以填满90个500GB的硬盘。

一位消息人士称,2017年至2019年期间,AI训练成本下降了为原来的1/100,但总数仍超过大多数初创公司的计算预算。这种不平等倾向于那些能够获得大量资源的公司,而牺牲了小企业家的利益,巩固了在位者的优势。

例如,OpenAI的GPT-3在训练期间估计需要每秒3.1423^23次浮点运算(FLOPS)。假设OpenAI在NVIDIA V100 GPU上保留了28 TFLOPS(每秒28万亿次浮点运算),V100单次训练就需要花费460万美元。一台拥有15TFLOPS算力的NVIDIA RTX 8000 GPU要便宜得多,但完成这项训练需要665年。

微软和英伟达称在训练MT-NLP时,他们观察到每台GPU运算速度有113-126TFLOPS。其成本可能高达数百万美元。

另据Synced的一份报告估计,华盛顿大学研究人员开发的假新闻检测模型的训练费用为2.5万美元,谷歌花了大约6912美元来训练语言模型BERT,以提高谷歌搜索结果的质量。

在处理TB或PB规模的数据集时,存储成本也会迅速增加。举个极端的例子,据CrowdStorage称,特斯拉自动驾驶团队积累的数据集——1.5PB的视频片段——在微软Azure存储3个月需要花费超过6.75万美元。

AI模型训练对环境的影响也受到关注。2020年6月,马萨诸塞大学阿默斯特学院的研究人员发布了一份报告估计,训练和搜索一个特定模型所需能耗涉及约62.6万磅的二氧化碳排放,几乎相当于美国汽车平均生命周期排放量的5倍。

好在FLOPs和基本机器学习操作的成本在过去几年一直在下降。OpenAI在2020年的一项调查发现,自2012年以来,训练一个模型在流行的基准ImageNet上对图像进行分类时达到同样的性能所需的计算量每16个月就减少了为原来的1/2。其他最近研究表明,大型语言模型并不总是比小型模型更复杂,这取决于用来训练它们的技术。

结语:大算力+大模型的优势正日益显现

当前AI发展速度远远超过了摩尔定律,超大规模AI模型带来的性能优势愈发显现出来,新一代GPU的更快互连速度带来了计算能力的提升,同时软件创新正在将这两种趋势结合起来,进一步推动优化和效率提升。

在这股热潮中,将NVIDIA Selene或微软Azure NDv4这样的超级计算机与NVIDIA Megatron-LM和微软DeepSpeed的软件突破结合而训练出的大模型MT-NLG,是一个相当好的例子。而微软和NVIDIA展现出的技术思路,有望推动大模型训练在更快的同时,成本变得更低。

“我们期待MT-NLG将如何塑造明天的产品,并激励社区进一步推动自然语言处理(NLP)的边界。这段旅程很长,还远远没有完成,但我们对未来的可能性和前景感到兴奋。”NVIDIA加速计算产品管理和营销高级总监Paresh Kharya和微软图灵团队项目经理Ali Alvi在博客中写道。

不过,大模型是否是AI语言模型发展正确的道路,仍是一个悬而未决的问题。美国康奈尔大学的自然语言处理研究员和数据科学家Maria Antoniak表示,尽管今天一些最好的基准测试性能评分来自大型数据集和模型,但将大量数据投入模型的回报是不确定的,大模型表现很好的一些任务是非常结构化的,这些任务能否引导我们真正理解语言还有待探讨。

来源:NVIDIA developer blog、VentureBeat