作家
登录

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

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

  • 易用性:重要针对应用框架进行算法调优的工程师而言,显然,一个难用的框架是没有生命力的。
  • 在正式介绍第三代参数办事器的重要技巧之前,先大年夜另一个角度来看下大年夜范围机械进修框架的演进

    这张图可以看出,在参数办事器出来之前,人们已经做了多方面的并行测验测验,不过往往只是针对某个特定算法或特定范畴,比如YahooLDA是针对LDA算法的。当模型参数冲破十亿今后,则可以看出参数办事器一统江湖,再无敌手。

    有了GFS我们有才能积聚海量的数据样本,比如在线告白的曝光和点击数据,天然具有正负样本的特点,累积一两个月往往就能轻松获得百亿、千亿级的练习样本。如许海量的样本若何存储?用什么样的模许可以进修海量样本中有效的pattern?这些问题不止是工程问题,也值得每个做算法的同窗去深刻思虑。

    起首我们看看第三代参数办事器的根本架构

    上图的resourcemanager可以先放一放,因为实际体系中这部分往往是复竽暌姑现有的资本治理体系,比如yarn或者mesos;底下的training data毋庸置疑的须要类似GFS的分布式文件体系的支撑;剩下的部分就是参数办事器的核心组件了。

    图中画了一个server group和三个worker group;实际应用中往往也是类似,server group用一个,而worker group按需设备;server manager是server group中的治理节点,一般不会有什么逻辑,只有当有server node参加或退出的时刻,为了保持一致性哈希而做一些调剂。

    Worker group中的task schedule则是一个简单的义务调和器,一个具体义务运行的时刻,task schedule负责通知每个worker加载本身对应的数据,然后去server node上拉取一个要更新的参数分片,用本地数据样本计算参数分片对应的变更量,然后同步给server node;server node在收到本机负责的参数分片对应的所有worker的更新后,对参数分片做一次update。

    热备、冷备技巧:为了防止server node挂掉落,导致义务中断,可以采取两个技巧,一个是对参数分片进行热备,每个分片存储在三个不合的server node中,以master-slave的情势存活。如不雅master挂掉落,可以快速大年夜slave获取并重启相干task。

    如图所示,不合的worker同时并交运算的时刻,可能因为收集、机械设备等外界原因,导致不合的worker的进度是不一样的,若何控制worker的同步机制是一个比较重要的课题。详见下节分化。

    5.1 资本治理

    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;这就是典范的单机运行的情况,而我们知道如许的运行序列最后算法会收敛。

    大年夜图中可以看出,spark框架以Driver为核心,义务调剂和参数汇总都在driver,而driver是单机构造,所以spark的瓶颈异常明显,就在Driver这里。当模型范围大年夜到一台机械存不下的时刻,Spark就无法正常运行了。所以大年夜今天的眼光来看,Spark只能称为一个中等范围的机械进修框架。剧透一句,公司开源的Angel经由过程修改Driver的底层协定将Spark扩大到了一个高一层的境界。后面还会再具体介绍这部分。

    如今我们开端并行化,假设k1、k2、k3分布在三个server node上,s1、s2、s3分布在三个worker上,这时刻如不雅我们还要保持之前的计算次序,则会变成如何?work1计算的时刻,work2和worker3只能等待,同样worker2计算的时刻,worker1和work3都得等待,以词攀类推;可以看出如许的并行化并没有晋升机能;然则也算简单解决了超大年夜范围模型的存储问题。

    为懂得决机能的问题,业界开端摸索这里的一致性模型,最先出来的版本是前面提到的[11]中的ASP模式,就是完全掉落臂worker之间的次序,每个worker按照本身的节拍走,跑完一个迭代就update,然后持续,这应当是大年夜范围机械进修中的freestyle了,如图所示

    此时起首须要增长一个coordinator组件来进行模型并行的concurrent控制。同时参数办事器框架须要支撑namespace切分,coordinator将依附关系经由过程namespace来进行表示。

    ASP的优势是最大年夜限度应用了集群的计算才能,所有的worker地点的机械都不消等待,但缺点也显而易见,除了少数几个模型,比如LDA,ASP协定可能导致模型无法术敛。也就是SGD彻底跑飞了,梯度不知道飞到哪里去了。

    在ASP之后提出了另一种相对极端的同步协定BSP,spark用的就是这种方法,如图所示

    每个worker都必须在同一个迭代运行,只有一个迭代义务所有的worker都完成了,才会进行一次worker和server之间的同步和分片更新。这个算法和严格一向的算法异常类似,差别仅仅在于单机版本的batch size在BSP的时刻变成了有所有worker的单个batch size乞降获得的总的butch size调换。毫无疑问,BSP的模式和单机串行因为仅仅是batch size的差别,所以在模型收敛性上是完全一样的。同时,因为每个worker在一个周期内是可以并行计算的,所以有了必定的并行才能。


      推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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