作家
登录

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

作者: 来源: 2017-11-06 14:21:26 阅读 我要评论

说清楚明了模型并行的物理图景,当一个超大年夜神经收集无法存储在一台机械上时,我们可以切割收集次木不合的机械上,然则为了保持不合参数分片之间的依附,如图中粗黑线的部分,则须要在不合的机械之间进行concurrent控制;同一个机械内部的参数依附,即途中细黑线部分在机械内即可完成控制。

黑线部分若何有效控制呢?如下图所示

在将模型切分到不合机械今后,我们将参数和样本一路在不合机械间流转,途中ABC代表模型的不合部分的参数;假设C依附B,B依附A,机械1上获得A的一个迭代后,将A和须要的样本信息一路传到机械2,机械2根据A和样本对P2更新获得,以词攀类推;当机械2计算B的时刻,机械1可以展开A的第二个迭代的计算。懂得CPU流水线操作的同窗必定认为熟悉,是的,模型并行是经由过程数据流水线来实现并行的。想想那个盖楼的第二种筹划,就能懂得模型并行的精华了。

上图则是对控制模型参数依附的调剂器的一个示意图,实际框架一一般都邑用DAG(有向无环图)调剂技巧来实现类似功能,未深刻研究,今后有机会再弥补解释。

懂得了数据并行和模型并行对后面参数办事器的懂得至关重要,但如今让我先荡开一笔,简单介绍下并行计算框架的一些背景信息。

2. 并行算法演进

大年夜后台转算法以来,经久沉浸于算法推理的论文无法自拔,对本身之前的后

2.1 MapReduce路线

大年夜函数式编程中的受到启发,google宣布了MapReduce[7]的分布式计算方法;经由过程将义务切分成多个叠加的Map+Reduce义务,来完成复杂的计算义务,示意图如下 

MapReduce的重要问题有两个,一是原语的语义过于初级,直接应用其来写复杂算法,开辟量比较大年夜;另一个问题是依附于磁盘进行数据传递,机能跟不上营业需求。

为懂得决MapReduce的两个问题,Matei在[8]中提出了一种新的数据构造RDD,并构建了Spark框架。Spark框架在MR语义之上封装了DAG调剂器,极大年夜降低了算法应用的门槛。较长时光内spark几乎可以说是大年夜范围机械进修的代表,直至后来沐帅的参数办事器进一步开辟了大年夜范围机械进修的范畴今后,spark才裸露出一点点不足。如下图

MapReduce不仅是一个框架,照样一种思惟,google开创性的工作为我们找到了大年夜数据分析的一个可行偏向,时至今日,仍不过时。只是逐渐大年夜营业层下沉到底层语义应当处于的框架基层。

2.2 MPI技巧

沐帅在[9]中对MPI的前景做了扼要介绍;和Spark不合,MPI是类似socket的一种体系通信API,只是支撑了消息广播等功能。因为对MPI研究不深刻,这里简单介绍下长处和缺点吧;长处是体系级支撑,机能杠杠的;缺点也比较多,一是和MR一样因为原语过于初级,用MPI写算法,往往代码量比较大年夜。另一方面是基于MPI的集群,如不雅某个义务掉败,往往须要重启全部集群,而MPI集群的义务成功率并不高。阿里在[10]中给出了下图: 

大年夜图中可以看出,MPI功课掉败的几率接近五成。MPI也并不是完全没有可取之处,正如沐帅所说,在超算集群上照样有场景的。对于工业届依附于云计算、依附于commodity计算机来说,则显得性价比不敷高。当然如不雅在参数办事器的框架下,对单组worker再应用MPI未尝不是个好的测验测验,[10]的鲲鹏体系正式这么设计的。

3. 参数办事器演进

3.1 汗青演进

沐帅在[12]中将参数办事器的汗青划分为三个阶段,第一代参数办事器萌芽

于沐帅的导师Smola的[11],如下图所示:

这个工作中仅仅惹人memcached来存放key-value数据,不合的处理过程并行对其进行处理。[13]中也有类似的设法主意,第二代参数办事器叫application-specific参数办事器,重要针对特定应用而开辟,个中最典范的代表应当是tensorflow的前身[6]。

第三代参数办事器,也等于通用参数办事器框架是由百度少帅李沐正式提出的,和前两代不合,第三代参数办事器大年夜设计上就是作为一个通用大年夜范围机械进修框架来定位的。要摆脱具体应用、算法的束缚,做一个通用的大年夜范围机械进修框架,起首就要定义好框架的功能;而所谓框架,往往就是把大年夜量反复的、琐碎的、做了一次就不想再来第二次的脏活、累活进行优胜而优雅的封装,让应用框架的人可以只存眷与本身的核心逻辑。第三代参数办事器要对那些功能进行封装呢?沐帅总结了这几点,我照搬如下:

  1. 高效的收集通信:因为不管是模型照样样本都十分巨大年夜,是以对收集通信的高效支撑以及高配的收集设备都是大年夜范围机械进修体系弗成缺氨赡;
  2. 灵活的一致性模型:不合的一致性模型其实是在模型收敛速度和集群计算量之间做tradeoff;要懂得这个概念须要对模型机能的评价做些分析,暂且留到下节再介绍。
  3. 弹性可扩大:显而易见
  4. 容灾容错:大年夜范围集群协作进行计算义务的时刻,出现Straggler或者机械故障长短经常见的事,是以体系设计本身就要推敲到应对;没有故障的时刻,也可能因为对义务时效性请求的变更而随时更改集群的机械设备。这也须要框架能在不幼ê嵛务的情况下能做到机械的热插拔。

      推荐阅读

      专访京东张琪:在快速迭代的互联网发展背景下,系统质量保障该何去何从?

    带着这个问题,飞马网记者深度查访了京东商城-POP平台-测试与质量治理部负责人张琪,听他讲述10+年对软件测试及质量保障的实践感悟及团队治理经验。张琪,京东商城POP平台测试与质量治理部>>>详细阅读


    本文标题:大规模机器学习框架的四重境界

    地址:http://www.17bianji.com/lsqh/38476.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)