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

翻译自http://weibo.com/p/1001603913581535062112,作者是CMU邢波教授的高徒。

目前有很多开源的分布式机器学习和深度学习系统,例如DMLC,Spark,MLlib,Petuum,parameter server,Caffe,Torch,Theano和TensorFlow等等。然而,如何在集群上高效的执行分布式机器学习过程呢?

这要从机器学习算法的特点说起,机器学习算法与排序或数据库查询等算法不同,它是基于爬山(hill-climbing)的算法,通过多个计算步骤到达最优解(对应山顶或谷底,此时机器学习模型具有最高的预测准确度)。在计算过程中,算法每次计算出距离最近的山顶或谷底方向,并向该方向移动一小步。当算法靠近山顶时,移动的步长越来越小,直到最后收敛。

上述爬山算法具有以下特征:

1)容错性(error tolerance)。即便是在爬山过程中有多次方向错误,但最终仍然能够达到最优解。因此可利用算法的容错性,在计算过程中引入某种程度上的误差(例如在worker间采用异步通信模式,而不是mapreduce式的严格同步模式),提高计算效率。

2)结构依赖性(dependency structure)。爬山的路径可能会比较复杂,到达山顶或谷底的过程比较复杂,然而大部分并行机器学习算法往往需要收集齐所有机器的计算结果才能确定最终的爬山方向,因此使用100台机器并行执行一个机器学习算法并不能达到100倍的加速比。

3)不均匀的收敛性(uneven convergence)。机器学习模型往往包含多个模型参数,每个模型参数相当于爬山方向的一个维度。通常有80~90%的样本在迭代计算初期已经收敛,然而绝大部分并行机器学习算法并没有利用这一特征,从而重复计算这些已收敛的参数,浪费计算资源。

时间: 2024-12-15 23:46:30

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

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

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

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

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

机器学习算法和计算机领域的其他算法相比,有自己的一些独特特点, (1)迭代性:模型的更新并非一次完成,需要循环迭代多次: (2)容错性:即使在每个循环中产生一些错误,模型最终的收敛不受影响: (3)参数收敛的非均匀性:模型中有些参数经过几个循环便不再改变,其他参数需要很长时间收敛. 这些特点决定了分布式机器学习系统的设计和其他分布式计算系统(例如Spark)的设计有很大不同. Petuum是一个专门针对机器学习算法特点的分布式平台,而通用的分布式计算系统Spark以数据流应用为主,所以二者的应用

提高Android Studio中Gradle执行效率

尊重劳动成果,转载请注明出处:http://blog.csdn.net/growth58 你是否感觉到Android Studio构建速度太慢?我也有这感觉. 幸运的是,这有很多可以提高构建速度的技巧.这些技巧目前还在实验并且有可能是不安全的,如果你觉得构建时间太长而且很痛苦的话,尝试一下这些技巧还是很有价值的.我已经按照下面所描述的试过在代码改动很少的情况下构建时间下降了2.5秒.希望对你有帮助. Android Studio使用Gradle来构建工程.目前Gradle的版本为2.2.最近的版

我的分布式机器学习故事

我的分布式机器学习故事 从毕业加入Google开始做分布式机器学习,到后来转战腾讯广告业务,至今已经七年了.我想说说我见到的故事和我自己的实践经历.这段经历给我的感觉是:虽然在验证一个新的并行算法的正确性的时候,我们可以利用现有框架,尽量快速实现,但是任何一个有价值的机器学习思路,都值得拥有自己独特的架构.所以重点在有一个分布式操作系统,方便大家开发自己需要的架构(框架),来支持相应的算法.如果你关注大数据,听完我说的故事,应该会有感触. 大数据和分布式机器学习 特点 说故事之前,先提纲挈领的描

分布式机器学习的故事

王益博士,称得上机器学习领域的资深从业者,本人之前有幸拜读过王益博士的一些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页,带书签目录,文字可以复制. 人工智能和大数据时代,解决最有挑战性问题的主流方案是分布式机器学习! <分布式机器学习:算法.理论与实践>旨在全面介绍分布式机器学习的现状,深入分析其中的核心技术

解析提高PHP执行效率的50个技巧

1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的”函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故 把函数加上了双引号). 2.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 3.$row[‘id’] 的速度是$row[id]的7倍. 4.echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而