[论文解读] Strategies and Principles of Distributed Machine Learning on Big Data
本文提出了一套四条基础原则——分布策略、通信桥接、通信机制和通信内容——用于设计高效、可扩展且正确的大规模数据分布式机器学习系统。它引入了 Petuum,一个通用的机器学习框架,通过利用机器学习特有的属性(如容错性和紧凑更新),在数十到数千台机器上实现了接近理想的加速比,从而实现了复杂模型(如深度神经网络和主题模型)的高性能分布式训练。
The rise of Big Data has led to new demands for Machine Learning (ML) systems to learn complex models with millions to billions of parameters, that promise adequate capacity to digest massive datasets and offer powerful predictive analytics thereupon. In order to run ML algorithms at such scales, on a distributed cluster with 10s to 1000s of machines, it is often the case that significant engineering efforts are required --- and one might fairly ask if such engineering truly falls within the domain of ML research or not. Taking the view that Big ML systems can benefit greatly from ML-rooted statistical and algorithmic insights --- and that ML researchers should therefore not shy away from such systems design --- we discuss a series of principles and strategies distilled from our recent efforts on industrial-scale ML solutions. These principles and strategies span a continuum from application, to engineering, and to theoretical research and development of Big ML systems and architectures, with the goal of understanding how to make them efficient, generally-applicable, and supported with convergence and scaling guarantees. They concern four key questions which traditionally receive little attention in ML research: How to distribute an ML program over a cluster? How to bridge ML computation with inter-machine communication? How to perform such communication? What should be communicated between machines? By exposing underlying statistical and algorithmic characteristics unique to ML programs but not typically seen in traditional computer programs, and by dissecting successful cases to reveal how we have harnessed these principles to design and develop both high-performance distributed ML software as well as general-purpose ML frameworks, we present opportunities for ML researchers and practitioners to further shape and grow the area that lies between ML and systems.
研究动机与目标
- 为解决分布式机器学习中的可扩展性差距问题,即由于系统设计低效,实际加速比远低于理论预期。
- 通过将分布式机器学习系统设计建立在机器学习的统计和算法洞察基础上,弥合机器学习研究与系统工程之间的鸿沟。
- 开发一个通用、高性能的分布式机器学习框架,支持多种算法,同时确保正确性和收敛性保证。
- 在数十到数千台机器的集群上高效执行大规模机器学习模型(例如深度学习、主题模型),同时将工程开销降至最低。
- 构建一个抽象低层系统复杂性的平台,使机器学习从业者能够专注于模型逻辑,同时实现接近理想的并行性能。
提出的方法
- 提出四项核心设计原则:(1) 如何在集群中分布机器学习程序,(2) 如何将机器学习计算与机器间通信相连接,(3) 如何执行通信,以及(4) 在机器之间传输什么内容。
- 在 Bösen(一个有界异步键值存储)中采用滞后的同步并行(Stale Synchronous Parallel, SSP)一致性模型,以在数据并行训练中平衡性能与正确性。
- 使用 Strads(一种面向模型并行训练的动态调度器),优先处理关键模型组件的计算,避免不安全的并行更新。
- 应用分解与聚合策略以最小化通信开销——例如,在顶层广播因子,在底层聚合更新,从而减少带宽消耗。
- 通过将 Caffe 的内存访问例程替换为 Bösen 的分布式共享编程接口,在 Petuum 上构建 Poseidon(一个分布式深度学习系统),实现仅需极少代码修改即可支持 GPU 级别的分布式训练。
- 将 Petuum 设计为统一框架,支持 C++ 和 Java、YARN 以及 HDFS,使框架可在现有 Hadoop 集群上部署,同时保持高性能与正确性。
实验结果
研究问题
- RQ1如何在数十到数千台机器的集群上有效分布机器学习程序,同时保持算法正确性和收敛性?
- RQ2哪些系统级抽象和一致性模型最能弥合迭代式机器学习计算与机器间通信之间的鸿沟?
- RQ3如何通过利用机器学习工作负载特有的统计与结构特性,最小化分布式机器学习中的通信开销?
- RQ4应基于何种标准确定在机器之间传输哪些数据,以最大化效率并最小化延迟?
- RQ5一个通用的机器学习框架是否能在支持多种机器学习算法的同时,实现接近理想的加速比,并抽象掉底层系统复杂性?
主要发现
- 通过应用机器学习特有的系统设计原则,Petuum 在数十到数千台机器上实现了接近理想的加速比,克服了分布式机器学习中常见的次线性加速问题。
- Bösen 中的滞后的同步并行(Stale Synchronous Parallel, SSP)模型在不牺牲收敛性或正确性的前提下,实现了类似异步的性能,优于 MapReduce 和批量同步执行。
- 动态调度器 Strads 通过优先处理最需要计算的模型组件,提升了性能,避免了非收敛的并行更新。
- 通过因子广播与更新聚合进行通信优化,将通信开销从 $KD$ 降低至 $S(K+D)$ 或 $KD \ll S(K+D)$,具体取决于层结构,显著提升了可扩展性。
- Poseidon 是基于 Petuum 构建的 Caffe 分布式版本,通过将 Caffe 的内存访问例程替换为 Bösen 的分布式共享编程接口,实现了仅需极少代码修改即可支持 GPU 级别的分布式训练,同时保留了现有 Caffe 用户的可用性。
- 该框架支持超过 10 种开箱即用的机器学习算法,包括逻辑回归、k-means、随机森林、MedLDA 和深度学习,展示了其广泛的适用性与高性能。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。