大规模机器学习框架的四重境界.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 1 PAGE 1 大规模机器学习框架的四重境界 MapReduce不仅是一个框架,还是一种思想,google开创性的工作为我们找到了大数据分析的一个可行方向,时至今日,仍不过时。只是渐渐从业务层下沉究竟层语义应当处于的框架下层。 MapReduce不仅是一个框架,还是一种思想,google开创性的工作为我们找到了大数据分析的一个可行方向,时至今日,仍不过时。只是渐渐从业务层下沉究竟层语义应当处于的框架下层。 第三代参数服务器,也即是通用参数服务器框架是由百度少帅李沐正式提出的,和前两代不同,第三代参数服务器从设计上就是作为一个通用大规模机器学习框架来定位的。要摆脱详细应用、算法的束缚,做一个通用的大规模机器学习框架,首先就要定义好框架的功能;而所谓框架,往往就是把大量重复的、琐碎的、做了一次就不想再来第二次的脏活、累活进行良好而优雅的封装,让使用框架的人可以只关注与自己的核心规律。第三代参数服务器要对那些功能进行封装呢?沐帅总结了这几点,我照搬如下: 高效的网络通信:因为不管是模型还是样本都非常巨大,因此对网络通信的高效支持以及高配的网络设备都是大规模机器学习系统不可缺少的; 敏捷的全都性模型:不同的全都性模型其实是在模型收敛速度和集群计算量之间做tradeoff;要理解这个概念需要对模型性能的评价做些分析,暂且留到下节再介绍。 弹性可扩展:显而易见 容灾容错:大规模集群协作进行计算任务的时候,出现Straggler或者机器故障是特别常见的事,因此系统设计本身就要考虑到应对;没有故障的时候,也可能因为对任务时效性要求的变化而随时更改集群的机器配置。这也需要框架能在不影响任务的状况下能做到机器的热插拔。 易用性:主要针对使用框架进行算法调优的工程师而言,明显,一个难用的框架是没有生命力的。 在正式介绍第三代参数服务器的主要技术之前,先从另一个角度来看下大规模机器学习框架的演进 这张图可以看出,在参数服务器出来之前,人们已经做了多方面的并行尝试,不过往往只是针对某个特定算法或特定领域,比如YahooLDA是针对LDA算法的。当模型参数突破十亿以后,则可以看出参数服务器一统江湖,再无敌手。 首先我们看看第三代参数服务器的基本架构 上图的resourcemanager可以先放一放,因为实际系统中这部分往往是复用现有的资源管理系统,比如yarn或者mesos;底下的trainingdata毋庸置疑的需要类似GFS的分布式文件系统的支持;剩下的部分就是参数服务器的核心组件了。 图中画了一个servergroup和三个workergroup;实际应用中往往也是类似,servergroup用一个,而workergroup按需配置;servermanager是servergroup中的管理节点,一般不会有什么规律,只有当有servernode加入或退出的时候,为了维持全都性哈希而做一些调整。 Workergroup中的taskschedule则是一个简洁的任务协调器,一个详细任务运行的时候,taskschedule负责通知每个worker加载自己对应的数据,然后去servernode上拉取一个要更新的参数分片,用本地数据样本计算参数分片对应的变化量,然后同步给servernode;servernode在收到本机负责的参数分片对应的全部worker的更新后,对参数分片做一次update。 如图所示,不同的worker同时并行运算的时候,可能因为网络、机器配置等外界原因,导致不同的worker的进度是不一样的,如何掌握worker的同步机制是一个比较重要的课题。详见下节分解。 3.2同步协议 本节假设读者已经对随机梯度优化算法比较熟识,假如不熟识的同学请参考吴恩达经典课程机器学习中对SGD的介绍,或者我之前多次推荐过的书籍《最优化导论》。 我们先看一个单机算法的运行过程,假设一个模型的参数切分成三个分片k1,k2,k3;比如你可以假设是一个规律回归算法的权重向量被分成三段。我们将训练样本集合也切分成三个分片s1,s2,s3;在单机运行的状况下,我们假设运行的序列是(k1,s1)、(k2,s1)、(k3、s1)、(k1、s2)、(k2、s2)、(k3、s2)。。。看明白了吗?就是假设先用s1中的样本一次对参数分片k1、k2、k3进行训练,然后换s2;这就是典型的单机运行的状况,而我们知道这样的运行序列最终算法会收敛。 一般参数间的依靠关系因模型而已,所以较难抽象出

文档评论(0)

认证主体菲亚企业管理咨询服务(天津自贸试验区)有限公司
IP属地天津
统一社会信用代码/组织机构代码
91120118MA05M78NXX

1亿VIP精品文档

相关文档