CN114492834A - 训练方法、训练装置、设备、系统及存储介质 - Google Patents
训练方法、训练装置、设备、系统及存储介质 Download PDFInfo
- Publication number
- CN114492834A CN114492834A CN202210044726.XA CN202210044726A CN114492834A CN 114492834 A CN114492834 A CN 114492834A CN 202210044726 A CN202210044726 A CN 202210044726A CN 114492834 A CN114492834 A CN 114492834A
- Authority
- CN
- China
- Prior art keywords
- training
- trained
- data
- node
- time
- 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
- 238000012549 training Methods 0.000 title claims abstract description 886
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000004590 computer program Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 10
- 230000006870 function Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了一种训练方法、训练装置、设备、系统及存储介质,涉及数据处理领域,尤其涉及大数据处理领域。具体实现方案为:分布式训练系统中的第一训练节点在确定满足缓存启动条件的情况下,获取目标待训练数据,其中,所述目标待训练数据为总待训练数据中的部分数据,所述总待训练数据为对所述分布式训练系统所需训练的待训练模型进行异步训练的总数据;所述第一训练节点在确定满足训练条件的情况下,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果;所述第一训练节点将所述当前训练结果发送至所述分布式训练系统中的第二训练节点。如此,提升了训练效率。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及大数据处理领域。
背景技术
分布式训练(Distributed Training)技术是采用多台设备以一定的连接方式进行通信和数据传输,共同完成模型训练的技术。如何利用分布式训练系统来高效完成模型训练,成为当下研究的一个课题。
发明内容
本公开提供了一种训练方法、训练装置、设备、系统及存储介质。
根据本公开的一方面,提供了一种训练方法,包括:
分布式训练系统中的第一训练节点在确定满足缓存启动条件的情况下,获取目标待训练数据,其中,所述目标待训练数据为总待训练数据中的部分数据,所述总待训练数据为对所述分布式训练系统所需训练的待训练模型进行异步训练的总数据;
所述第一训练节点在确定满足训练条件的情况下,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果;
所述第一训练节点将所述当前训练结果发送至所述分布式训练系统中的第二训练节点。
根据本公开的另一方面,提供了一种训练装置,包括:
数据获取单元,用于在确定满足缓存启动条件的情况下,获取目标待训练数据,其中,所述目标待训练数据为总待训练数据中的部分数据,所述总待训练数据为对分布式训练系统所需训练的待训练模型进行异步训练的总数据;
模型训练单元,用于在确定满足训练条件的情况下,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果;
发送单元,用于将所述当前训练结果发送至所述分布式训练系统中的第二训练节点。
根据本公开的再一方面,提供了一种训练系统,至少包括:第一训练节点和第二训练节点;其中,
所述第一训练节点,用于在确定满足缓存启动条件的情况下,获取目标待训练数据,其中,所述目标待训练数据为总待训练数据中的部分数据,所述总待训练数据为对所述分布式训练系统所需训练的待训练模型进行异步训练的总数据;在确定满足训练条件的情况下,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果;将所述当前训练结果发送至第二训练节点;
所述第二训练节点,用于接收所述第一训练节点所发送的所述当前训练结果。
根据本公开的再一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行以上所述的方法。
根据本公开的再一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行以上所述的方法。
根据本公开的再一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现以上所述的方法。
这样,为有效提升训练效率提供了保证。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例训练方法的实现流程示意图;
图2是根据本公开实施例训练系统的示意图;
图3是根据本公开实施例训练方法在一具体示例中的场景示意图;
图4是根据本公开实施例训练方法在另一具体示例中的训练节点之间交互图;
图5是根据本公开实施例训练方法在一具体示例中两训练节点的场景示意图;
图6是根据本公开实施例训练方法在一具体示例中基于两训练节点的实现流程示意图一;
图7是根据本公开实施例训练方法在再一具体示例中的训练节点之间交互图;
图8是根据本公开实施例训练方法在一具体示例中训练节点中功能模块的示意图;
图9是根据本公开实施例训练方法在一具体示例中基于两训练节点的实现流程示意图二;
图10是根据本公开实施例第一训练节点的结构示意图;
图11是用来实现本公开实施例的训练方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在当今互联网场景下,用户行为数据和资讯数据(比如)呈爆炸趋势,采用单机(也即单个设备)进行模型训练,会受限于单机的计算资源和内存资源,效率较低,不能满足时效性要求。在采用深度学习进行模型训练的场景中,为了满足大数据量和大模型训练对内存和训练时效的要求,解决单机训练的弊端,会增加更多的训练设备,以此来扩充计算资源和内存资源。但是,又会存在资源浪费的问题。因为,如此,如何权衡单个设备进行模型训练以及多个设备进行模型训练的利弊,成为亟待解决的问题。
基于此,本公开方案提供了一种训练方案,采用多设备进行数据缓存的形式进行训练加速,一方面,不会占用额外的内存资源,一方面可以将使用完毕的设备进行资源回收,不浪费资源,有效平衡了资源利用和效率效率的需求。
具体地,本公开方案提供了一种训练方法,具体地,如图1和图2所示,包括:
步骤S101:分布式训练系统中的第一训练节点在确定满足缓存启动条件的情况下,获取目标待训练数据,其中,所述目标待训练数据为总待训练数据中的部分数据,所述总待训练数据为对所述分布式训练系统所需训练的待训练模型进行异步训练的总数据。需要说明的是,为了确保训练任务的正常进行,所述分布式训练系统中参与本次模型训练的训练节点可以预先下载该待训练模型。
步骤S102:所述第一训练节点在确定满足训练条件的情况下,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果。
步骤S103:所述第一训练节点将所述当前训练结果发送至所述分布式训练系统中的第二训练节点。
这样,本公开方案采用了异步训练方式,训练节点是在数据缓存,也即数据下载完成的情况下进行异步训练,所以,训练节点无需考虑网络资源的开销问题,能够最大程度地使用计算资源来进行模型训练,为有效提升训练效率提供了保证。
这里,可以理解的是,所述异步训练指所述分布式训练系统训练节点各自进行自己的训练任务,并将训练结果传递至下一训练节点,使下一训练节点基于上一节点的训练结果更新参数信息,然后接力进行模型训练。而且,各训练节点在进行训练的时候,所使用的待训练数据,为总待训练数据中的部分数据,同时,为了训练效果,各训练节点所使用的待训练数据不同,如此,实现基于不同训练节点,以及基于总待训练数据,异步对待训练模型进行训练的目的。而且,该训练任务的终止条件可以为总待训练数据使用完毕,或者待训练模型收敛,或者训练轮数达到指定次数等,本公开方案对此不作限制。
在本公开方案的一具体示例中,所述第一训练节点可以在如下时机获取目标待训练数据,具体地,以上所述的分布式训练系统中的第一训练节点在确定满足缓存启动条件的情况下,获取目标待训练数据,可以具体包括:
分布式训练系统中的第一训练节点在获取到所述分布式训练系统中的第三训练节点启动异步训练的第一训练启动消息的情况下,获取目标待训练数据;其中,所述第一训练启动消息是所述第三训练节点基于第一待训练数据对预先存储的所述待训练模型进行异步训练后所生成的;所述第一待训练数据为所述总待训练数据中的除所述目标待训练数据之外的至少部分数据。需要说明的是,本公开方案所述的分布式训练系统中不同训练节点进行训练任务时所使用的待训练数据不同,但均是从总待训练数据中的部分数据。如此,来确保训练结果的有效性,避免重复使用相同的待训练数据而导致训练不充分的问题。
也就是说,所述第三训练节点在开启训练任务之后,会向第一训练节点发送消息,也即第一训练启动消息;相应地,所述第一训练节点可以在接收到该消息,也即第一训练启动消息之后,触发下载任务,即获取目标待训练数据,如此,预先下载训练任务所需使用的训练数据,为有效减少整体训练时间,提升训练效率奠定了基础。
本公开方案中,为了最大程度地隐藏掉第一训练节点数据下载(也即数据缓存)的时间,可以在第三训练节点启动训练的时候,向所述第一训练节点发送第一训练启动消息,此时,在第三训练节点进行异步训练的同时,使得第一训练节点预先下载用于异步训练的数据,也即目标待训练数据,如此,来最大化避免由于目标待训练数据未下载完成而导致第一训练节点无法正常接力训练。
在本公开方案的一具体示例中,在第三训练节点训练完成得到第一训练结果的情况下,还可以将该第一训练结果发送至第一训练节点,具体包括:
所述第一训练节点接收所述第三训练节点发送的第一训练结果;
基于此,以上所述的第一训练节点在确定满足训练条件的情况下,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果,具体包括:
所述第一训练节点在缓存完成所述目标待训练数据的情况下,基于所述第一训练结果更新预先存储的所述待训练模型的参数信息,并在更新完成之后,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果。
也就是说,在所述第一训练节点接收到所述第三训练节点发送的第一训练结果后,即可启动训练任务;需要说明的是,此时,若第一训练节点已经缓存完成所述目标待训练数据,则直接进行训练任务,即基于所述第一训练结果更新预先存储的所述待训练模型的参数信息,并在更新完成之后,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练;否则,所述第一训练节点等待所述目标待训练数据缓存完成,也即下载完成,并在下载完成后进行训练任务。
举例来说,如图3所示,第三训练节点可以理解为所述第一训练节点的上一节点,所述第二训练节点为第一训练节点的下一节点;此时,第三训练节点、第一训练节点、第二训练节点依次按照先后顺序进行异步训练,并将自身的训练结果发送至下一训练节点,以供下一节点在上一节点的训练结果的基础进行训练,比如,第三训练节点将第一训练结果发送至第一训练节点,以使所述第一训练节点在第一训练结果的基础上再次进行训练,并将训练结束后得到的当前训练结果发送至第二训练节点,以供所述第二训练节点在所述第一训练节点的训练结果(即当前训练结果)的基础上,再次进行训练,如此,来完成异步训练。
详细步骤如图3和图4所示,所述第三训练节点接收到自身对应的上一训练节点的消息后,下载第一待训练数据(也即图3所示的数据块n),并在下载完成后,启动训练任务,同时,生成第一训练启动消息,并将该第一训练启动消息发送至第一训练节点;相应地,所述第一训练节点接收到第一训练启动消息后,启动下载任务,也即获取自身训练任务所需的目标待训练数据(也即图3所示的数据块n+1);进一步地,第三训练节点训练完成得到第一训练结果后,将所述第一训练结果发送至第一训练节点,所述第一训练节点接收到所述第一训练结果,并在确定缓存完成所述目标待训练数据的情况下,启动训练任务,即基于所述第一训练结果更新预先存储的所述待训练模型的参数信息,并在更新完成之后,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果,进而将当前训练结果发送至第二训练节点,以供所述第二训练节点在所述当前训练结果的基础上,基于自身缓存的待训练数据(也即图3所示的数据块n+3)进行训练。这里,所述n为大于等于1正整数。
举例来说,若当前训练节点(比如第一训练节点)下载数据需要10分钟时间,而上一训练节点(比如第三训练节点)训练任务仅需5分钟,此时,利用本公开方案,由于当前训练节点能够在上一训练节点训练任务启动的时候同步下载数据,所以,能够有效缩短数据下载时间在整个系统(即分布式训练系统)完成模型训练的总用时上的占比,同时,也能够有效减少总同时,实现最大化隐藏数据下载的耗时,让整个系统完成模型训练的耗时全部体现在无法掩盖的计算开销上,进而从整体上提升训练效率。
这样,由于本公开方案能够实现训练缓存数据,并顺序启动训练任务,所以,避免了现有分布式训练过程中由于数据乱序而导致的训练效果波动的问题;同时,保证了数据读取和训练的有序性。
在本公开方案的一具体示例中,所述第一训练节点还可以在如下时机获取目标待训练数据,具体包括:
所述第一训练节点获取所述分布式训练系统中其他训练节点的历史缓存时间以及历史训练时间;其中,所述历史缓存时间表征所述其他训练节点缓存自身异步训练所需的所述总待训练数据中部分数据的缓存时间;所述历史训练时间表征所述其他训练节点基于自身所缓存的总待训练数据中部分数据进行异步训练所需的训练时间;
所述第一训练节点基于获取的所述其他训练节点的历史缓存时间以及历史训练时间,确定针对所述第一训练节点的缓存启动时间;
基于此,以上所述的分布式训练系统中的第一训练节点在确定满足缓存启动条件的情况下,获取目标待训练数据,包括:
所述分布式训练系统中的第一训练节点确定到达所述缓存启动时间的情况下,获取目标待训练数据。
也就是说,所述第一训练节点能够基于其他训练节点的历史耗时,比如,历史缓存耗时(或称历史下载时间,也即历史缓存时间)和历史训练耗时(也即历史训练时间),来确定自身下载目标待训练数据的时机,也即确定出缓存启动时间,进而在到达下载时机,也即到达所述缓存启动时间的情况下,下载目标待训练数据。这样,来有效缩短数据下载时间在整个系统(即分布式训练系统)完成模型训练的总用时上的占比,同时,也能够有效减少总用时,实现最大化隐藏数据下载的耗时,让整个系统完成模型训练的耗时全部体现在无法掩盖的计算开销上,进而从整体上提升训练效率。
需要说明的是,实际应用中,可能存在未到达缓存启动时间,但是,却接收到第三训练节点的第一训练启动消息的情况下,此时,可以预先设置下载时机的优先级,比如,缓存启动时间的优先级高于接收到第三训练节点的第一训练启动消息以触发下载任务的优先级,所以,此时,即便接收到第三训练节点的第一训练启动消息,也可以不触发下载,只有在到达缓存启动时间后才出发下载任务。或者,存在到达缓存启动时间,但是,却未接收到第三训练节点的第一训练启动消息的情况下,此时,由于缓存启动时间的优先级高于接收到第三训练节点的第一训练启动消息以触发下载任务的优先级,所以,即便未接收到第三训练节点的第一训练启动消息,也可以触发下载任务。可以理解的是,以上仅是优先级示例,优先级的确认可以基于实际场景的实际需求而设置,本公开方案对此不作限制。
此时,以上所述的分布式训练系统中的第一训练节点在确定满足缓存启动条件的情况下,获取目标待训练数据,还可以具体包括:
所述第一训练节点获取到第三训练节点的第一训练启动消息但未到达所述缓存启动时间,而且,确定第一训练启动消息的优先级高于所述缓存启动时间的优先级的情况下,获取目标待训练数据;或者,
所述第一训练节点获取到第三训练节点的第一训练启动消息但未到达所述缓存启动时间,而且,确定第一训练启动消息的优先级低于所述缓存启动时间的优先级的情况下,在确定到达所述缓存启动时间的情况下,获取目标待训练数据;或者,
所述第一训练节点未获取到第三训练节点的第一训练启动消息但到达所述缓存启动时间,而且,确定第一训练启动消息的优先级低于所述缓存启动时间的优先级的情况下,获取目标待训练数据。
需要说明的是,该示例中,所述其他训练节点为所述分布式训练系统所有参与本次模型训练的训练节点,比如,包括如图3和图4所示的第三训练节点和第二训练节点。
在本公开方案的一具体示例中,在确定缓存启动时间的时候,还可以参考待下载的目标待训练数据的数据量,如此,提升得到的缓存启动时间的精确度,为最大化隐藏数据下载的耗时,降低整体训练耗时,提升整体训练效率奠定了基础。具体地,以上所述的第一训练节点基于获取的所述其他训练节点的历史缓存时间以及历史训练时间,确定针对所述第一训练节点的缓存启动时间,具体包括:所述第一训练节点基于获取的所述其他训练节点的历史缓存时间、历史训练时间、以及异步训练所需的数据量特征,确定针对所述第一训练节点的缓存启动时间。可以理解的是,此处所述的异步训练所需的数据量特征可以理解为当前第一训练节点进行异步训练所需的数据量大小,换言之,即目标待训练数据的数据量大小,即所述目标待训练数据需要满足所述数据量特征。
这样,通过提升得到的缓存启动时间的精确度,来进一步缩短数据下载时间在整个系统(即分布式训练系统)完成模型训练的总用时上的占比,同时,也进一步有效减少总用时,实现最大化隐藏数据下载的耗时,让整个系统完成模型训练的耗时全部体现在无法掩盖的计算开销上,进而从整体上提升训练效率。
在本公开方案的一具体示例中,第一训练节点还可以基于自身的情况,比如,节点特征,包括但不限于:剩余存储资源、通信资源等,来确定所需下载的数据量大小,进一步,提升训练节点的智能化,同时,为高效完成模型训练任务奠定了基础。具体地,所述第一训练节点确定异步训练所需的数据量特征;基于此,以上所述的获取目标待训练数据,则具体为:获取满足所述数据量特征的目标待训练数据。如此,来有针对性缓存待训练数据,为最大化隐藏数据下载的耗时进一步提供了支持。
在本公开方案的一具体示例中,在第一训练节点确定出所需下载的数据量大小后,所述第一训练节点还可以在如下时机获取目标待训练数据,具体包括:
所述第一训练节点获取所述分布式训练系统中其他训练节点的历史缓存时间以及历史训练时间;其中,所述历史缓存时间表征所述其他训练节点缓存自身异步训练所需的所述总待训练数据中部分数据的缓存时间;所述历史训练时间表征所述其他训练节点基于自身所缓存的总待训练数据中部分数据进行异步训练所需的训练时间;
所述第一训练节点基于获取的所述其他训练节点的历史缓存时间以及历史训练时间,调整所述数据量特征;
其中,所述分布式训练系统中的第一训练节点在确定满足缓存启动条件的情况下,获取目标待训练数据,包括:
所述分布式训练系统中的第一训练节点在确定满足缓存启动条件的情况下,获取满足调整后的数据量特征的目标待训练数据。
需要说明的是,该示例中,所述其他训练节点为所述分布式训练系统所有参与本次模型训练的训练节点,比如,包括如图3和图4所示的第三训练节点和第二训练节点。
也就是说,所述第一训练节点能够基于其他训练节点的历史耗时,比如,历史缓存耗时(或称历史下载时间,也即历史缓存时间)和历史训练耗时(也即历史训练时间),来确定调整所需下载的数据量大小,比如,基于其他训练节点的历史耗时获知平均的历史下载时间长于平均的历史训练时间,此时,可以减小数据量的大小,来缩短下载时间,如此,来有效缩短数据下载时间在整个系统(即分布式训练系统)完成模型训练的总用时上的占比,同时,也能够有效减少总用时,实现最大化隐藏数据下载的耗时,让整个系统完成模型训练的耗时全部体现在无法掩盖的计算开销上,进而从整体上提升训练效率。
在一具体示例中,在调整所述数据量特征后,还可以确定出缓存启动时间,比如,基于所述第一训练节点基于获取的所述其他训练节点的历史缓存时间、历史训练时间,以及调整的所述数据量特征,确定出缓存启动时间,进而在到达下载时机,也即到达所述缓存启动时间的情况下,下载满足调整后的数据量特征的目标待训练数据。
可以理解的是,基于调整后的数据量特征确定出缓存启动时间后,可以采用以上所述的下载时机来下载满足调整的所述数据量特征的目标待训练数据,此处不再赘述。
在本公开方案的一具体示例中,所述第二训练节点和第三训练节点为同一节点。也就是说,该示例中,所述分布式训练系统中用于进行本次模型训练的训练节点为两个,如此,基于两个训练节点来实现异步训练。
举例来说,如图5和图6所示,以两个训练节点为例,基于总待训练数据进行异步训练的主要流程包括:
在首次训练的时候,第一训练节点和第二训练节点同时进行数据下载,以避免训练时等待数据下载而降低了训练效率。
第一训练节点基于下载的数据块1对预先存储的待训练模型进行异步训练,并得到训练结果1,将训练结果1发送至第二训练节点;
第二训练节点基于训练结果1更新预先存储的待训练模型的参数信息,并在更新完成后,基于预先下载的数据块2进行异步训练,同时,比如参数更新的时候,向第一训练节点发送训练启动消息1,以使所述第一训练节点下载再次训练所需的数据块3;进一步地,所述第二训练节点得到训练结果2,将训练结果2发送至第一训练节点;
所述第一训练节点基于训练结果2更新自身的待训练模型的参数信息,并在更新完成后,基于预先下载的数据块3进行异步训练,同时,比如参数更新的时候,向第二训练节点发送训练启动消息2,以使所述第二训练节点下载再次训练所需的数据块4;
如此循环,直至待训练模型收敛,或者所述总待训练数据对待训练模型训练完毕,或者,或者训练轮数,也即所有训练节点加和起来的总训练次数达到预设次数为止,完成本次模型训练任务。
在本公开方案的一具体示例中,为了确保所述第二训练节点能够预先现在自身所需的待训练数据,如图7所示,所述第一训练节点还可以向所述第二训练节点发送第二训练启动消息;其中,所述第二训练启动消息是所述第一训练节点基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练后所生成的,如此,使得所述第二训练节点基于该第二训练启动消息获取(也即下载)自身训练所需的待训练数据。
在本公开方案的一具体示例中,所述第一训练节点还可以在发送训练结果之后,即获取再次模型训练所需使用的待训练数据,具体地,所述第一训练节点在确定向所述第二训练节点发送所述当前训练结果之后,获取新的目标待训练数据。
需要注意的是,本公开方案获取下载数据的时机可以有三种:
第一种:接收到上一训练节点所发送的训练启动消息,此时,获取自身训练所需的待训练数据;
第二种:基于历史耗时,确定出缓存启动时间,在到达缓存启动时间的情况下,获取自身训练所需的待训练数据;
第三种:在得到训练结果后,向下一训练节点发送训练结果之后,即自身训练所需的待训练数据。
实际应用中,上述三种方式可以择一而使用,或者,使用其中的任意兼容的两种值得注意的是,若使用上述任意兼容的两种情况,比如第一种和第二种,此时,可以所使用的两种方式的优先级,基于优先级来确定获取自身训练所需的待训练数据的时机。又或者,在实际场景中,当前训练节点只要满足上述三种情况的任意一种情况,即获取自身训练所需的待训练数据。
这样,来最大化缩短数据下载时间在整个系统(即分布式训练系统)完成模型训练的总用时上的占比,同时,也最大化减少总用时,实现最大化隐藏数据下载的耗时,让整个系统完成模型训练的耗时全部体现在无法掩盖的计算开销上,进而从整体上提升训练效率。
在本公开方案的一具体示例中,为确保异步训练的正常进行,所述分布式训练系统中的训练节点在成功启动下载任务后,还会向上一训练节点(比如第一训练节点)反馈下载启动消息(也即缓存启动消息),以告知上一训练节点成功启动下载任务,相反地,若上一训练节点未收到下载启动消息,则说明下载失败,此时,上一训练节点则需要重新确认新的训练节点;具体地,所述第一训练节点在未接收到所述第二训练节点反馈的缓存启动消息的情况下,将所述当前训练结果发送至所述分布式训练系统中第二训练节点的下一训练节点,以触发所述第二训练节点的下一训练节点进行数据缓存。换言之,当第二训练节点无法正常下载的情况下,所述第一训练节点即会跳过该第二训练节点,直接至第二训练节点的下一训练节点,如此,来确保整个异步训练的正常进行。
这样,一方面不会影响当前训练任务的稳定性,另一方面需要快速恢复的仅仅是数据缓存这一个环节,对整体任务的影响非常有限,因此极大程度地提升了训练的稳定性和健壮性。
需要说明的是,本公开方案所述分布式训练系统中的训练节点为对等节点,基于此,以上所述的第一、第二、第三仅是为了便于描述,并非用于限制本公开方案。
这样,本公开方案采用了异步训练方式,训练节点是在数据缓存,也即数据下载完成的情况下进行异步训练的,所以,训练节点无需考虑网络资源的开销问题,能够最大程度地使用计算资源来进行模型训练,为有效提升训练效率提供了保证。
以下结合具体示例对本公开方案做进一步详细说明,具体地
本示例公开的一种训练方法,具体地公开了一种多设备(也即多个训练节点)预先缓存的分布式集群训练加速方法,主要是采用多设备依次进行数据流的缓存来节省训练过程中由于数据下载和拷贝而导致的耗时,如此,一方面能够满足对训练效率的需求,另一方面还能有效避免占用过多设备而导致的资源浪费。
可以理解的是,本公开方案所述的训练节点可以具体为具有计算资源和存储资源的任何电子设备,比如个人电脑、服务器等,本公开方案对此不作限制。
需要说明的是,本公开方案适用于训练模型(也即以上所述的分布式训练系统所需训练的待训练模型)能够在单机(也即单个设备)内存中存储的情况,实际应用中,若训练模型的规模超过了单机内存的上限,则无法适用于本公开方案。
进一步地,本公开方案多设备预先缓存的分布式集群训练加速方法支持在多节点并发的数据缓存和参数交换的基础上设计实现的,具体地,如图8所示,主要包括三部分:
第一部分,调度端(也即调度功能),主要功能包括:一,负责调度当前训练节点缓存的数据块的大小,通过平衡计算资源和数据下载的耗时,来控制和调整数据预先下载的时间,或数据块的大小,或者同时调整数据预先下载的时间和数据块的大小,如此,来最大程度地隐藏整个模型训练的过程中,数据下载的耗时占比,同时,最大程度地避免由于下载时间过长而导致的训练耗时较长、效率较低的问题;二,负责启动当前训练节点上的训练任务。
第二部分,训练端(也即训练功能),主要负责在训练前获取上一训练节点的训练结果,并更新当前训练节点的待训练模型的参数信息,进而启动本地训练。
第三部分:数据缓存端(也即数据缓存功能),主要用于获取调度端确定的数据缓存的元信息(比如包括需要缓存的数据存在多少份,每份数据的数据量大小等),并根据元信息进行数据缓存,并在缓存完成后,通知训练端。比如,在缓存完成后,等待调度端发起的启动训练的命令,进而通知训练端进行训练。
需要理解的是,以上所述的调度端、训练端以及数据缓存端,均为逻辑功能,实际应用中,本公开方案所述的训练节点兼具上述调度端、训练端以及数据缓存端的功能。
基于上述功能,本公开方案有效解决了下述关键问题
第一、数据顺序缓存的问题:
本公开方案采用了多节点顺序缓存的方式来解决分布式训练过程中由于数据乱序而导致的训练效果波动的问题,各训练节点顺序缓存待训练数据,如此,保证了数据读取的顺序性。同时,训练任务也是基于数据缓存顺序依次启动的,即便存在不同训练节点均缓存了待训练数据,即从分布式训练系统角度而言,相当于同时缓存了多份数据,此时,依然能够按照顺序进行模型训练。
第二,容错问题:
由于网络通信的不可靠性,在采用大规模分布式训练的任务中,网络出现异常会导致整体的任务异常,而重新训练是一个非常浪费资源的操作。而本公开方案中,由于每个训练节点均是本地独立训练,所以,在训练过程中不会引入网络风险,训练的稳定性和性能优于分布式训练。而且,在数据缓存的过程中若出现异常的训练节点,本公开方案能够及时在分布式训练系统中申请新的训练节点来进行数据缓存,这样,一方面不会影响当前训练任务的稳定性,另一方面需要快速恢复的仅仅是数据缓存这一个环节,对整体任务的影响非常有限,因此极大程度地提升了训练的稳定性和健壮性。
第三,数据下载和训练耗时的平衡:
每个训练节点均会将数据下载和模型训练两过程的耗时以及性能相关数据反馈至其他训练节点,以使其他训练节点的调度端根据训练任务中数据下载的耗时和模型训练的耗时来动态的平衡下载时机(也即缓存启动时间)和/或,需要下载的待训练数据的数据量特征,如此,来尽可能地平衡数据下载耗时和训练耗时,以最大化隐藏数据下载的耗时,让整个系统完成模型训练的耗时全部体现在无法掩盖的计算开销上,进而从整体上提升训练效率。
第四,训练性能的优化:
由于不需要再考虑数据缓存和网络资源的开销,所以,训练节点能够将全部计算资源用于训练任务,而且采用全异步训练模式,以满功耗地形式进行异步训练,最大程度地提升了设备性能,同时,也尽可能地降低了计算耗时,如此,提升了整体的训练性能。
具体地,结合图9对本公开方案的步骤进行详细说明,这里,以分布式训练系统中包括两个训练节点,分别为第一训练节点(也即设备1)和第二训练节点(也即设备2)为例进行说明,具体包括:
步骤1:设备1缓存第一份数据,当数据块1缓存完成后,开启设备1的异步训练。
这里,可以将总待训练数据进行分块处理,得到多个数据块,每次训练使用一个或若干个数据块,设备在一次训练过程中所使用的一个或若干个数据块可称为份,即第一份数据包括一个或若干个数据块。需要说明的是,不同设备之间所使用的数据块不同,换言之,数据块不能重复使用,如此,来避免无效训练。
步骤2:设备1的异步训练(也即多线程异步训练)开启的同时,设备2根据下载任务开始缓存第二份数据;
步骤3:设备1训练完成,将训练结果(模型参数)直接同步至设备2。
步骤4:设备2完成第二份数据的缓存后,在基于训练1的训练结果更新完成模型参数的基础上,再次进行异步训练(也即多线程异步训练)。
步骤5:设备2的异步训练开启的同时,设备1根据下载任务开始缓存第三份数据。
如此交替循环,直至训练完成。
本示例能够有效降低传统分布式训练所带来的大开销,高分布式网络风险及训练数据乱序的问题,而且,采用本公开方案的训练方法,在分布式训练系统包含两设备的情况下,能够使训练效率提升100%,在分布式网络系统异常的情况下,采用本公开方案的训练方法,也可以快速恢复训练,使训练速度提升超过500%。
本公开方案还提供了一种训练装置,比如,对应于第一训练节点,如图10所示,包括:
数据获取单元1001,用于在确定满足缓存启动条件的情况下,获取目标待训练数据,其中,所述目标待训练数据为总待训练数据中的部分数据,所述总待训练数据为对分布式训练系统所需训练的待训练模型进行异步训练的总数据;
模型训练单元1002,用于在确定满足训练条件的情况下,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果;
发送单元1003,用于将所述当前训练结果发送至所述分布式训练系统中的第二训练节点。
在本公开方案的一具体示例中,所述数据获取单元,具体用于:
在获取到所述分布式训练系统中的第三训练节点的第一训练启动消息的情况下,获取目标待训练数据;
其中,所述第一训练启动消息是所述第三训练节点基于第一待训练数据对预先存储的所述待训练模型进行异步训练后所生成的;所述第一待训练数据为所述总待训练数据中的除所述目标待训练数据之外的至少部分数据。
在本公开方案的一具体示例中,还包括:接收单元;其中,
所述接收单元,用于接收所述第三训练节点发送的第一训练结果;
所述模型训练单元,具体用于在缓存完成所述目标待训练数据的情况下,基于所述第一训练结果更新预先存储的所述待训练模型的参数信息,并在更新完成之后,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果。
在本公开方案的一具体示例中,所述第二训练节点和第三训练节点为同一节点。
在本公开方案的一具体示例中,所述数据获取单元,还用于:
获取所述分布式训练系统中其他训练节点的历史缓存时间以及历史训练时间;其中,所述历史缓存时间表征所述其他训练节点缓存自身异步训练所需的所述总待训练数据中部分数据的缓存时间;所述历史训练时间表征所述其他训练节点基于自身所缓存的总待训练数据中部分数据进行异步训练所需的训练时间;
基于获取的所述其他训练节点的历史缓存时间以及历史训练时间,确定针对所述第一训练节点的缓存启动时间;
确定到达所述缓存启动时间的情况下,获取目标待训练数据。
在本公开方案的一具体示例中,所述数据获取单元,具体用于:
基于获取的所述其他训练节点的历史缓存时间、历史训练时间、以及异步训练所需的数据量特征,确定针对所述第一训练节点的缓存启动时间。
在本公开方案的一具体示例中,所述数据获取单元,还用于确定异步训练所需的数据量特征;获取满足所述数据量特征的目标待训练数据。
在本公开方案的一具体示例中,所述数据获取单元,还用于:
获取所述分布式训练系统中其他训练节点的历史缓存时间以及历史训练时间;其中,所述历史缓存时间表征所述其他训练节点缓存自身异步训练所需的所述总待训练数据中部分数据的缓存时间;所述历史训练时间表征所述其他训练节点基于自身所缓存的总待训练数据中部分数据进行异步训练所需的训练时间;
所述第一训练节点基于获取的所述其他训练节点的历史缓存时间以及历史训练时间,调整所述数据量特征;
在确定满足缓存启动条件的情况下,获取满足调整后的数据量特征的目标待训练数据。
在本公开方案的一具体示例中,所述发送单元,还用于向所述第二训练节点发送第二训练启动消息;其中,所述第二训练启动消息是所述第一训练节点基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练后所生成的。
在本公开方案的一具体示例中,所述数据获取单元,还用于在确定向所述第二训练节点发送所述当前训练结果之后,获取新的目标待训练数据。
在本公开方案的一具体示例中,所述发送单元,还用于在未接收到所述第二训练节点反馈的缓存启动消息的情况下,将所述当前训练结果发送至所述分布式训练系统中第二训练节点的下一训练节点,以触发所述第二训练节点的下一训练节点进行数据缓存。
上述第一训练节点中各单元具体功能可参照上述方法描述,这里不再赘述。
本公开方案还提供了一种训练系统,比如分布式训练系统,如图2所示,至少包括第一训练节点和第二训练节点;其中,
所述第一训练节点,用于在确定满足缓存启动条件的情况下,获取目标待训练数据,其中,所述目标待训练数据为总待训练数据中的部分数据,所述总待训练数据为对所述分布式训练系统所需训练的待训练模型进行异步训练的总数据;在确定满足训练条件的情况下,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果;将所述当前训练结果发送至第二训练节点;
所述第二训练节点,用于接收所述第一训练节点所发送的所述当前训练结果。
在本公开方案的一具体示例中,所述训练系统还可以包括第三训练节点;其中,
所述第三训练节点,用于基于第一待训练数据对预先存储的所述待训练模型进行异步训练,生成第一训练启动消息,并发送至第一训练节点;其中,所述第一待训练数据为所述总待训练数据中的除所述目标待训练数据之外的至少部分数据。
这里,所述第三训练节点的相关功能可参照上述方法描述,此处不再赘述。
可以理解的是,所述训练系统可参数上述分布式训练系统的相关描述,同理,所述第一训练节点和第二训练节点的具体功能,也可参照以上方法的相关描述,此处不再赘述。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图11示出了可以用来实施本公开的实施例的示例电子设备1100的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图11所示,设备1100包括计算单元1101,其可以根据存储在只读存储器(ROM)1102中的计算机程序或者从存储单元1108加载到随机访问存储器(RAM)1103中的计算机程序,来执行各种适当的动作和处理。在RAM 1103中,还可存储设备1100操作所需的各种程序和数据。计算单元1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
设备1100中的多个部件连接至I/O接口1105,包括:输入单元1106,例如键盘、鼠标等;输出单元1107,例如各种类型的显示器、扬声器等;存储单元1108,例如磁盘、光盘等;以及通信单元1109,例如网卡、调制解调器、无线通信收发机等。通信单元1109允许设备1100通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1101可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1101的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1101执行上文所描述的各个方法和处理,例如训练方法。例如,在一些实施例中,训练方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1108。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1102和/或通信单元1109而被载入和/或安装到设备1100上。当计算机程序加载到RAM 1103并由计算单元1101执行时,可以执行上文描述的训练方法的一个或多个步骤。备选地,在其他实施例中,计算单元1101可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行训练方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (26)
1.一种训练方法,包括:
分布式训练系统中的第一训练节点在确定满足缓存启动条件的情况下,获取目标待训练数据,其中,所述目标待训练数据为总待训练数据中的部分数据,所述总待训练数据为对所述分布式训练系统所需训练的待训练模型进行异步训练的总数据;
所述第一训练节点在确定满足训练条件的情况下,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果;
所述第一训练节点将所述当前训练结果发送至所述分布式训练系统中的第二训练节点。
2.根据权利要求1所述的方法,其中,所述分布式训练系统中的第一训练节点在确定满足缓存启动条件的情况下,获取目标待训练数据,包括:
分布式训练系统中的第一训练节点在获取到所述分布式训练系统中的第三训练节点的第一训练启动消息的情况下,获取目标待训练数据;
其中,所述第一训练启动消息是所述第三训练节点基于第一待训练数据对预先存储的所述待训练模型进行异步训练后所生成的;所述第一待训练数据为所述总待训练数据中的除所述目标待训练数据之外的至少部分数据。
3.根据权利要求2所述的方法,还包括:
所述第一训练节点接收所述第三训练节点发送的第一训练结果;
其中,所述第一训练节点在确定满足训练条件的情况下,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果,包括:
所述第一训练节点在缓存完成所述目标待训练数据的情况下,基于所述第一训练结果更新预先存储的所述待训练模型的参数信息,并在更新完成之后,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果。
4.根据权利要求2或3所述的方法,其中,所述第二训练节点和第三训练节点为同一节点。
5.根据权利要求1所述的方法,还包括:
所述第一训练节点获取所述分布式训练系统中其他训练节点的历史缓存时间以及历史训练时间;其中,所述历史缓存时间表征所述其他训练节点缓存自身异步训练所需的所述总待训练数据中部分数据的缓存时间;所述历史训练时间表征所述其他训练节点基于自身所缓存的总待训练数据中部分数据进行异步训练所需的训练时间;
所述第一训练节点基于获取的所述其他训练节点的历史缓存时间以及历史训练时间,确定针对所述第一训练节点的缓存启动时间;
其中,所述分布式训练系统中的第一训练节点在确定满足缓存启动条件的情况下,获取目标待训练数据,包括:
所述分布式训练系统中的第一训练节点确定到达所述缓存启动时间的情况下,获取目标待训练数据。
6.根据权利要求5所述的方法,其中,所述第一训练节点基于获取的所述其他训练节点的历史缓存时间以及历史训练时间,确定针对所述第一训练节点的缓存启动时间,包括:
所述第一训练节点基于获取的所述其他训练节点的历史缓存时间、历史训练时间、以及异步训练所需的数据量特征,确定针对所述第一训练节点的缓存启动时间。
7.根据权利要求1至6任一项所述的方法,还包括:
所述第一训练节点确定异步训练所需的数据量特征;
其中,所述获取目标待训练数据,包括:
获取满足所述数据量特征的目标待训练数据。
8.根据权利要求7所述的方法,还包括:
所述第一训练节点获取所述分布式训练系统中其他训练节点的历史缓存时间以及历史训练时间;其中,所述历史缓存时间表征所述其他训练节点缓存自身异步训练所需的所述总待训练数据中部分数据的缓存时间;所述历史训练时间表征所述其他训练节点基于自身所缓存的总待训练数据中部分数据进行异步训练所需的训练时间;
所述第一训练节点基于获取的所述其他训练节点的历史缓存时间以及历史训练时间,调整所述数据量特征;
其中,所述分布式训练系统中的第一训练节点在确定满足缓存启动条件的情况下,获取目标待训练数据,包括:
所述分布式训练系统中的第一训练节点在确定满足缓存启动条件的情况下,获取满足调整后的数据量特征的目标待训练数据。
9.根据权利要求1至8任一项所述的方法,还包括:
所述第一训练节点向所述第二训练节点发送第二训练启动消息;其中,所述第二训练启动消息是所述第一训练节点基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练后所生成的。
10.根据权利要求1至9任一项所述的方法,还包括:
所述第一训练节点在确定向所述第二训练节点发送所述当前训练结果之后,获取新的目标待训练数据。
11.根据权利要求1至10任一项所述的方法,还包括:
所述第一训练节点在未接收到所述第二训练节点反馈的缓存启动消息的情况下,将所述当前训练结果发送至所述分布式训练系统中第二训练节点的下一训练节点,以触发所述第二训练节点的下一训练节点进行数据缓存。
12.一种训练装置,包括:
数据获取单元,用于在确定满足缓存启动条件的情况下,获取目标待训练数据,其中,所述目标待训练数据为总待训练数据中的部分数据,所述总待训练数据为对分布式训练系统所需训练的待训练模型进行异步训练的总数据;
模型训练单元,用于在确定满足训练条件的情况下,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果;
发送单元,用于将所述当前训练结果发送至所述分布式训练系统中的第二训练节点。
13.根据权利要求12所述的训练装置,其中,所述数据获取单元,具体用于:
在获取到所述分布式训练系统中的第三训练节点的第一训练启动消息的情况下,获取目标待训练数据;
其中,所述第一训练启动消息是所述第三训练节点基于第一待训练数据对预先存储的所述待训练模型进行异步训练后所生成的;所述第一待训练数据为所述总待训练数据中的除所述目标待训练数据之外的至少部分数据。
14.根据权利要求13所述的训练装置,还包括:接收单元;其中,
所述接收单元,用于接收所述第三训练节点发送的第一训练结果;
所述模型训练单元,具体用于在缓存完成所述目标待训练数据的情况下,基于所述第一训练结果更新预先存储的所述待训练模型的参数信息,并在更新完成之后,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果。
15.根据权利要求13或14所述的训练装置,其中,所述第二训练节点和第三训练节点为同一节点。
16.根据权利要求12所述的训练装置,其中,所述数据获取单元,还用于:
获取所述分布式训练系统中其他训练节点的历史缓存时间以及历史训练时间;其中,所述历史缓存时间表征所述其他训练节点缓存自身异步训练所需的所述总待训练数据中部分数据的缓存时间;所述历史训练时间表征所述其他训练节点基于自身所缓存的总待训练数据中部分数据进行异步训练所需的训练时间;
基于获取的所述其他训练节点的历史缓存时间以及历史训练时间,确定针对所述第一训练节点的缓存启动时间;
确定到达所述缓存启动时间的情况下,获取目标待训练数据。
17.根据权利要求16所述的训练装置,其中,所述数据获取单元,具体用于:
基于获取的所述其他训练节点的历史缓存时间、历史训练时间、以及异步训练所需的数据量特征,确定针对所述第一训练节点的缓存启动时间。
18.根据权利要求12至17任一项所述的训练装置,其中,所述数据获取单元,还用于确定异步训练所需的数据量特征;获取满足所述数据量特征的目标待训练数据。
19.根据权利要求18所述的训练装置,其中,所述数据获取单元,还用于:
获取所述分布式训练系统中其他训练节点的历史缓存时间以及历史训练时间;其中,所述历史缓存时间表征所述其他训练节点缓存自身异步训练所需的所述总待训练数据中部分数据的缓存时间;所述历史训练时间表征所述其他训练节点基于自身所缓存的总待训练数据中部分数据进行异步训练所需的训练时间;
所述第一训练节点基于获取的所述其他训练节点的历史缓存时间以及历史训练时间,调整所述数据量特征;
在确定满足缓存启动条件的情况下,获取满足调整后的数据量特征的目标待训练数据。
20.根据权利要求12至19任一项所述的训练装置,其中,所述发送单元,还用于向所述第二训练节点发送第二训练启动消息;其中,所述第二训练启动消息是所述第一训练节点基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练后所生成的。
21.根据权利要求12至20任一项所述的训练装置,其中,所述数据获取单元,还用于在确定向所述第二训练节点发送所述当前训练结果之后,获取新的目标待训练数据。
22.根据权利要求12至21任一项所述的训练装置,其中,所述发送单元,还用于在未接收到所述第二训练节点反馈的缓存启动消息的情况下,将所述当前训练结果发送至所述分布式训练系统中第二训练节点的下一训练节点,以触发所述第二训练节点的下一训练节点进行数据缓存。
23.一种训练系统,至少包括:第一训练节点和第二训练节点;其中,
所述第一训练节点,用于在确定满足缓存启动条件的情况下,获取目标待训练数据,其中,所述目标待训练数据为总待训练数据中的部分数据,所述总待训练数据为对所述分布式训练系统所需训练的待训练模型进行异步训练的总数据;在确定满足训练条件的情况下,基于所述目标待训练数据对预先存储的所述待训练模型进行异步训练,得到当前训练结果;将所述当前训练结果发送至第二训练节点;
所述第二训练节点,用于接收所述第一训练节点所发送的所述当前训练结果。
24.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-11中任一项所述的方法。
25.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-11中任一项所述的方法。
26.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210044726.XA CN114492834A (zh) | 2022-01-14 | 2022-01-14 | 训练方法、训练装置、设备、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210044726.XA CN114492834A (zh) | 2022-01-14 | 2022-01-14 | 训练方法、训练装置、设备、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114492834A true CN114492834A (zh) | 2022-05-13 |
Family
ID=81512670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210044726.XA Pending CN114492834A (zh) | 2022-01-14 | 2022-01-14 | 训练方法、训练装置、设备、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114492834A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115222041A (zh) * | 2022-06-22 | 2022-10-21 | 北京百度网讯科技有限公司 | 用于模型训练的图生成方法、装置、电子设备及存储介质 |
CN117555697A (zh) * | 2024-01-11 | 2024-02-13 | 之江实验室 | 一种面向分布式训练的缓存加载系统、方法、装置及设备 |
-
2022
- 2022-01-14 CN CN202210044726.XA patent/CN114492834A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115222041A (zh) * | 2022-06-22 | 2022-10-21 | 北京百度网讯科技有限公司 | 用于模型训练的图生成方法、装置、电子设备及存储介质 |
CN115222041B (zh) * | 2022-06-22 | 2023-09-01 | 北京百度网讯科技有限公司 | 用于模型训练的图生成方法、装置、电子设备及存储介质 |
CN117555697A (zh) * | 2024-01-11 | 2024-02-13 | 之江实验室 | 一种面向分布式训练的缓存加载系统、方法、装置及设备 |
CN117555697B (zh) * | 2024-01-11 | 2024-04-05 | 之江实验室 | 一种面向分布式训练的缓存加载系统、方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7138150B2 (ja) | 分散型トレーニング方法、システム、デバイス、記憶媒体、及びプログラム | |
CN114492834A (zh) | 训练方法、训练装置、设备、系统及存储介质 | |
CN107832143B (zh) | 一种物理机资源的处理方法和装置 | |
CN112333234B (zh) | 分布式机器学习训练方法、装置、电子设备及存储介质 | |
CN111562969B (zh) | 一种区块链的智能合约实现方法、装置、设备和介质 | |
CN115794337A (zh) | 资源调度方法、装置、云平台、设备及存储介质 | |
CN114911596B (zh) | 针对模型训练的调度方法、装置、电子设备和存储介质 | |
CN111782229B (zh) | 一种小程序启动方法、装置及电子设备 | |
CN114490048A (zh) | 任务执行方法、装置、电子设备及计算机存储介质 | |
CN113419865B (zh) | 云资源处理方法、相关装置及计算机程序产品 | |
CN110113176B (zh) | 用于配置服务器的信息同步方法及装置 | |
CN112329919B (zh) | 模型训练方法及装置 | |
CN114143196B (zh) | 实例配置更新方法、装置、设备、存储介质及程序产品 | |
CN113556402B (zh) | 数据下载调度方法、装置及电子设备 | |
CN114116220B (zh) | 一种gpu共享控制方法、gpu共享控制装置及存储介质 | |
CN112156453B (zh) | 实例自适应调整方法、装置、计算机可读存储介质及设备 | |
CN114265692A (zh) | 服务调度方法、装置、设备以及存储介质 | |
CN111611068B (zh) | 分布式系统中的数据写方法、服务器及客户端 | |
CN113971083A (zh) | 任务调度方法、装置、设备、介质及产品 | |
CN117201483B (zh) | 文件传输方法、装置、电子设备以及存储介质 | |
CN113760319B (zh) | 一种更新应用的方法和系统 | |
CN116489090B (zh) | 流量控制方法、装置、系统、电子设备及存储介质 | |
CN113138881B (zh) | 分布式文件系统备份方法、装置和系统 | |
CN113220491B (zh) | 远程调用自适应负载均衡方法、装置、系统及计算机装备 | |
CN116028245B (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 |