人工智能/深度学习

在世界语言中应用自然语言处理

尽管自然语言处理( NLP )的研究在过去两年取得了重大进展,并取得了商业上的成功,但很少有人致力于将这种能力应用于其他重要语言,如印度教、阿拉伯语、葡萄牙语或西班牙语。显然,用 6500 多种语言来满足全人类的需求是一项挑战。同时,仅支持 40 种语言就能满足 60% 以上人口的自然语言规划需求。

Supporting just 40 languages addresses the NLP needs of more than 60% of the human population.
图 1 .按母语人口总数分列的前 40 种语言名单(占世界人口的百分比)

图 2 显示,即使在最常用的语言中,语言模型的性能也有很大的不同。请记住,这种比较并不完美,因为这些语言确实具有不同的语言熵。更重要的是,对最有能力的大规模语言模型的研究似乎仅限于少数高资源语言(公开提供大量文档的语言),如英语或汉语。

Even across most frequently used languages, the performance of NLP models varies tremendously
图 2 .不同语言 NLP 模型的性能有很大差异

当您考虑特定于领域的语言(如医学、技术或法律术语)时,情况就更加复杂了,除了英语之外,还存在一些高质量的模型。令人遗憾的是,这些领域特定的语言模型目前正在改变临床医生、工程师、研究人员或其他专家获取信息的方式。

  • GaTortron 这样的模型正在改变临床医生获取医疗记录的方式。
  • 像 bioMegatron 这样的模型改变了医学研究人员识别影响人体的药物或化学相互作用的方式。
  • sci BERT 等模型改变了工程师发现科学信息并与之交互的方式。

不幸的是,英语以外的等效模型数量有限。幸运的是,跨其他语言复制英语语言模型的成功不再是一项研究任务,而主要是一项工程活动。它不再需要发明新的模型和训练方法,而是需要系统和迭代的数据集工程、模型训练及其持续验证。

这并不意味着设计这些模型是微不足道的。由于现代自然语言处理中使用的模型和数据集的大小,训练过程需要大量的计算能力。其次,要使用大型模型,必须收集大型文本数据集。第三,由于使用的模型大小相同,因此需要新的训练和推理方法。

NVIDIA 不仅在构建大规模语言模型(从 10 亿到 1750 亿个参数)方面拥有丰富的经验,而且在将它们部署到生产环境中也有丰富的经验。这个职位的目标是分享我们关于项目组织、基础设施需求和预算的知识,并支持这个领域的项目。

大型模型的诞生

正如 从经验上看,深度学习规模是可以预测的 中所假设的那样, NLP 模型的性能在模型大小和用于训练的数据量方面似乎都遵循幂律。随着模型和数据集变大,性能也会不断提高。 神经语言模型的标度律 中的下图不仅说明了这种关系,而且更重要的是,它适用于九个数量级的计算。

Deep Learning Scaling is predictable empirically, and data shows that even with very large models we are not seeing any evidence of getting close to the irreducible error region.
图 3 .深度学习标度律 ( left ) 和 NLP 标度律 ( right )

在 NLP 比例定律中,尽管最右边的模型达到多达 1750 亿个参数(大于 BERT 大的 500 倍以上),但这种关系没有停止的迹象。这表明,更大的模型可能会有进一步的改进。事实上,当开关变压器扩展到 1 . 6 万亿个参数(大约比 BERT 大 5000 倍)时,仍然显示出前面提到的行为。

更重要的是,大型 NLP 模型似乎生成了更健壮的特性,能够解决复杂的问题,即使没有大规模的微调数据集。图 4 显示了三个数量级模型的这种能力。

Larger models are more efficient at learning and lead to better features
图 4 .大型语言模型的学习者很少

由于这一能力,尽管其开发成本相对较高,但大型 NLP 模型可能不仅继续主导 NLP 处理领域,而且还会继续增长,至少会再增长一个数量级,接近万亿个参数。

模型大小、数据集大小和模型性能之间的这种关系不是 NLP 独有的。我看到了自动语音识别和计算机视觉模型的相同行为,以及作为会话人工智能支柱的许多其他学科。

同时,在为其他语言开发大规模数据集和模型方面投入了有限的工作。事实上,大多数专注于英语以外的语言的工作都利用了较小的模型和较少管理的数据集。例如, NLP 使用来自常规数据集(如原始公共爬网)的子集。

支持以下任何一项的努力更少:

  • 更本地化的模式,如阿拉伯语方言和变体或汉语子群和方言。
  • 特定领域的模型,例如用于临床笔记、科学出版物、财务报告分析、工程文档解释、通过法律文本进行解析,甚至用于 Twitter 等平台的语言变体。

目前的状况为愿意投资模型培训的本地公司创造了一个机会,以领导该地区 NLP 技术的发展。

构建本地语言模型

由于许多原因,构建大规模的语言模型并非易事。首先,大规模数据集的管理并非微不足道。在原始格式中,它们实际上很容易获得。其次,培训这些大型模型所需的基础设施需要大量的系统知识来建立。最后,他们需要广泛的研究专业知识来培训和优化。

人们不太了解的是,训练如此大的模型需要软件工程的努力。最有趣的模型不仅比单个 GPU 服务器的内存容量大,而且比许多多 GPU 服务器的内存容量大。训练它们所需的数学运算的数量也会使训练时间变得难以管理,即使在相当大的系统上,也要用几个月来衡量。模型和管道并行等方法克服了其中一些挑战。然而,以一种幼稚的方式应用它们可能会导致伸缩问题,加剧已经很长的训练时间。

与诸如微软和斯坦福大学这样的组织一起, NVIDIA 一直致力于开发工具来简化最大语言模型的开发过程,并提供计算效率和可扩展性以允许成本效益的培训。因此,现在可以使用各种各样的工具来抽象大型模型开发的复杂性,包括:

通过这些努力,我看到大型模型的训练时间大大缩短。事实上,使用 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 工作负载专业知识的组织能够在数周内开始迭代,而不是数月或数年。

14 systems in the Top500 are built on NVIDIA DGX SuperPOD
图 5 .一些基于 NVIDIA DGX 的关键集群及其在超级计算 500 强中的排名

生产部署

构建大型语言模型的能力只是一项学术成就,因为无法通过将模型部署到生产环境中来利用您的工作成果。部署 GPT-3 这样的模型所面临的挑战与它们的庞大规模(超过了 GPU 的内存容量)和计算复杂性有关。这两个因素都会导致吞吐量降低和推理延迟增加。这是一个被广泛理解的问题,目前有一系列的工具和解决方案可以使服务于最大的语言模型变得简单和经济高效。

  • NVIDIA Triton ®声波风廓线仪推断服务器
  • NVIDIA TensorRT 等模型优化技术

NVIDIA Triton ®声波风廓线仪推断服务器

NVIDIA Triton ®声波风廓线仪推断服务器 是为 CPU s 和 GPU s 优化的开源云和边缘推断解决方案。它可以有效地托管分布式模型。要使用管道并行性部署大型模型,必须将模型分成几个部分,例如,使用 ONNX 图形 等工具操作 ONNX 图。每个部件都必须足够小,以适合单个 GPU 的内存空间。

NVIDIA Triton Inference Server hosts distributed models, ONNX Graph Surgeon can split the model into several parts so it can be deployed.
图 6 .大型语言模型可以使用 Graph surgeor 等工具进行划分,并使用 TensorRT 进行进一步优化

在细分模型之后,它可以分布在多个 GPU 上,而无需开发任何代码。创建一个 NVIDIA Triton YAML 配置文件,定义模型的各个部分应如何连接。

Triton Inference Server can serve models that exceed the memory capacity of a single GPU and take advantage of NVLINK technology in DGX A100 to exchange partial computation with low latency.
图 7 .图形的各个部分可以通过 Triton 推理服务器合并到一个推理管道中 .

Triton 推理服务器可以自动管理各个模型部件之间的通信量及其负载平衡。由于 Triton ®声波风廓线仪利用了最新的 NVIDIA NVSwitch 和第三代 NVIDIA NVLink 技术,提供了 600 GB / sec GPU – GPU 直接带宽,比 PCIe gen4 高 10 倍,因此通信开销也保持在最低水平。这意味着您不仅可以高效地部署数十亿参数的中型模型,甚至可以部署最大的模型,包括具有万亿参数的 GPT-3 。

Chart shows inference on DGX A100 using Triton + TensorRT of GPT-3 18B showing significantly higher throughput vs without TensorRT
图 8 .使用和不使用 TensorRT 优化 18B 参数的 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 )。

Charts show how to size your NLP initiative given the understanding of the relationship between performance of language models and amount of data and model size.
图 9 .可用于确定达到给定模型性能所需的数据集和模型大小的方法概述。

了解了所需的模型和数据集的大小之后,就可以估计所需的基础结构数量和培训时间。有关详细信息,请参阅 GPU 机群上高效的大规模语言模型训练 。此外,大型语言模型的缩放比例为 superlinear ,这意味着训练性能不会随着模型大小的增加而降低,而是实际增加(图 10 )。

Chart shows training performance does not degrade with increasing model size but actually increases
图 10 :大型语言模型(本例中是 GPT-3 )的训练规模是超线性的,为更大的 NLP 模型开辟了一条道路

以下是初始基础设施规模考虑的关键因素:

  • 支持的语言、方言和特定于域的变体的数量
  • 每种语言的应用程序数
  • 项目时间表
  • 模型必须实现的性能指标和目标,以创建最小可行的产品
  • 积极参与每个应用程序或语言培训的数据科学家、研究人员和工程师的数量
  • 最少的周转时间和训练频率,包括预训练和微调
  • 大致了解应用程序的推理需求、每天或每小时的平均或最大请求数及其季节性
  • 训练管道性能,或者单个训练周期需要多长时间,以及管道实现离理论上的最高性能有多远(图 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 演示文稿:

 

标签