2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Amazon Web Services 为 BERT 和 Mask R-CNN 实现了最快的训练速度

  • 2020-04-05
  • 本文字数:2393 字

    阅读完需:约 8 分钟

Amazon Web Services 为 BERT 和 Mask R-CNN 实现了最快的训练速度

BERT 和 Mask R-CNN 都是如今最流行的机器学习模型,前者用于自然语言处理 (NLP),后者用于图像识别。过去几个月来,AWS 大幅改进了底层基础设施、网络和机器学习 (ML) 框架和模型代码,从而实现了这两个模型训练速度的提高。现在我们可以宣布在云中实现了迄今最快的 TensorFlow、MXNet 和 PyTorch 框架的训练速度。借助这些硬件和软件优化,您现在可以以同样的速度和效率训练您的模型。


模型训练时间的长短会直接影响到模型的迭代能力,以及快速提高模型的准确度。减少训练时间的主要是通过大型 GPU 实例集群来做分布式训练,但这必须以高效的方式进行。如果把训练任务分布到太多实例上,由于实例之间的通信反而会消耗集群的 GPU 计算资源,分布式集群带来的好处往往不太明显。

BERT

BERT (Bidirectional Encoder Representations from Transformers)作为流行的 NLP 模型,发布时就在 NLP 领域的多个方向刷新了精度。


Amazon EC2 P3dn.24xlarge 实例拥有 8 个 NVIDIA V100 GPU,在单个实例上使用 TensorFlow 和 PyTorch 从头开始训练 BERT 模型需要数天时间。借助 Elastic Fabric Adapter (EFA) 可以将单台实例高效扩展至更多 P3dn.24xlarge 实例,并优化该模型在大型集群上的收敛方式,我们成功将训练时间从数天缩短到 60 分钟左右。在编写本文之时,这是在云上训练 BERT 模型最快的速度,并且达到了极佳的目标准确度(基于 BooksCorpus 和英文版维基百科训练后,在 Squad v1.1 任务上的 F1 得分为 90.5 或更高)。


对于 TensorFlow,我们尝试了前所未有的扩展,在 256 个 P3dn.24xlarge 实例上使用了 2048 个 GPU,在 62 分钟内就完成了 BERT 的训练。对于 PyTorch,我们扩展到 192 个 P3dn.24xlarge 实例、1536 个 GPU,将训练时间缩短到 69 分钟。通过优化用于训练 BERT 的全部硬件和软件,我们达到了 85% 的扩展效率,确保了在扩展到更多 P3dn.24xlarge 节点时,框架可以最大限度利用来自 GPU 的额外计算能力。下表总结了这些改进。

Mask R-CNN

Mask R-CNN 是一个使用十分广泛的图像分割模型,用于自动驾驶、动作捕获以及其他需要复杂对象检测和区分能力的场景。


对于 MXNet、PyTorch 和 TensorFlow,在单个 P3dn.24xlarge 实例(8 个 NVIDIA V100 GPU)上训练 Mask R-CNN 模型需要大约 6 个小时。我们将 MXNet、PyTorch 和 TensorFlow 的训练时间从 6 个小时缩短至大约 25 分钟。我们将所有三个 ML 框架上的 Mask R-CNN 训练扩展到 24 个 P3dn.24xlarge 实例(共 192 个 GPU)。您现在可以快速进行迭代并每天运行多个试验,无需等待数天才能获得结果。在写本文的时候,这是云中最快的 Mask R-CNN 训练速度,目标准确度也极高(利用 COCO2017 数据集训练时为 0.377 Box min AP、0.339 Mask min AP)。下表总结了这些改进。

技术堆栈

实现这些结果需要优化底层硬件、网络和软件堆栈。在训练 BERT 这样的大型模型时,所使用的众多 GPU 之间的通信会成为一个性能瓶颈。


在分布式计算(例如大规模训练)中,AllReduce 运算会规约来自不同工作线程(GPU)的阵列(在此例中为神经网络的参数)并向所有工作线程(GPU)返回结果阵列。GPU 在每次迭代后集体执行一次 AllReduce 运算。每次迭代都由通过网络的一次正推和一次逆推组成。


在 GPU 上执行 AllReduce 的最常用方法是使用 NVIDIA 集合通信库 (NCCL) 或 OpenMPI or Intel MPI 库等 MPI 库。这些库专为异构集群设计。AllReduce 会在训练网络的相同实例上发生。在异构集群上执行 AllReduce 算法,对于每个 AllReduce 运算,每个工作线程需要分别发送和接收两次大约等于模型大小的数据。例如,BERT 的 AllReduce 运算(拥有 3.4 亿个参数)涉及两次发送大约 650MB 的半精度数据,然后两次接收同样数量的数据。这种通信需要在每次迭代完成后进行,将很快成为大多数模型训练的瓶颈。


AllReduce 算法的选择通常取决于网络架构。例如,Ring-AllReduce 非常适合每个节点都连接到两个相邻节点,从而形成一个环的网络。Torus AllReduce 则适合每个节点都连接到四个相邻节点,从而形成一个二维矩形晶格的网络。AWS 使用更为灵活的互联架构,任何节点都能够以全带宽与任何其他节点通信。例如,在一个具有 128 个 P3dn 实例的集群中,任何实例都能够以 100Gbps 的带宽与任何其他实例通信。


此外,100Gbps 的互联带宽也不局限于 P3dn 实例。您可以向集群添加 CPU 优化型 C5n 实例,并仍然保持任何节点对之间 100Gbps 的互联带宽。


AWS 互联架构的这种高度灵活性,需要一种能够完全利用 AWS 互联架构的独特优势的 AllReduce 算法。为此我们开发了自定义的 AllReduce 算法,该算法专为 AWS 网络优化。这种自定义的 AllReduce 算法可以利用异构集群中任何节点对之间高达 100Gbps 的互联带宽优势,并且将每个工作线程收发的数据量减少了一半。AllReduce 算法的计算阶段交由计算优化型 C5 实例执行,从而得以将 GPU 释放出来,以更快地计算梯度。由于 GPU 不再执行规约运算,梯度的发送和 AllReduce 后梯度的接收可以并行进行。AllReduce 梯度需要的跃点数量减少至两个,而在同构 AllReduce 算法中,跃点数量会随着节点数量的增加而增加。由于与仅使用 P3dn 节点的训练相比,训练速度大大提升,总成本也得以降低。

小结

在使用 BERT 和 Mask R-CNN 进行测试时,结果相比单节点执行方案的改进十分明显。随着 P3dn 节点的数量从 1 个实例增加到 16、32、64、128、192 和 256 个实例,吞吐量基本达到线性同步扩展,并最终通过扩展到更多的 P3dn.24xlarge 实例,帮助减少了模型训练时间,而成本并未增加。通过这些优化,AWS 现在可以在云中为先进的计算机视觉和 NLP 模型提供更快的模型训练速度。


立即开始在 Amazon SageMaker 上使用 TensorFlow、MXNet 和 PyTorch 吧。


本文转载自 AWS 技术博客。


原文链接https://amazonaws-china.com/cn/blogs/china/amazon-web-services-achieves-fastest-training-times-for-bert-and-mask-r-cnn/


2020-04-05 08:00915

评论

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

架构师训练营第二周作业

郎哲158

极客大学架构师训练营

架构师训练营第 2 周课后练习

叶纪想

极客大学架构师训练营

设计模式

knight

甲方日常 23

句子

生活 随笔杂谈 减肥

第二周 框架设计 作业一

应鹏

极客大学架构师训练营

Week 2 作业 02

Croesus

第二周作业 (作业一)

Geek_83908e

极客大学架构师训练营

第二周作业 (作业二)

Geek_83908e

极客大学架构师训练营

第二周作业2

sean

Architecture Phase1 Week2:Framework Design

phylony-lu

极客大学架构师训练营

架构师训练营第 1 期 - 第2周 - 学习总结

wgl

架构训练营第二周练习

灰羽零

架构师训练营作业:第二周

m

架构师训练营 - 学习笔记 - 第二周

徐时良

架构一期二班-吴水金-第二课作业

吴水金

第二周 框架设计 学习笔记

应鹏

学习 极客大学架构师训练营

作业一:

静海

架构师训练营第一期 - 第二周课后作业

卖猪肉的大叔

【架构师训练营第 1 期 02 周】 学习总结

Bear

极客大学架构师训练营

第二周作业及学习笔记

橘子皮嚼着不脆

第二周作业1

sean

week2

Geek_deb968

架构师训练营 -week02- 作业

大刘

极客大学架构师训练营

第二周作业

极客大学架构师训练营

用十六年时间,造一座声音“博物馆”:OPPO的影音进击之路

脑极体

架构师训练营第一期第2周作业及总结

木头发芽

Architecture Phase1 Week2:HomeWork

phylony-lu

极客大学架构师训练营

VS Code 搭建 C++ 开发环境(Mac 环境)

hungxy

c++ vscode

架构师训练营第二周笔记-带你认识框架设计原则和设计模式

郎哲158

学习 极客大学架构师训练营 框架设计

罗辑思维(得到APP)要上市了,你不知道的27件事

赵新龙

罗辑思维 IPO

第二周-学习总结

Yangjing

极客大学架构师训练营

Amazon Web Services 为 BERT 和 Mask R-CNN 实现了最快的训练速度_文化 & 方法_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章