『机器学习』MLSys提前看 | 机器学习的分布式优化方法
机器之心分析师网络
作者:仵冀颖
编辑:Hao Wang
第三届机器学习与系统会议(MLSys 2020)将于 2020 年 3 月 2 日至 4 日在美国奥斯汀会议中心举行 。 MLSys 是 2018 年新成立的一个聚焦机器学习在系统、软件、硬件等多个综合领域中应用研究的学术会议 。
本文插图
随着机器学习算法和模型的不断发展 , 传统的软硬件平台、部署环境等无法支撑机器学习的应用 , 这也成为了目前机器学习方法落地及大规模推广应用的主要困难之一 。 目前 , 有关于 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 ML
Efficient model training topic
https://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 将成为瓶颈 。
推荐阅读
- 小虔科技|华为和小米都曾经学习苹果3D面部识别,为啥现在不用了
- 机器人|深圳机器人产业产值1257亿元
- |《5G技术助力国产机器人完成全球首场骨科实时远程手术》公示材料
- 美军事进行时|五角大楼研制挖隧道的蚯蚓机器人为地面部队提供安全补给
- 砍柴网|讯飞智能学习机 618 新惊喜,多重优惠助力孩子暑假弯道超车
- 新智元|B站上线!DeepMind加UCL强强联手推出深度学习与强化学习进阶课程(附视频)
- cnBetaTB|看机器人如何制作出既有颜值又美味的蛋饼
- 山东伟豪思|袋料全自动拆垛机器人的使用给企业带来了哪些益处
- 无人机这两项机器人发明,就是东京大学进军外卖界的野心!?
- 互联网生活|不一般!世童科技品牌启动暨智能学习桌新品发布会惊艳中山