IBM发布新型分布式深度学习系统:结合软硬件实现当前最优性能

近日,IBM 发布了一种结合软件和硬件的新型分布式系统 PowerAI DDL,该系统不仅在 Imagenet 22K 任务上实现了当前最佳的性能,同时还只需要 7 小时就能完成训练。该软件库现已集成到 TensorFlow、Caffe 和 Torch 中。

IBM Research 在 arXiv 发表文章,称使用新型分布式深度学习软件可达到几乎完美的扩展效果,该系统在 64 位 IBM Power system 的 256 个英伟达 GPU 上使用 Caffe 深度学习框架获得了破纪录的通信成本,扩展效率高达 95%。之前的最佳扩展效率是 Facebook AI Research 发布的 89%,其在 Caffe2 上训练运行,通信成本相对较高。IBM Research 还以 50 分钟的模型训练时间在时间方面优于 Facebook 的模型。使用该系统,IBM Research 在大型数据集(7.5M 图像)上利用神经网络达到新的图像识别准确率——33.8%。微软之前发布的记录是 29.8%。

IBM发布新型分布式深度学习系统:结合软硬件实现当前最优性能

IBM Research 分布式深度学习代码的技术预览内容今天即可在该网址查看:https://www.ibm.com/us-en/marketplace/deep-learning-platform。

深度学习是一种广泛使用的人工智能方法,它帮助计算机理解人类用来感知世界的图像和声音,并从中抽取意义。该方法有望帮助从消费者手机 app 体验到医疗影像诊断的所有领域中实现突破。但是大规模部署深度学习的准确率和可行性受到技术因素的限制,如训练基于大型复杂深度学习的 AI 模型,该过程的训练时间需要用天或周来衡量。

我在 IBM Research 的团队一直致力于减少在大数据集上训练大型模型的时间。我们的目标是将深度学习训练的等待时间从数天或数小时缩减至几分钟甚至几秒,并改善这些 AI 模型的准确率。为了达到该目标,我们在大量服务器和多个英伟达 GPU 的分布式深度学习中解决了扩展问题这一巨大挑战。

最流行的深度学习框架可以在一个服务器的多个 GPU 上扩展,但是无法在具备多个 GPU 的多个服务器上扩展。具体来说,我们的团队(Minsik Cho、Uli Finkler、David Kung 以及他们的合作伙伴)写出的软件和算法,能够在数十个服务器上的数百个 GPU 加速器之间自动执行和优化大型复杂计算任务的并行化。

IBM发布新型分布式深度学习系统:结合软硬件实现当前最优性能

IBM 研究员 Hillery Hunter 用前所未有的 GPU 处理速度开发新软件。

我们的软件可以完全同步地进行深度学习训练,并且这种训练只有非常少的通信成本。因此,当我们将该系统扩展到有 100 多个英伟达 GPU 的大型计算机集群时,它在 ImageNet-22K 数据集上的 7.5M 图片上识别精度达到了 33.8%,而前面最好的结果是微软实现的 29.8%,4% 的性能提升已经是十分巨大的进步了,因为以前的精度提升基本上都在 1% 以内。我们所提出的分布式深度学习(DDL)方法不仅能提升性能,还能在 7 小时内训练一个 101 层的残差网络,因为它能利用 10 个配备 100 块英伟达 GPU 的服务器的计算力。相比之下,微软可能需要十天的时间来训练相同的模型。这个成就进一步要求我们创建 DDL 代码和算法,以克服扩展到其他强力深度学习框架所遇到的固有问题。

这些结果都是在为测试深度学习算法和系统而构建的基准上完成的,所以 33.8% 的验证精度可能看起来不高,但是它要显著地高于以前的最优结果。给定任意一张图片,该系统将会在 22000 个选项中给出最佳的选择(Top-1 accuracy),并且精度还能达到 33.8%。我们的技术将帮助其它 AI 模型在具体的任务上训练,例如医疗影像中的癌细胞检测就能变得更加精确,并且训练或再训练都只需要数小时。

IBM发布新型分布式深度学习系统:结合软硬件实现当前最优性能

FAIR(Facebook AI Research)六月份发表的研究论文中描述了这个问题,该论文使用较小的数据集(ImageNet 1k)和较小的神经网络(ResNet 50)解释了他们杰出的研究成果:

深度学习的兴起得益于大型神经网络和数据集。但是,大型网络和数据集导致了较长的训练时间,这阻碍了研发的前进步伐。

讽刺的是,这个在多服务器上策划和优化深度学习的问题随着 GPU 不断变快,也变得越发困难了。这一问题在深度学习系统中造成了一种功能差距,驱使着我们创建新型的 DDL 软件,以使在高性能和高精确度的大规模神经网络和数据集上运行流行的开源代码(比如 Tensorflow、Caffe、Torch 和 Chainer)成为可能。

「盲人摸象」的说法有助于描述我们正在解决的问题和已经取得的早期成果的背景。根据维基百科:

「……每一个盲人只能感受到大象的一部分,比如大象身体的一侧或者象牙。然后他们基于这一片面经验描述大象,这些描述和大象完全不同。」

现在,尽管存在初始化差异(initial disagreement),但如果这些人有足够的时间,他们能够共享信息,并将其组合成相当准确的大象的定义。

相似地,如果你使用多个 GPU 处理深度学习在数天或数周中的并行训练问题,这也是当前的常见情形,你可以相对轻松地将这些学习结果同步化。

但是当 GPU 变得更快,它们的学习也更快;并且它们不得不以一种传统软件无法实现的速率与其他 GPU 共享学习。这就为系统网络增加了压力,并且是一个棘手的技术问题。基本来讲,更智能更快的 GPU 需要更好的通信方式,否则它们就无法同步,并花费绝大多数时间等待彼此的结果。因此,你不会从学习更快的 GPU 中获得加速。

当你查看扩展效率,或者当你添加 GPU 看到如何接近于完美的系统性能扩展时,我们使用(DDL)软件解决这个功能性差距的能力是显而易见的。这些测量提供了一个视角来观察 256 块 GPU 如何很好地「讨论」彼此的知识。

之前,256 块 GPU 的最佳扩展来自 Facebook 人工智能研究院(FAIR)的一个团队。FAIR 使用了一个较小的深度学习模型 ResNet-50,和一个较小的大约 130 万张图像的数据集 ImageNet-1K;二者降低了计算复杂度,并使用较大的 8192 的批量大小;最终,通过 Caffe2 在 256 块英伟达 P100 GPU 加速集群上取得了 89% 的扩展效率。对于一个 ResNet-50 模型和一个与 Facebook 相同的数据集,IBM Research DDL 通过 Caffe 实现了 95% 的效率,如下表所示。这是在 64 台「Minsky」Power S822LC 系统的集群上运行的,每个系统有 4 块英伟达 P100 GPU。

IBM发布新型分布式深度学习系统:结合软硬件实现当前最优性能

通过 256 块 GPU 扩展 IBM DDL 性能

为了从 ImageNet-22K 数据集中的 7.5M 图像上训练出更大的 ResNet-101 模型(每个图像批量大小为 5120),我们实现了 88% 的扩展效率。

我们也打破了记录,取得了 50 分钟的最快绝对训练时间,而 Facebook 之前的记录是 60 分钟。通过把 DDL 用到 256 块 GPU 上来扩展 Torch,我们借助 ImageNet-1K 模型训练 ResNet-50 模型。Facebook 使用 Caffe2 训练了一个相似的模型。

对于开发者和数据科学家来说,IBM DDL 软件展示的 API 每一个深度学习框架皆可使用,并可扩展到多个服务器。PowerAI 企业深度学习软件版本 4 中现已提供技术预览,使得这一集群扩展功能可用于任何使用深度学习训练 AI 模型的组织。我们期望,通过 DDL 在 AI 社区中的普及,我们将看到更多更高精度的运行,因为其他人在 AI 建模训练中利用了集群的力量。

PowerAI DDL

IBM发布新型分布式深度学习系统:结合软硬件实现当前最优性能

论文链接:https://arxiv.org/abs/1708.02188

随着深度神经网络变得越来越复杂,输入数据集的规模变得越来越大,我们可能需要数天或数周的时间来训练一个深度神经网络以获得理想的效果。因此,大规模分布式深度学习就显得十分重要了,因为它有潜力将训练时间从数周减少到数小时。在本论文中,我们提出了一种软硬件联合优化的分布式深度学习系统,该系统一直到数百块 GPU 都能实现性能的近线性缩放。该系统的核心算法是多环通信模式(multi-ring communication pattern),它能提供在延迟和带宽上的优良权衡,并能适应多种系统配置。该通信算法以函数库的形式实现,因此它十分易于使用。该软件库已经集成到 TensorFlow、Caffe 和 Torch 中。我们在 Imagenet 22K 上使用 IBM Power8 S822LC 服务器(256 GPU)训练 Resnet-101 网络,最终在 7 小时内验证精度达到了 33.8%。相比之下,微软的 ADAM 和谷歌的 DistBelief 在 Imagenet 22K 数据集中的验证精度还不到 30%。相对于 Facebook AI Research 最近使用 256 块 GPU 训练 Imagenet 的论文,我们使用了不同的通信算法,并且结合了软硬件系统以为 Resnet-50 提供更低的通信成本。PowerAI DDL 能够令 Torch 训练 50 层残差网络,完成 90 个 epoch 而实现 1000 类别的识别任务,该训练过程使用 64 IBM Power8 S822LC 服务器(256 GPU)只需要 50 分钟。

相关推荐