CN116955365B - 梯度数据同步方法、模型训练方法、系统、设备及介质 - Google Patents
梯度数据同步方法、模型训练方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN116955365B CN116955365B CN202311220007.XA CN202311220007A CN116955365B CN 116955365 B CN116955365 B CN 116955365B CN 202311220007 A CN202311220007 A CN 202311220007A CN 116955365 B CN116955365 B CN 116955365B
- Authority
- CN
- China
- Prior art keywords
- synchronization
- gradient
- data
- layer
- current
- 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
- 238000012549 training Methods 0.000 title claims abstract description 162
- 238000000034 method Methods 0.000 title claims abstract description 153
- 230000001360 synchronised effect Effects 0.000 claims abstract description 77
- 238000004364 calculation method Methods 0.000 claims description 219
- 238000004590 computer program Methods 0.000 claims description 9
- 230000006854 communication Effects 0.000 abstract description 28
- 238000004891 communication Methods 0.000 abstract description 27
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Signal Processing (AREA)
- Evolutionary Biology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种梯度数据同步方法、模型训练方法、系统、设备及介质,涉及分布式集群领域,为解决梯度同步过程中通信效率低的问题,该方法包括:获取网络模型的当前网络层的梯度数据,对梯度数据在分布式训练集群的至少一个加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到当前网络层对应的第一同步结果数据;将当前网络层的第一同步结果数据存储到第一阶段梯度同步结果队列;判断是否对所有网络层的梯度数据均完成第一同步操作;若是,对第一阶段梯度同步结果队列中的第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作。本发明能够减少加速器节点之间的通信次数,提高通信效率。
Description
技术领域
本发明涉及分布式集群领域,特别涉及一种梯度数据同步方法、模型训练方法、系统、设备及介质。
背景技术
随着深度神经网络的模型尺寸越来越大,分布式模型训练应运而生。目前的分布式模型训练方案有数据并行和模型并行两种,其中最常用且应用最广泛的是同步数据并行训练方案。该方案是一个反复迭代的过程,在每次迭代过程中将待训练的输入数据进行划分,在每个加速器节点上用不同的数据进行分布式模型训练,待所有加速器节点计算完一个批次的训练数据得到网络模型的一个网络层的梯度数据后,在所有加速器节点之间进行该网络层的梯度数据同步,即各个加速器节点间进行通信以对各节点上的梯度数据进行聚合或求均值,最后用同步后的梯度数据去更新模型参数。
现有的梯度数据同步包括两个同步子阶段,在第一阶段梯度同步中分布式训练集群中的各个加速器节点需要进行第一同步操作,第一同步操作中各加速器节点之间需要进行至少一次通信来传输梯度数据,各个加速器节点之间的通信结束后,各个加速器节点得到第一同步结果数据,接着执行第二阶段梯度同步,在第二阶段梯度同步中各个加速器节点之间需要进行第二同步操作,第二同步操作中各加速器节点之间需要进行至少一次通信来传输第一同步结果数据,各个加速器节点通信结束后,完成各个加速器节点之间针对当前网络层的梯度数据同步。随着分布式训练集群规模的增大,每一同步子阶段中需要进行通信的加速器节点增多,且现有方案中每一网络层的梯度数据同步需要两个同步子阶段串行完成,也即网络模型有N层,则每个加速器节点需要进行N次第一阶段梯度同步对应的同步操作和N次第二阶段梯度同步对应的同步操作,每执行一次同步操作,均需要各个加速器节点之间进行至少一次通信,通信次数多,导致网络模型所有网络层的梯度数据同步通信时间较长,使得各加速器节点之间的通信效率较低,不能很好的利用分布式训练集群的网络资源。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种梯度数据同步方法、模型训练方法、系统、设备及介质,能够减少加速器节点之间的通信次数,提高通信效率。
为解决上述技术问题,本发明提供了一种梯度数据同步方法,应用于分布式训练集群的任一个加速器节点,所述梯度数据同步方法包括:
获取网络模型的当前网络层的梯度数据,对所述梯度数据在所述分布式训练集群的至少一个所述加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到当前网络层对应的第一同步结果数据;
将当前网络层的第一同步结果数据存储到第一阶段梯度同步结果队列;
判断是否对所有网络层的梯度数据均完成所述第一同步操作;
若是,对所述第一阶段梯度同步结果队列中的第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作。
在一示例性实施例中,所述获取网络模型的当前网络层的梯度数据之前,所述梯度数据同步方法还包括:
计算当前网络层的梯度数据;
将当前网络层的梯度数据存储到第一计算结果队列;所述第一计算结果队列为先进先出队列;
所述获取网络模型的当前网络层的梯度数据的过程包括:
从所述第一计算结果队列获取网络模型的当前网络层的梯度数据。
在一示例性实施例中,所述计算当前网络层的梯度数据的过程包括:
对所述当前网络层对应的前向计算结果数据进行反向计算,得到所述当前网络层的梯度数据;
若所述网络模型的当前次迭代训练为第一次迭代训练,所述前向计算结果数据基于接收到的训练数据得到,若所述当前次迭代训练为第j次迭代训练,所述前向计算结果数据基于第j-1次迭代训练的第二同步结果数据得到,j为大于1的整数。
在一示例性实施例中,所述计算当前网络层的梯度数据之后,所述梯度数据同步方法还包括:
令第一计算索引的当前索引值减1,所述第一计算索引的初始索引值为所述网络模型的总网络层数;
对所述梯度数据在所述分布式训练集群的至少一个所述加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到当前网络层对应的第一同步结果数据之后,所述梯度数据同步方法还包括:
令第一阶段梯度同步层索引的当前索引值减1,所述第一阶段梯度同步层索引的初始索引值为所述总网络层数。
在一示例性实施例中,从所述第一计算结果队列获取网络模型的当前网络层的梯度数据的过程包括:
确定所述第一阶段梯度同步层索引的当前索引值以及所述第一计算索引的当前索引值;
基于所述第一阶段梯度同步层索引的当前索引值以及所述第一计算索引的当前索引值判断当前网络层是否满足第一同步条件;
若是,从所述第一计算结果队列获取网络模型的当前网络层的梯度数据。
在一示例性实施例中,基于所述第一阶段梯度同步层索引的当前索引值以及所述第一计算索引的当前索引值判断当前网络层是否满足第一同步条件的过程包括:
判断所述第一阶段梯度同步层索引的当前索引值是否大于所述第一计算索引的当前索引值;
若是,判定当前网络层满足第一同步条件;
若否,判定当前网络层不满足所述第一同步条件。
在一示例性实施例中,所述判断是否对所有网络层的梯度数据均完成所述第一同步操作的过程包括:
判断所述第一阶段梯度同步层索引的当前索引值是否为0;
若是,判定对所有网络层的梯度数据均完成所述第一同步操作;
若否,判定未对所有网络层的梯度数据均完成所述第一同步操作。
在一示例性实施例中,所述梯度数据同步方法还包括:
判断所述第一计算索引的当前索引值是否为0;
若是,判断是否满足所述网络模型的获取条件;
若是,结束对所述网络模型的训练。
在一示例性实施例中,所述第一阶段梯度同步结果队列为先进后出队列。
在一示例性实施例中,对所述第一阶段梯度同步结果队列中的第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作的过程包括:
确定同步块;
按所述同步块在所述第一阶段梯度同步结果队列中获取待处理第一同步结果数据,对所述待处理第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作。
在一示例性实施例中,按所述同步块在所述第一阶段梯度同步结果队列中获取待处理第一同步结果数据,对所述待处理第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作的过程包括:
确定第二阶段梯度同步块索引的当前索引值;所述第二阶段梯度同步块索引的初始索引值为1;
判断所述第二阶段梯度同步块索引的当前索引值是否大于或等于预设总块数;
若否,在所述第一阶段梯度同步结果队列中获取一个同步块的待处理第一同步结果数据,对所述待处理第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作,将所述第二阶段梯度同步块索引的当前索引值加1,然后重复确定第二阶段梯度同步块索引的当前索引值的操作;
若是,停止在所述第一阶段梯度同步结果队列中获取一个同步块的待处理第一同步结果数据的操作。
在一示例性实施例中,判断所述第二阶段梯度同步块索引的当前索引值是否大于或等于预设总块数之后,所述梯度数据同步方法还包括:
若所述第二阶段梯度同步块索引的当前索引值大于或等于所述预设总块数,判断是否满足所述网络模型的获取条件;
若是,结束对所述网络模型的训练。
在一示例性实施例中,在所述第一阶段梯度同步结果队列中获取一个同步块的待处理第一同步结果数据,对所述待处理第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作之后,所述梯度数据同步方法还包括:
得到第二同步结果数据;将所述第二同步结果数据存入第二阶段梯度同步结果队列,以便基于所述第二同步结果数据计算所述网络模型的网络层的梯度数据。
在一示例性实施例中,所述第二阶段梯度同步结果队列为先进先出队列。
在一示例性实施例中,所述梯度数据同步方法还包括:
在对所述第一阶段梯度同步结果队列中的第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作的过程中,确定所述网络模型中的目标网络层;
基于所述目标网络层的第二同步结果数据计算所述目标网络层在下一次迭代训练中的前向计算结果数据;所述前向计算结果数据用于计算所述目标网络层在下一次迭代训练中的梯度数据;
将所述目标网络层的计算结果数据存储到第二计算结果队列。
在一示例性实施例中,确定所述网络模型中的目标网络层的过程包括:
确定第二计算层索引的当前索引值;所述第二计算层索引的初始索引值为1;
根据所述第二计算层索引的当前索引值获取第M网络层的最后一个块索引的当前索引值;M为所述第二计算层索引的当前索引值;
判断所述最后一个块索引的当前索引值是否小于或等于所述第二阶段梯度同步块索引的当前索引值;
若是,将所述第M网络层确定为所述目标网络层。
在一示例性实施例中,基于所述目标网络层的第二同步结果数据计算所述目标网络层在下一次迭代训练中的前向计算结果数据的过程包括:
基于所述第M网络层的第二同步结果数据进行前向计算,得到所述第M网络层在下一次迭代训练中的前向计算结果数据,并将所述第二计算层索引的当前索引值加1,重复所述确定第二计算层索引的当前索引值的过程,直至所述第二计算层索引的当前索引值达到所述网络模型的总网络层数。
在一示例性实施例中,根据所述第二计算层索引的当前索引值获取第M网络层的最后一个块索引的当前索引值的过程包括:
获取层块查找表;
根据所述第二计算层索引的当前索引值在所述层块查找表中查找第M网络层的最后一个块索引的当前索引值。
在一示例性实施例中,所述层块查找表包括所述网络模型的各网络层及各网络层对应的最后一个块的标号的对应关系。
在一示例性实施例中,所述层块查找表以键值对存储所述对应关系。
为解决上述技术问题,本发明还提供了一种模型训练方法,在当前次迭代训练中,对网络模型的各网络层进行前向计算,得到各所述网络层的前向计算结果数据;
针对每一所述网络层,基于所述网络层的前向计算结果数据对所述网络层进行反向计算得到梯度数据;
将计算得到所述梯度数据的所述网络层作为当前网络层,按照如上文任意一项所述梯度数据同步方法进行梯度数据同步,以便在下一次迭代训练中基于同步后的梯度数据更新所述网络模型的模型参数。
为解决上述技术问题,本发明还提供了一种梯度数据同步系统,应用于分布式训练集群的任一个加速器节点,所述梯度数据同步系统包括:
第一同步模块,用于获取网络模型的当前网络层的梯度数据,对所述梯度数据在所述分布式训练集群的至少一个所述加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到当前网络层对应的第一同步结果数据;
存储模块,用于将当前网络层的第一同步结果数据存储到第一阶段梯度同步结果队列;
判断模块,用于判断是否对所有网络层的梯度数据均完成所述第一同步操作,若是,触发第二同步模块;
所述第二同步模块,用于对所述第一阶段梯度同步结果队列中的第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作。
为解决上述技术问题,本发明还提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上文任意一项所述的梯度数据同步方法的步骤。
为解决上述技术问题,本发明还提供了一种分布式训练集群,包括多个加速器节点,每个加速器节点包括如上文所述的电子设备。
在一示例性实施例中,所述加速器节点为图形处理器节点。
为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任意一项所述的梯度数据同步方法的步骤。
本发明提供了一种梯度数据同步方法,加速器节点对当前网络层的梯度数据在所述分布式训练集群的至少一个所述加速器节点中先进行第一阶段梯度同步的第一同步操作,得到当前网络层对应的第一同步结果数据,此时先不执行当前网络层的第二阶段梯度同步,将当前网络层对应的第一同步结果数据存入第一阶段梯度同步结果队列,当所有网络层的第一阶段梯度同步均结束后,加速器节点再针对所有网络层的第一同步结果数据进行第二阶段梯度同步对应的第二同步操作,由于本发明的加速器节点只需要进行一次第二阶段梯度同步对应的第二同步操作,减少了加速器节点之间的通信次数,降低了网络模型所有网络层的梯度数据同步通信时间,提高各加速器节点之间的通信效率,能够更好的利用分布式训练集群的网络资源。本发明还提供了一种模型训练方法、梯度数据同步系统、电子设备、分布式训练集群及计算机可读存储介质,具有和上述梯度数据同步方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种梯度数据同步方法的步骤流程图;
图2为一种分布式训练集群的结构示意图;
图3为本发明所提供的一种网络模型各阶段的依赖示意图;
图4为本发明所提供的一种网络模型的总网络层数设置为3的梯度数据同步示意图;
图5为本发明所提供的一种模型训练方法的步骤流程图;
图6为本发明所提供的另一种模型训练方法的流程图;
图7为本发明所提供的一种梯度数据同步系统的结构示意图。
具体实施方式
本发明的核心是提供一种梯度数据同步方法、模型训练方法、系统、设备及介质,能够减少加速器节点之间的通信次数,提高通信效率。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
第一方面,请参照图1,图1为本发明所提供的一种梯度数据同步方法的步骤流程图,应用于分布式训练集群的各个加速器节点,该梯度数据同步方法包括:
S101:获取网络模型的当前网络层的梯度数据,对梯度数据在分布式训练集群的至少一个加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到当前网络层对应的第一同步结果数据;
请参照图2,图2为一种分布式训练集群的结构示意图,包括中央处理器0、中央处理器1、交换机0、交换机1、加速器0至加速器7,每个加速器作为一个加速器节点,当然,图2仅为示意,本实施例所提供的梯度数据同步方法适用于所有支持分布式训练的物理集群拓扑。其中,加速器节点包括但不限于GPU(Graphics Processing Unit,图形处理器)节点、MLU加速卡、T20加速卡、FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)等。
可以理解,本实施例中每次获取网络模型的一个网络层的梯度数据,对梯度数据在分布式训练集群的至少一个加速器节点中进行第一阶段梯度同步对应的第一同步操作。假设网络模型包括N个网络层,则需要获取N次梯度数据。
其中,梯度数据由加速器节点针对每一网络层对应的数据先进行前向计算再进行反向计算得到,可以理解,在进行前向计算时,加速器节点是从网络模型的第一网络层、第二网络层到第N网络层,逐层向后进行前向计算,在进行反向计算时,加速器节点是从第N网络层、第N-1网络层到第一网络层,逐层向前进行反向计算,也即本步骤中的当前网络层是由第N网络层、第N-1网络层变化到第一网络层,N为网络模型的总网络层数,本步骤首先获取网络模型的第N网络层的梯度数据,对第N网络层的梯度数据在分布式训练集群的至少一个加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到第N网络层对应的第一同步结果数据,然后获取网络模型的第N-1网络层的梯度数据,对第N-1网络层的梯度数据在分布式训练集群的至少一个加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到第N-1网络层对应的第一同步结果数据,以此类推,直至最后获取到网络模型的第一网络层的梯度数据,对第一网络层的梯度数据在分布式训练集群的至少一个加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到第一网络层对应的第一同步结果数据。
S102:将当前网络层的第一同步结果数据存储到第一阶段梯度同步结果队列;
本实施例中,计算器节点在获取到一个网络层的第一同步结果后,并不基于第一同步结果依次执行第二阶段同步,而是先将获取到的该网络层的第一同步结果存储到第一阶段梯度同步结果队列中,继续获取下一个网络层的梯度数据进行第一同步阶段的第一同步操作,计算器节点每获取到一个网络层的第一同步结果数据后就将第一同步结果数据存储到第一阶段梯度同步结果队列。
可以理解,本实施例中的第一阶段梯度同步结果队列为先进后出队列,也即最先存入队列的,最后从队列输出,本实施例中,首先存入第一阶段梯度同步结果队列的是第N网络层的第一同步结果数据、接着是第N-1网络层的第一同步结果数据,以此类推,最后存入第一阶段梯度同步结果队列的是第一网络层的第一同步结果数据,那么最先输出的为第一网络层的第一同步结果数据、接着是第二网络层的第一同步结果数据、以此类推,最后是第N网络层的第一同步结果数据。
S103:判断是否对所有网络层的梯度数据均完成第一同步操作,若是,执行S104;
S104:对第一阶段梯度同步结果队列中的第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作。
判断是否对网络模型的所有网络层的梯度数据均完成第一同步操作,若是,则从第一阶段梯度同步结果队列中按预设规则多次获取第一同步结果数据,并基于每次获取到的第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作,得到第二同步结果数据。若否,则等待对网络模型的所有网络层的梯度数据均完成第一同步操作。
可以理解,在第一阶段梯度同步中,对第一阶段梯度同步算子的调用是以层为单位进行调用的,而在第二阶段梯度同步中,对第二阶段梯度同步算子的调用是以网络模型为单位进行调用的。这是因为第一阶段梯度同步是逐层依赖其前一阶段即反向计算阶段的,反向计算每处理完一层,才可开始这一层的第一阶段梯度同步,因此我们对第一阶段梯度同步的实现是以层为单位多次调用第一阶段梯度同步算子,即每执行完一层反向计算就调用一次第一阶段梯度同步算子,网络模型有多少层就调用多少次第一阶段梯度同步算子。而第二阶段梯度同步对其前一阶段即第一阶段梯度同步则是完全依赖的,也就是说当第二阶段梯度同步开始的时候,第一阶段是已经完全执行结束了的,所以这个时候我们在实现第二阶段梯度同步的时候只需以网络模型为单位调用的,不管网络模型有多少层,都只调用一次第二阶段梯度同步算子即可。
示例性地,假设网络模型有N个网络层,本实施例的方案需要进行N次第一同步操作,即对每一网络层进行一次第一同步操作,然后再针对网络模型整体进行一次第二同步操作,无需针对每一个网络层分别进行一次第二同步操作,减少了加速器节点进行第二阶段梯度同步对应的第二同步操作,从而减少了加速器节点之间的通信次数,降低了网络模型所有网络层的梯度数据同步通信时间,提高各加速器节点之间的通信效率,能够更好的利用分布式训练集群的网络资源。
可见,本实施例中,加速器节点对当前网络层的梯度数据在分布式训练集群的至少一个加速器节点中先进行第一阶段梯度同步的第一同步操作,得到当前网络层对应的第一同步结果数据,此时先不执行当前网络层的第二阶段梯度同步,将当前网络层对应的第一同步结果数据存入第一阶段梯度同步结果队列,当所有网络层的第一阶段梯度同步均结束后,加速器节点再针对所有网络层的第一同步结果数据进行第二阶段梯度同步对应的第二同步操作,由于本发明的加速器节点只需要进行一次第二阶段梯度同步对应的第二同步操作,减少了加速器节点之间的通信次数,降低了网络模型所有网络层的梯度数据同步通信时间,提高各加速器节点之间的通信效率,能够更好的利用分布式训练集群的网络资源。
在上述实施例的基础上:
在一示例性实施例中,获取网络模型的当前网络层的梯度数据之前,梯度数据同步方法还包括:
计算当前网络层的梯度数据;
将当前网络层的梯度数据存储到第一计算结果队列;第一计算结果队列为先进先出队列;
获取网络模型的当前网络层的梯度数据的过程包括:
从第一计算结果队列获取网络模型的当前网络层的梯度数据。
计算当前网络层的梯度数据的过程包括:
对当前网络层对应的前向计算结果数据进行反向计算,得到当前网络层的梯度数据;
若网络模型的当前次迭代训练为第一次迭代训练,前向计算结果数据基于接收到的训练数据得到,若当前次迭代训练为第j次迭代训练,前向计算结果数据基于第j-1次迭代训练的第二同步结果数据得到,j为大于1的整数。
可以理解,针对分布式训练集群的分布式训练过程是一个多次迭代训练的过程,每次迭代训练中,包括前向计算、反向计算和梯度数据同步几个阶段,本实施例中将梯度分布阶段分为第一阶段梯度同步和第二阶段梯度同步,上述各个阶段的依赖关系参照图3所示,图3中以实线箭头表示完全依赖,即后一阶段必须等前一阶段全部执行结束才能开始,虚线箭头表示部分依赖,即后一阶段需等前一阶段执行完某一部分才能开始。针对在整个分布式训练过程中的第一次前向计算阶段(第一次迭代训练过程中的前向计算),其使用模型参数初始值基于训练数据进行计算,不需要依赖其他几个阶段。针对反向计算阶段,反向计算的输入是前向计算的结果,且反向计算必须等到前向计算阶段完全结束才能开始,因此反向计算完全依赖前向计算。针对第一阶段梯度同步,可以理解,反向计算从后向前逐层进行计算,每计算完一层,就可以开始该层的第一阶段梯度同步的通信。因此,第一阶段梯度同步逐层依赖反向计算。针对第二阶段梯度同步,第二阶段梯度同步的输入是第一阶段梯度同步结果,在本发明中,第二阶段梯度同步必须等第一阶段梯度同步完全结束后才能开始,因此第二阶段梯度同步完全依赖第一阶段梯度同步,针对非第一次前向计算阶段,第二阶段梯度同步结果是下一次迭代训练的前向计算的输入,第二阶段梯度同步每完成一层,就可以开始该层的下一次迭代训练的前向计算,因此下一次迭代训练的前向计算过程逐层依赖第二阶段梯度同步。
本实施例中,在网络模型的第一次迭代训练中,加速器节点基于训练数据先进行各网络层的前向计算,得到各网络层的前向计算结果数据,再基于各网络层的前向计算结果数据对各网络层进行反向计算得到梯度数据,反向计算时,是从最后一层向第一层的方向逐层计算,本实施例将反向计算得到的梯度数据存储到第一计算结果队列,第一计算结果队列为先进先出队列,也即最先存入队列的,最先从队列输出,本实施例中,首先存入第一计算结果队列的是第N网络层的梯度数据、接着是第N-1网络层的梯度数据,以此类推,最后存入第一计算结果队列的是第一网络层的梯度数据,那么最先输出的为第一网络层的梯度数据、接着是第二网络层的梯度数据、以此类推,最后是第N网络层的梯度数据。
本实施例中,计算得到每一网络层的梯度数据后,先将该网络层的梯度数据存储到第一计算结果队列中,再从第一计算结果队列中逐层获取梯度数据,从而保证梯度数据的完整性。
进一步的,本实施例可以在加速器节点中布设两个线程,分别执行计算操作和同步操作,两个线程同时运行。其中,计算线程用于对各个网络层进行前向计算、反向计算得到各自的计算结果数据存入到对应的计算队列中,同步线程从反向计算对应的队列中获取反向计算结果数据(即梯度数据)进行第一同步操作,然后得到第一同步结果数据后存入到对应的同步队列中,以便后续进行第二同步操作。
在一示例性实施例中,计算当前网络层的梯度数据之后,梯度数据同步方法还包括:
令第一计算索引的当前索引值减1,第一计算索引的初始索引值为网络模型的总网络层数;
对梯度数据在分布式训练集群的至少一个加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到当前网络层对应的第一同步结果数据之后,梯度数据同步方法还包括:
令第一阶段梯度同步层索引的当前索引值减1,第一阶段梯度同步层索引的初始索引值为总网络层数。
本实施例中,对反向计算(即第一计算)和第一同步操作分别设置了索引,第一计算索引的当前索引值BP_index,用于表示反向计算当前正在处理的是网络模型的第几网络层,第一阶段梯度同步层索引的当前索引值AR1_index,用来表示第一阶段梯度同步将要处理的是网络模型的第几网络层。
在一示例性实施例中,从第一计算结果队列获取网络模型的当前网络层的梯度数据的过程包括:
确定第一阶段梯度同步层索引的当前索引值以及第一计算索引的当前索引值;
基于第一阶段梯度同步层索引的当前索引值以及第一计算索引的当前索引值判断当前网络层是否满足第一同步条件;
若是,从第一计算结果队列获取网络模型的当前网络层的梯度数据。
通过比较第一阶段梯度同步层索引的当前索引值以及第一计算索引的当前索引值的大小,可以确定当前需要对哪一网络层的梯度数据进行第一阶段梯度同步,当确定某一网络层可以开始进行第一阶段梯度同步,则从第一计算结果队列中获取该网络层的反向计算结果(该网络层的梯度数据)作为第一阶段同步梯度的输入,调用第一阶段梯度同步算子,进行该网络层的第一阶段梯度同步,第一阶段梯度同步完成后将第一同步结果数据存入第一阶段梯度同步结果队列,按照上述方法逐层处理各网络层梯度数据,直至整个网络模型各层全部处理完成。
在一示例性实施例中,基于第一阶段梯度同步层索引的当前索引值以及第一计算索引的当前索引值判断当前网络层是否满足第一同步条件的过程包括:
判断第一阶段梯度同步层索引的当前索引值是否大于第一计算索引的当前索引值;
若是,判定当前网络层满足第一同步条件;
若否,判定当前网络层不满足第一同步条件。
在一示例性实施例中,判断是否对所有网络层的梯度数据均完成第一同步操作的过程包括:
判断第一阶段梯度同步层索引的当前索引值是否为0;
若是,判定对所有网络层的梯度数据均完成第一同步操作;
若否,判定未对所有网络层的梯度数据均完成第一同步操作。
本实施例中,首先设置第一阶段梯度同步层索引AR1_index=N,N为网络模型的总网络层数,判断第一阶段梯度同步层索引AR1_index是否大于第一计算层索引BP_index,若否,说明第AR1_index层的反向计算尚未完成,继续等待,直到第AR1_index层的反向计算完成(AR1_index 的值大于BP_index);若是,说明第AR1_index层的反向计算已完成,可以开始该网络层的第一阶段梯度同步,从第一计算结果队列获取第AR1_index层的反向计算结果作为该层的第一阶段梯度同步输入,进行第一阶段梯度同步,结果存入第一阶段梯度同步结果队列,第一阶段梯度同步层索引AR1_index的值减1,判断AR1_index是否等于0,若不等于0,说明整个网络模型尚未完全处理完,返回判断第一阶段梯度同步层索引AR1_index是否大于第一计算层索引BP_index的操作,继续处理,若等于0,说明网络模型的各层均已处理完成,则进入第二阶段梯度同步处理过程。
在一示例性实施例中,对第一阶段梯度同步结果队列中的第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作的过程包括:
确定同步块;
按同步块在第一阶段梯度同步结果队列中获取待处理第一同步结果数据,对待处理第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作。
可以理解,为了更好的与其后一阶段即下一次迭代的前向计算阶段相重叠,具体实现第二阶段梯度同步算子的过程中,以chunk块,即以同步块为单位进行数据处理,同时设置了层块查找表来帮助前向计算确定如何开始某一层的计算。层块查找表中存储了N(N为网络模型的层数)个键值对(key-value),其中键(key)为网络模型的各层,值(value)为各层对应的最后一个chunk块号,这样便可根据层索引去查找到该层对应的最后一个chunk号。在加速器节点上预先设置网络模型的总网络层数N,层块查找表T,第二阶段梯度同步要处理的总chunk块数chunk_total,以便各处理过程直接调用。
在一示例性实施例中,按同步块在第一阶段梯度同步结果队列中获取待处理第一同步结果数据,对待处理第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作的过程包括:
确定第二阶段梯度同步块索引的当前索引值;第二阶段梯度同步块索引的初始索引值为1;
判断第二阶段梯度同步块索引的当前索引值是否为预设总块数;
若否,在第一阶段梯度同步结果队列中获取一个同步块的待处理第一同步结果数据,对待处理第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作,将第二阶段梯度同步块索引的当前索引值加1,然后重复确定第二阶段梯度同步块索引的当前索引值的操作;
若是,停止在第一阶段梯度同步结果队列中获取一个同步块的待处理第一同步结果数据的操作。
在一示例性实施例中,在第一阶段梯度同步结果队列中获取一个同步块的待处理第一同步结果数据,对待处理第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作之后,梯度数据同步方法还包括:
得到第二同步结果数据;将第二同步结果数据存入第二阶段梯度同步结果队列,以便基于第二同步结果数据计算网络模型的网络层的梯度数据。
在一示例性实施例中,梯度数据同步方法还包括:
在对第一阶段梯度同步结果队列中的第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作的过程中,确定网络模型中的目标网络层;
基于目标网络层的第二同步结果数据计算目标网络层在下一次迭代训练中的前向计算结果数据;前向计算结果数据用于计算目标网络层在下一次迭代训练中的梯度数据;
将目标网络层的计算结果数据存储到第二计算结果队列。
本实施例中,对第二阶段梯度同步对应的第二同步操作进行说明,第二阶段梯度同步算子在每次迭代训练中只需要被调用一次,调用后以chunk块为单位依次从第一阶段梯度同步结果队列获取各个数据块进行第二阶段梯度同步对应的第二同步操作,并将同步结果存于第二阶段梯度同步队列中,在一示例性实施例中,第二阶段梯度同步结果队列为先进先出队列。在此过程中使用第二阶段梯度同步块索引AR2_chunk_index实时指示处理到了哪个chunk块,按照上述方法依次处理各个chunk块,直到处理完第一阶段梯度同步结果队列中的所有数据。
与此同时,计算线程执行到下一次迭代训练的前向计算阶段,该阶段通过使用前向计算层索引FP_index、层块映射表和块索引AR2_chunk_index来决定何时开始执行哪一层,即确定目标网络层,对目标网络层进行前向计算。一旦确定某一网络层可以开始前向计算,则从第二阶段梯度同步队列FIFO获取该层的第二阶段梯度同步计算结果数据作为前向计算的输入,进行该层的前向计算,并将计算结果存于第二计算结果队列按照上述方法逐层处理各层,直至整个网络模型各层全部处理完成。
在一示例性实施例中,确定网络模型中的目标网络层的过程包括:
确定第二计算层索引的当前索引值;第二计算层索引的初始索引值为1;
根据第二计算层索引的当前索引值获取第M网络层的最后一个块索引的当前索引值;M为第二计算层索引的当前索引值;
判断最后一个块索引的当前索引值是否小于或等于第二阶段梯度同步块索引的当前索引值;
若是,将第M网络层确定为目标网络层。
在一示例性实施例中,基于目标网络层的第二同步结果数据计算目标网络层在下一次迭代训练中的前向计算结果数据的过程包括:
基于第M网络层的第二同步结果数据进行前向计算,得到第M网络层在下一次迭代训练中的前向计算结果数据,并将第二计算层索引的当前索引值加1,重复确定第二计算层索引的当前索引值的过程,直至第二计算层索引的当前索引值达到网络模型的总网络层数。
在一示例性实施例中,根据本实施例中,首先设置第二阶段梯度同步块索引AR2_chunk_index=1,从第一阶段梯度同步结果队列获取一个chunk的一阶段梯度同步结果进行处理,将第二同步结果数据存入第二阶段梯度同步结果队列,令第二阶段梯度同步块索引AR2_chunk_index的值加1,判断第二阶段梯度同步块索引AR2_chunk_index是否大于等于要处理的总块数AR2_chunk_total,若否,说明整个网络模型尚未完全处理完,返回继续处理,若是,说明网络模型的梯度数据均已同步完成,进入下一次迭代的第一阶段梯度同步阶段。
计算线程执行非第一次前向计算过程,首先设置前向计算层索引FP_index=1,根据FP_index从查找表中获取当前网络层的最后一个chunk块索引AR2_C_index,判断当前网络层的最后一个chunk块索引AR2_C_index是否小于或等于AR2_chunk_index,若否,说明第FP_index层的第二阶段梯度同步尚未完成,则继续等待,直到其完成;若是,说明第FP_index层的第二阶段梯度同步已完成,将第FP_index层确定为目标网络层,可以开始该层的下一次迭代前线计算过程,从第二阶段梯度同步结果队列中获取第FP_index层的结果数据,进行前向计算,计算结果存入第二计算结果队列,将前向计算层索引FP_index的值加1,判断FP_index是否大于等于网络模型的总层数N,若否,说明整个网络模型尚未处理完成,返回上述步骤7继续处理;若是,说明整个网络模型已处理完成,进入反向计算阶段。
综上,本发明将各加速器节点上的梯度数据同步的两个子阶段进行细粒度调度,参照图4所示,图4为本发明所提供的一种网络模型的总网络层数设置为3的梯度数据同步示意图,其中,BP-n为第n层的反向计算阶段,FP-n为第n层的前向计算阶段,AR1-n为第n层的第一阶段梯度同步,AR2-n为第n层的第二阶段梯度同步,第一阶段梯度同步与反向计算重叠,第二阶段梯度同步与下一次迭代训练的前向计算重叠,从而使得梯度数据同步的通信过程能够最大程度的隐藏到计算过程中去。具体来说,该方法将训练过程划分为前向计算、反向计算、第一阶段梯度同步、第二阶段梯度同步这几个主要阶段,并利用两个线程分别管理计算和同步通信。训练开始后计算线程首先进行第一次前向计算,然后逐层进行反向计算,同时每完成一层反向计算,通信线程就调用一次第一阶段梯度同步算子,进行一次该层的第一阶段梯度同步,使得第一阶段梯度同步与反向计算过程最大程度地相重叠,在完成整个网络模型的第一阶段梯度同步后,通信线程开始进行第二阶段梯度同步,调用一次第二阶段梯度同步算子,在该算子的实现过程中以chunk块为单位对数据进行处理,同时每完成一层网络的第二阶段梯度同步,计算线程就同步进行一次该层的下一次迭代的前向计算过程,使得第二阶段梯度同步与下一次迭代的前向计算过程最大程度地相重叠,通过本方案有效提高了梯度数据同步效率,加快了网络模型分布式训练的收敛速度。
第二方面,请参照图5,图5为本发明所提供的一种模型训练方法的步骤流程图,该模型训练方法包括:
S501:在当前次迭代训练中,对网络模型的各网络层进行前向计算,得到各网络层的前向计算结果数据;
S502:针对每一网络层,基于网络层的前向计算结果数据对网络层进行反向计算得到梯度数据;
S503:将计算得到梯度数据的网络层作为当前网络层,按照如上文任意一项梯度数据同步方法进行梯度数据同步,以便在下一次迭代训练中基于同步后的梯度数据更新网络模型的模型参数。
本实施例中,参照图6所示,在分布式训练开始后,首先设置网络模型的网络总层数N,层块查找表T,第二阶段梯度同步要处理的总块数chunk_total。然后启动两个线程分别用于计算和通信,两个线程同时运行。计算线程执行第一次前向计算,并将计算结果存入前向计算结果队列,然后执行反向计算,执行反向计算的过程包括:设置反向计算层索引BP_index的初始索引值为N,从前向计算结果队列中取出第BP_index网络层的前向计算结果数据,进行该网络层的反向计算,并将反向计算结果数据存入反向计算结果队列,令BP_index-1,以便使用反向计算层索引BP_index来实时指示目前处理到了网络模型的哪一网络层,判断BP_index是否等于0,若否,重复从前向计算结果队列中取出第BP_index网络层的前向计算结果数据,进行该网络层的反向计算,并将反向计算结果数据存入反向计算结果队列的操作。
与此同时,通信线程使用第一阶段同步层索引AR1_index来表示该加速器节点目前待处理的网络模型的层数,AR1_index的初始索引值为N,通过不断查找和比较AR1_index和BP_index的值来判断何时可以开启某一层的第一阶段梯度同步,即判断AR1_index是否大于BP_index,若是,确定第AR1_index网络层可以开始进行第一阶段梯度同步,则从反向计算结果队列中获取该网络层的反向计算结果作为第一阶段梯度同步的输入,调用第一阶段梯度同步算子,进行该层的第一阶段梯度同步,第一阶段梯度同步完成后将同步结果存入第一阶段梯度同步结果队列,令AR1_index-1,判断AR1_index是否为0,若否,则执行判断AR1_index是否大于BP_index的操作,按照上述方法逐层处理各层梯度数据,直至整个网络模型各层全部处理完成。
如果AR1_index为0,通信线程开始第二阶段梯度同步,设置第二阶段梯度同步块索引AR2_chunk_index=1,第二阶段梯度同步块索引实时指示处理到了哪个chunk块,第二阶段梯度同步算子在每次迭代中只需要被调用一次,调用后以chunk块为单位依次从第一阶段梯度同步结果队列获取各个数据块进行第二阶段梯度同步,计算结果存于第二阶段梯度同步队列,按照上述方法依次处理各个chunk块,直到处理完第一阶段梯度同步结果队列中的所有数据。
与此同时,计算线程执行到下一次迭代的前向计算阶段,该阶段通过使用前向计算层索引FP_index、层块映射表和块索引AR2_chunk_index来决定何时开始执行哪一层的前向计算,根据FP_index从层块查找表中获取当前网络层的最后一个chunk块号AR2_C_index,判断AR2_C_index是否小于或等于AR2_chunk_index,若否,重复判断步骤,若是,确定第FP_index网络层可以开始前向计算,从第二阶段梯度同步队列获取该层的第二阶段梯度同步计算结果作为前向计算的输入,进行该网络层的前向计算,并将计算结果数据存于前向计算结果队列,令FP_index的值加1,判断FP_index是否大于N,若是,进入反向计算,若否,进入根据FP_index从层块查找表中获取当前网络层的最后一个chunk块号AR2_C_index的操作,按照上述方法逐层处理各网络层,直至整个网络模型各层全部处理完成。
另外,计算线程在每次迭代训练中完成反向计算后,通信线程在每次完成第二阶段梯度同步后,都会去检查下分布式训练是否已满足结束条件,若是,则结束对所述网络模型的训练,若否,则进入下一次梯度同步的第一阶段。
第三方面,请参照图7,图7为本发明所提供的一种梯度数据同步系统的结构示意图,应用于分布式训练集群的任一个加速器节点,梯度数据同步系统包括:
第一同步模块71,用于获取网络模型的当前网络层的梯度数据,对梯度数据在分布式训练集群的至少一个加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到当前网络层对应的第一同步结果数据;
第一存储模块72,用于将当前网络层的第一同步结果数据存储到第一阶段梯度同步结果队列;
判断模块73,用于判断是否对所有网络层的梯度数据均完成第一同步操作,若是,触发第二同步模块74;
第二同步模块74,用于对第一阶段梯度同步结果队列中的第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作。
可见,本实施例中,加速器节点对当前网络层的梯度数据在分布式训练集群的至少一个加速器节点中先进行第一阶段梯度同步的第一同步操作,得到当前网络层对应的第一同步结果数据,此时先不执行当前网络层的第二阶段梯度同步,将当前网络层对应的第一同步结果数据存入第一阶段梯度同步结果队列,当所有网络层的第一阶段梯度同步均结束后,加速器节点再针对所有网络层的第一同步结果数据进行第二阶段梯度同步对应的第二同步操作,由于本发明的加速器节点只需要进行一次第二阶段梯度同步对应的第二同步操作,减少了加速器节点之间的通信次数,降低了网络模型所有网络层的梯度数据同步通信时间,提高各加速器节点之间的通信效率,能够更好的利用分布式训练集群的网络资源。
在一示例性实施例中,该梯度数据同步系统还包括:
第一计算模块,用于计算当前网络层的梯度数据;
第二存储模块,用于将当前网络层的梯度数据存储到第一计算结果队列;第一计算结果队列为先进先出队列;
获取网络模型的当前网络层的梯度数据的过程包括:
从第一计算结果队列获取网络模型的当前网络层的梯度数据。
在一示例性实施例中,计算当前网络层的梯度数据的过程包括:
对当前网络层对应的前向计算结果数据进行反向计算,得到当前网络层的梯度数据;
若网络模型的当前次迭代训练为第一次迭代训练,前向计算结果数据基于接收到的训练数据得到,若当前次迭代训练为第j次迭代训练,前向计算结果数据基于第j-1次迭代训练的第二同步结果数据得到,j为大于1的整数。
在一示例性实施例中,该梯度数据同步系统还包括:
第一管理模块,用于在计算当前网络层的梯度数据之后,令第一计算索引的当前索引值减1,第一计算索引的初始索引值为网络模型的总网络层数;
该梯度数据同步系统还包括:
第二管理模块,用于在对梯度数据在分布式训练集群的至少一个加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到当前网络层对应的第一同步结果数据之后,令第一阶段梯度同步层索引的当前索引值减1,第一阶段梯度同步层索引的初始索引值为总网络层数。
在一示例性实施例中,从第一计算结果队列获取网络模型的当前网络层的梯度数据的过程包括:
确定第一阶段梯度同步层索引的当前索引值以及第一计算索引的当前索引值;
基于第一阶段梯度同步层索引的当前索引值以及第一计算索引的当前索引值判断当前网络层是否满足第一同步条件;
若是,从第一计算结果队列获取网络模型的当前网络层的梯度数据。
在一示例性实施例中,基于第一阶段梯度同步层索引的当前索引值以及第一计算索引的当前索引值判断当前网络层是否满足第一同步条件的过程包括:
判断第一阶段梯度同步层索引的当前索引值是否大于第一计算索引的当前索引值;
若是,判定当前网络层满足第一同步条件;
若否,判定当前网络层不满足第一同步条件。
在一示例性实施例中,判断是否对所有网络层的梯度数据均完成第一同步操作的过程包括:
判断第一阶段梯度同步层索引的当前索引值是否为0;
若是,判定对所有网络层的梯度数据均完成第一同步操作;
若否,判定未对所有网络层的梯度数据均完成第一同步操作。
在一示例性实施例中,梯度数据同步系统还包括:
第一训练管理模块,用于判断第一计算索引的当前索引值是否为0,若是,判断是否满足网络模型的获取条件,若是,结束对所述网络模型的训练。
在一示例性实施例中,第一阶段梯度同步结果队列为先进后出队列。
在一示例性实施例中,对第一阶段梯度同步结果队列中的第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作的过程包括:
确定同步块;
按同步块在第一阶段梯度同步结果队列中获取待处理第一同步结果数据,对待处理第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作。
在一示例性实施例中,按同步块在第一阶段梯度同步结果队列中获取待处理第一同步结果数据,对待处理第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作的过程包括:
确定第二阶段梯度同步块索引的当前索引值;第二阶段梯度同步块索引的初始索引值为1;
判断第二阶段梯度同步块索引的当前索引值是否为预设总块数;
若否,在第一阶段梯度同步结果队列中获取一个同步块的待处理第一同步结果数据,对待处理第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作,将第二阶段梯度同步块索引的当前索引值加1,然后重复确定第二阶段梯度同步块索引的当前索引值的操作;
若是,停止在第一阶段梯度同步结果队列中获取一个同步块的待处理第一同步结果数据的操作。
在一示例性实施例中,梯度数据同步系统还包括:
第二训练管理模块,用于当第二阶段梯度同步块索引的当前索引值大于或等于预设总块数,判断是否满足网络模型的获取条件,若是,结束对所述网络模型的训练。
在一示例性实施例中,梯度数据同步系统还包括:
第三存储模块,用于在第一阶段梯度同步结果队列中获取一个同步块的待处理第一同步结果数据,对待处理第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二阶段梯度同步对应的第二同步操作之后,得到第二同步结果数据,将第二同步结果数据存入第二阶段梯度同步结果队列,以便基于第二同步结果数据计算网络模型的网络层的梯度数据。
在一示例性实施例中,第二阶段梯度同步结果队列为先进先出队列。
在一示例性实施例中,该梯度数据同步系统还包括:
确定模块,用于在对第一阶段梯度同步结果队列中的第一同步结果数据在分布式训练集群的至少一个加速器节点中进行第二同步子阶段对应的第二同步操作的过程中,确定网络模型中的目标网络层;
第二计算模块,用于基于目标网络层的第二同步结果数据计算目标网络层在下一次迭代训练中的前向计算结果数据;前向计算结果数据用于计算目标网络层在下一次迭代训练中的梯度数据;
第四存储模块,用于将目标网络层的计算结果数据存储到第二计算结果队列。
在一示例性实施例中,确定网络模型中的目标网络层的过程包括:
确定第二计算层索引的当前索引值;第二计算层索引的初始索引值为1;
根据第二计算层索引的当前索引值获取第M网络层的最后一个块索引的当前索引值;M为第二计算层索引的当前索引值;
判断最后一个块索引的当前索引值是否小于或等于第二阶段梯度同步块索引的当前索引值;
若是,将第M网络层确定为目标网络层。
在一示例性实施例中,基于目标网络层的第二同步结果数据计算目标网络层在下一次迭代训练中的前向计算结果数据的过程包括:
基于第M网络层的第二同步结果数据进行前向计算,得到第M网络层在下一次迭代训练中的前向计算结果数据,并将第二计算层索引的当前索引值加1,重复确定第二计算层索引的当前索引值的过程,直至第二计算层索引的当前索引值达到网络模型的总网络层数。
在一示例性实施例中,根据第二计算层索引的当前索引值获取第M网络层的最后一个块索引的当前索引值的过程包括:
获取层块查找表;
根据第二计算层索引的当前索引值在层块查找表中查找第M网络层的最后一个块索引的当前索引值。
在一示例性实施例中,层块查找表包括网络模型的各网络层及各网络层对应的最后一个块的标号的对应关系。
在一示例性实施例中,层块查找表以键值对存储对应关系。
第四方面,本发明还提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上文任意一个实施例所描述的梯度数据同步方法的步骤。
当然,电子设备还可以包括各种网络接口,电源等组件。
对于本发明所提供的一种电子设备的介绍请参照上述实施例,本发明在此不再赘述。
本发明所提供的一种电子设备具有和上述梯度数据同步方法相同的有益效果。
第五方面,本发明还提供了一种分布式训练集群,包括多个加速器节点,每个加速器节点包括如上文的电子设备。
在一示例性实施例中,加速器节点为图形处理器节点。
当然,加速器节点除了可以为图形处理器节点,还可以为MLU加速卡、T20加速卡、FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)等。
第六方面,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上文任意一个实施例所描述的梯度数据同步方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明所提供的一种计算机可读存储介质的介绍请参照上述实施例,本发明在此不再赘述。
本发明所提供的一种计算机可读存储介质具有和上述梯度数据同步方法相同的有益效果。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (25)
1.一种梯度数据同步方法,其特征在于,应用于分布式训练集群的任一个加速器节点,所述梯度数据同步方法包括:
获取网络模型的当前网络层的梯度数据,对所述梯度数据在所述分布式训练集群的至少一个所述加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到当前网络层对应的第一同步结果数据;
将当前网络层的第一同步结果数据存储到第一阶段梯度同步结果队列;
判断是否对所有网络层的梯度数据均完成所述第一同步操作;
若否,等待对所有所述网络层的梯度数据均完成所述第一同步操作;
若是,对所述第一阶段梯度同步结果队列中的第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作;
对所述梯度数据在所述分布式训练集群的至少一个所述加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到当前网络层对应的第一同步结果数据之后,所述梯度数据同步方法还包括:
令第一阶段梯度同步层索引的当前索引值减1,所述第一阶段梯度同步层索引的初始索引值为总网络层数;
所述判断是否对所有网络层的梯度数据均完成所述第一同步操作的过程包括:
判断所述第一阶段梯度同步层索引的当前索引值是否为0;
若是,判定对所有网络层的梯度数据均完成所述第一同步操作;
若否,判定未对所有网络层的梯度数据均完成所述第一同步操作。
2.根据权利要求1所述的梯度数据同步方法,其特征在于,所述获取网络模型的当前网络层的梯度数据之前,所述梯度数据同步方法还包括:
计算当前网络层的梯度数据;
将当前网络层的梯度数据存储到第一计算结果队列;所述第一计算结果队列为先进先出队列;
所述获取网络模型的当前网络层的梯度数据的过程包括:
从所述第一计算结果队列获取网络模型的当前网络层的梯度数据。
3.根据权利要求2所述的梯度数据同步方法,其特征在于,所述计算当前网络层的梯度数据的过程包括:
对所述当前网络层对应的前向计算结果数据进行反向计算,得到所述当前网络层的梯度数据;
若所述网络模型的当前次迭代训练为第一次迭代训练,所述前向计算结果数据基于接收到的训练数据得到,若所述当前次迭代训练为第j次迭代训练,所述前向计算结果数据基于第j-1次迭代训练的第二同步结果数据得到,j为大于1的整数。
4.根据权利要求2所述的梯度数据同步方法,其特征在于,所述计算当前网络层的梯度数据之后,所述梯度数据同步方法还包括:
令第一计算索引的当前索引值减1,所述第一计算索引的初始索引值为所述网络模型的总网络层数。
5.根据权利要求4所述的梯度数据同步方法,其特征在于,从所述第一计算结果队列获取网络模型的当前网络层的梯度数据的过程包括:
确定所述第一阶段梯度同步层索引的当前索引值以及所述第一计算索引的当前索引值;
基于所述第一阶段梯度同步层索引的当前索引值以及所述第一计算索引的当前索引值判断当前网络层是否满足第一同步条件;
若是,从所述第一计算结果队列获取网络模型的当前网络层的梯度数据。
6.根据权利要求5所述的梯度数据同步方法,其特征在于,基于所述第一阶段梯度同步层索引的当前索引值以及所述第一计算索引的当前索引值判断当前网络层是否满足第一同步条件的过程包括:
判断所述第一阶段梯度同步层索引的当前索引值是否大于所述第一计算索引的当前索引值;
若是,判定当前网络层满足第一同步条件;
若否,判定当前网络层不满足所述第一同步条件。
7.根据权利要求4所述的梯度数据同步方法,其特征在于,所述梯度数据同步方法还包括:
判断所述第一计算索引的当前索引值是否为0;
若是,判断是否满足所述网络模型的获取条件;
若是,结束对所述网络模型的训练。
8.根据权利要求1所述的梯度数据同步方法,其特征在于,所述第一阶段梯度同步结果队列为先进后出队列。
9.根据权利要求1-8任意一项所述的梯度数据同步方法,其特征在于,对所述第一阶段梯度同步结果队列中的第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作的过程包括:
确定同步块;
按所述同步块在所述第一阶段梯度同步结果队列中获取待处理第一同步结果数据,对所述待处理第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作。
10.根据权利要求9所述的梯度数据同步方法,其特征在于,按所述同步块在所述第一阶段梯度同步结果队列中获取待处理第一同步结果数据,对所述待处理第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作的过程包括:
确定第二阶段梯度同步块索引的当前索引值;所述第二阶段梯度同步块索引的初始索引值为1;
判断所述第二阶段梯度同步块索引的当前索引值是否大于或等于预设总块数;
若否,在所述第一阶段梯度同步结果队列中获取一个同步块的待处理第一同步结果数据,对所述待处理第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作,将所述第二阶段梯度同步块索引的当前索引值加1,然后重复确定第二阶段梯度同步块索引的当前索引值的操作;
若是,停止在所述第一阶段梯度同步结果队列中获取一个同步块的待处理第一同步结果数据的操作。
11.根据权利要求10所述的梯度数据同步方法,其特征在于,判断所述第二阶段梯度同步块索引的当前索引值是否大于或等于预设总块数之后,所述梯度数据同步方法还包括:
若所述第二阶段梯度同步块索引的当前索引值大于或等于所述预设总块数,判断是否满足所述网络模型的获取条件;
若是,结束对所述网络模型的训练。
12.根据权利要求10所述的梯度数据同步方法,其特征在于,在所述第一阶段梯度同步结果队列中获取一个同步块的待处理第一同步结果数据,对所述待处理第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作之后,所述梯度数据同步方法还包括:
得到第二同步结果数据;将所述第二同步结果数据存入第二阶段梯度同步结果队列,以便基于所述第二同步结果数据计算所述网络模型的网络层的梯度数据。
13.根据权利要求12所述的梯度数据同步方法,其特征在于,所述第二阶段梯度同步结果队列为先进先出队列。
14.根据权利要求12所述的梯度数据同步方法,其特征在于,所述梯度数据同步方法还包括:
在对所述第一阶段梯度同步结果队列中的第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作的过程中,确定所述网络模型中的目标网络层;
基于所述目标网络层的第二同步结果数据计算所述目标网络层在下一次迭代训练中的前向计算结果数据;所述前向计算结果数据用于计算所述目标网络层在下一次迭代训练中的梯度数据;
将所述目标网络层的计算结果数据存储到第二计算结果队列。
15.根据权利要求14所述的梯度数据同步方法,其特征在于,确定所述网络模型中的目标网络层的过程包括:
确定第二计算层索引的当前索引值;所述第二计算层索引的初始索引值为1;
根据所述第二计算层索引的当前索引值获取第M网络层的最后一个块索引的当前索引值;M为所述第二计算层索引的当前索引值;
判断所述最后一个块索引的当前索引值是否小于或等于所述第二阶段梯度同步块索引的当前索引值;
若是,将所述第M网络层确定为所述目标网络层。
16.根据权利要求15所述的梯度数据同步方法,其特征在于,基于所述目标网络层的第二同步结果数据计算所述目标网络层在下一次迭代训练中的前向计算结果数据的过程包括:
基于所述第M网络层的第二同步结果数据进行前向计算,得到所述第M网络层在下一次迭代训练中的前向计算结果数据,并将所述第二计算层索引的当前索引值加1,重复所述确定第二计算层索引的当前索引值的过程,直至所述第二计算层索引的当前索引值达到所述网络模型的总网络层数。
17.根据权利要求15所述的梯度数据同步方法,其特征在于,根据所述第二计算层索引的当前索引值获取第M网络层的最后一个块索引的当前索引值的过程包括:
获取层块查找表;
根据所述第二计算层索引的当前索引值在所述层块查找表中查找第M网络层的最后一个块索引的当前索引值。
18.根据权利要求17所述的梯度数据同步方法,其特征在于,所述层块查找表包括所述网络模型的各网络层及各网络层对应的最后一个块的标号的对应关系。
19.根据权利要求18所述的梯度数据同步方法,其特征在于,所述层块查找表以键值对存储所述对应关系。
20.一种模型训练方法,其特征在于,应用于分布式训练集群的任一个加速器节点,所述模型训练方法包括:
在当前次迭代训练中,对网络模型的各网络层进行前向计算,得到各所述网络层的前向计算结果数据;
针对每一所述网络层,基于所述网络层的前向计算结果数据对所述网络层进行反向计算得到梯度数据;
将计算得到所述梯度数据的所述网络层作为当前网络层,按照如权利要求1-19任意一项所述梯度数据同步方法进行梯度数据同步,以便在下一次迭代训练中基于同步后的梯度数据更新所述网络模型的模型参数。
21.一种梯度数据同步系统,其特征在于,应用于分布式训练集群的任一个加速器节点,所述梯度数据同步系统包括:
第一同步模块,用于获取网络模型的当前网络层的梯度数据,对所述梯度数据在所述分布式训练集群的至少一个所述加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到当前网络层对应的第一同步结果数据;
存储模块,用于将当前网络层的第一同步结果数据存储到第一阶段梯度同步结果队列;
判断模块,用于判断是否对所有网络层的梯度数据均完成所述第一同步操作,若否,等待对所有所述网络层的梯度数据均完成所述第一同步操作,若是,触发第二同步模块;
所述第二同步模块,用于对所述第一阶段梯度同步结果队列中的第一同步结果数据在所述分布式训练集群的至少一个所述加速器节点中进行第二阶段梯度同步对应的第二同步操作;
该梯度数据同步系统还包括:
第二管理模块,用于在对所述梯度数据在所述分布式训练集群的至少一个所述加速器节点中进行第一阶段梯度同步对应的第一同步操作,得到当前网络层对应的第一同步结果数据之后,令第一阶段梯度同步层索引的当前索引值减1,所述第一阶段梯度同步层索引的初始索引值为总网络层数;
所述判断是否对所有网络层的梯度数据均完成所述第一同步操作的过程包括:
判断所述第一阶段梯度同步层索引的当前索引值是否为0;
若是,判定对所有网络层的梯度数据均完成所述第一同步操作;
若否,判定未对所有网络层的梯度数据均完成所述第一同步操作。
22.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1-19任意一项所述的梯度数据同步方法的步骤。
23.一种分布式训练集群,其特征在于,包括多个加速器节点,每个加速器节点包括如权利要求22所述的电子设备。
24.根据权利要求23所述的分布式训练集群,其特征在于,所述加速器节点为图形处理器节点。
25.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-19任意一项所述的梯度数据同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311220007.XA CN116955365B (zh) | 2023-09-21 | 2023-09-21 | 梯度数据同步方法、模型训练方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311220007.XA CN116955365B (zh) | 2023-09-21 | 2023-09-21 | 梯度数据同步方法、模型训练方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116955365A CN116955365A (zh) | 2023-10-27 |
CN116955365B true CN116955365B (zh) | 2024-02-09 |
Family
ID=88449666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311220007.XA Active CN116955365B (zh) | 2023-09-21 | 2023-09-21 | 梯度数据同步方法、模型训练方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116955365B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117155929B (zh) * | 2023-10-31 | 2024-02-09 | 浪潮电子信息产业股份有限公司 | 分布式集群的通信方法、系统、电子设备及可读存储介质 |
CN118396048B (zh) * | 2024-06-28 | 2024-09-20 | 山东海量信息技术研究院 | 分布式训练系统、方法及设备、介质和计算机程序产品 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112862088A (zh) * | 2021-01-18 | 2021-05-28 | 中山大学 | 一种基于流水线环形参数通信的分布式深度学习方法 |
WO2021244354A1 (zh) * | 2020-06-03 | 2021-12-09 | 上海商汤智能科技有限公司 | 神经网络模型的训练方法和相关产品 |
CN114327399A (zh) * | 2021-11-25 | 2022-04-12 | 腾讯科技(深圳)有限公司 | 分布式训练方法、装置、计算机设备、存储介质和产品 |
WO2022267036A1 (zh) * | 2021-06-25 | 2022-12-29 | 华为技术有限公司 | 神经网络模型训练方法和装置、数据处理方法和装置 |
CN115859117A (zh) * | 2022-12-22 | 2023-03-28 | 湖南大学 | 改进深度学习模型分布式数据并行训练效率的方法和系统 |
CN116070720A (zh) * | 2023-03-23 | 2023-05-05 | 山东海量信息技术研究院 | 基于分布式集群的数据处理方法、系统、设备及存储介质 |
CN116644803A (zh) * | 2023-07-27 | 2023-08-25 | 浪潮电子信息产业股份有限公司 | 分布式协同训练控制方法、系统、装置、设备及存储介质 |
CN116663639A (zh) * | 2023-07-31 | 2023-08-29 | 浪潮电子信息产业股份有限公司 | 一种梯度数据同步方法、系统、装置及介质 |
-
2023
- 2023-09-21 CN CN202311220007.XA patent/CN116955365B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021244354A1 (zh) * | 2020-06-03 | 2021-12-09 | 上海商汤智能科技有限公司 | 神经网络模型的训练方法和相关产品 |
CN112862088A (zh) * | 2021-01-18 | 2021-05-28 | 中山大学 | 一种基于流水线环形参数通信的分布式深度学习方法 |
WO2022267036A1 (zh) * | 2021-06-25 | 2022-12-29 | 华为技术有限公司 | 神经网络模型训练方法和装置、数据处理方法和装置 |
CN114327399A (zh) * | 2021-11-25 | 2022-04-12 | 腾讯科技(深圳)有限公司 | 分布式训练方法、装置、计算机设备、存储介质和产品 |
CN115859117A (zh) * | 2022-12-22 | 2023-03-28 | 湖南大学 | 改进深度学习模型分布式数据并行训练效率的方法和系统 |
CN116070720A (zh) * | 2023-03-23 | 2023-05-05 | 山东海量信息技术研究院 | 基于分布式集群的数据处理方法、系统、设备及存储介质 |
CN116644803A (zh) * | 2023-07-27 | 2023-08-25 | 浪潮电子信息产业股份有限公司 | 分布式协同训练控制方法、系统、装置、设备及存储介质 |
CN116663639A (zh) * | 2023-07-31 | 2023-08-29 | 浪潮电子信息产业股份有限公司 | 一种梯度数据同步方法、系统、装置及介质 |
Non-Patent Citations (1)
Title |
---|
卷积神经网络并行训练的优化研究;李相桥;李晨;田丽华;张玉龙;;计算机技术与发展(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116955365A (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116955365B (zh) | 梯度数据同步方法、模型训练方法、系统、设备及介质 | |
CN108122032B (zh) | 一种神经网络模型训练方法、装置、芯片和系统 | |
CN108009642B (zh) | 分布式机器学习方法和系统 | |
CN111695696A (zh) | 一种基于联邦学习的模型训练的方法及装置 | |
CN109871270B (zh) | 调度方案生成方法及装置 | |
CN114356578B (zh) | 自然语言处理模型的并行计算方法、装置、设备及介质 | |
CN111142746B (zh) | 一种系统配额计算方法和装置 | |
CN116166405B (zh) | 异构场景下的神经网络任务调度策略确定方法及装置 | |
CN112463189B (zh) | 基于通信操作稀疏化的分布式深度学习多步延迟更新方法 | |
CN116962438B (zh) | 一种梯度数据同步方法、系统、电子设备及可读存储介质 | |
CN115665174B (zh) | 一种梯度数据的同步方法、系统、设备及存储介质 | |
CN110287048B (zh) | 数据异常检测方法和装置 | |
CN106708822A (zh) | 一种文件存储方法和装置 | |
CN114428907B (zh) | 信息搜索方法、装置、电子设备及存储介质 | |
US20190012596A1 (en) | Data processing system, method, and device | |
CN111985634B (zh) | 神经网络的运算方法、装置、计算机设备及存储介质 | |
CN117633116A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN116991949A (zh) | 数据同步方法、装置、设备、服务器及可读存储介质 | |
CN115759209B (zh) | 神经网络模型的量化方法、装置、电子设备及介质 | |
CN115269730A (zh) | 宽表同步方法及装置 | |
CN114912587A (zh) | 神经网络分布式训练系统、方法、装置、计算单元及介质 | |
CN110750724B (zh) | 数据处理方法、装置、设备和存储介质 | |
CN108304370B (zh) | 数据更新方法及装置 | |
CN111432027A (zh) | 平行链区块同步方法、设备和存储介质 | |
CN115150301B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |