尽管自然语言处理( NLP )的研究在过去两年取得了重大进展,并取得了商业上的成功,但很少有人致力于将这种能力应用于其他重要语言,如印度教、阿拉伯语、葡萄牙语或西班牙语。显然,用 6500 多种语言来满足全人类的需求是一项挑战。同时,仅支持 40 种语言就能满足 60% 以上人口的自然语言规划需求。
图 2 显示,即使在最常用的语言中,语言模型的性能也有很大的不同。请记住,这种比较并不完美,因为这些语言确实具有不同的语言熵。更重要的是,对最有能力的大规模语言模型的研究似乎仅限于少数高资源语言(公开提供大量文档的语言),如英语或汉语。
当您考虑特定于领域的语言(如医学、技术或法律术语)时,情况就更加复杂了,除了英语之外,还存在一些高质量的模型。令人遗憾的是,这些领域特定的语言模型目前正在改变临床医生、工程师、研究人员或其他专家获取信息的方式。
- 像 GaTortron 这样的模型正在改变临床医生获取医疗记录的方式。
- 像 bioMegatron 这样的模型改变了医学研究人员识别影响人体的药物或化学相互作用的方式。
- sci BERT 等模型改变了工程师发现科学信息并与之交互的方式。
不幸的是,英语以外的等效模型数量有限。幸运的是,跨其他语言复制英语语言模型的成功不再是一项研究任务,而主要是一项工程活动。它不再需要发明新的模型和训练方法,而是需要系统和迭代的数据集工程、模型训练及其持续验证。
这并不意味着设计这些模型是微不足道的。由于现代自然语言处理中使用的模型和数据集的大小,训练过程需要大量的计算能力。其次,要使用大型模型,必须收集大型文本数据集。第三,由于使用的模型大小相同,因此需要新的训练和推理方法。
NVIDIA 不仅在构建大规模语言模型(从 10 亿到 1750 亿个参数)方面拥有丰富的经验,而且在将它们部署到生产环境中也有丰富的经验。这个职位的目标是分享我们关于项目组织、基础设施需求和预算的知识,并支持这个领域的项目。
大型模型的诞生
正如 从经验上看,深度学习规模是可以预测的 中所假设的那样, NLP 模型的性能在模型大小和用于训练的数据量方面似乎都遵循幂律。随着模型和数据集变大,性能也会不断提高。 神经语言模型的标度律 中的下图不仅说明了这种关系,而且更重要的是,它适用于九个数量级的计算。
在 NLP 比例定律中,尽管最右边的模型达到多达 1750 亿个参数(大于 BERT 大的 500 倍以上),但这种关系没有停止的迹象。这表明,更大的模型可能会有进一步的改进。事实上,当开关变压器扩展到 1 . 6 万亿个参数(大约比 BERT 大 5000 倍)时,仍然显示出前面提到的行为。
更重要的是,大型 NLP 模型似乎生成了更健壮的特性,能够解决复杂的问题,即使没有大规模的微调数据集。图 4 显示了三个数量级模型的这种能力。
由于这一能力,尽管其开发成本相对较高,但大型 NLP 模型可能不仅继续主导 NLP 处理领域,而且还会继续增长,至少会再增长一个数量级,接近万亿个参数。
模型大小、数据集大小和模型性能之间的这种关系不是 NLP 独有的。我看到了自动语音识别和计算机视觉模型的相同行为,以及作为会话人工智能支柱的许多其他学科。
同时,在为其他语言开发大规模数据集和模型方面投入了有限的工作。事实上,大多数专注于英语以外的语言的工作都利用了较小的模型和较少管理的数据集。例如, NLP 使用来自常规数据集(如原始公共爬网)的子集。
支持以下任何一项的努力更少:
- 更本地化的模式,如阿拉伯语方言和变体或汉语子群和方言。
- 特定领域的模型,例如用于临床笔记、科学出版物、财务报告分析、工程文档解释、通过法律文本进行解析,甚至用于 Twitter 等平台的语言变体。
目前的状况为愿意投资模型培训的本地公司创造了一个机会,以领导该地区 NLP 技术的发展。
构建本地语言模型
由于许多原因,构建大规模的语言模型并非易事。首先,大规模数据集的管理并非微不足道。在原始格式中,它们实际上很容易获得。其次,培训这些大型模型所需的基础设施需要大量的系统知识来建立。最后,他们需要广泛的研究专业知识来培训和优化。
人们不太了解的是,训练如此大的模型需要软件工程的努力。最有趣的模型不仅比单个 GPU 服务器的内存容量大,而且比许多多 GPU 服务器的内存容量大。训练它们所需的数学运算的数量也会使训练时间变得难以管理,即使在相当大的系统上,也要用几个月来衡量。模型和管道并行等方法克服了其中一些挑战。然而,以一种幼稚的方式应用它们可能会导致伸缩问题,加剧已经很长的训练时间。
与诸如微软和斯坦福大学这样的组织一起, NVIDIA 一直致力于开发工具来简化最大语言模型的开发过程,并提供计算效率和可扩展性以允许成本效益的培训。因此,现在可以使用各种各样的工具来抽象大型模型开发的复杂性,包括:
- NVIDIA 威震天 LM – 一个计算效率高的模型和流水线并行实现的自我注意和多层感知器,连同实现的模型,如 GPT-3 , T5 ,甚至视觉变压器。特别是, GPT-3 代码用多达 1 万亿个参数进行了测试。有关详细信息,请参阅 威震天 LM :使用模型并行性训练数十亿参数语言模型 和 GPU 机群上高效的大规模语言模型训练 。
- 微软 DeepSpeed – 不仅支持 MigaTron LM 作为模型和流水线并行性的基础的库,还进一步优化了零冗余优化器(零)、 1 位亚当和 Lamb 或稀疏注意的实现。
- Facebook FairScale —通过实施模型并行训练(基于 NVIDIA Megatron LM )、分片训练或 AdaScale 优化器来解决大规模训练的库。
通过这些努力,我看到大型模型的训练时间大大缩短。事实上,使用 1024 NVIDIA A100 张量核 GPU s 在 3000 亿个代币上训练 1750 亿个参数的 GPT-3 模型今天可以在 34 天内训练(如 GPU 机群上高效的大规模语言模型训练 所示)。基于实验, NVIDIA 估计,使用 3072 A100 GPU s ,大约 84 天就可以训练出 1 万亿个参数模型。尽管这些模型的培训成本很高,但大多数大型组织并不能望其项背。随着软件的进一步发展,它可能会进一步减少。
由于大型语言模型的开发需要可扩展的基础设施, NVIDIA 还将构建内部 硒原子团 (用于 NLP 内部研究 并在 MLPerf 训练与推理 基准测试中提供创纪录的性能)的知识整合到一个名为 NVIDIA DGX SuperPOD 的完整打包产品中。这个集群不仅仅是一个系统参考设计。事实上,它可以与 NVIDIA 数据科学家和应用研究人员的软件和支持一起整体购买,类似于 Naver 克隆 的 NLP 重点部署。
这种方法已经对自然语言处理领域产生了重大影响,因为它使具有广泛自然语言处理专门知识的组织能够快速扩展其工作。更重要的是,它使具有有限系统、 HPC 或大规模 NLP 工作负载专业知识的组织能够在数周内开始迭代,而不是数月或数年。
生产部署
构建大型语言模型的能力只是一项学术成就,因为无法通过将模型部署到生产环境中来利用您的工作成果。部署 GPT-3 这样的模型所面临的挑战与它们的庞大规模(超过了 GPU 的内存容量)和计算复杂性有关。这两个因素都会导致吞吐量降低和推理延迟增加。这是一个被广泛理解的问题,目前有一系列的工具和解决方案可以使服务于最大的语言模型变得简单和经济高效。
- NVIDIA Triton ®声波风廓线仪推断服务器
- NVIDIA TensorRT 等模型优化技术
NVIDIA Triton ®声波风廓线仪推断服务器
NVIDIA Triton ®声波风廓线仪推断服务器 是为 CPU s 和 GPU s 优化的开源云和边缘推断解决方案。它可以有效地托管分布式模型。要使用管道并行性部署大型模型,必须将模型分成几个部分,例如,使用 ONNX 图形 等工具操作 ONNX 图。每个部件都必须足够小,以适合单个 GPU 的内存空间。
在细分模型之后,它可以分布在多个 GPU 上,而无需开发任何代码。创建一个 NVIDIA Triton YAML 配置文件,定义模型的各个部分应如何连接。
Triton 推理服务器可以自动管理各个模型部件之间的通信量及其负载平衡。由于 Triton ®声波风廓线仪利用了最新的 NVIDIA NVSwitch 和第三代 NVIDIA NVLink 技术,提供了 600 GB / sec GPU – GPU 直接带宽,比 PCIe gen4 高 10 倍,因此通信开销也保持在最低水平。这意味着您不仅可以高效地部署数十亿参数的中型模型,甚至可以部署最大的模型,包括具有万亿参数的 GPT-3 。
有关更多信息,请参阅 基于 Triton 和 ONNX 运行时的威震天 GPT-3 大模型推理 ( GTC21 会话)。
NVIDIA TensorRT 等模型优化技术
除了托管经过训练的大型模型之外,研究优化技术也很重要。这些技术可以通过量化和剪枝来减少模型的内存占用;大幅度加快执行速度;并通过优化内存访问、利用 TensorCores 或稀疏加速来减少延迟。
像 TensorRT 这样的实用程序为执行基于转换器的体系结构提供了广泛的优化内核。它们可以自动进行半精度( FP16 )或在某些情况下进行 INT8 量化。 TensorRT 还支持量化感知训练,并为硬件加速稀疏性提供早期支持。
NVIDIA FasterTransformer 库专门用于变压器神经网络的推理,可与 BERT 或 GPT-2 / 3 等模型一起使用。该库包括一个张量并行推理后端,可在 DGX A100 系统内的多个 GPU 上并行推理大型 GPT-3 模型。这使您可以根据模型大小将推理延迟减少 1 . 2 – 3 倍。使用 FasterTransformer ,您可以用一行代码部署最大的威震天型号。
微软的 DeepSpeed 库有许多特性 专注于推理 ,包括支持混合量化( MoQ )、高性能 INT8 内核或 DeepFusion 。
由于所有这些进步,大型语言模型不再局限于学术研究,因为它们正在向基于人工智能的商业产品发展。
确定挑战的大小
正确确定挑战的大小对于 NLP 计划的成功至关重要。所需的工程和研究人员以及培训和推理基础设施的数量会显著影响您的业务案例。以下因素对开发总成本有重大影响:
- 支持的语言和方言数
- 正在开发的应用程序数(命名实体识别、翻译等)
- 开发计划(为了训练更快,你需要更多的计算机)
- 对模型精度的要求(由数据集大小和模型大小驱动)
在解决了基本的业务问题之后,就可以估计开发所需的工作量和计算。当您了解了您的模型必须有多好才能容纳产品或服务时,就可以估计所需的模型大小。语言模型的性能与数据量和模型大小之间的关系已被广泛理解(图 9 )。
了解了所需的模型和数据集的大小之后,就可以估计所需的基础结构数量和培训时间。有关详细信息,请参阅 GPU 机群上高效的大规模语言模型训练 。此外,大型语言模型的缩放比例为 superlinear ,这意味着训练性能不会随着模型大小的增加而降低,而是实际增加(图 10 )。
以下是初始基础设施规模考虑的关键因素:
- 支持的语言、方言和特定于域的变体的数量
- 每种语言的应用程序数
- 项目时间表
- 模型必须实现的性能指标和目标,以创建最小可行的产品
- 积极参与每个应用程序或语言培训的数据科学家、研究人员和工程师的数量
- 最少的周转时间和训练频率,包括预训练和微调
- 大致了解应用程序的推理需求、每天或每小时的平均或最大请求数及其季节性
- 训练管道性能,或者单个训练周期需要多长时间,以及管道实现离理论上的最高性能有多远(图 10 显示了一个基于威震天 GPT-3 的示例)
大型模型是 NLP 的现在和未来
大型语言模型具有吸引人的特性,将有助于在全球范围内扩展 NLP 的可用性。它们在大量 NLP 任务中表现得更好,但它们的样本效率也更高。它们被称为“少数镜头学习者”,在某些方面更容易设计,因为它们的精确超参数配置与它们的大小相比似乎并不重要。因此, NLP 模型可能会继续增长。我看到经验证据证明至少有一个或两个数量级的增长是合理的。
幸运的是,构建和部署它们的技术已经相当成熟。训练他们所需的软件也已经相当成熟,并且可以广泛使用,例如基于 NVIDIA 开源威震天的 GPT-3 实现。质量正在不断提高,从而缩短了训练时间。在这一领域训练模型所需的基础设施也得到了很好的理解和商用( DGX SuperPOD )。现在可以使用 Triton 推断服务器等工具将最大的 NLP 模型部署到生产环境中,因此,每个人都可以使用大的 NLP 模型来追求它们。
概括
NVIDIA 积极支持客户确定大型培训和推理系统的范围和交付,并支持他们建立 NLP 培训能力。如果您正在努力建立 NLP 能力,请联系您当地的 NVIDIA 客户团队。
您也可以加入我们的 深度学习培训中心 NLP 课程 之一。在本课程中,您将学习如何使用现代 NLP 模型,如何使用 TensorRT 对其进行优化,以及如何使用 Triton 推理服务器进行部署以实现经济高效的生产。
有关更多信息,请参阅以下任何与 NLP 相关的 GTC 演示文稿:
- 自然语言处理:新的机遇[E32293]
- 使用 Triton ®声波风廓线仪和 ONNX 运行时的威震天 GPT-3 大模型推断[S31578]
- 使用 Selene DGXA100 SuperPOD 和并行文件系统存储[S31522]加速大规模人工智能
- S32030 : Gatortron –最大的临床语言模型
- 设计和优化用于高吞吐量和低延迟生产部署的深层神经网络[E31970]