随着机器学习算法和模型的不断发展,传统的软硬件平台、部署环境等无法支撑机器学习的应用,这也成为了目前机器学习方法落地及大规模推广应用的主要困难之一。目前,有关于 MLSys 的研究方向包括硬件领域、软件领域和对机器学习算法的改进三个方面,以 MLSys 2020 为例,本届大会的议题包括:Distributed and parallel learning algorithms(5 篇论文)、Efficient model training(8 篇论文)、Efficient inference and model serving(8 篇论文)、Model/Data Quality and Privacy(4 篇论文)、ML programming models and abstractions & ML applied to systems(5 篇论文)以及 Quantization of deep neural networks(4 篇论文)。整个会议一共录用 34 篇论文。在本篇提前看中,我们选择了三篇文章进行详细分析,以了解机器学习与系统(Machine Learning and Systems)领域最新的研究成果。其中,前两篇文章属于经典的机器学习分布式优化方法(通信方式、内存分配方法),第三篇文章则是关于一种新的用于机器学习的具有高度系统性和设备(统计、数据)异质性的分布式方法--联邦学习。Blink: Fast and Generic Collectives for Distributed MLEfficient model training topichttps://arxiv.org/pdf/1910.04940.pdf随着高质量数据库、大规模数据集的不断发展,深度学习模型不断改进,在图像分类、目标检测、机器翻译、语音处理等领域都获得了很好的效果。与之同时,漫长的训练时间却成为了另一个让人头疼的问题。在处理一些图像分类任务时,在单个 GPU 中的训练时间甚至需要几天!基于多个 GPU 的数据并行训练(Data-Parallel Training)的引入,大大缓解了大规模深度学习模型训练耗时长的问题。在数据并行训练中,每个 GPU 都有一个完整的模型参数副本,同时也会与其他参与训练的 GPU 交换参数。这篇文章介绍的是 MLSys 领域中基于 GPU 的模型参数同步问题。跨 GPU 的参数同步在大规模训练时产生了较大开销,对于常见 ML 模型,通信开销可以从 50% 到 90% 不等。解决这一问题的手段主要有两种:硬件手段—先进的多 GPU 服务器,例如 NVIDIA』s DGX-1、DGX-2 等;软件手段,利用了 Wait-free 反向传播技术的现代通信原语,例如 NVIDIA『s Collective Communications Library (NCCL)、百度的 Ring AllReduce 等。本文研究的是软件手段,提出了 Blink—一个通过包装生成树动态生成最佳通信原语的集合通信库。为了处理硬件生成中的拓扑异质性问题或集群调度程序中的分配问题,Blink 能够动态生成给定拓扑的最佳通信原语。即使在 NVIDIA DGX-1 这样的快速多 GPU 服务器上运行数据并行训练时,深度学习工作负载也会带来很高的通信开销。更重要的是,作者发现,即使在像 DGX-1 这样的高性能服务器内,现有通信原语如 NCCL 或 Horovod 也会放大通信开销,作者认为,这主要是因为它们无法处理拓扑异质性问题。DGX-1 中既有诸如 NVLink(20-25GB/s)的 GPU 点对点(P2P)互连,也有诸如 PCIe(8-12GB/s)的共享互连。PCIe 通过 PCIe 交换机层次结构将多个 GPU 相互连接到一台计算机内,并连接到 CPU 和 I/O 设备。NCCL、Horovod 等通信原语基于环的模式(Ring-based Protocols)进行数据传输,然而,基于环的协议有结构上的限制:对于每个环,每个节点只能有一个输入和一个输出。基于环的模式将所有的通信节点通过首尾连接形成一个单向环,数据在环上依次传输。假设有 3 个 GPU,GPU0 为信息的发送者,将信息发送给剩下的 GPU,基于环的通信原语按照环的方式将信息传输,即 GPU0-->GPU1-->GPU2。这种限制使得环无法适应由于调度程序分配而导致的不规则拓扑,如图 1 所示。环的吞吐量受到带宽最低的链路的限制,因此这些协议要么将自己限制在高带宽、同质链路上,要么将吞吐量限制在环中带宽最低的链路上。以 NCCL 为例,对于一台机器内的多 GPU 通信,NCCL 将优先使用 NVLink,而当在 NVLink 环中时,PCIe 将成为瓶颈。图 1. 群集上每个 8-GPU 服务器中分配给 Cloud-X 上 40000 个多 GPU 作业的 GPU 数此外,这些限制还会导致链接使用不足,如图 2 所示。图 2. DGX-1P 中 NCCL 与本文提出的 Blink 在 6-GPUs 上的广播比较通过将 GPU 之间的链接建模为图,前期的研究结果表明,包装生成树 (Packing Spanning Trees) 能够生成从有选择的根顶点到有向图中的所有其他顶点的最大流。基于此研究,作者认为一对多协议(如使用根节点的生成树进行广播)是克服链路利用率不足的一个潜在有效选择。当然,除了像广播这样只转发数据的操作之外,还需要实现像 AllReduce 这样的通信原语,即可以被建模为在一个方向上减少并前进(面向根的方向),然后在另一个方向广播。 专业用户独享
本文为机器之心深度精选内容,专业认证后即可阅读全文
开启专业认证