0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用DeepSpeed和Megatron驱动MT-NLG语言模型

星星科技指导员 来源:NVIDIA 作者:NVIDIA 2022-04-17 11:25 次阅读

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

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

完井预测

阅读理解

常识推理

自然语言推理

词义消歧

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

大规模语言模型

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

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

图 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 文件中提取文本,使用经过高质量数据训练的分类器对提取的文档进行评分,以及根据其评分对文档进行过滤。为了使培训多样化,我们还收集了RealNews和CC-Stories数据集。

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

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

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

表 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 ,并在开发集上报告其他任务。

表 2 。使用 MT-NLG 进行零次、一次和少量放炮评估的准确度结果。 MT-NLG 在所有三种设置(用*表示)中建立了 PiQA-dev 集和 LAMBADA 测试集的最新结果,并在其他类别的类似单片模型中优于结果。

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

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

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

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

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

表 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 的边界。旅程漫长,远未完成,但我们对可能发生的事情和未来的事情感到兴奋。

关于作者

Paresh Kharya 是 NVIDIA 加速计算的产品管理和营销高级总监。他专注于 NVIDIA 数据中心产品,包括用于 AI 和 HPC 的服务器 GPU 、 CPU 和 NVIDIA 计算软件平台。此前,帕雷什在高科技行业担任过多种业务角色,包括 Adobe 的产品管理和 tech Mahindra 的业务开发。帕雷什拥有印度管理学院的工商管理硕士学位和印度国家理工学院的计算机科学学士学位。

Ali Alvi 是微软图灵团队的团队项目经理,该团队是一个跨公司深度学习/人工智能项目。他们正在开发和生产跨 Microsoft 产品套件( Outlook 、 Word 、 PowerPoint 、 SharePoint 、 Bing 、 Dynamics 、 Maps 等)的雄心勃勃的深度学习功能。他的重点包括非结构化和半结构化数据的 QA 、搜索相关模型、机器阅读理解、自然语言表示、自然语言生成、通过向量空间嵌入的文档和查询表示、对话和对话 AI 以及多模态 AI 模型。此前,他是微软推出第一款可穿戴设备微软乐队的团队成员。他领导 Microsoft Band 和 Health 的应用程序、体验和开发平台。 Ali 从拉合尔管理科学大学( LUMS )获得计算机科学学士学位,辅修数学和经济学。阿里自 2001 年以来一直在微软工作。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4588

    浏览量

    101694
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4415

    浏览量

    126642
  • 人工智能
    +关注

    关注

    1776

    文章

    43815

    浏览量

    230574
收藏 人收藏

    评论

    相关推荐

    基于NVIDIA Megatron Core的MOE LLM实现和训练优化

    本文将分享阿里云人工智能平台 PAI 团队与 NVIDIA Megatron-Core 团队在 MoE (Mixture of Experts) 大语言模型(LLM)实现与训练优化上的创新工作。
    的头像 发表于 03-22 09:50 156次阅读
    基于NVIDIA <b class='flag-5'>Megatron</b> Core的MOE LLM实现和训练优化

    语言模型使用指南

    在信息爆炸的时代,我们渴望更智能、更高效的语言处理工具。GPT-3.5等大语言模型的崛起为我们提供了前所未有的机会。这不仅是技术的进步,更是人与机器共舞的一幕。本篇文章将带你走进这个奇妙的语言
    的头像 发表于 12-29 14:18 345次阅读

    语言模型概述

    在科技飞速发展的当今时代,人工智能技术成为社会进步的关键推动力之一。在广泛关注的人工智能领域中,大语言模型以其引人注目的特性备受瞩目。 大语言模型的定义及发展历史 大
    的头像 发表于 12-21 17:53 723次阅读

    语言模型简介:基于大语言模型模型全家桶Amazon Bedrock

    本文基于亚马逊云科技推出的大语言模型与生成式AI的全家桶:Bedrock对大语言模型进行介绍。大语言模型
    的头像 发表于 12-04 15:51 402次阅读

    深度学习框架DeepSpeed使用指南

    到各个GPU上。 今天要给大家介绍的DeepSpeed,它就能实现这个拆散功能,它通过将模型参数拆散分布到各个
    的头像 发表于 10-30 10:09 1321次阅读
    深度学习框架<b class='flag-5'>DeepSpeed</b>使用指南

    基于PyTorch的模型并行分布式训练Megatron解析

    NVIDIA Megatron 是一个基于 PyTorch 的分布式训练框架,用来训练超大Transformer语言模型,其通过综合应用了数据并行,Tensor并行和Pipeline并行来复现 GPT3,值得我们深入分析其背后机
    的头像 发表于 10-23 11:01 996次阅读
    基于PyTorch的<b class='flag-5'>模型</b>并行分布式训练<b class='flag-5'>Megatron</b>解析

    腾讯发布混元大语言模型

    腾讯发布混元大语言模型 腾讯全球数字生态大会上腾讯正式发布了混元大语言模型,参数规模超千亿,预训练语料超2万亿tokens。 作为腾讯自研的通用大
    的头像 发表于 09-07 10:23 848次阅读

    语言模型的发展历程 基于神经网络的语言模型解析

    简单来说,语言模型能够以某种方式生成文本。它的应用十分广泛,例如,可以用语言模型进行情感分析、标记有害内容、回答问题、概述文档等等。但理论上,语言
    发表于 07-14 11:45 509次阅读
    <b class='flag-5'>语言</b><b class='flag-5'>模型</b>的发展历程 基于神经网络的<b class='flag-5'>语言</b><b class='flag-5'>模型</b>解析

    Profile工作判断模型的计算以及内存瓶颈

    DeepSpeed运行时一起使用 在Megatron-LM中使用 在 DeepSpeed 运行环境之外的使用方法 训练工作流例子 0x0. 前言 这篇翻译是对 https://www.de
    的头像 发表于 06-26 10:45 867次阅读

    DeepSpeed安装和使用教程

    本文翻译了 Getting Started 和 Installation Details 和 CIFAR-10 Tutorial 三个教程,可以让新手安装和简单使用上 DeepSpeed 来做模型训练。
    的头像 发表于 06-20 11:47 6928次阅读

    DeepSpeed结合Megatron-LM训练GPT2模型笔记

    本文基于DeepSpeedExamples仓库中给出的Megatron相关例子探索一下训练GPT2模型的流程。主要包含3个部分,第一个部分是基于原始的Megatron如何训练GPT2模型
    的头像 发表于 06-19 14:45 1924次阅读
    <b class='flag-5'>DeepSpeed</b>结合<b class='flag-5'>Megatron</b>-LM训练GPT2<b class='flag-5'>模型</b>笔记

    DeepSpeed里面和Zero相关技术教程

    使用原始的 Megatron-LM 训练 GPT2 设置训练数据 运行未修改的Megatron-LM GPT2模型 开启DeepSpeed Deep
    的头像 发表于 06-12 10:25 2425次阅读
    <b class='flag-5'>DeepSpeed</b>里面和Zero相关技术教程

    图解大模型训练之:Megatron源码解读2,模型并行

    前文说过,用Megatron做分布式训练的开源大模型有很多,我们选用的是THUDM开源的CodeGeeX(代码生成式大模型,类比于openAI Codex)。选用它的原因是“完全开源”与“清晰的
    的头像 发表于 06-07 15:08 2573次阅读
    图解大<b class='flag-5'>模型</b>训练之:<b class='flag-5'>Megatron</b>源码解读2,<b class='flag-5'>模型</b>并行

    图解大模型系列之:Megatron源码解读1,分布式环境初始化

    使用Megatron来训练gpt类大模型的项目有很多。在这个系列里,我选择了由THUDM开发的CodeGeeX项目,它是gpt在代码生成方向上的应用,对标于openAI的CodeX。github地址在此。
    的头像 发表于 06-06 15:22 4077次阅读
    图解大<b class='flag-5'>模型</b>系列之:<b class='flag-5'>Megatron</b>源码解读1,分布式环境初始化

    语言模型的多语言机器翻译能力分析

    以ChatGPT为代表的大语言模型(Large Language Models, LLM)在机器翻译(Machine Translation, MT)任务上展现出了惊人的潜力。
    的头像 发表于 05-17 09:56 990次阅读
    大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>的多<b class='flag-5'>语言</b>机器翻译能力分析