大规模机器学习网络研究
【原文:李 丹 耿金坤 《大规模机器学习网络研究》,载于2018年10月出版的“中国计算机学会通讯”第14卷第10期】
清华大学的李丹教授和硕士生耿金坤联合发表了名为《大规模机器学习网络研究》的文章,该文章载于2018年10月出版的“中国计算机学会通讯”第14卷第10期。作者在文章中对如何把机器学习和网络和结合,开展跨学科跨领域的研究工作,进行了深入的探索和思考。
1.“机器学习+网络”的两个研究方向
(1)Network by Machine Learning,即利用机器学习技术进行网络系统的优化。通过机器学习模型进行网络故障的发现、定位和诊断,可以大大减轻运维人员的操作负担,节约生产管理成本。
(2)Network for Machine Learning,即利用网络领域的新技术加速机器学习的模型训练。为了提高机器学习的训练速度,需要利用网络领域的知识和技术,对大规模分布式机器学习的通信进行优化,对整个分布式机器学习任务进行加速。
原文主要对第2个研究方向——Network for Machine Learning的主要研究问题和方法进行讨论。
2.中心化和去中心化的架构之争
原文中介绍了大规模分布式机器学习系统目前主要采用3种典型架构,分别如下:
(1)基于参数服务器 (Parameter Server, PS)的架构。基于PS架构是一种中心化的架构设计,参与计算的机器被划分成了参数服务器和工作者(worker) 两个功能角色。参数服务器和工作者之间通过 Pull/Push 的数据交互方式进行通信,同一个节点可以同时承担参数服务器和工作者的职能。基于 PS 的架构的优点:部署简单、弹性扩展较好、鲁棒性较强等等。但是问题也十分明显,一般情况下工作者数目远多于参数服务器,因此参数服务器容易成为网络瓶颈。
图1 基于参数服务器的架构(该图选自原文)
(2)基于 Mesh 的架构。基于Mesh的架构是一种去中心化的架构设计。在基于 Mesh 的架构设计中,每个节点的功能相同,在承担计算任务的同时,也要与其他所有节点进行数据同步交互。基于 Mesh 的架构消除了中心化的通信瓶颈,工作载荷分布更加均匀,通常比基于 PS 的架构具有更高的性能表现和更强的鲁棒性。但其不足之处是节点之间的富连接性使得架构的扩展性受到制约,不利于大规模的部署。
图2 基于Mesh的架构(该图选自原文)
(3)基于 Ring 的架构。基于Ring的架构同样是一种去中心化的架构设计。基于Ring 的架构限制了节点的连接数目,节点以环状形式连接,每个节点只与其邻居节点进行通信交互。该类架构不会产生中心化的系统瓶颈。
图3 基于Ring的架构(该图选自原文)
3. 同步与异步的并行模式之选
原文中讲到在大规模分布式机器学习系统中,对数据同步的并行模式主要有3种:
(1)整体同步并行 (Bulk Synchronous Parallel, BSP)。在BSP模式下,每个节点在完成本地计算后需要对参数进行同步,未完成同步之前,任何节点都不允许开始新一轮迭代,这会使得所有节点的每一轮迭代都和最慢的节点一致,严重影响到迭代的速度。此类现象被称为“straggler问题”。
(2)异步并行 (Asynchronous Parallel, ASP)。ASP 模式考虑到了 straggler 问题的负面影响,因此采用最大能力交付 (best-effort) 的机制进行数据同步。每个计算节点在完成本地计算后将数据推送到参数服务器或者其他节点,然后获取当前所能获取到的最新参数,并立即开始新一轮迭代。每个节点不必等待其他节点,因而不存在 straggler 问题。
(3)延时同步并行 (Stale Synchronous Parallel, SSP)。SSP 模式综合考虑了 BSP 模式和 ASP 模式的优劣,在迭代速度和质量之间进行了折中。在SSP 模式下,计算快的节点可以使用在一定 staleness阈值内的其他节点的旧参数进行新一轮迭代,从而缓解了straggler 问题,同时在一定程度上保证了迭代质量。
4. 低延迟网络传输技术在分布式机器学习中的应用
分布式机器学习系统中的参数同步需要低延迟的网络传输协议。实现于内核协议栈的传统TCP协议开销较大,为了解决此问题,业界主要有两种思路:
(1)DPDK技术。基于 DPDK(Intel Data Plane Development Kit) 技术把
协议栈上浮到用户态来实现,实现了跨内核的数据传输,从而降低内核实现的巨大开销。
(2)RDMA技术。把协议栈下沉到网卡硬件,采用 RDMA(RemoteDirect Memory Access)/RoCE 协议来取代TCP,RDMA 同样实现了跨内核的数据传输。由于RDMA 协议栈依靠网卡硬件实现,能够获得比软件协议栈更低的延迟。
5.展望
大规模分布式机器学习技术正在如火如荼地发展,而网络系统对于支撑其高效运行具有重要意义。原文中就未来的研究方向而言,提出了3个方面值得关注:(1)异构网络中的架构与同步算法设计;(2)以 RDMA 为代表的网络新技术的大规模部署应用;(3)普适机器学习的探索。
撰稿:池俊龙
审稿:丁美荣