如何评价Petuum分布式机器学习系统?

机器学习算法和计算机领域的其他算法相比,有自己的一些独特特点,

(1)迭代性:模型的更新并非一次完成,需要循环迭代多次;

(2)容错性:即使在每个循环中产生一些错误,模型最终的收敛不受影响;

(3)参数收敛的非均匀性:模型中有些参数经过几个循环便不再改变,其他参数需要很长时间收敛。

这些特点决定了分布式机器学习系统的设计和其他分布式计算系统(例如Spark)的设计有很大不同。

Petuum是一个专门针对机器学习算法特点的分布式平台,而通用的分布式计算系统Spark以数据流应用为主,所以二者的应用对象不同。Spark有一个机器学习库MLLib, 但构建于数据流操作之上,并非针对机器学习算法的特点而设计。

Petuum的系统设计建立于机器学习的特征之上,目前包含两个主要模块:key-value store和scheduler,主要处理两类并行化方法:(1)数据并行;(2)模型并行。

数据并行,简单而言,就是把数据分布到不同机器上,每台机器计算一个模型的更新(update), 然后对这些update进行汇总并用之更新模型。

模型并行,把模型参数进行切分并放置到不同机器上,每台机器对自己那部分进行更新。

Key-value store模块负责数据并行,采用的架构是parameter server,一致性协议是Staleness Synchronous Parallel (SSP)。SSP的基本思想是允许各机器以不同步调对模型进行更新,但是加一个限制,使得最快的机器的进度和最慢机器的进度之差不要太大。这样做的好处是:既减轻慢的机器拖整个系统的后腿,又能保证模型的最终收敛。通过调节SSP的staleness参数,SSP可以转化成数据流系统常用的BSP(Bulk Synchronous Parallel) 协议或者早期机器学习系统(如Yahoo LDA)使用的ASP(Asynchronous Parallel)。

另外一个模块scheduler用于模型并行。scheduler提供的编程接口主要包含三个操作:(1)schedule: 调度节点根据模型参数的相互依赖性和收敛的不均匀性,自动选择一个待更新的参数子集;(2)push: 调度节点令计算节点并行地为选好的参数计算update;(3)pull:调度节点从计算节点收集update,并更新参数。

Petuum的主要特性包括:(1)高性能;(2)可编程性;提供了简单易用的编程接口,用户可在Petuum上实现自己的机器学习算法。(3)丰富的机器学习库。我们用Petuum的统一编程接口实现了14个重要的机器学习算法。

相比于李沐的parameter server系统,Petuum作为一个机器学习框架,共享参数模型采用哈希表存储,更新时采用延迟一致性协议,这种模型决定了Petuum在集群规模和可支持的参数数量上都要比Parameter Server少1到2个数量级,当然对比Spark MLLib列表数据存储和BSP同步模式,在相同集群规模下是可以多训练2到3个数量级的参数的。另外,Spark数据处理部分和Petuum其实没什么太大联系,前景的话,如果处理数据就直接spark吧,机器学习就直接Parameter Server好了。

参考文献:

1.Eric P. Xing, Qirong Ho, Wei Dai, Jin Kyu Kim, Jinliang Wei, Seunghak Lee, Xun Zheng, Pengtao Xie, Abhimanu Kumar, Yaoliang Yu:Petuum: A New Platform for Distributed Machine Learning on Big Data. KDD 2015: 1335-1344

2.Mu Li, David G. Andersen, Jun Woo Park, Alexander J. Smola, Amr Ahmed, Vanja Josifovski, James Long, Eugene J. Shekita, Bor-Yiing Su:Scaling Distributed Machine Learning with the Parameter Server. OSDI 2014: 583-598

时间: 2025-01-22 17:40:55

如何评价Petuum分布式机器学习系统?的相关文章

TensorFlow【机器学习】:如何正确的掌握Google深度学习框架TensorFlow(第二代分布式机器学习系统)?

本文标签:   机器学习 TensorFlow Google深度学习框架 分布式机器学习 唐源 VGG REST   服务器 自 2015 年底开源到如今更快.更灵活.更方便的 1.0 版本正式发布,由 Google 推出的第二代分布式机器学习系统 TensorFlow一直在为我们带来惊喜,一方面是技术层面持续的迭代演进,从分布式版本.服务框架 TensorFlow Serving.上层封装 TF.Learn 到 Windows 支持.JIT 编译器 XLA.动态计算图框架 Fold 等,以及

Spark MLBase分布式机器学习系统入门:以MLlib实现Kmeans聚类算法

1.什么是MLBaseMLBase是Spark生态圈的一部分,专注于机器学习,包含三个组件:MLlib.MLI.ML Optimizer. ML Optimizer: This layer aims to automating the task of ML pipeline construction. The optimizer solves a search problem over feature extractors and ML algorithms included inMLI and

如何提高分布式机器学习系统的执行效率?

翻译自http://weibo.com/p/1001603913581535062112,作者是CMU邢波教授的高徒. 目前有很多开源的分布式机器学习和深度学习系统,例如DMLC,Spark,MLlib,Petuum,parameter server,Caffe,Torch,Theano和TensorFlow等等.然而,如何在集群上高效的执行分布式机器学习过程呢? 这要从机器学习算法的特点说起,机器学习算法与排序或数据库查询等算法不同,它是基于爬山(hill-climbing)的算法,通过多个计

分布式机器学习的故事

王益博士,称得上机器学习领域的资深从业者,本人之前有幸拜读过王益博士的一些paper和slides,对其从事的"分布式机器学习"方向尤感兴趣. 王益博士之前写过一篇<分布式机器学习的故事>,总结了自己从业多年的经验和感悟.可惜的是,这篇原始博文已经删除了,现在能找到的是原始的六篇讲稿素材:A New Era:Infrequent itemset mining:Application Driven:Implement Your MapReduce:Deep Learning:

分布式机器学习的集群方案介绍之HPC实现

机器学习的基本概念 机器学习方法是计算机利用已有的数据(经验),得出了某种模型(迟到的规律),并利用此模型预测未来(是否迟到)的一种方法.目前机器学习广泛应用于广告投放.趋势预测.图像识别.语音识别.自动驾驶和产品推荐等众多领域. 在确定了问题模型之后,根据已知数据寻找模型参数的过程就是训练,训练过程就是不断依据训练数据来调整参数的迭代,从而使依据模型作出的预测结果更加准确. HPC的基本概念 HPC就是高性能计算或高性能计算集群的简写.为了追求高性能,HPC的工作负载一般直接运行在Linux系

《分布式机器学习:算法、理论与实践》PDF+刘铁岩+资料学习

<分布式机器学习:算法.理论与实践>旨在全面介绍分布式机器学习的现状,深入分析其中的核心技术问题,并且讨论该领域未来的发展方向. 下载:https://pan.baidu.com/s/1XeOGCQK5qWCba8VK0KU21w<分布式机器学习:算法.理论与实践>PDF,273页,带书签目录,文字可以复制. 人工智能和大数据时代,解决最有挑战性问题的主流方案是分布式机器学习! <分布式机器学习:算法.理论与实践>旨在全面介绍分布式机器学习的现状,深入分析其中的核心技术

横向对比三大分布式机器学习平台:Spark、PMLS、TensorFlow

2017-08-04 11:47 程序设计/谷歌/对比 选自muratbuffalo 作者:Murat Demirbas 参与:Panda 分布式机器学习是机器学习领域的一大主要研究方向.近日纽约州立大学布法罗分校计算机科学与工程教授.Petuum Inc. 顾问 Murat Demirbas 和他的两位学生一起发表了一篇对比现有分布式机器学习平台的论文,对 Spark.PMLS 和 TensorFlow 等平台的架构和性能进行了比较和介绍.Murat Demirbas 教授在论文公布后还发表了

DMLC:最大开源分布式机器学习项目

为了实现分布式机器学习领域中代码的共享与共同开发,分布式机器学习社区(DMLC)近日正式发布.作为一个开源项目,DMLC的相关代码直接托管在GitHub中,并采用Apache2.0协议进行维护.DMLC项目的发起者陈天奇怪(网名)表示,项目最初的想法是减少分布式机器学习开发的成本以及新算法被大家接受测试的时间.目前,该项目已经集成了XGBoost.CXXNET及Minerva等机器学习库与rabit和参数服务器等系统组件.接下来,本文就对这些基础库及组件进行简单介绍. XGBoost是一个大规模

基于英特尔&#174; 至强? 处理器 E5 产品家族的多节点分布式内存系统上的 Caffe* 培训

原文链接 深度神经网络 (DNN) 培训属于计算密集型项目,需要在现代计算平台上花费数日或数周的时间方可完成. 在最近的一篇文章<基于英特尔? 至强? E5 产品家族的单节点 Caffe 评分和培训>中,我们展示了基于 AlexNet 拓扑的 Caffe* 框架的性能提升 10 倍,单节点培训时间减少到 5 天. 英特尔继续履行 Pradeep Dubey 的博客中列出的机器学习愿景,在本篇技术预览中,我们将展示如何在多节点.分布式内存环境中将 Caffe 的培训时间从数日减少为数个小时.