以此协定为基本的spark在很长时光内成为机械进修范畴实际的霸主,不是没有来由的。此种协定的缺点之处在于,全部worker group的机能由个中最慢的worker决定;这个worker一般称为straggler。读过GFS文┞仿的同窗应当都知道straggler的存在是异常广泛的现象。
可否将ASP和BSP做一下折中呢?谜底当然是可以的,这就是今朝我认为最好的同步协定SSP;SSP的思路其实很简单,既然ASP是许可不合worker之间的迭代次数距离随便率性大年夜,而BSP则只许可为0,那我是否可以取一个常数s?如图所示
不合的worker之间许可有迭代的距离,但这个距离数不许可超出一个指定的数值s,图中s=3.
深度进修固然必定程度上缓解了特点工程的压力,但这里要强调两点:1.缓解并不等于彻调果断,除了图像这种特定范畴,在个性化推荐等范畴,深度进修今朝还没有完全取得绝对的优势;究其原因,可能照样数据自身内涵构造的问题,使得在其他范畴今朝还没有发明类似图像+CNN如许的完美CP。2.深度进修在缓解特点工程的同时,也带来了模型复杂、弗成解释的问题。算法工程师在收集构造设计方面一样要花很多心思来晋升效不雅。概括起来,深度进修代表的简单特点+复杂模型是解决实际问题的另一种方法。
SSP协定的具体介绍拜见[14],CMU的大年夜拿Eric Xing在个中具体介绍了SSP的定义,以及其收敛性的包管。理论推导证实常数s不等于无穷大年夜的情况下,算法必定可以在若干次迭代以落后入收敛状况。其实袈溱Eric提出理论证实之前,工业界已经这么测验测验过了:)
趁便提一句,考察分布式算法的机能,一般会分为statistical performance和hard performance来看。前者指不合的同步协定导致算法术敛须要的迭代次数的若干,后者是单次迭代所对应低砟瓯。两者的关系和precision\recall关系类似,就不赘述了。有了SSP,BSP就可以经由过程指定s=0而获得。而ASP同样可以经由过程制订s=∞来达到。
3.3核心技巧
除了参数办事器的架构、同步协定之外,本节再对其他技巧做一个扼要的介绍,具体的懂得请直接浏览沐帅的博士论文和相干揭橥的论文。
除了热备,还可以准时写入checkpoint文件到分布式文件体系来对参数分片及其状况进行备份。进一步包管其安然性。
Server node治理:可以应用一致性哈希技巧来解决server node的参加和退出问题,如图所示
当有server node参加或退出的时刻,server manager负责对参数进行从新分片或者归并。留意在对参数进行分片治理的情况下,一个分片只须要一把锁,这大年夜大年夜晋升了体系的机能,也是参数办事器可以实用的一个关键点。
4. 大年夜范围机械进修的四重境界
到这里可以回到我们的标题了,大年夜范围机械进修的四重境界到底是什么呢?
这四重境界的划分是作者小我浏览总结的一种设法主意,并不是业界标准,仅供大年夜家参考。
在一个月阁下的调研中,脑筋天天都充斥这各类疑问和困惑,曾经半夜4点醒来,思虑同步机制而再也睡不着,干脆起来躲卫生间看书,而那天我一点多才睡。当脑筋里有放不下的问题的时刻,整小我会处于一种异常亢奋的状况,除非彻底想清跋扈这个问题,不然掉眠是必定的,上一次这种状况已经是很多年前了。好在最后我总算理清了这方面的所有关键细节。以此,记之。Carbonzhang于2017年8月26日凌晨!
境界1:参数可单机存储和更新
此种境界较为简单,但仍可以应用参数办事器,经由过程数据并行来加快模型的练习。
境界2:参数弗成单机存储,可以单机更新
此种情况对应的是一些简单模型,比如sparse logistic regression;当feature的数量冲破百亿的时刻,LR的权重参数不太可能在一台机械上完全存下,此时必须应用参数办事器架构对模型参数进行分片。然则留意一点,SGD的更新公式
w’=w-α,个中可以分开到单个维度进行计算,然则单个维度的wi=f(w)xi
这里的f(w)表示是全部参数w的一个函数,具体推倒比较简单,这里篇幅所限就不赘述了。只是想解释worker在计算梯度的时刻可能须要应用到上一轮迭代的所有参数。而我们之所以对参数进行分片就是因为我们无法将所有参数存放到一台机械,如今单个worker有须要应用所有的参数才能计算某个参数分片的梯度,这不是抵触吗?可能吗?
谜底是可能的,因为单个样本的feature具有很高的稀少性(sparseness)。例如一个百亿feature的模型,单个练习样本往往只在个中很小一部分feature上有取值,其他都为0(假设feature取值都已经离散化了)。是以计算f(w)的时刻可以只拉取不为0的feature对应的那部分w即可。有文┞仿统计一般这个级其余体系,稀少性往往在0.1%(or 0.01%,记得不是很准,大年夜致如许)以下。如许的稀少性,可以让单机没有任何阻碍的计算f(w)。
今朝公司开源的angel和AILab正在做的体系都处于这个境界。而原生spark还没有达到这个境界,只能在中小范围的圈子里胡混。Angel改革的基于Angel的Spark则达到了这个境界。
境界3:参数弗成单机存储,弗成单机更新,但无需模型并行
境界3顺延境界2二来,当百亿级feature且feature比较稠密的时刻,就须要计算框架进入到这层境界了,此时单个worker的才能有限,无法完全加载一个样本,也无法完全计算f(w)。怎么办呢?其实很简单,学过线性代数的都知道,矩阵可以分块。向量是最简单的矩阵,天然可以切成一段一段的来计算。只是调剂器须要支撑算符分段罢了了。
境界4:参数弗成单机存储,弗成单机更新,须要模型并行
进入到这个层次的计算框架,可以算是世界一流了。可以处理超大年夜范围的神经收集。这也是最典范的应用处景。此时不仅模型的参数不克不及单机存储,并且同一个迭代内,模型参数之间还有强的依附关系,可以拜见姐夫对distbelief的介绍里的模型切分。
推荐阅读
专访京东张琪:在快速迭代的互联网发展背景下,系统质量保障该何去何从?
带着这个问题,飞马网记者深度查访了京东商城-POP平台-测试与质量治理部负责人张琪,听他讲述10+年对软件测试及质量保障的实践感悟及团队治理经验。张琪,京东商城POP平台测试与质量治理部>>>详细阅读
本文标题:大规模机器学习框架的四重境界
地址:http://www.17bianji.com/lsqh/38476.html
1/2 1