当前位置: 首页 > 科技观察

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

时间:2023-03-18 16:22:59 科技观察

分布式机器学习是机器学习领域的一个主要研究方向。最近,纽约州立大学布法罗分校计算机科学与工程教授、PetuumInc.顾问MuratDemirbas和他的两个学生发表了一篇论文,比较了现有的分布式机器学习平台。Spark、PMLS和TensorFlow等平台的架构和性能对比介绍。MuratDemirbas教授也在论文发表后发表了一篇解读博文。机器之心本文整理介绍。论文原文可在以下网址访问:https://www.cse.buffalo.edu/~demirbas/publications/DistMLplat.pdf本文调查了用于分布式机器学习平台的设计方法,并提出了未来研究的方向。我与我的学生KuoZhang和SalemAlqahtani合作完成了这项工作。我们于2016年秋季完成了这篇论文,这篇论文也将在ICCCN'17(温哥华)上发表。机器学习(尤其是深度学习)最近在语音识别、图像识别、自然语言处理和推荐/搜索引擎方面取得了变革性的成功。这些技术在自动驾驶汽车、数字医疗系统、CRM、广告、物联网等方面的应用前景广阔。当然,资本引领/推动了机器学习的加速发展,我们看到最近一段时间诞生了很多机器学习平台。由于训练过程涉及到具有庞大数据集的模型,因此机器学习平台往往是分布式的,往往会使用数十个或数百个worker并行训练模型。估计在不久的将来,运行在数据中心的绝大多数任务将是机器学习任务。我有分布式系统的研究背景,所以我们决定从分布式系统的角度研究这些机器学习平台,分析它们的通信和控制局限性。我们还调查了这些平台的容错性和编程难度。我们将这些分布式机器学习平台分为三种基本设计方法:1.基本数据流2.参数服务器模型3.高级数据流简要介绍并举例说明三种方法,其中基本数据流方法使用参数服务器模型ApacheSpark使用PMLS(Petuum),高级数据流模型使用TensorFlow和MXNet。我们提供了几个比较性能的评估结果。论文中有更多的评估结果。不幸的是,作为学术界的一个小团队,我们无法进行大规模评估。在本文的最后,对未来分布式机器学习平台的研究工作进行了总结和建议。如果你已经了解这些分布式机器学习平台,可以直接跳到最后看结论。Spark在Spark中,计算被建模为有向无环图(DAG:directedacyclicgraph),其中每个顶点代表一个弹性分布式数据集(RDD:ResilientDistributedDataset),每条边代表一对RDD的一个操作。RDD是对象的集合,这些对象被划分为逻辑分区,这些逻辑分区在内存中存储和处理,并随机/溢出到磁盘。在DAG中,从顶点A到顶点B的一条边E表示:RDDB是对RDDA进行操作E的结果。有两种操作:transformation和action。转换(例如映射、过滤、连接)是指对RDD执行操作以生成新的RDD。Spark用户需要将计算建模为DAG,以便在RDD上执行转换或运行操作。DAG需要编译成阶段。每个阶段都作为一系列并行运行的任务执行(每个分区一个任务)。简单而窄的依赖关系有利于高效执行,而宽依赖关系会引入瓶颈,因为它们会扰乱流程并需要通信密集型洗牌操作。Spark中的分布式执行是通过将此DAG阶段拆分到不同机器上来执行的。该图清楚地显示了这种主从架构。驱动包含任务和两个调度器组件——DAG调度器和任务调度器;并将任务映射到工人。Spark专为一般数据处理而设计,并不特定于机器学习。但是使用MLlibforSpark,也可以在Spark上进行机器学习。在基本设置中,Spark将模型参数存储在驱动程序节点中,工作人员与驱动程序通信以在每次迭代后更新这些参数。对于大规模部署,这些模型参数可能不适合驱动,会作为RDD维护。这会产生大量开销,因为每次迭代都需要创建一个新的RDD来保存更新后的模型参数。更新模型涉及跨机器/磁盘重新排列数据,这限制了Spark的可扩展性。这就是Spark的基本数据流模型(DAG)的不足之处。Spark不能很好地支持机器学习所需的迭代。PMLSPMLS专为机器学习而设计,没有其他乱七八糟的历史。引入了参数服务器(PS:parameter-server)的抽象概念,支持密集迭代的机器学习训练过程。其中PS(图中绿色方框)作为分布式内存key-value存储。它是复制和共享的:每个节点用作模型的一个分片(参数空间)的主节点,并用作其他分片的辅助/副本。所以PS在节点数量方面很好地扩展。PS节点存储和更新模型参数并响应工作人员的请求。工作人员从他们的本地PS副本请求最新的模型参数,并对分配给他们的数据集部分执行计算。PMLS还采用了SSP(StaleSynchronousParallelism)模型,该模型比BSP(BulkSynchronousParallelism)模型更为宽松——其中worker在每次迭代结束时同步。SSP消除了同步worker的麻烦,确保最快的worker不会比最慢的worker快s次迭代。松弛的一致性模型仍然可以用于机器学习训练,因为该过程具有一定的噪声容忍度,我在2016年4月的这篇博文中谈到了这一点:https://muratbuffalo.blogspot.com/2016/04/petuum-new-platform-for-distributed.htmlTensorFlow谷歌有DistBelief,一个基于参数服务器模型的分布式机器学习平台。请参阅我对DistBelief论文的评论:https://muratbuffalo.blogspot.com/2017/01/google-distbelief-paper-large-scale.html。在我看来,DistBelief的主要缺陷是:为了编写机器学习应用程序,您需要操作低级代码。谷歌希望其所有员工都能够在不精通分布式执行的情况下编写机器学习代码——出于同样的原因,谷歌为大数据处理编写了MapReduce框架。所以为了实现这个目标,Google设计了??TensorFlow。TensorFlow采用数据流范式,但在更高级的版本中——计算图不需要是DAG,并且包含循环并支持可变状态。我认为Naiad的设计可能影响了TensorFlow的设计。TensorFlow表示使用节点和边的有向图进行的计算。节点代表计算,状态是可变的。边表示在节点之间传输的多维数据数组(张量)。TensorFlow要求用户静态声明这个符号计算图,并使用rewrite&partitioning将图分配给机器分布式执行。(MXNet,尤其是DyNet,使用图的动态声明,提高了编程难度和灵活性。)TensorFlow中的分布式机器学习训练使用参数服务器方法,如图所示。当您在TensorFlow中使用PS抽象时,您会使用参数服务器和数据并行性。TensorFlow让您可以做更复杂的事情,但这需要编写自定义代码并进入全新的领域。一些评估结果我们的评估使用了AmazonEC2m4.xlarge实例。每个实例包含4个由IntelXeonE5-2676v3提供支持的vCPU和16GiBRAM。EBS带宽为750Mbps。我们使用两个常见的机器学习任务进行评估:二元逻辑回归和使用多层神经网络的图像分类。我在这里只展示几个数字,查看我们的论文了解更多实验。但是我们的实验有一些局限性:我们使用的机器数量较少,无法进行大规模测试。我们还限制了CPU计算并且没有测试GPU。该图显示了每个平台的逻辑回归执行速度。Spark表现不错,但落后于PMLS和MXNet。该图显示了每个平台的深度神经网络(DNN)的执行速度。与单层逻辑回归相比,Spark在两层神经网络上的性能损失更大。这是因为两层网络需要更多的迭代计算。在Spark中,我们将参数保存在驱动程序中,以便安装它们;如果我们将参数保存在RDD中并在每次迭代后更新,情况会变得更糟。该图给出了每个平台的CPU利用率。Spark应用程序的CPU使用率似乎非常高,这主要是由于序列化的开销。我们之前的工作已经指出了这一点:https://muratbuffalo.blogspot.com/2017/05/paper-summary-making-sense-of.html机器学习/深度学习应用的并行处理总结和未来方向令人尴尬,而不是从并发算法的角度来看非常有趣。可以肯定地说,参数服务器方法更适合在分布式机器学习平台上进行训练。至于局限性,网络仍然是分布式机器学习应用程序的瓶颈。提供更好的数据/模型层次结构比更先进的通用数据流平台更有用;数据/模型应被视为一等公民。但是,可能会有一些惊喜和微妙之处。在Spark中,CPU开销成为网络约束之前的瓶颈。Spark使用的编程语言Scala/JVM对其性能影响很大。因此,分布式机器学习平台尤其需要更好的监控和/或性能预测工具。最近提出了一些工具来解决Spark数据处理应用的问题,比如Ernest和CherryPick。分布式系统对机器学习运行时的支持还存在很多未解决的问题,例如资源调度和运行时性能提升。对应用进行运行时监控/性能分析,下一代分布式机器学习平台应该为任务运行提供详细的计算、内存和网络资源的运行时弹性配置/调度。***,在编程和软件工程支持方面也有一些未解决的问题。哪些(分布式)编程抽象适合机器学习应用程序?此外,还需要对分布式机器学习应用程序的验证和确认进行更多研究(尤其是测试输入有问题的DNN)。原文:http://muratbuffalo.blogspot.jp/2017/07/a-comparison-of-distributed-machine.htmlid:almosthuman2014)》]点此阅读更多本作者好文