- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
??
???
分布式机器学习平台大比拼:Spark、PMLS、TensorFlow、MXNet
???
?
?
?
?
?
???
???
?
?
?
?
?
???
?
?
?
?
??本论文从分布式系统的角度开展针对当前一些机器学习平台的研究,综述了这些平台所使用的架构设计,对这些平台在通信和控制上的瓶颈、容错性和开发难度进行分析和对比,并对分布式机器学习平台的未来研究工作提出了一些建议。文中的工作由MuratDemirbas教授与他的研究生KuoZhang和SalemAlqahtani共同完成。
?
??机器学习,特别是深度学习,已在语音识别、图像识别和自然语言处理以及近期在推荐及有哪些信誉好的足球投注网站引擎等领域上取得了革命性的成功。这些技术在无人驾驶、数字医疗系统、CRM、广告、物联网等领域具有很好的应用前景。当然,是资金引领和驱动了技术的加速推进,使得我们在近期看到了一些机器学习平台的推出。
?
??考虑到训练中所涉及的数据集和模型的规模十分庞大,机器学习平台通常是分布式平台,部署了数十个乃至数百个并行运行的计算节点对模型做训练。据估计在不远的将来,数据中心的大多数任务都会是机器学习任务。
?
??我来自于分布式系统研究领域,因此我们考虑从分布式系统的角度开展针对这些机器学习平台的研究,分析这些平台在通信和控制上的瓶颈。我们还考虑了这些平台的容错性和易编程性。
?
??我们从设计方法上将机器学习平台划分为三个基本类别,分别是:基本数据流、参数-服务器模型和高级数据流。
?
??下面我们将对每类方法做简要介绍,以ApacheSpark为例介绍基本数据流,以PMLS(Petuum)为例介绍参数服务器模型,而高级数据流则使用TensorFlow和MXNet为例。我们对比了上述各平台的性能并给出了一系列的评估结果。要了解详细的评估结果,可参考我们的论文。遗憾的是,作为一个小型研究团队,我们无法开展大规模的评估。
?
??在本篇博文的最后,我给出了一些结论性要点,并对分布式机器学习平台的未来研究工作提出了一些建议。对这些分布式机器学习平台已有一定了解的读者,可以直接跳到本文结尾。
?
??Spark
?
??在Spark中,计算被建模为一种有向无环图(DAG),图中的每个顶点表示一个RDD,每条边表示了RDD上的一个操作。RDD由一系列被切分的对象(Partition)组成,这些被切分的对象在内存中存储并完成计算,也会在Shuffle过程中溢出(Overflow)到磁盘上
?
??在DAG中,一条从顶点A到B的有向边E,表示了RDDB是在RDDA上执行操作E的结果。操作分为“转换”(Transformation)和“动作(Action)”两类。转换操作(例如map、filter和join)应用于某个RDD上,转换操作的输出是一个新的RDD。
?
??Spark用户将计算建模为DAG,该DAG表示了在RDD上执行的转换和动作。DAG进而被编译为多个Stage。每个Stage执行为一系列并行运行的任务(Task),每个分区(Partition)对应于一个任务。这里,有限(Narrow)的依赖关系将有利于计算的高效执行,而宽泛(Wide)的依赖关系则会引入瓶颈,因为这样的依赖关系引入了通信密集的Shuffle操作,这打断了操作流。
?
??Spark的分布式执行是通过将DAGStage划分到不同的计算节点实现的。上图清晰地展示了这种“主机(master)-工作者(worker)”架构。驱动器(Driver)包含有两个调度器(Scheduler)组件,即DAG调度器和任务调度器。调度器对工作者分配任务,并协调工作者。
?
??Spark是为通用数据处理而设计的,并非专用于机器学习任务。要在Spark上运行机器学习任务,可以使用MLlibforSpark。如果采用基本设置的Spark,那么模型参数存储在驱动器节点上,在每次迭代后通过工作者和驱动器间的通信更新参数。如果是大规模部署机器学习任务,那么驱动器可能无法存储所有的模型参数,这时就需要使用RDD去容纳所有的参数。这将引入大量的额外开销,因为为了容纳更新的模型参数,需要在每次迭代中创建新的RDD。更新模型会涉及在机器和磁盘间的数据Shuffle,进而限制了Spark的扩展性。这正是基本数据流模型(即DAG)的短板所在。Spark并不能很好地支持机器学习中的迭代运算。
?
??PMLS
?
??PMLS是专门为机器学习任务而设计的。它引入了称为“参数-服
文档评论(0)