分布式梯队下降

分布式梯队下降

并行模型

模型并行(model parallelism): 分布式系统中的不同机器(GPU/CPU等)负责网络模型的不同部分———例如,神经网络模型的不同网络层被分配到不同的机器,或者同一层内部道德不同参数被分配到不同机器。

数据并行(data parallelism): 不同的机器有同一个模型的多个副本,每个机器分配到不同的数据,然后将所有机器的计算结构按照某种方式合并。

并行方法

同步数据并行方法(Synchronous Data Parallel Methods)

把数据切分很多小份,每一份训练数据扔到一个机器上,在该机器上即可根据本地数据来做训练,通过梯度下降更新神经网络。当每一个局部得到一些神经网络的更新之后,希望大家共同协作训练。大奖就会把自己学到的东西推送到一个公共的服务器上,服务器上就会看到所有的local machine送上来的东西,他会把他们做一个集成,集成了之后就会得到一个它认为考虑了所有的训练机器所有信息之后最好的模型的状态,然后再把最好的模型发送给每一个机器。然后每一个机器利用自己的局部参数去更新下一轮的数据。这样周而复始。这就是经典经典的参数服务器的架构。

同步的并行实现等价于某一个串行的梯度下降法,只不过min-batch的size变了。但是训练数据总是受限于最慢的机器。

参数平均(model averaging)

参数平均是最简单的一种数据并行化。若采用参数平均法,训练的过程如下所示:

  1. 基于模型的配置随机初始化网络模型的参数
  2. 将当前这组参数分发到各个工作节点
  3. 在每个工作节点,用数据集的一部分数据进行训练
  4. 将各个工作节点的参数的均值作为全局参数值


DASGD(Elastic Averaging SGD)

和参数平均方法过程相似,只不过不是将参数的均值作为全局参数值,而是每个worker服务器围绕着参数均值进行变化。

P值控制参数在最优模型之间浮动的大小。P值越大,说明在参数空间探索的范围越大,P值越接近中心参数。

异步数据并行方法

为了克服在同步数据并行中,由负载的worker引起的严重延迟问题,从而进一步减少训练时间,简单的方法就是去去除同步约束限制。但是,这又带来了一些影响,其中一些影响不是很明显。概念上最简单的是参数超时(Parameter staleness)。Parameter staleness是指当一个worker从central variable获取参数(pull)之后,再到下次提交参数到central variable之间的延迟的时间。直观地说,这意味着worker正在使用基于该模型的先前参数的梯度来更新模型参数。如上图所示,在时刻,从central variable获取参数到本地进行计算,当本地计算完成之后,在时刻把梯度提交到central variable进行参数更新,这之间的时间差称为的Parameter staleness。因为到之间,进行了一次梯度更新提交,所以时刻,的参数更新是延迟的,这样是不合理的。

异步EASGD

异步EASGD的更新方案与同步EASGD非常相似,但是也有一些重要的细节。在下面的描述中,我们将用向量表示弹性差(elastic different)。在同步版本中,该向量实际上用于实现对参数空间的探索的策略。这意味着,在方程


中,这个向量的任务是不让worker远离central variable。这正是,当将elastic different应用于worker时发生的情况。

在异步版本中,elastic difference具有相同的功能。但是,它也被用来更新central variable。如上段所述,elastic different实际上用于参数空间的限制性探索。但是,如果我们否定elastic difference, 那就是,则elastic difference可以被用来优化所述central variable(图中的反向箭头),同时保持通行限制(communication constraint),这是EASGD正在努力解决的问题。

DOWNPOUR

在DOWNPOUR中,每当worker计算一个梯度(或梯度序列)时,梯队就与参数服务器通信。当参数服务器从worker那里接收到梯度更新请求时,它将把更新合并到central variable中,与EASGD相反,DOWNPOUR并不假设存在任何通信限制。更重要的是,如果与参数服务器的频繁通讯不发生(为了减少worker差异),DOWNPOUR并不假设存在任何通信限制。更重要的是,如果与参数服务器的频繁通讯不发生(为了减少worker差异),DOWNPUR将不会收敛(这也与由异步引起的动量问题有关)。这正与上面讨论的问题相同。如果我们允许worker探索"太多"的参数空间,那么所有的worker就不会一起努力去为了central variable找到一个好的解决方案。此外,DOWNPOUR没有任何固定有的机制来保持central variable的领域。因此,如果增加通讯窗口(communication window)大小,则会成比例地增加发送到参数服务器的梯度的长度。因此,为了使参数空间中worker的方差更"小",就需要积极更新central variable。

ADAG

我们注意到,一个大的communication windows与模型性能的下降有关。使用一些模型(如DOWNPOUR,如上所示),我们注意到,当使用communication window标准化累计梯度时,可以减轻这种影响。还有几个积极的影响,例如,对并行worker的数量,并没有进行标准化(normalizing),因此,也不会失去并行化梯度下降(收敛速度)带来的好处。这有一个副作用,即每个worker就central variable 产生的方差同样也会保持较小,因此,对central objective有积极作用!此外,由于规范化,模型对超参数也不太敏感,特别是communication window大小。然而,也就是说,大的communication window通常也会降低模型的性能,因为可以让worker基于数据分片(data shard)中的样本,探索更多的参数空间。在第一模型中,我们调整了DOWNPOUR来适应这个想法。我们观察到以下结果。首先,我们观察到模型性能显著提高,甚至于诸如Adam的顺序优化算法可比。其次,与DOWNPOUR相比,我们可以3倍大小增加communication window。因此,可以更有效地利用CPU资源,并且进一步减少总的训练时间。最后,归一化积累的梯度允许我们增大communication window。因此,我们能够匹配EASGD的训练时间,并且达到大致相同(有时更好,有时更差)的结果。

总之,ADAG或异步分布式自适应梯度算法的核心思想,可以应用与任何分布式优化的方案。使用我们的观察和直觉(特别是关于由异步引起的隐动量),我们可以猜测,归一化累计梯度的思想可以应用于任何分布式优化方案。

原文地址:https://www.cnblogs.com/kexinxin/p/9858547.html

时间: 2024-10-30 07:53:37

分布式梯队下降的相关文章

【深度学习Deep Learning】资料大全

转载:http://www.cnblogs.com/charlotte77/p/5485438.html 最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books Deep Learning66 by Yoshua Bengio, Ian Goodfellow and Aaron Courville Neural Networks and Deep Learning42 by Michael Nielsen Deep Learning27 by

MXNet设计和实现简介

原文:https://github.com/dmlc/mxnet/issues/797 神经网络本质上是一种语言,我们通过它来表达对应用问题的理解.例如我们用卷积层来表达空间相关性,RNN来表达时间连续性.根据问题的复杂性和信息如何从输入到输出一步步提取,我们将不同大小的层按一定原则连接起来.近年来随着数据的激增和计算能力的大幅提升,神经网络也变得越来越深和大.例如最近几次imagnet竞赛的冠军都使用有数十至百层的网络.对于这一类神经网络我们通常称之为深度学习.从应用的角度而言,对深度学习最重

范数在机器学习的应用

???????范数在深度学习中的应用是作为损失函数正则化选项,从而减少模型的过拟合情况.在继续讲解正则化之前,我们先介绍欠拟合.过拟合的概念. 1 范数要解决的问题 过拟合现象 ???????假设坐标系内有一系列点,都是带有噪声的二次曲线上的点.现在我们不知道这些数据是二次曲线上的点,但希望通过一个函数来拟合出一条线,使得这条线能尽可能的贴近这些点,这条线也就是我们得到的模型.如图1所示第一列到第三列依次为欠拟合,正常拟合以及过拟合. 图1 欠拟合,正常拟合,过拟合情形 表1 欠拟合,正常拟合,

Federated Optimization for Heterogeneous Networks

郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:1812.06127v3 [cs.LG] 11 Jul 2019 Abstract 联邦学习涉及在大规模分布式网络中训练机器学习模型.虽然联邦平均(FedAvg)是在该设置中训练非凸模型的主要优化方法,但在实际的联邦设置中,当跨统计异质设备(即每个设备以不同的方式收集数据)学习时,它的表现并没有得到很好的理解.在这项工作中,我们引入了一个处理统计异质性的框架FedProx,它将FedAvg作为一个特例.我们通过设备差异性假

深度解读最流行的优化算法:梯度下降

深度解读最流行的优化算法:梯度下降 By 机器之心2016年11月21日 15:08 梯度下降法,是当今最流行的优化(optimization)算法,亦是至今最常用的优化神经网络的方法.本文旨在让你对不同的优化梯度下降法的算法有一个直观认识,以帮助你使用这些算法.我们首先会考察梯度下降法的各种变体,然后会简要地总结在训练(神经网络或是机器学习算法)的过程中可能遇到的挑战.(本文的中文版 PDF 下载地址) 目录: 梯度下降的各种变体 批量梯度下降(Batch gradient descent)

hadoop 分布式示例

安装完全分布式Hadoop 1 安装准备工作 本安装示例将使用三台主机(RHEL 5.8 32bit)来实现,其规划如下所示: IP地址 主机名 运行的进程或扮演的角色 172.16.100.11 master.magedu.com NameNode,JobTracker 172.16.100.12 datanode.magedu.com DataNode,TaskTracker 172.16.100.13 snn.magedu.com SecondaryNameNode 用到的应用程序: JD

分布式服务框架下,如何做到服务化最佳实践?

“升级服务框架后,性能.可靠性等问题日益明显.服务化之后面临的诸多挑战,怎样分析才能给出实践最优解? 在服务化之前,业务通常都是本地API调用,本地方法调用性能损耗较小.服务化之后,服务提供者和消费者之间采用远程网络通信,增加了额外的性能损耗,业务调用的时延将增大,同时由于网络闪断等原因,分布式调用失败的风险也增大.如果服务框架没有足够的容错能力,业务失败率将会大幅提升. 除了性能.可靠性等问题,跨节点的事务一致性问题.分布式调用带来的故障定界困难.海量微服务运维成本增加等也是分布式服务框架必须

亿级Web系统搭建——单机到分布式集群

原文转自:http://kb.cnblogs.com/page/509402/ 当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制.在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决. Web负载均衡 Web负载均衡(Load Balancing),简单地说就是给我们的服务器集群分配“工作任务”,而采用恰

分布式MySQL数据库TDSQL架构分析

摘要:腾讯计费平台部为了解决基于内存的NoSQL解决方式HOLD平台在应对多种业务接入时的不足.结合团队在MySQL领域多年应用和优化经验,终于在MySQL存储引擎基础上,打造一套分布式SQL系统TDSQL.本文是对该系统架构分析. 腾讯计费平台部托管着公司90%以上的虚拟账户.如QB.Q点.包月服务.游戏的二级账户等,为了保证能顺畅支撑公司各大业务的实时在线交易.而且在各种灾难场景下数据是一致而且可用的,对系统的可用性.一致性切换要求很高,因此计费团队历来都很重视高一致性存储系统的建设. 到眼