CN115936095B - 一种参数梯度同步方法、装置、设备及存储介质 - Google Patents
一种参数梯度同步方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115936095B CN115936095B CN202310135785.2A CN202310135785A CN115936095B CN 115936095 B CN115936095 B CN 115936095B CN 202310135785 A CN202310135785 A CN 202310135785A CN 115936095 B CN115936095 B CN 115936095B
- Authority
- CN
- China
- Prior art keywords
- list
- execution period
- group
- current execution
- tensor data
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及分布式模型训练技术领域,公开了一种参数梯度同步方法、装置、设备及存储介质,包括:获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表;基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表;对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理;将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理。能够提高模型训练过程中的网络带宽利用率及梯度数据同步性能。
Description
技术领域
本发明涉及分布式模型训练技术领域,特别涉及一种参数梯度同步方法、装置、设备及存储介质。
背景技术
近年来,深度神经网络获得了广泛的应用,并且其模型尺寸变得越来越大,这种增长使得高效的模型训练变得更加重要,分布式训练应运而生。目前的分布式模型训练方法中最常用且应用最广泛的是数据并行训练方法。数据并行方法将待训练的输入数据进行划分,每次训练迭代过程中在多块加速设备上同时训练多个batch数据。数据并行又分为同步数据并行和异步数据并行两种方法。其中同步数据并行方法,是待所有加速设备计算出模型权重参数的梯度后,统一将多个梯度合在一起得到全局一致的梯度数据,最后利用该梯度数据去更新共享模型参数。这种方法可以减少用于计算梯度的权重的陈旧性,使模型最终能够达到较高的收敛精度,具有较好的统计效率,因此应用广泛。在同步数据并行的分布式算法中,模型参数的梯度同步是必不可少的一个关键步骤。现有的梯度同步方案中,张量融合可能会导致模型参数梯度同步的效率低下。理想情况下,张量融合过程会在整个训练过程中产生均衡的融合响应,产生更大尺寸的通信缓冲区以提高网络利用率。但由于张量融合与控制逻辑的执行周期密切相关,所产生的通信缓冲区大小是动态变化的。一些周期内会以只有几个甚至只有一个待处理的张量,从而在较小的缓冲区产生较低的通信效率。
因此,上述技术问题亟待本领域技术人员解决。
发明内容
有鉴于此,本发明的目的在于提供一种参数梯度同步方法、装置、设备及存储介质,能够提高模型训练过程中的网络带宽利用率及梯度数据同步性能。其具体方案如下:
本申请的第一方面提供了一种参数梯度同步方法,包括:
获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表;其中,当前执行周期的响应列表包含当前执行周期的待规约参数梯度的张量数据;
基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表;其中,所述参数梯度分组列表通过线下预先对所述待训练模型的各参数梯度进行均衡分组得到;
对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理;
将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理。
可选的,进行线上训练之前,还包括:
在线下确定所述待训练模型的各参数梯度大小,并确定训练过程中将要使用的融合缓冲区大小及确定各参数梯度执行顺序;
按照预设分组规则根据各参数梯度大小、融合缓冲区大小及各参数梯度执行顺序对所述待训练模型的各参数梯度进行均衡分组,得到以各参数梯度对应的张量数据表示的所述参数梯度分组列表。
可选的,所述在线下确定各参数梯度执行顺序,包括:
在线下根据所述待训练模型的各参数梯度之间的相互间依赖关系对所述待训练模型的各参数梯度在训练迭代过程中的大致执行顺序进行分析,得到包含各参数梯度执行顺序的顺序列表。
可选的,所述预设分组规则至少包括下列规则:
规则一:同一组中的参数梯度为所述顺序列表中次序相邻的一组梯度;
规则二:同一组中的参数梯度大小总和不大于融合缓冲区大小且两者大小差值不大于预设阈值;
规则三:不同组中的参数梯度不相交。
可选的,所述获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表,包括:
触发所述分布式训练框架开启多个进程,以利用多个进程启动对所述待训练模型的线上分布式训练;
触发各进程启动后台线程,以利用后台线程周期性执行控制逻辑得到当前执行周期的响应列表。
可选的,得到所述参数梯度分组列表之后,还包括:
将所述参数梯度分组列表在本地进行存储;
在对当前执行周期的响应列表中的张量数据进行均衡划分时,利用后台线程通过组获取器获取所述参数梯度分组列表。
可选的,所述获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表之后,还包括:
判断上一个执行周期的暂不融合列表是否为空,如果否,则将上一个执行周期的暂不融合列表中的张量数据与当前执行周期的响应列表中的张量数据进行合并,并将合并后的新响应列表作为当前执行周期的响应列表。
可选的,所述将上一个执行周期的暂不融合列表中的张量数据与当前执行周期的响应列表中的张量数据进行合并之后,还包括:
对上一个执行周期的暂不融合列表中的张量数据进行删除。
可选的,所述基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表,包括:
确定当前执行周期的响应列表中的各张量数据在所述参数梯度分组列表中所属的组序号,得到目标组序号;
针对每个目标组序号,判断当前执行周期的响应列表中是否包含该目标组序号在所述参数梯度分组列表中对应组的全部张量数据,如果是,则将该目标组序号在所述参数梯度分组列表中的对应组划分至当前执行周期的待融合组列表;
将当前执行周期的响应列表中的剩余张量数据划分至当前执行周期的暂不融合列表。
可选的,所述确定当前执行周期的响应列表中的各张量数据在所述参数梯度分组列表中所属的组序号,包括:
针对当前执行周期的响应列表中的每个张量数据,通过在所述参数梯度分组列表中查找的方式来确定该张量数据在所述参数梯度分组列表中的所属组,并获取所属组的组序号。
可选的,所述通过在所述参数梯度分组列表中查找的方式来确定该张量数据在所述参数梯度分组列表中的所属组,并获取所属组的组序号之后,还包括:
判断组序号集中是否包含该张量数据的组序号,如果否,则将该张量数据的组序号存储至所述组序号集中,如果是,则对当前执行周期的响应列表中的下一个张量数据进行相同处理;
直至当前执行周期的响应列表中的全部张量数据均处理完成,得到最终组序号集,并将最终组序号集中存储的组序号确定为目标组序号。
可选的,所述针对每个目标组序号,判断当前执行周期的响应列表中是否包含该目标组序号在所述参数梯度分组列表中的对应组的全部张量数据,包括:
针对最终组序号集中的每个组序号,确定该组序号在所述参数梯度分组列表中的对应组并判断对应组中的全部张量数据是否均能在当前执行周期的响应列表中对应找到;
如果是,则判定当前执行周期的响应列表中包含该目标组序号在所述参数梯度分组列表中的对应组的全部张量数据,如果否,则对最终组序号集中的下一个组序号进行相同处理。
可选的,所述将当前执行周期的响应列表中的剩余张量数据划分至当前执行周期的暂不融合列表之前,还包括:
对当前执行周期的响应列表中的全部张量数据与当前执行周期的待融合组列表中的全部张量数据求差值,得到当前执行周期的响应列表中的剩余张量数据。
可选的,所述对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理,包括:
对当前执行周期的待融合组列表中的各组进行遍历,以将各组中的张量数据拷贝至融合缓冲区,并在融合缓冲区进行张量融合及规约处理。
可选的,所述在融合缓冲区进行张量融合及规约处理之后,还包括:
对最终组序号集中存储的组序号进行删除,并将删除后的空序号集作为下一个执行周期的组序号集。
可选的,所述参数梯度同步方法中的当前执行周期的响应列表为全局一致的响应列表。
可选的,所述参数梯度同步方法中的所述参数梯度分组列表中的列表成员为各参数梯度对应的张量名称。
本申请的第二方面提供了一种参数梯度同步装置,包括:
响应列表获取模块,用于获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表;其中,当前执行周期的响应列表包含当前执行周期的待规约参数梯度的张量数据;
均衡划分模块,用于基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表;其中,所述参数梯度分组列表通过线下预先对所述待训练模型的各参数梯度进行均衡分组得到;
第一同步模块,用于对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理;
第二同步模块,用于将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理。
本申请的第三方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述参数梯度同步方法。
本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述参数梯度同步方法。
本申请中,先获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表;其中,当前执行周期的响应列表包含当前执行周期的待规约参数梯度的张量数据;然后基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表;其中,所述参数梯度分组列表通过线下预先对所述待训练模型的各参数梯度进行均衡分组得到;最后对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理;将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理。
本申请对应的有益效果为:通过利用参数梯度分组列表对待训练模型的待规约参数梯度进行均衡划分,进一步确定当前执行周期的响应列表中的张量数据哪些在当前执行周期进行融合,哪些不在当前执行周期中融合,对于在当前执行周期中融合的张量数据进行正常的融合及规约处理,对于不在当前执行周期中融合的张量数据保留至下一执行周期再做处理,提高了模型训练过程中的网络带宽利用率及梯度数据同步性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种参数梯度同步方法流程图;
图2为本申请提供的一种具体的参数梯度同步方法流程图;
图3为本申请提供的一种具体的目标组序号确定方法流程图;
图4为本申请提供的一种具体的参数梯度同步方法示意图;
图5为本申请提供的一种参数梯度同步装置结构示意图;
图6为本申请提供的一种参数梯度同步电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的分布式训练框架下的张量融合可能会导致模型参数梯度同步的效率低下,这是由于张量融合由于张量数量、尺寸大小是动态变化的,会有很大的差异,从而导致网络利用率低、参数梯度同步效率低。针对上述技术缺陷,本申请提供一种参数梯度同步方案,通过利用参数梯度分组列表对待训练模型的待规约参数梯度进行均衡划分,进一步确定当前执行周期的响应列表中的张量数据哪些在当前执行周期进行融合,哪些不在当前执行周期中融合,对于在当前执行周期中融合的张量数据进行正常的融合及规约处理,对于不在当前执行周期中融合的张量数据保留至下一执行周期再做处理,提高了模型训练过程中的网络带宽利用率及梯度数据同步性能。
图1为本申请实施例提供的一种参数梯度同步方法流程图。参见图1所示,该参数梯度同步方法包括:
S11:获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表;其中,当前执行周期的响应列表包含当前执行周期的待规约参数梯度的张量数据。
本实施例中,分布式训练框架可以为Horovod,Horovod是一个通用的通信库,为了在GPU、CPU和TPU等加速设备的数据并行训练中执行集合通信而开发,支持各种深度学习框架。Horovod采用coordinator-worker通信模型和缓存机制结合的方式来协调各训练节点。在Horovod的分布式训练运行的过程中,各个后台线程定期执行控制逻辑,每次执行被称为一个周期。
首先获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表。当前执行周期的响应列表(标识为RL)为全局一致的响应列表。具体的,触发所述分布式训练框架开启多个进程,以利用多个进程启动对所述待训练模型的线上分布式训练;触发各进程启动后台线程,以利用后台线程周期性执行控制逻辑得到当前执行周期的响应列表。以Horovod为例,在分布式训练过程中,Horovodrun开启多进程启动分布式训练,Horovod中各进程启动后台线程,台线程定期(周期性地)执行控制逻辑,获取响应列表。该响应列表是全局一致的响应列表。响应列表中存储的响应是满足全局归约条件的待同步的各个梯度张量信息。
S12:基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表;其中,所述参数梯度分组列表通过线下预先对所述待训练模型的各参数梯度进行均衡分组得到。
本实施例中,在获取到响应列表之后,不直接对其进行张量融合操作。而是利用预先生成的所述参数梯度分组列表来进一步确定响应列表中的张量哪些可以在当前执行周期进行融合,哪些在当前执行周期中不进行融合。即基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表。其中,待融合组列表(标识为FGL)中张量在当前执行周期进行融合,暂不融合列表(标识为NGL)中张量在当前执行周期不进行融合。
本实施例中,所述参数梯度分组列表(标识为GL)通过线下预先对所述待训练模型的各参数梯度进行均衡分组得到,此为线下参数梯度分组阶段,该阶段的主要目的是在线下静态生成待训练模型的均衡的参数梯度分组列表,实现方法如下:在线下确定所述待训练模型的各参数梯度大小,并确定训练过程中将要使用的融合缓冲区大小及确定各参数梯度执行顺序;按照预设分组规则根据各参数梯度大小、融合缓冲区大小及各参数梯度执行顺序对所述待训练模型的各参数梯度进行均衡分组,得到以各参数梯度对应的张量数据表示的所述参数梯度分组列表。其中,可以根据所述待训练模型的各参数梯度之间的相互间依赖关系对所述待训练模型的各参数梯度在训练迭代过程中的大致执行顺序进行分析,得到包含各参数梯度执行顺序的顺序列表。
具体的,先分析待训练模型的各参数梯度的大小,然后确定训练过程中将要使用的融合缓冲区大小,并分析待训练模型的各参数梯度在训练迭代过程中的大致执行顺序及相互间的依赖关系,得到一个参数梯度的大致执行顺序列表RSL。根据前面三个步骤的分析结果,对待训练模型参数梯度进行分组划分,得到参数梯度分组列表GL,其成员为参数梯度对应的张量名字。
本实施例中,所述预设分组规则即分组原则,至少包括如下三个规则:规则一:同一组中的参数梯度为所述顺序列表中次序相邻的一组梯度;规则二:同一组中的参数梯度大小总和不大于融合缓冲区大小且两者大小差值不大于预设阈值;规则三:不同组中的参数梯度不相交。生成所述参数梯度分组列表之后,将所述参数梯度分组列表在本地进行存储。在对当前执行周期的响应列表中的张量数据进行均衡划分时,利用后台线程通过组获取器获取所述参数梯度分组列表。
可以理解,因为张量融合操作的操作对象是当前周期中获取的响应列表中的张量,但是不同的周期中获取的响应列表中的张量数量、尺寸大小是动态变化的,会有很大的差异,如果每次都融合当前周期获取的响应列表中的张量,在某些周期中可以从响应列表中获取较多较大尺寸的张量放入融合缓冲区,能够提高网络利用率。但是在某些周期中,只能获取到少量尺寸较小的张量进行融合和同步,网络利用率较低。通过本实施例的均衡划分,能够提高网络带宽利用率。
S13:对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理。
S14:将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理。
本实施例中,对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理,即对可以融合的张量进行融合并执行allreduce同步操作。以Horovod为例,Horovod会对响应列表进行预处理,将多个响应聚合成更大的融合响应,这个过程在Horovod文档中被称为张量融合。张量融合的目的是为了批处理小规模allreduce(全局归约),提高网络带宽利用率,从而提高性能。
本实施例中,对于暂不融合列表,将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理,即对不能融合的张量则保留至下一周期再做处理。
可见,本申请实施例先获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表;其中,当前执行周期的响应列表包含当前执行周期的待规约参数梯度的张量数据;然后基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表;其中,所述参数梯度分组列表通过线下预先对所述待训练模型的各参数梯度进行均衡分组得到;最后对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理;将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理。本申请实施例通过利用参数梯度分组列表对待训练模型的待规约参数梯度进行均衡划分,进一步确定当前执行周期的响应列表中的张量数据哪些在当前执行周期进行融合,哪些不在当前执行周期中融合,对于在当前执行周期中融合的张量数据进行正常的融合及规约处理,对于不在当前执行周期中融合的张量数据保留至下一执行周期再做处理,提高了模型训练过程中的网络带宽利用率及梯度数据同步性能。
图2为本申请实施例提供的一种具体的参数梯度同步方法流程图。参见图2所示,该参数梯度同步方法包括:
S21:获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表;其中,当前执行周期的响应列表包含当前执行周期的待规约参数梯度的张量数据。
本实施例中,关于上述步骤S21的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
S22:判断上一个执行周期的暂不融合列表是否为空,如果否,则将上一个执行周期的暂不融合列表中的张量数据与当前执行周期的响应列表中的张量数据进行合并,并将合并后的新响应列表作为当前执行周期的响应列表。
本实施例中,每个周期在张量融合之前都需要考虑上个周期遗留下来的不能融合的张量,即在获取到原始的当前执行周期的响应列表后,还需要判断上一个执行周期的暂不融合列表是否为空,如果否,则将上一个执行周期的暂不融合列表中的张量数据与当前执行周期的响应列表中的张量数据进行合并,并将合并后的新响应列表作为当前执行周期的响应列表。此时还需要对上一个执行周期的暂不融合列表中的张量数据进行删除。这里需要说明的是,待融合组列表和暂不融合列表可以为单独的创建的一个专门存放相应张量数据的列表,各个周期共用,需要随时更新。待融合组列表和暂不融合列表在构建后还需要初始化列表为空。
S23:确定当前执行周期的响应列表中的各张量数据在所述参数梯度分组列表中所属的组序号,得到目标组序号。
本实施例中,确定当前执行周期的响应列表中的各张量数据在所述参数梯度分组列表中所属的组序号,得到目标组序号。即查找当前执行周期的响应列表中的各张量在所述参数梯度分组列表中所属的组序号,不重复的为目标组序号。具体包括如下步骤(图3):
S231:针对当前执行周期的响应列表中的每个张量数据,通过在所述参数梯度分组列表中查找的方式来确定该张量数据在所述参数梯度分组列表中的所属组,并获取所属组的组序号。
S232:判断组序号集中是否包含该张量数据的组序号,如果否,则将该张量数据的组序号存储至所述组序号集中,如果是,则对当前执行周期的响应列表中的下一个张量数据进行相同处理。
S233:直至当前执行周期的响应列表中的全部张量数据均处理完成,得到最终组序号集,并将最终组序号集中存储的组序号确定为目标组序号。
本实施例中,针对当前执行周期的响应列表中的每个张量数据,通过在所述参数梯度分组列表中查找的方式来确定该张量数据在所述参数梯度分组列表中的所属组,并获取所属组的组序号。判断组序号集中是否包含该张量数据的组序号,如果否,则将该张量数据的组序号存储至所述组序号集中,如果是,则对当前执行周期的响应列表中的下一个张量数据进行相同处理。直至当前执行周期的响应列表中的全部张量数据均处理完成,得到最终组序号集,并将最终组序号集中存储的组序号确定为目标组序号。
这里需要构建一个组序号集G_sets,遍历当前执行周期的响应列表中的各个张量,对每个张量进行如下处理:找到其在所述参数梯度分组列表中所属的组,获取组序号;查看该组序号是否已存在于组序号集G_sets中,若不存在,将该组序号存入G_sets,如果已经存在,则跳过对该张量的处理,继续处理新响应列表中的下一个张量,直到响应列表中的所有张量都处理完成。
S24:针对每个目标组序号,判断当前执行周期的响应列表中是否包含该目标组序号在所述参数梯度分组列表中对应组的全部张量数据,如果是,则将该目标组序号在所述参数梯度分组列表中的对应组划分至当前执行周期的待融合组列表。
本实施例中,针对每个目标组序号,判断当前执行周期的响应列表中是否包含该目标组序号在所述参数梯度分组列表中对应组的全部张量数据,如果是,则将该目标组序号在所述参数梯度分组列表中的对应组划分至当前执行周期的待融合组列表。具体的,针对最终组序号集中的每个组序号,确定该组序号在所述参数梯度分组列表中的对应组并判断对应组中的全部张量数据是否均能在当前执行周期的响应列表中对应找到;如果是,则判定当前执行周期的响应列表中包含该目标组序号在所述参数梯度分组列表中的对应组的全部张量数据,如果否,则对最终组序号集中的下一个组序号进行相同处理。
即分析最终组序号集中标记的各个组中的成员张量是否在当前执行周期的响应列表中都存在,将其成员都能在当前执行周期的响应列表中找到的各个组存入待融合组列表。具体的,遍历处理最终组序号集中标记的每个组序号,对每个组执行如下处理:根据当前组序号找到其在所述参数梯度分组列表中的位置,获取对应的组信息;查找对应组中的张量是否都能在当前执行周期的响应列表中对应找到,如果都可以找到,则将该组存入待融合组列表,如果该组中存在不能在当前执行周期的响应列表中找到的张量,则跳过对该组的处理,继续处理最终组序号集中的下一个组,直到最终组序号集中的所有组都处理完成。
S25:将当前执行周期的响应列表中的剩余张量数据划分至当前执行周期的暂不融合列表。
本实施例中,将当前执行周期的响应列表中的剩余张量数据划分至当前执行周期的暂不融合列表。具体的,对当前执行周期的响应列表中的全部张量数据与当前执行周期的待融合组列表中的全部张量数据求差值,得到当前执行周期的响应列表中的剩余张量数据。
S26:对当前执行周期的待融合组列表中的各组进行遍历,以将各组中的张量数据拷贝至融合缓冲区,并在融合缓冲区进行张量融合及规约处理。
S27:将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理。
本实施例中,对当前执行周期的待融合组列表中的各组进行遍历,以将各组中的张量数据拷贝至融合缓冲区,并在融合缓冲区进行张量融合及规约处理。遍历待融合组列表中的各个组,依次将每个组中的张量拷贝到融合缓冲区,并执行allreduce同步操作,同时还需要对最终组序号集中存储的组序号进行删除,并将删除后的空序号集作为下一个执行周期的组序号集。即清空待融合组列表FGL和组序号集G_sets。最后,对于暂不融合列表,等着进入下一个周期,重复相同的过程,直至训练完成。
为了更加清楚的描述本方案,本实施例以Horovod为例对线上分布式训练阶段的主要过程再进行详细说明,实现流程如图4所示:
步骤1、Horovod开启多进程启动分布式训练;
步骤2、Horovod中各进程启动后台线程;
步骤3、各后台线程利用组获取器GG(Group Getter)从本地获取线下阶段生成的GL,并初始化FGL、NFL、G_sets为空;
步骤4、各后台线程定期(周期性的)执行控制逻辑,获取RL,并与暂不NFL合并,得到一个新的响应列表RL_new,然后清空NFL;
步骤5、查找RL_new中的各张量在GL中所属的组序号,不重复的存入G_sets。具体的,遍历步骤4中得到的RL_new中的各个张量,对每个张量进行如下处理:①找到其在GL中所属的组,获取组序号;②查看该组序号是否已存在于G_sets中,若不存在,将该组序号存入G_sets,如果已经存在,则跳过对该张量的处理,继续处理新响应列表中的下一个张量,直到新张量列表中的所有张量都处理完成;
步骤6、分析G_sets中标记的各个组中的成员张量是否在RL_new中都存在,将其成员都能在RL_new中找到的各个组存入FGL。具体的,遍历处理组序号集G_sets中标记的每个组序号,对每个组执行如下处理:①根据当前组序号找到其在GL中的位置,获取对应的组信息,②查找对应组中的张量是否都能在RL_new中对应找到,如果都可以找到,则将该组存入FGL,如果该组中存在不能在RL_new中找到的张量,则跳过对该组的处理,继续处理组序号集G_sets中的下一个组,直到G_sets中的所有组都处理完成;
步骤7、将RL_new中的张量和FGL中的张量求差集,得到的结果存入NFL;
步骤8、遍历FGL中的各个组,依次将每个组中的张量拷贝到融合缓冲区,并执行allreduce同步操作,并清空FGL和G_sets;
步骤9、返回步骤4,等着进入下一个周期,直至训练完成。
参见图5所示,本申请实施例还相应公开了一种参数梯度同步装置,包括:
响应列表获取模块11,用于获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表;其中,当前执行周期的响应列表包含当前执行周期的待规约参数梯度的张量数据;
均衡划分模块12,用于基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表;其中,所述参数梯度分组列表通过线下预先对所述待训练模型的各参数梯度进行均衡分组得到;
第一同步模块13,用于对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理;
第二同步模块14,用于将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理。
可见,本申请实施例先获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表;其中,当前执行周期的响应列表包含当前执行周期的待规约参数梯度的张量数据;然后基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表;其中,所述参数梯度分组列表通过线下预先对所述待训练模型的各参数梯度进行均衡分组得到;最后对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理;将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理。本申请实施例通过利用参数梯度分组列表对待训练模型的待规约参数梯度进行均衡划分,进一步确定当前执行周期的响应列表中的张量数据哪些在当前执行周期进行融合,哪些不在当前执行周期中融合,对于在当前执行周期中融合的张量数据进行正常的融合及规约处理,对于不在当前执行周期中融合的张量数据保留至下一执行周期再做处理,提高了模型训练过程中的网络带宽利用率及梯度数据同步性能。
在一些具体实施例中,所述参数梯度同步装置还包括:
确定模块,用于在线下确定所述待训练模型的各参数梯度大小,并确定训练过程中将要使用的融合缓冲区大小及确定各参数梯度执行顺序;
参数梯度分组列表构建模块,用于按照预设分组规则根据各参数梯度大小、融合缓冲区大小及各参数梯度执行顺序对所述待训练模型的各参数梯度进行均衡分组,得到以各参数梯度对应的张量数据表示的所述参数梯度分组列表;
存储模块,用于将所述参数梯度分组列表在本地进行存储;
第一判断模块,用于判断上一个执行周期的暂不融合列表是否为空,如果否,则将上一个执行周期的暂不融合列表中的张量数据与当前执行周期的响应列表中的张量数据进行合并,并将合并后的新响应列表作为当前执行周期的响应列表;
第一删除模块,用于对上一个执行周期的暂不融合列表中的张量数据进行删除;
第二判断模块,用于判断组序号集中是否包含该张量数据的组序号,如果否,则将该张量数据的组序号存储至所述组序号集中,如果是,则对当前执行周期的响应列表中的下一个张量数据进行遍历处理;直至当前执行周期的响应列表中的全部张量数据均遍历完成,得到最终组序号集,并将最终组序号集中存储的组序号确定为目标组序号;
剩余张量数据确定模块,用于通过对当前执行周期的响应列表中的全部张量数据与求差值当前执行周期的待融合组列表中的全部张量数据求差值的方式确定出当前执行周期的响应列表中的剩余张量数据;
第二删除模块,用于对最终组序号集中存储的组序号进行删除,并将删除后的空序号集作为下一个执行周期的组序号集。
在一些具体实施例中,所述响应列表获取模块11,具体包括:
第一触发单元,用于触发所述分布式训练框架开启多个进程,以利用多个进程启动对所述待训练模型的线上分布式训练;
第二触发单元,用于触发各进程启动后台线程,以利用后台线程周期性执行控制逻辑得到当前执行周期的响应列表;
获取单元,用于在对当前执行周期的响应列表中的张量数据进行均衡划分时,利用后台线程通过组获取器获取所述参数梯度分组列表。
在一些具体实施例中,所述确定模块,具体用于根据所述待训练模型的各参数梯度之间的相互间依赖关系对所述待训练模型的各参数梯度在训练迭代过程中的大致执行顺序进行分析,得到包含各参数梯度执行顺序的顺序列表。
在一些具体实施例中,所述参数梯度同步装置中的所述预设分组规则至少包括下列规则:
规则一:同一组中的参数梯度为所述顺序列表中次序相邻的一组梯度;
规则二:同一组中的参数梯度大小总和不大于融合缓冲区大小且两者大小差值不大于预设阈值;
规则三:不同组中的参数梯度不相交。
在一些具体实施例中,所述均衡划分模块12,具体包括:
目标组序号确定单元,用于确定当前执行周期的响应列表中的各张量数据在所述参数梯度分组列表中所属的组序号,得到目标组序号;
第一划分单元,用于针对每个目标组序号,判断当前执行周期的响应列表中是否包含该目标组序号在所述参数梯度分组列表中对应组的全部张量数据,如果是,则将该目标组序号在所述参数梯度分组列表中的对应组划分至当前执行周期的待融合组列表;
第二划分单元,用于将当前执行周期的响应列表中的剩余张量数据划分至当前执行周期的暂不融合列表。
在一些具体实施例中,所述目标组序号确定单元,具体用于针对当前执行周期的响应列表中的每个张量数据,通过在所述参数梯度分组列表中查找的方式来确定该张量数据在所述参数梯度分组列表中的所属组,并获取所属组的组序号。
在一些具体实施例中,所述第一同步模块13,具体用于对当前执行周期的待融合组列表中的各组进行遍历,以将各组中的张量数据拷贝至融合缓冲区,并在融合缓冲区进行张量融合及规约处理。
进一步的,本申请实施例还提供了一种电子设备。图6是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的参数梯度同步方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的参数梯度同步方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20收集到的张量数据。
进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的参数梯度同步方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的参数梯度同步方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (19)
1.一种参数梯度同步方法,其特征在于,包括:
获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表;其中,当前执行周期的响应列表包含当前执行周期的待规约参数梯度的张量数据;
基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表;其中,所述参数梯度分组列表通过线下预先对所述待训练模型的各参数梯度进行均衡分组得到;
对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理;
将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理;
其中,所述基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表,包括:
确定当前执行周期的响应列表中的各张量数据在所述参数梯度分组列表中所属的组序号,得到目标组序号;
针对每个目标组序号,判断当前执行周期的响应列表中是否包含该目标组序号在所述参数梯度分组列表中对应组的全部张量数据,如果是,则将该目标组序号在所述参数梯度分组列表中的对应组划分至当前执行周期的待融合组列表;
将当前执行周期的响应列表中的剩余张量数据划分至当前执行周期的暂不融合列表。
2.根据权利要求1所述的参数梯度同步方法,其特征在于,进行线上训练之前,还包括:
在线下确定所述待训练模型的各参数梯度大小,并确定训练过程中将要使用的融合缓冲区大小及确定各参数梯度执行顺序;
按照预设分组规则根据各参数梯度大小、融合缓冲区大小及各参数梯度执行顺序对所述待训练模型的各参数梯度进行均衡分组,得到以各参数梯度对应的张量数据表示的所述参数梯度分组列表。
3.根据权利要求2所述的参数梯度同步方法,其特征在于,所述在线下确定各参数梯度执行顺序,包括:
在线下根据所述待训练模型的各参数梯度之间的相互间依赖关系对所述待训练模型的各参数梯度在训练迭代过程中的大致执行顺序进行分析,得到包含各参数梯度执行顺序的顺序列表。
4.根据权利要求3所述的参数梯度同步方法,其特征在于,所述预设分组规则至少包括下列规则:
规则一:同一组中的参数梯度为所述顺序列表中次序相邻的一组梯度;
规则二:同一组中的参数梯度大小总和不大于融合缓冲区大小且两者大小差值不大于预设阈值;
规则三:不同组中的参数梯度不相交。
5.根据权利要求2所述的参数梯度同步方法,其特征在于,所述获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表,包括:
触发所述分布式训练框架开启多个进程,以利用多个进程启动对所述待训练模型的线上分布式训练;
触发各进程启动后台线程,以利用后台线程周期性执行控制逻辑得到当前执行周期的响应列表。
6.根据权利要求5所述的参数梯度同步方法,其特征在于,得到所述参数梯度分组列表之后,还包括:
将所述参数梯度分组列表在本地进行存储;
在对当前执行周期的响应列表中的张量数据进行均衡划分时,利用后台线程通过组获取器获取所述参数梯度分组列表。
7.根据权利要求1所述的参数梯度同步方法,其特征在于,所述获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表之后,还包括:
判断上一个执行周期的暂不融合列表是否为空,如果否,则将上一个执行周期的暂不融合列表中的张量数据与当前执行周期的响应列表中的张量数据进行合并,并将合并后的新响应列表作为当前执行周期的响应列表。
8.根据权利要求7所述的参数梯度同步方法,其特征在于,所述将上一个执行周期的暂不融合列表中的张量数据与当前执行周期的响应列表中的张量数据进行合并之后,还包括:
对上一个执行周期的暂不融合列表中的张量数据进行删除。
9.根据权利要求1所述的参数梯度同步方法,其特征在于,所述确定当前执行周期的响应列表中的各张量数据在所述参数梯度分组列表中所属的组序号,包括:
针对当前执行周期的响应列表中的每个张量数据,通过在所述参数梯度分组列表中查找的方式来确定该张量数据在所述参数梯度分组列表中的所属组,并获取所属组的组序号。
10.根据权利要求9所述的参数梯度同步方法,其特征在于,所述通过在所述参数梯度分组列表中查找的方式来确定该张量数据在所述参数梯度分组列表中的所属组,并获取所属组的组序号之后,还包括:
判断组序号集中是否包含该张量数据的组序号,如果否,则将该张量数据的组序号存储至所述组序号集中,如果是,则对当前执行周期的响应列表中的下一个张量数据进行相同处理;
直至当前执行周期的响应列表中的全部张量数据均处理完成,得到最终组序号集,并将最终组序号集中存储的组序号确定为目标组序号。
11.根据权利要求10所述的参数梯度同步方法,其特征在于,所述针对每个目标组序号,判断当前执行周期的响应列表中是否包含该目标组序号在所述参数梯度分组列表中的对应组的全部张量数据,包括:
针对最终组序号集中的每个组序号,确定该组序号在所述参数梯度分组列表中的对应组并判断对应组中的全部张量数据是否均能在当前执行周期的响应列表中对应找到;
如果是,则判定当前执行周期的响应列表中包含该目标组序号在所述参数梯度分组列表中的对应组的全部张量数据,如果否,则对最终组序号集中的下一个组序号进行相同处理。
12.根据权利要求11所述的参数梯度同步方法,其特征在于,所述将当前执行周期的响应列表中的剩余张量数据划分至当前执行周期的暂不融合列表之前,还包括:
对当前执行周期的响应列表中的全部张量数据与当前执行周期的待融合组列表中的全部张量数据求差值,得到当前执行周期的响应列表中的剩余张量数据。
13.根据权利要求12所述的参数梯度同步方法,其特征在于,所述对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理,包括:
对当前执行周期的待融合组列表中的各组进行遍历,以将各组中的张量数据拷贝至融合缓冲区,并在融合缓冲区进行张量融合及规约处理。
14.根据权利要求13所述的参数梯度同步方法,其特征在于,所述在融合缓冲区进行张量融合及规约处理之后,还包括:
对最终组序号集中存储的组序号进行删除,并将删除后的空序号集作为下一个执行周期的组序号集。
15.根据权利要求1至14任一项所述的参数梯度同步方法,其特征在于,当前执行周期的响应列表为全局一致的响应列表。
16.根据权利要求1至14任一项所述的参数梯度同步方法,其特征在于,所述参数梯度分组列表中的列表成员为各参数梯度对应的张量名称。
17.一种参数梯度同步装置,其特征在于,包括:
响应列表获取模块,用于获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表;其中,当前执行周期的响应列表包含当前执行周期的待规约参数梯度的张量数据;
均衡划分模块,用于基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表;其中,所述参数梯度分组列表通过线下预先对所述待训练模型的各参数梯度进行均衡分组得到;
第一同步模块,用于对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理;
第二同步模块,用于将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理;
其中,所述述均衡划分模块,具体包括:
目标组序号确定单元,用于确定当前执行周期的响应列表中的各张量数据在所述参数梯度分组列表中所属的组序号,得到目标组序号;
第一划分单元,用于针对每个目标组序号,判断当前执行周期的响应列表中是否包含该目标组序号在所述参数梯度分组列表中对应组的全部张量数据,如果是,则将该目标组序号在所述参数梯度分组列表中的对应组划分至当前执行周期的待融合组列表;
第二划分单元,用于将当前执行周期的响应列表中的剩余张量数据划分至当前执行周期的暂不融合列表。
18.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至16任一项所述的参数梯度同步方法。
19.一种计算机可读存储介质,其特征在于,用于存储计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至16任一项所述的参数梯度同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310135785.2A CN115936095B (zh) | 2023-02-20 | 2023-02-20 | 一种参数梯度同步方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310135785.2A CN115936095B (zh) | 2023-02-20 | 2023-02-20 | 一种参数梯度同步方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115936095A CN115936095A (zh) | 2023-04-07 |
CN115936095B true CN115936095B (zh) | 2023-05-23 |
Family
ID=85834001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310135785.2A Active CN115936095B (zh) | 2023-02-20 | 2023-02-20 | 一种参数梯度同步方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115936095B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111340186A (zh) * | 2020-02-17 | 2020-06-26 | 之江实验室 | 基于张量分解的压缩表示学习方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11270201B2 (en) * | 2017-12-29 | 2022-03-08 | Intel Corporation | Communication optimizations for distributed machine learning |
CN108986063A (zh) * | 2018-07-25 | 2018-12-11 | 浪潮(北京)电子信息产业有限公司 | 梯度融合的方法、装置及计算机可读存储介质 |
CN113420874A (zh) * | 2020-04-07 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 分布式训练中梯度同步方法、分布式训练系统 |
CN112906825A (zh) * | 2021-03-30 | 2021-06-04 | 第四范式(北京)技术有限公司 | 实现机器学习模型的分布式训练的方法和计算节点 |
US20220392637A1 (en) * | 2021-06-02 | 2022-12-08 | Neumora Therapeutics, Inc. | Multimodal dynamic attention fusion |
CN115688917A (zh) * | 2022-11-10 | 2023-02-03 | 北京百度网讯科技有限公司 | 神经网络模型的训练方法、装置、电子设备及存储介质 |
CN115543639B (zh) * | 2022-12-01 | 2023-04-28 | 阿里云计算有限公司 | 分布式执行深度学习任务的优化方法和分布式系统 |
-
2023
- 2023-02-20 CN CN202310135785.2A patent/CN115936095B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111340186A (zh) * | 2020-02-17 | 2020-06-26 | 之江实验室 | 基于张量分解的压缩表示学习方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115936095A (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109274754B (zh) | 用于在区块链网络中同步数据的方法、设备和存储介质 | |
US20200293838A1 (en) | Scheduling computation graphs using neural networks | |
Li et al. | Scaling distributed machine learning with the parameter server | |
CN104541247B (zh) | 用于调整云计算系统的系统和方法 | |
US11822574B2 (en) | System and method for providing an artificially-intelligent graph database | |
CN113064879A (zh) | 数据库参数调整方法、装置及计算机可读存储介质 | |
US20220292404A1 (en) | Black-box optimization using neural networks | |
US11222088B2 (en) | Determining feasible itinerary solutions | |
Ju et al. | iGraph: an incremental data processing system for dynamic graph | |
Zhang et al. | Accelerate large-scale iterative computation through asynchronous accumulative updates | |
He et al. | Parallel implementation of classification algorithms based on MapReduce | |
CN111274036A (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
WO2021011914A1 (en) | Scheduling operations on a computation graph | |
CN112667860A (zh) | 一种子图匹配方法、装置、设备及存储介质 | |
US10146659B2 (en) | Large event log replay method and system | |
CN113641591A (zh) | 测试用例生成方法及装置、测试方法及装置 | |
Duan et al. | Minimizing training time of distributed machine learning by reducing data communication | |
US20160342899A1 (en) | Collaborative filtering in directed graph | |
CN115936095B (zh) | 一种参数梯度同步方法、装置、设备及存储介质 | |
CN115186738B (zh) | 模型训练方法、装置和存储介质 | |
Zhang et al. | Learning driven parallelization for large-scale video workload in hybrid CPU-GPU cluster | |
CN116745783A (zh) | 机器学习应用中系统特性漂移的处理 | |
Artigues et al. | Robust optimization for the resource-constrained project scheduling problem with duration uncertainty | |
Dreuning et al. | mCAP: Memory-Centric Partitioning for Large-Scale Pipeline-Parallel DNN Training | |
Peterson | Decentralized scheduling for many-task applications in the hybrid cloud |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |