CN109102075A - 一种分布式训练中的梯度更新方法及相关设备 - Google Patents
一种分布式训练中的梯度更新方法及相关设备 Download PDFInfo
- Publication number
- CN109102075A CN109102075A CN201810833991.XA CN201810833991A CN109102075A CN 109102075 A CN109102075 A CN 109102075A CN 201810833991 A CN201810833991 A CN 201810833991A CN 109102075 A CN109102075 A CN 109102075A
- Authority
- CN
- China
- Prior art keywords
- gradient
- global
- calculate node
- server
- node server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种分布式训练中的梯度更新方法及相关设备,方法应用于计算节点服务器,所述方法包括:监测对目标数据进行分布式训练的全局轮换更新步数;基于所述全局轮换更新步数满足所述计算节点服务器的全局梯度更新条件的判断,将所述计算节点服务器当前的本地梯度累计值传输给参数服务器中,由所述参数服务器对全局训练模型基于所述本地梯度累计值进行梯度更新;基于所述全局轮换更新步数不满足所述计算节点服务器的全局梯度更新条件的判断,计算当前本地梯度并将所述当前本地梯度累加到所述本地梯度累计值中。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种分布式训练中的梯度更新方法及相关设备。
背景技术
目前,在深度学习的分布式训练中,通常会遇到梯度更新过程中计算节点等待轮换梯度更新而导致设备占用率较低的问题。
因此,亟需一种能够解决分布式训练中设备占用率较低问题的技术方案。
发明内容
有鉴于此,本申请提供一种分布式训练中的梯度更新方法及相关设备,用以解决现有技术中分布式训练中设备占用率较低的技术问题。
本申请提供了一种分布式训练中的梯度更新方法,应用于计算节点服务器,所述方法包括:
监测对目标数据进行分布式训练的全局轮换更新步数;
基于所述全局轮换更新步数满足所述计算节点服务器的全局梯度更新条件的判断,将所述计算节点服务器当前的本地梯度累计值传输给参数服务器中,由所述参数服务器对全局训练模型基于所述本地梯度累计值进行梯度更新;
基于所述全局轮换更新步数不满足所述计算节点服务器的全局梯度更新条件的判断,计算当前本地梯度并将所述当前本地梯度累加到所述本地梯度累计值中。
上述方法,优选的,计算当前本地梯度并将所述当前本地梯度累加到所述本地梯度累计值中,包括:
基于本地训练模型,计算当前本地梯度;
将所述当前本地梯度累加到所述本地梯度累计值中。
上述方法,优选的,还包括:
基于所述当前本地梯度,对所述计算节点服务器中的本地训练模型进行梯度更新。
上述方法,优选的,还包括:
接收所述参数服务器传输的全局训练模型,所述参数服务器传输的全局训练模型为经过基于所述本地梯度累计值的梯度更新后的模型;
将接收到的全局训练模型更新为所述计算节点服务器的本地训练模型。
上述方法,优选的,所述全局梯度更新条件包括:全局轮换更新步数与计算节点服务器的本地轮换标识相对应。
本申请还提供了一种分布式训练中的梯度更新装置,应用于计算节点服务器,所述装置包括:
步数监测单元,用于监测对目标数据进行分布式训练的全局轮换更新步数;
条件判断单元,用于判断所述全局轮换更新步数是否满足所述计算节点服务器的全局梯度更新条件,如果是,触发梯度更新单元,否则,触发梯度累计单元;
梯度更新单元,用于将所述计算节点服务器当前的本地梯度累计值传输给参数服务器中,由所述参数服务器对全局训练模型基于所述本地梯度累计值进行梯度更新;
梯度累计单元,用于计算当前本地梯度并将所述当前本地梯度累加到所述本地梯度累计值中。
本申请还提供了一种计算节点服务器,包括:
存储器,用于存储应用程序及所述应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现功能:监测对目标数据进行分布式训练的全局轮换更新步数;基于所述全局轮换更新步数满足所述计算节点服务器的全局梯度更新条件的判断,将所述计算节点服务器当前的本地梯度累计值传输给参数服务器中,由所述参数服务器对全局训练模型基于所述本地梯度累计值进行梯度更新;基于所述全局轮换更新步数不满足所述计算节点服务器的全局梯度更新条件的判断,计算当前本地梯度并将所述当前本地梯度累加到所述本地梯度累计值中。
本申请还提供了一种训练集群,包括:
参数服务器,用于存储全局训练模型;
计算节点服务器,用于监测对目标数据进行分布式训练的全局轮换更新步数;基于所述全局轮换更新步数满足所述计算节点服务器的全局梯度更新条件的判断,将所述计算节点服务器当前的本地梯度累计值传输给参数服务器中,由所述参数服务器对全局训练模型基于所述本地梯度累计值进行梯度更新;基于所述全局轮换更新步数不满足所述计算节点服务器的全局梯度更新条件的判断,计算当前本地梯度并将所述当前本地梯度累加到所述本地梯度累计值中。
上述训练集群,优选的,所述计算节点服务器具体用于:基于本地训练模型,计算当前本地梯度;将所述当前本地梯度累加到所述本地梯度累计值中。
上述训练集群,优选的,所述计算节点服务器还用于:接收所述参数服务器传输的全局训练模型,所述参数服务器传输的全局训练模型为经过基于所述本地梯度累计值的梯度更新后的模型;将接收到的全局训练模型更新为所述计算节点服务器的本地训练模型。。
从上述技术方案可以看出,本申请提供的一种分布式训练中的梯度更新方法及相关设备,通过对目标数据在进行分布式训练时的全局轮换更新步数进行监测,从而在满足当前计算节点服务器的全局梯度更新条件时,将计算节点服务器当前的本地梯度累计值传输给参数服务器中,进而参数服务器对全局训练模型基于该本地梯度累计值进行梯度更新,而在不满足当前计算节点服务器的全局梯度更新条件时,当前计算节点服务器计算当前本地梯度并进行累加到本地梯度累计值中。可见,在本申请中每次全局轮换更新步数更新时,判断有没有轮换到计算节点服务器进行梯度更新,而在没有轮换到时,计算节点服务器会持续进行本地梯度计算并进行累加,直到轮换到计算节点服务器进行梯度更新时,计算节点服务器就可以将累加的本地梯度更新到参数服务器,由参数服务器对全局训练模型基于累计值进行梯度更新,由此计算节点服务器不会在没有轮换到梯度更新时只进行等待,而是持续进行本地梯度计算,从而减少计算节点服务器的等待时间,提高计算节点服务器等设备的占用率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种分布式训练中的梯度更新方法的流程图;
图2为本申请实施例的应用示例图;
图3~图5分别为本申请实施例一的其他流程图;
图6为本申请实施例的另一应用示例图;
图7为本申请实施例二提供的一种分布式训练中的梯度更新装置的结构示意图;
图8为本申请实施例三提供的一种计算节点服务器的结构示意图;
图9为本申请实施例四提供的一种训练集群的架构图;
图10为本申请实施例中的另一应用示例图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,为本申请实施例一提供的一种分布式训练中的梯度更新方法的实现流程图,本实施例中的方法适用于能够进行梯度计算的计算节点服务器中,计算节点服务器与参数服务器组成分布式训练集群,而在分布式训练集群中可以不止一个计算节点服务器,本实施例中的方案适用于分布式训练集群中的任意计算节点服务器中。
在具体实现中,计算节点服务器可以为具有数据计算功能的台式机、服务器等终端设备实现。
本实施例中的方法可以包括以下步骤:
步骤101:监测对目标数据进行分布式训练的全局轮换更新步数。
其中,目标数据即为进行分布式训练的数据,如某个领域的样本数据等,在分布式训练集群中,参数服务器存放全局训练模型,而本实施例中基于全局训练模型对目标数据进行分布式训练,目标数据进行分布式训练中会经过多次迭代训练,并且以全局轮换更新步数表征迭代训练中进行训练梯度更新的计算节点服务器。由此,本实施例中通过监测对目标数据进行分布式训练的全局轮换更新步数来判断是否轮到当前的计算节点服务器进行梯度更新,即基于该全局轮换更新步数判断是否满足计算节点服务器的全局梯度更新条件,如步骤102。
步骤102:基于全局轮换更新步数是否满足计算节点服务器的全局梯度更新条件,如果是,执行步骤103,否则,执行步骤104。
其中,全局轮换更新步数可以理解为能够表征梯度更新执行操作在分布式训练集群的计算节点中所轮换到的位置或步数。如图2中所示,在全局训练模型的全局轮换规则中是以首尾相接的一组轮换标识组成,这些轮换标识之间的顺序形成环形,如标识1~n,这些轮换标识分配给每个计算节点服务器,形成计算节点服务器的本地轮换标识,即每个轮换标识均对应一个计算节点,相应的,每次全局轮换更新步数对应其中的一个轮换标识,在该轮换标识对应的计算节点上完成全局梯度更新后,标识轮换到下一个,全局轮换更新步数加1作为更新后的全局轮换更新步数,新轮换到的标识表征轮换到其对应的计算节点进行全局梯度更新,以此类推,实现分布式训练。
具体的,计算节点服务器的全局梯度更新条件可以为:全局轮换更新步数与计算节点服务器的本地轮换标识相对应。基于以上方案,本实施例中可以通过判断全局轮换更新步数是否对应于当前计算节点服务器所对应的本地轮换标识,由此判断是否满足该计算节点服务器的全局梯度更新条件,进而确定是否轮换到当前的计算节点服务器进行全局梯度更新。
步骤103:将计算节点服务器当前的本地梯度累计值传输给参数服务器。
由此,参数服务器在接收到计算节点服务器上传的本地梯度累计值之后,基于该本地梯度累计值对全局训练模型进行梯度更新。
步骤104:计算当前本地梯度并将当前本地梯度累加到本体梯度累计值中。
也就是说,本实施例中,计算节点服务器在没有轮换到进行梯度更新时,进行一次本地梯度计算及累加,直到轮换到其进行梯度更新时,就可以基于累加后的本地梯度累计值进行全局梯度更新,即将本地梯度累计值上传给参数服务器,参数服务器对全局训练模型进行梯度更新。
由上述方案可知,本申请实施例一提供的一种梯度更新方法中,在每次全局轮换更新步数更新时,判断有没有轮换到计算节点服务器进行梯度更新,而在没有轮换到时,计算节点服务器会持续进行本地梯度计算并进行累加,直到轮换到计算节点服务器进行梯度更新时,计算节点服务器就可以将累加的本地梯度更新到参数服务器,由参数服务器对全局训练模型基于累计值进行梯度更新,由此计算节点服务器不会在没有轮换到梯度更新时只进行等待,而是持续进行本地梯度计算,从而减少计算节点服务器的等待时间,提高计算节点服务器等设备的占用率。
同时,计算节点服务器在进行梯度更新时,是将梯度累计值更新到参数服务器,而不是单独一次的本地梯度,由此,加快全局训练模型的梯度更新进度,从而提高分布式训练的训练效率。
在一种实现方式中,本实施例中的计算节点服务器在计算当前本地梯度并将其累加到本地梯度累计值中时,具体可以通过以下方式实现,如图3中所示:
步骤301:基于本地训练模型,计算当前本地梯度。
其中,计算节点服务器中的本地训练模型可以为计算节点服务器从参数服务器中所获得的全局训练模型,获得之后作为本地训练模型进行本地梯度计算等处理。
步骤302:将当前本地梯度累加到本地梯度累计值中。
例如,计算得到当前本地梯度A之后,累加该当前本地梯度到之前已经累加得到的本地梯度累计值B中。
在一种实现方式中,在步骤104之后,本实施例中的方法还可以包括以下步骤,如图4中所示:
步骤105:基于当前本地梯度,对计算节点服务器中的本地训练模型进行梯度更新。
也就是说,计算节点服务器在没有轮换到进行梯度更新时,进行一次本地梯度计算及累加,并对本地训练模型进行梯度更新,以便于下次本地梯度计算,由此提高本地梯度计算的准确性,直到轮换到其进行梯度更新时,就可以基于累加后的本地梯度累计值进行全局梯度更新,即将本地梯度累计值上传给参数服务器,参数服务器对全局训练模型进行梯度更新。
在一种实现方式中,本实施例中还可以包括以下步骤,如图5中所示:
步骤106:接收参数服务器传输的全局训练模型。
其中,参数服务器传输到计算节点服务器的全局训练模型为经过基于本地梯度累计值的梯度更新后的模型,即:在轮换到计算节点服务器进行全局梯度更新时,计算节点服务器中其持续累加得到的本地梯度累计值传输给参数服务器,参数服务器基于本地梯度累计值对其全局训练模型进行更新在,之后,参数服务器将经过全局梯度更新的全局训练模型传输给上传本地梯度累计值的计算节点服务器,之后,计算节点服务器接收参数服务器传输的全局训练模型。
步骤107:将接收到的全局训练模型更新为计算节点服务器的本地梯度模型。
如图6中所示,计算节点服务器将最新经过全局梯度更新的全局训练模型替换本地训练模型,从而使得本地的模型为最新模型,进而在后续进行本地梯度计算及累加时,能够提高计算准确性并加快训练速率。
参考图7,为本申请实施例二提供的一种分布式训练中的梯度更新装置的结构示意图,该装置可以应用于能够进行梯度计算的计算节点服务器,计算节点服务器与参数服务器组成分布式训练集群,而在分布式训练集群中可以不止一个计算节点服务器,本实施例中的方案适用于分布式训练集群中的任意计算节点服务器中。
在具体实现中,计算节点服务器可以为具有数据计算功能的台式机、服务器等终端设备实现。
本实施例中的装置可以包括以下结构:
步数监测单元701,用于监测对目标数据进行分布式训练的全局轮换更新步数。
其中,目标数据即为进行分布式训练的数据,如某个领域的样本数据等,在分布式训练集群中,参数服务器存放全局训练模型,而本实施例中基于全局训练模型对目标数据进行分布式训练,目标数据进行分布式训练中会经过多次迭代训练,并且以全局轮换更新步数表征迭代训练中进行训练梯度更新的计算节点服务器。
条件判断单元702,用于判断所述全局轮换更新步数是否满足所述计算节点服务器的全局梯度更新条件,如果是,触发梯度更新单元703,否则,触发梯度累计单元704。
其中,全局轮换更新步数可以理解为能够表征梯度更新执行操作在分布式训练集群的计算节点中所轮换到的位置或步数。如图2中所示,在全局训练模型的全局轮换规则中是以首尾相接的一组轮换标识组成,这些轮换标识之间的顺序形成环形,这些轮换标识分配给每个计算节点服务器,形成计算节点服务器的本地轮换标识,即每个轮换标识均对应一个计算节点,相应的,每次全局轮换更新步数对应其中的一个轮换标识,在该轮换标识对应的计算节点上完成全局梯度更新后,标识轮换到下一个,全局轮换更新步数加1作为更新后的全局轮换更新步数,新轮换到的标识表征轮换到其对应的计算节点进行全局梯度更新,以此类推,实现分布式训练。
具体的,计算节点服务器的全局梯度更新条件可以为:全局轮换更新步数与计算节点服务器的本地轮换标识相对应。基于以上方案,本实施例中条件判断单元702可以通过判断全局轮换更新步数是否对应于当前计算节点服务器所对应的本地轮换标识,由此判断是否满足该计算节点服务器的全局梯度更新条件,进而确定是否轮换到当前的计算节点服务器进行全局梯度更新。
梯度更新单元703,用于将所述计算节点服务器当前的本地梯度累计值传输给参数服务器中,由所述参数服务器对全局训练模型基于所述本地梯度累计值进行梯度更新。
由此,参数服务器在接收到计算节点服务器上传的本地梯度累计值之后,基于该本地梯度累计值对全局训练模型进行梯度更新。
梯度累计单元704,用于计算当前本地梯度并将所述当前本地梯度累加到所述本地梯度累计值中。
也就是说,本实施例中,计算节点服务器在没有轮换到进行梯度更新时,进行一次本地梯度计算及累加,直到轮换到其进行梯度更新时,就可以基于累加后的本地梯度累计值进行全局梯度更新,即将本地梯度累计值上传给参数服务器,参数服务器对全局训练模型进行梯度更新。
由上述方案可知,本申请实施例二提供的一种梯度更新装置中,在每次全局轮换更新步数更新时,判断有没有轮换到计算节点服务器进行梯度更新,而在没有轮换到时,计算节点服务器会持续进行本地梯度计算并进行累加,直到轮换到计算节点服务器进行梯度更新时,计算节点服务器就可以将累加的本地梯度更新到参数服务器,由参数服务器对全局训练模型基于累计值进行梯度更新,由此计算节点服务器不会在没有轮换到梯度更新时只进行等待,而是持续进行本地梯度计算,从而减少计算节点服务器的等待时间,提高计算节点服务器等设备的占用率。
同时,计算节点服务器在进行梯度更新时,是将梯度累计值更新到参数服务器,而不是单独一次的本地梯度,由此,加快全局训练模型的梯度更新进度,从而提高分布式训练的训练效率。
参考图8,为本申请实施例三提供的一种计算节点服务器的结构示意图,该计算节点服务器可以包括以下结构:
存储器801,用于存储应用程序及所述应用程序运行所产生的数据。
其中,存储器801可以包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
处理器802,用于执行所述应用程序,以实现功能:
监测对目标数据进行分布式训练的全局轮换更新步数;基于所述全局轮换更新步数满足所述计算节点服务器的全局梯度更新条件的判断,将所述计算节点服务器当前的本地梯度累计值传输给参数服务器中,由所述参数服务器对全局训练模型基于所述本地梯度累计值进行梯度更新;基于所述全局轮换更新步数不满足所述计算节点服务器的全局梯度更新条件的判断,计算当前本地梯度并将所述当前本地梯度累加到所述本地梯度累计值中。
也就是说,本实施例中,计算节点服务器在没有轮换到进行梯度更新时,进行一次本地梯度计算及累加,直到轮换到其进行梯度更新时,就可以基于累加后的本地梯度累计值进行全局梯度更新,即将本地梯度累计值上传给参数服务器,参数服务器对全局训练模型进行梯度更新。
由上述方案可知,本申请实施例三提供的一种计算节点服务器中,在每次全局轮换更新步数更新时,判断有没有轮换到计算节点服务器进行梯度更新,而在没有轮换到时,计算节点服务器会持续进行本地梯度计算并进行累加,直到轮换到计算节点服务器进行梯度更新时,计算节点服务器就可以将累加的本地梯度更新到参数服务器,由参数服务器对全局训练模型基于累计值进行梯度更新,由此计算节点服务器不会在没有轮换到梯度更新时只进行等待,而是持续进行本地梯度计算,从而减少计算节点服务器的等待时间,提高计算节点服务器等设备的占用率。同时,计算节点服务器在进行梯度更新时,是将梯度累计值更新到参数服务器,而不是单独一次的本地梯度,由此,加快全局训练模型的梯度更新进度,从而提高分布式训练的训练效率。
需要说明的是,计算节点服务器中处理器802的具体实现可以参考前文中相应内容,此处不再详述。
参考图9,为本申请实施例四提供的一种训练集群的架构图,该训练集群中可以包括有:
参数服务器901,用于存储全局训练模型。
其中,参数服务器901中还可以存储有全局梯度更新所相关的数据。
计算节点服务器902,可以有一个或多个,用于监测对目标数据进行分布式训练的全局轮换更新步数;基于所述全局轮换更新步数满足所述计算节点服务器的全局梯度更新条件的判断,将所述计算节点服务器902当前的本地梯度累计值传输给参数服务器901中,由所述参数服务器901对全局训练模型基于所述本地梯度累计值进行梯度更新;基于所述全局轮换更新步数不满足所述计算节点服务器的全局梯度更新条件的判断;计算当前本地梯度并将所述当前本地梯度累加到所述本地梯度累计值中。
在一种实现方式中,计算节点服务器902具体用于:基于本地训练模型,计算当前本地梯度;将所述当前本地梯度累加到所述本地梯度累计值中。
另外,计算节点服务器902还用于:接收所述参数服务器901传输的全局训练模型,所述参数服务器传输901的全局训练模型为经过基于所述本地梯度累计值的梯度更新后的模型;将接收到的全局训练模型更新为所述计算节点服务器902的本地训练模型。
在本实施例中,参数服务器901响应于计算节点服务器902发出的请求,并对请求进行相应,做出对全局训练模型进行梯度更新及推送更新后的全局训练模型等操作。而在计算节点服务器902中涉及对本地梯度进行计算以及对本地梯度进行累加等操作,还涉及有对本地的训练模型进行梯度更新等维护操作。
具体的,全局轮换更新步骤即全局迭代步作为轮换更新标记,标识不同计算节点服务器所应处于的状态,每个计算节点服务器在计算过程中,也回通过不停探测全局迭代步的状态来决定执行的具体计算行为。
结合图10中的流程图及以下代码段所示,描述了计算节点服务器在计算流程中的动态延迟的轮换梯度更新方案,其中,带有“~”的变量为计算节点服务器的本地变量,而没有带有“~”的变量为参数服务器上的全局变量,而N为计算节点服务器的总数,T为全局迭代步上线,具体方案如下:
在每个全局迭代步开始时,当前的计算节点服务器判断是否轮换到去全局梯度更新,即需要等待全局迭代步满足一定条件后再进行全局梯度更新操作。
其中,全局梯度更新操作中包括有:将本地梯度累计值应用到参数服务器的全局训练模型、将参数服务器中经过全局梯度更新的全局训练模型x的副本下载到本地替换为新的本地训练模型。
之后,将全局迭代步加1,相当于将全局梯度更新的机会传递到下一个计算节点服务器,之后,当前的计算节点服务器重新进行本地梯度积累,包括本地梯度的计算以及本地训练模型的更新等。而在此过程中,不断探测全局迭代步的状态,如果满足当前的计算节点服务器的全局梯度更新条件,那么就进行一次迭代进行全局梯度更新,否则持续进行本地梯度累计直到到达梯度累计上限,即d到达D。
由此,本实施例中引入的梯度计算及累积会随着集群运行状况而自动调整,而在各个计算节点通过持续探测全局步数,来获取集群的运行状态,在可更新时进行远程梯度更新,在不可更新时进行本地梯度累积,达到充分利用本地计算资源与网络带宽资源的目的。
在实际应用中,本方案应用于深度学习的分布式训练,可以在保持收敛精度的同时,大幅增加数据处理的速度。在行业内典型的应用场景下,如ResNet和Seq2Seq的模型训练中,数据处理速度可以获得3到4倍的提升。相比于传统的全局同步方案或轮换更新方案,可以在计算通信比较小的场景下实现更好的负载均衡。在轮换更新的基础上引入动态延迟,可以有效避免固定延迟在全同步方法中所引起的收敛减慢问题。
同时动态延迟能够充分利用网络带宽与计算节点的计算能力,减轻了对网络通信的压力,避免瞬时的网络拥堵与参数服务器过载。进一步降低了对网络带宽以及参数服务器处理能力的需求,从而降低集群的部署成本。同时,在计算节点服务器等待期间,通过引入动态的梯度计算及累计来增加设备利用率,以达到提升总体处理速度的目的。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种分布式训练中的梯度更新方法,应用于计算节点服务器,所述方法包括:
监测对目标数据进行分布式训练的全局轮换更新步数;
基于所述全局轮换更新步数满足所述计算节点服务器的全局梯度更新条件的判断,将所述计算节点服务器当前的本地梯度累计值传输给参数服务器中,由所述参数服务器对全局训练模型基于所述本地梯度累计值进行梯度更新;
基于所述全局轮换更新步数不满足所述计算节点服务器的全局梯度更新条件的判断,计算当前本地梯度并将所述当前本地梯度累加到所述本地梯度累计值中。
2.根据权利要求1所述的方法,其特征在于,计算当前本地梯度并将所述当前本地梯度累加到所述本地梯度累计值中,包括:
基于本地训练模型,计算当前本地梯度;
将所述当前本地梯度累加到所述本地梯度累计值中。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
基于所述当前本地梯度,对所述计算节点服务器中的本地训练模型进行梯度更新。
4.根据权利要求1或2所述的方法,其特征在于,还包括:
接收所述参数服务器传输的全局训练模型,所述参数服务器传输的全局训练模型为经过基于所述本地梯度累计值的梯度更新后的模型;
将接收到的全局训练模型更新为所述计算节点服务器的本地训练模型。
5.根据权利要求1或2所述的方法,其特征在于,所述全局梯度更新条件包括:全局轮换更新步数与计算节点服务器的本地轮换标识相对应。
6.一种分布式训练中的梯度更新装置,应用于计算节点服务器,所述装置包括:
步数监测单元,用于监测对目标数据进行分布式训练的全局轮换更新步数;
条件判断单元,用于判断所述全局轮换更新步数是否满足所述计算节点服务器的全局梯度更新条件,如果是,触发梯度更新单元,否则,触发梯度累计单元;
梯度更新单元,用于将所述计算节点服务器当前的本地梯度累计值传输给参数服务器中,由所述参数服务器对全局训练模型基于所述本地梯度累计值进行梯度更新;
梯度累计单元,用于计算当前本地梯度并将所述当前本地梯度累加到所述本地梯度累计值中。
7.一种计算节点服务器,包括:
存储器,用于存储应用程序及所述应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现功能:监测对目标数据进行分布式训练的全局轮换更新步数;基于所述全局轮换更新步数满足所述计算节点服务器的全局梯度更新条件的判断,将所述计算节点服务器当前的本地梯度累计值传输给参数服务器中,由所述参数服务器对全局训练模型基于所述本地梯度累计值进行梯度更新;基于所述全局轮换更新步数不满足所述计算节点服务器的全局梯度更新条件的判断,计算当前本地梯度并将所述当前本地梯度累加到所述本地梯度累计值中。
8.一种训练集群,包括:
参数服务器,用于存储全局训练模型;
计算节点服务器,用于监测对目标数据进行分布式训练的全局轮换更新步数;基于所述全局轮换更新步数满足所述计算节点服务器的全局梯度更新条件的判断,将所述计算节点服务器当前的本地梯度累计值传输给参数服务器中,由所述参数服务器对全局训练模型基于所述本地梯度累计值进行梯度更新;基于所述全局轮换更新步数不满足所述计算节点服务器的全局梯度更新条件的判断,计算当前本地梯度并将所述当前本地梯度累加到所述本地梯度累计值中。
9.根据权利要求8所述的训练集群,其特征在于,所述计算节点服务器具体用于:基于本地训练模型,计算当前本地梯度;将所述当前本地梯度累加到所述本地梯度累计值中。
10.根据权利要求8或9所述的训练集群,其特征在于,所述计算节点服务器还用于:接收所述参数服务器传输的全局训练模型,所述参数服务器传输的全局训练模型为经过基于所述本地梯度累计值的梯度更新后的模型;将接收到的全局训练模型更新为所述计算节点服务器的本地训练模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810833991.XA CN109102075A (zh) | 2018-07-26 | 2018-07-26 | 一种分布式训练中的梯度更新方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810833991.XA CN109102075A (zh) | 2018-07-26 | 2018-07-26 | 一种分布式训练中的梯度更新方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109102075A true CN109102075A (zh) | 2018-12-28 |
Family
ID=64847709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810833991.XA Pending CN109102075A (zh) | 2018-07-26 | 2018-07-26 | 一种分布式训练中的梯度更新方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109102075A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109919313A (zh) * | 2019-01-31 | 2019-06-21 | 华为技术有限公司 | 一种梯度传输的方法及分布式训练*** |
CN110619388A (zh) * | 2019-09-20 | 2019-12-27 | 北京金山数字娱乐科技有限公司 | 一种分布式训练中梯度同步方法及装置 |
CN110633796A (zh) * | 2019-09-05 | 2019-12-31 | 北京达佳互联信息技术有限公司 | 模型更新方法、装置、电子设备及存储介质 |
CN111191796A (zh) * | 2019-11-25 | 2020-05-22 | 上海联影智能医疗科技有限公司 | 用于增强分布式医疗网络的***和方法 |
CN111625603A (zh) * | 2020-05-28 | 2020-09-04 | 浪潮电子信息产业股份有限公司 | 一种分布式深度学习的梯度信息更新方法及相关装置 |
CN111753997A (zh) * | 2020-06-28 | 2020-10-09 | 北京百度网讯科技有限公司 | 分布式训练方法、***、设备及存储介质 |
CN112528108A (zh) * | 2019-09-17 | 2021-03-19 | 华为技术有限公司 | 一种模型训练***、模型训练中梯度聚合的方法及装置 |
CN112800467A (zh) * | 2021-02-18 | 2021-05-14 | 支付宝(杭州)信息技术有限公司 | 基于数据隐私保护的在线模型训练方法、装置以及设备 |
WO2021136065A1 (zh) * | 2019-12-30 | 2021-07-08 | 中兴通讯股份有限公司 | 深度学习方法、装置、网络设备和可读存储介质 |
WO2024021486A1 (zh) * | 2022-07-29 | 2024-02-01 | 天翼云科技有限公司 | 一种负载均衡方法、***、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156810A (zh) * | 2015-04-26 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 通用机器学习算法模型训练方法、***和计算节点 |
CN106297774A (zh) * | 2015-05-29 | 2017-01-04 | 中国科学院声学研究所 | 一种神经网络声学模型的分布式并行训练方法及*** |
CN107578094A (zh) * | 2017-10-25 | 2018-01-12 | 济南浪潮高新科技投资发展有限公司 | 基于参数服务器和fpga实现神经网络分布式训练的方法 |
CN107784364A (zh) * | 2016-08-25 | 2018-03-09 | 微软技术许可有限责任公司 | 机器学习模型的异步训练 |
CN108009642A (zh) * | 2016-10-31 | 2018-05-08 | 腾讯科技(深圳)有限公司 | 分布式机器学习方法和*** |
WO2018130267A1 (en) * | 2017-01-10 | 2018-07-19 | Huawei Technologies Co., Ltd. | Systems and methods for fault tolerance recover during training of a model of a classifier using a distributed system |
-
2018
- 2018-07-26 CN CN201810833991.XA patent/CN109102075A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156810A (zh) * | 2015-04-26 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 通用机器学习算法模型训练方法、***和计算节点 |
CN106297774A (zh) * | 2015-05-29 | 2017-01-04 | 中国科学院声学研究所 | 一种神经网络声学模型的分布式并行训练方法及*** |
CN107784364A (zh) * | 2016-08-25 | 2018-03-09 | 微软技术许可有限责任公司 | 机器学习模型的异步训练 |
CN108009642A (zh) * | 2016-10-31 | 2018-05-08 | 腾讯科技(深圳)有限公司 | 分布式机器学习方法和*** |
WO2018130267A1 (en) * | 2017-01-10 | 2018-07-19 | Huawei Technologies Co., Ltd. | Systems and methods for fault tolerance recover during training of a model of a classifier using a distributed system |
CN107578094A (zh) * | 2017-10-25 | 2018-01-12 | 济南浪潮高新科技投资发展有限公司 | 基于参数服务器和fpga实现神经网络分布式训练的方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109919313A (zh) * | 2019-01-31 | 2019-06-21 | 华为技术有限公司 | 一种梯度传输的方法及分布式训练*** |
CN109919313B (zh) * | 2019-01-31 | 2021-06-08 | 华为技术有限公司 | 一种梯度传输的方法及分布式训练*** |
CN110633796B (zh) * | 2019-09-05 | 2022-04-08 | 北京达佳互联信息技术有限公司 | 模型更新方法、装置、电子设备及存储介质 |
CN110633796A (zh) * | 2019-09-05 | 2019-12-31 | 北京达佳互联信息技术有限公司 | 模型更新方法、装置、电子设备及存储介质 |
CN112528108A (zh) * | 2019-09-17 | 2021-03-19 | 华为技术有限公司 | 一种模型训练***、模型训练中梯度聚合的方法及装置 |
CN112528108B (zh) * | 2019-09-17 | 2023-02-07 | 华为技术有限公司 | 一种模型训练***、模型训练中梯度聚合的方法及装置 |
CN110619388A (zh) * | 2019-09-20 | 2019-12-27 | 北京金山数字娱乐科技有限公司 | 一种分布式训练中梯度同步方法及装置 |
CN110619388B (zh) * | 2019-09-20 | 2024-04-02 | 北京金山数字娱乐科技有限公司 | 一种分布式训练中梯度同步方法及装置 |
CN111191796A (zh) * | 2019-11-25 | 2020-05-22 | 上海联影智能医疗科技有限公司 | 用于增强分布式医疗网络的***和方法 |
CN111191796B (zh) * | 2019-11-25 | 2024-03-22 | 上海联影智能医疗科技有限公司 | 用于增强分布式医疗网络的***和方法 |
WO2021136065A1 (zh) * | 2019-12-30 | 2021-07-08 | 中兴通讯股份有限公司 | 深度学习方法、装置、网络设备和可读存储介质 |
CN111625603A (zh) * | 2020-05-28 | 2020-09-04 | 浪潮电子信息产业股份有限公司 | 一种分布式深度学习的梯度信息更新方法及相关装置 |
WO2021238274A1 (zh) * | 2020-05-28 | 2021-12-02 | 浪潮电子信息产业股份有限公司 | 一种分布式深度学习的梯度信息更新方法及相关装置 |
CN111753997A (zh) * | 2020-06-28 | 2020-10-09 | 北京百度网讯科技有限公司 | 分布式训练方法、***、设备及存储介质 |
CN112800467B (zh) * | 2021-02-18 | 2022-08-26 | 支付宝(杭州)信息技术有限公司 | 基于数据隐私保护的在线模型训练方法、装置以及设备 |
CN112800467A (zh) * | 2021-02-18 | 2021-05-14 | 支付宝(杭州)信息技术有限公司 | 基于数据隐私保护的在线模型训练方法、装置以及设备 |
WO2024021486A1 (zh) * | 2022-07-29 | 2024-02-01 | 天翼云科技有限公司 | 一种负载均衡方法、***、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109102075A (zh) | 一种分布式训练中的梯度更新方法及相关设备 | |
CN106484528B (zh) | 分布式框架中用于实现集群动态伸缩的方法及装置 | |
CN108829494B (zh) | 基于负载预测的容器云平台智能资源优化方法 | |
WO2021104096A1 (zh) | 容器云环境下的任务调度方法、装置、服务器及存储装置 | |
CN103729248B (zh) | 一种基于缓存感知的确定待迁移任务的方法和装置 | |
CN106681826B (zh) | 丛集运算架构的资源规划方法、***及装置 | |
Khorsand et al. | A self‐learning fuzzy approach for proactive resource provisioning in cloud environment | |
CN110352584A (zh) | 跨越本地网络的设备流量的自动优先级排序 | |
CN111147307A (zh) | 基于深度强化学习的服务功能链可靠部署方法 | |
CN108009016A (zh) | 一种资源负载均衡控制方法及集群调度器 | |
CN104993941B (zh) | 一种基于Openflow网络高容错性虚拟网络映射算法 | |
CN108965014A (zh) | QoS感知的服务链备份方法及*** | |
CN108667657B (zh) | 一种面向sdn的基于局部特征信息的虚拟网络映射方法 | |
CN113794748B (zh) | 一种性能感知的服务功能链智能部署方法及装置 | |
CN103561055B (zh) | 基于会话的云计算环境下Web应用自动弹性扩展方法 | |
CN109150987A (zh) | 基于主机层和容器层的两层式容器集群弹性扩容方法 | |
CN104050043A (zh) | 基于共享缓存感知的虚拟机调度方法和装置 | |
CN109568948A (zh) | 网络游戏中对象的运动状态同步方法及装置 | |
CN103699443B (zh) | 任务分发方法及扫描器 | |
CN113032102B (zh) | 资源重调度方法、装置、设备和介质 | |
Ray et al. | Prioritized fault recovery strategies for multi-access edge computing using probabilistic model checking | |
CN107682211A (zh) | 一种网络拓扑结构确定方法、装置及计算机可读存储介质 | |
CN106453127A (zh) | 一种令牌处理方法和装置 | |
CN111858458A (zh) | 一种互联通道的调整方法、装置、***、设备和介质 | |
CN109379747A (zh) | 无线网络多控制器部署和资源分配方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |