分布式度学习研究.docVIP

  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文档。上传文档
查看更多
分布式度学习研究

分布式深度学习研究   摘 要:传统单机深度学习模型的训练耗时,动辄花费一周甚至数月的时间,让研究者望而却步,因此深度学习并行训练的方法被提出,用来加速深度学习算法的学习过程。文章首先分析了为什么要实现分布式训练,然后分别介绍了基于模型并行和数据并行两种主要的分布式深度学习框架,最后对两种不同的分布式深度学习框架的优缺点进行比较,得出结论。 中国论文网 /1/viewhtm   关键词:深度学习;分布式训练;模型并行;数据并行   中图分类号:TP181 文献标志码:A 文章编号:2095-2945(2017)29-0007-02   1 概述   深度学习已经在计算机视觉,文本处理,自然语言识别等领域取得了卓越成就,受到学术界和工业界的广泛关注。随着对深度学习领域研究的深入,有证据表明增大模型参数规模和训练数据集,能有效的提高模型精度。但精度提升同时也带来了巨大的训练时间成本???简单的采用单机加GPU计算的方式,受限于目前GPU的显存限制和单机扩展能力,已经不能满足大型深层网络结构和超TB大小的训练集所要求的计算能力和存储空间。针对上述问题,研究者投入了大量的工作,研究分布式深度学习训练框架,来提升训练效率。当前的分布式深度学习框架主要包含模型并行(model parallelism),数据并行(data parallelism)两种方法,两者的结构如图1所示,左边为模型并行结构,右边为数据并行结构。   2 模型并行化方法   在模型并行化方法里,分布式系统中的不同机器节点负责单个网络模型的不同部分计算。例如,卷积神经网络模型中的不同网络层被分配到不同的机器。每个机器只计算网络结构的一部分,能够起到加速训练的效果。模型并行化适合单机内存容纳不下的超大规模的深度学习模型,其具有良好的扩展能力,尽管在实际应用中的效果还不错,但是在模型能够在单机加载的情况下,数据并行化却是多数分布式深度学习系统的首选,因为数据并行化在实现难度、容错率和集群利用率方面都优于模型并行化,数据并行化方法适用于采用大量训练数据的中小模型,具体介绍见第3小节。   3 数据并行化方法   在数据并行化方法里,分布式框架中的每个节点上都存储一份网络模型的副本,各台机器只处理自己所分配到的一部分训练数据集,然后在各节点之间同步模型参数,模型参数同步算法分为同步式和异步式两种。   3.1 同步式算法   标准的同步式算法,每次迭代都分为三个步骤,首先,从参数服务器(Parameter Server,PS)中把模型参数w拉取(pull)到本地,接着用新的模型参数w计算本地mini-batch的梯度Δw,最后将计算出的梯度Δw推送(push)到PS。PS需要收集所有节点的梯度,再按照公式(1)进行平均处理更新模型参数,其中?琢为学习率。   雅虎开源的基于Spark平台的深度学习包CaffeOnSpark就是采用的同步式算法,同步式算法如图2所示。   这种强同步式算法,会由于系统中各个机器之间的性能差异,导致所有的节点都要等待计算最慢的一个节点执行完,产生木桶效应问题。而且大量的同步操作,造成的通讯时间开销会限制同步式扩展能力,导致性能瓶颈。   3.2 异步式算法   异步随机梯度下降算法(Asynchronous Stochastic Gradient Descent,ASGD)是对同步式算法的改进。参数服务器只要接收到一个节点的梯度值就进行更新,而不是等待所有节点发送完梯度值,再进行平均操作,消除了木桶效应问题,并且利用梯度的延迟更新,如迭代m次再进行同步,减少网络通信量,降低网络通讯造成的时间开销,获得明显加速。文献[1]证明算法是收敛的。   异步式算法比同步式训练加速效果明显,但带来了一个新的问题,即梯度值过时问题。当某个节点算完了梯度值并且将其与参数服务器的全局参数合并时,全局参数可能已经被其他节点更新了多次,而此时传递过来的是一个已经过时的梯度值,会降低算法的收敛速率,达不到异步算法原本应有的加速效果,同时导致模型准确率下降。   异步随机梯度下降方法有多种形式的变种,都采取了各种策略来减弱梯度过时所造成的影响,同时保持分布式深度学习训练的高效率。解决梯度值过时的方法主要包括以下两种:   (1)对每次更新的梯度Δw,引入缩放因子?姿,控制梯度过时对全局的影响。参数的更新形式为:   (2)   (2)采用弱同步(soft synchronization)策略[2],相对于立即更新全局参数向量,参数服务器等待收集n(1≤j≤n)个节点产生的s(1≤s≤m)次更新后,参数随之按照公式(3)进行更新。若s=1,n=1;(3)式即为普通的异步随机梯度下降算法。若s=m;即为异步随机梯度下

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档