CN112001455B - 模型训练方法、装置以及电子设备 - Google Patents
模型训练方法、装置以及电子设备 Download PDFInfo
- Publication number
- CN112001455B CN112001455B CN202011048284.3A CN202011048284A CN112001455B CN 112001455 B CN112001455 B CN 112001455B CN 202011048284 A CN202011048284 A CN 202011048284A CN 112001455 B CN112001455 B CN 112001455B
- Authority
- CN
- China
- Prior art keywords
- gradient
- fusion
- gradients
- electronic device
- processor
- 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 116
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000004927 fusion Effects 0.000 claims abstract description 449
- 238000004891 communication Methods 0.000 claims abstract description 147
- 238000006243 chemical reaction Methods 0.000 claims description 40
- 230000015654 memory Effects 0.000 claims description 19
- 238000000605 extraction Methods 0.000 claims description 14
- 238000013135 deep learning Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 19
- 238000007667 floating Methods 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 12
- 238000009825 accumulation Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Medical Informatics (AREA)
- Selective Calling Equipment (AREA)
Abstract
本申请公开了模型训练方法、装置以及电子设备,涉及深度学习技术领域。具体实现方案为:第一电子设备向第二电子设备发送梯度数量;接收所述第二电子设备基于所述梯度数量发送的第一融合梯度;根据所述第一融合梯度与第二融合梯度,获得目标融合梯度,其中,所述第二融合梯度根据从所述第一处理器对应的梯度队列中取出的N个梯度进行融合获得,N为所述梯度数量;向所述第二电子设备发送所述目标融合梯度;根据所述目标融合梯度,对所述第一电子设备的学习模型的参数进行更新。由于第二电子设备发送的第一融合梯度,对N个梯度进行了梯度融合,可减少第一电子设备与第二电子设备之间的通信次数,提高学习模型的训练效率。
Description
技术领域
本公开涉及计算机技术领域中的深度学习技术,尤其涉及一种模型训练方法、装置以及电子设备。
背景技术
深度学习发展迅速,模型的参数量越来越大,训练模型的计算量也非常大,大型模型使用单个处理器,例如图形处理器(Graphics Processing Unit,GPU)进行训练需要耗时数天甚至数周,严重影响业务算法的快速迭代,分布式训练可以使用多处理器同时对模型进行训练,可提升训练速度,但是分布式训练中,多个处理器之间交互频次高,对通信性能要求较高。
发明内容
本公开提供了一种模型训练方法、装置以及电子设备。
根据本公开的第一方面,提供了一种模型训练方法,应用于第一电子设备,所述第一电子设备包括第一处理器,包括:
向第二电子设备发送梯度数量;
接收所述第二电子设备基于所述梯度数量发送的第一融合梯度;
根据所述第一融合梯度与第二融合梯度,获得目标融合梯度,其中,所述第二融合梯度根据从所述第一处理器对应的梯度队列中取出的N个梯度进行融合获得,N为所述梯度数量;
向所述第二电子设备发送所述目标融合梯度;
根据所述目标融合梯度,对所述第一电子设备的学习模型的参数进行更新
根据本公开的第二方面,提供了一种模型训练方法,应用于第二电子设备,所述第二电子设备包括第二处理器,包括:
接收第一电子设备发送的梯度数量;
向所述第一电子设备发送第一融合梯度,所述第一融合梯度根据从所述第二处理器对应的梯度队列中取出的N个梯度融合获得,N为所述梯度数量;
接收所述第一电子设备发送的所述目标融合梯度;
根据所述目标融合梯度,对所述第二电子设备的学习模型的参数进行更新。
根据本公开的第三方面,提供了一种模型训练装置,应用于第一电子设备,所述第一电子设备包括第一处理器,包括:
第一发送模块,用于向第二电子设备发送梯度数量;
接收模块,用于接收所述第二电子设备基于所述梯度数量发送的第一融合梯度;
第一获取模块,用于根据所述第一融合梯度与第二融合梯度,获得目标融合梯度,其中,所述第二融合梯度根据从所述第一处理器对应的梯度队列中取出的N个梯度进行融合获得,N为所述梯度数量;
第二发送模块,用于向所述第二电子设备发送所述目标融合梯度;
第一更新模块,用于根据所述目标融合梯度,对所述第一电子设备的学习模型的参数进行更新。
根据本公开的第四方面,提供了一种模型训练装置,应用于第二电子设备,所述第二电子设备包括第二处理器,包括:
第一接收模块,用于接收第一电子设备发送的梯度数量;
发送模块,用于向所述第一电子设备发送第一融合梯度,所述第一融合梯度根据从所述第二处理器对应的梯度队列中取出的N个梯度融合获得,N为所述梯度数量;
第二接收模块,用于接收所述第一电子设备发送的所述目标融合梯度;
更新模块,用于根据所述目标融合梯度,对所述第二电子设备的学习模型的参数进行更新。
根据本公开的第五方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面任一项所述的方法,或者,以使所述至少一个处理器能够执行第二方面任一项所述的方法。
根据本公开的第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面任一项所述的方法,或者,所述计算机指令用于使所述计算机执行第二方面任一项所述的方法。
本申请的技术解决了分布式模型训练中通信次数多的问题。第一电子设备向第二电子设备发送梯度数量;接收所述第二电子设备基于所述梯度数量发送的第一融合梯度;根据所述第一融合梯度与第二融合梯度,获得目标融合梯度,其中,所述第二融合梯度根据从所述第一处理器对应的梯度队列中取出的N个梯度进行融合获得,N为所述梯度数量;向所述第二电子设备发送所述目标融合梯度;根据所述目标融合梯度,对所述第一电子设备的学习模型的参数进行更新。由于第二电子设备发送的第一融合梯度,对N个梯度进行了梯度融合,可减少第一电子设备与第二电子设备之间的通信次数,提高学习模型的训练效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例提供的模型训练方法的流程图之一;
图2是本申请实施例提供的模型训练方法的流程图之二;
图3是本申请实施例提供的模型训练方法的流程图之三;
图4是本申请实施例提供的模型训练装置的结构图之一;
图5是本申请实施例提供的模型训练装置的结构图之二;
图6是用来实现本申请实施例的模型训练方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
参见图1,图1是本申请实施例提供的模型训练方法的流程图,如图1所示,本实施例提供一种模型训练方法,应用于第一电子设备,第一电子设备包括第一处理器,包括以下步骤:
步骤101、向第二电子设备发送梯度数量。第二电子设备包括第二处理器,所述第二处理器为分布式系统中除所述第一处理器之外的处理器。
分布式系统包括多个处理器,处理器可为图形处理器(Graphics ProcessingUnit,GPU),这多个处理器可包括在一个或多个电子设备上,即第一个电子设备可包括一个或多个处理器。本申请中的模型训练方法,可用于分布式系统的模型训练中。
从多个处理器中选出一个处理器作为第一处理器,第一处理器可通过人为指定,也可采用预设规则自动选出,在此不做限定。第二处理器的数量可为一个或多个。
将训练样本按照处理器的数量进行均等划分,获得多份训练子样本,每个训练子样本分配给一个处理器。处理器与该处理器训练的学习模型均设置在同一电子设备上,处理器采用分配到的训练子样本对该学习模型进行训练。各个处理器训练的学习模型相同。
处理器采用分配到的训练子样本对学习模型进行训练,在前向计算结束后得到模型的损失,然后进行反向传播,计算学习模型中每个张量(tensor)的梯度。每个处理器都采用上述方式进行梯度计算,并将计算获得的梯度放入处理器对应的梯度队列中,每个处理器对应一个梯度队列。在放置时,可按照各个张量在学习模型中的顺序放入处理器对应的梯度队列中;或者,按照第一处理器设置的顺序放入处理器对应的梯度队列中。
例如,由于各个处理器的计算快慢不同,相同时间段内,计算出的梯度的数量也不同,第一处理器收集汇总第二处理器当前计算出的梯度情况,若确定第一张量上的梯度在所有处理器上都已经计算完成,则将第一张量的名字广播给第二处理器,第二处理器接收到该广播后,将该计算出的第一张量的梯度放入对应的梯度队列中,第一处理器也会将计算出的第一张量的梯度放入其对应的梯度队列中。
梯度可理解为是多维矩阵,各处理器计算出的同一张量上的梯度具有相同的维度。
梯度数量可理解为第一处理器对应的梯度队列中的梯度的数量。
步骤102、接收所述第二电子设备基于所述梯度数量发送的第一融合梯度。
第二电子设备接收到梯度数量之后,第二处理器从对应的梯度队列中取出N个梯度进行梯度融合,获得第一融合梯度,并发送给第一电子设备。第一电子设备接收第二电子设备发送的第一融合梯度,其中,N为梯度数量。第二电子设备将N个梯度进行融合之后再发送给第一电子设备,可减少第二电子设备与第一电子设备之间的通信次数,提高训练效率。
第一处理器也从其对应的梯度队列中取出N个梯度进行梯度融合,获得第二融合梯度。
步骤103、根据所述第一融合梯度与第二融合梯度,获得目标融合梯度,其中,所述第二融合梯度根据从所述第一处理器对应的梯度队列中取出的N个梯度进行融合获得,N为所述梯度数量。
第一融合梯度和第二融合梯度具有相同的维度。在获得第一融合梯度和第二融合梯度之后,可对第一融合梯度和第二融合梯度进行求和后求取平均值,获得目标融合梯度。第一融合梯度的数量与第二处理器的数量相同。
步骤104、向所述第二电子设备发送所述目标融合梯度。
将目标融合梯度发送给第二电子设备,第二处理器可根据目标融合梯度,对第二处理器对应的学习模型的参数进行更新。
步骤105、根据所述目标融合梯度,对所述第一电子设备的学习模型的参数进行更新。
第一处理器和第二处理器均采用目标融合梯度对各自对应的学习模型的参数进行更新,可使得各处理器对应的学习模型的参数保持相同,实现分布式模型训练。
本实施例中,第一电子设备向第二电子设备发送梯度数量;接收所述第二电子设备基于所述梯度数量发送的第一融合梯度;根据所述第一融合梯度与第二融合梯度,获得目标融合梯度,其中,所述第二融合梯度根据从所述第一处理器对应的梯度队列中取出的N个梯度进行融合获得,N为所述梯度数量;向所述第二电子设备发送所述目标融合梯度;根据所述目标融合梯度,对所述第一电子设备的学习模型的参数进行更新。由于第二电子设备发送的第一融合梯度,对N个梯度进行了梯度融合,可减少第一电子设备与第二电子设备之间的通信次数,提高学习模型的训练效率。
上述中,在步骤101、向第二电子设备发送梯度数量之后,在步骤103、根据所述第一融合梯度与第二融合梯度,获得目标融合梯度之前,还包括:
从所述第一处理器对应的梯度队列中取出N个梯度;所述N个梯度由所述第一处理器在采用训练子样本对所述学习模型进行训练的过程中获得,训练子样本为将训练样本按照处理器的数量进行均等划分,获得的多份训练子样本中的一份,每个训练子样本分配给一个处理器。
获取所述N个梯度取出顺序中的前M个梯度,其中,所述前M个梯度的字节数之和不大于第一融合阈值,且所述前M个梯度与第三梯度的字节数之和大于第一融合阈值,所述第三梯度为N个梯度取出顺序中,排序在所述前M个梯度之后的梯度,M为不大于N的正整数;
将所述前M个梯度进行融合,获得所述第二融合梯度。
本实施例中的步骤,为第一电子设备获得第二融合梯度的过程。具体的,由第一处理器从其对应的梯度队列中取出N个梯度,队列具有先进先出的特性,这N个梯度之间的先后顺序与其出队的顺序一致。
梯度的字节数可以理解为梯度数据所占的字节数(byte)。
对梯度队列中当前取出的梯度的字节数进行判断,判断其是否不大于第一融合阈值,若大于,则继续从梯度队列中取出梯度,直到取到目标梯度,所述目标梯度为从梯度队列中取出的的字节数不大于第一融合阈值的梯度;
若梯度队列中当前取出的梯度的字节数不大于第一融合阈值,则将从梯度队列中取出的所有目标梯度的字节数进行累加,若累加和不大于第一融合阈值,则继续从梯度队列中取出目标梯度;若累加和大于第一融合阈值,则最新取出的目标梯度不参与累加,并继续从梯度队列中取出目标梯度,重复上述累加和取出过程,直到梯度队列中的所有梯度均被取出。也就是说,获取N个梯度取出顺序中的前M个梯度,其中,前M个梯度的字节数之和不大于第一融合阈值,且若前M个梯度中不包括最后取出(即第N个取出)的梯度,则前M个梯度与第三梯度的字节数之和大于第一融合阈值,第三梯度为N个梯度取出顺序中,排序在前M个梯度之后的梯度。
将M个梯度进行融合,可以是将M个梯度进行拼接,例如,将两个4行4列的梯度进行融合时,可将第二个梯度拼接在第一个梯度的右侧,获得一个4行8列的梯度,或者,将第二个梯度拼接在第一个梯度的下侧,获得一个8行4列的梯度。
在进行梯度融合时,还可记录参与融合的梯度的数量M,以及每个梯度的大小,也可以理解为梯度的维度,例如上述示例中,参与融合的两个梯度的大小为4行4列。后续进行梯度拆分时,可使用此处记录的参与融合的梯度数量M,以及每个梯度的维度。
进一步的,第二处理器也采用上述相同的方式对其对应的梯度队列中的梯度进行融合,值得说明的是,各个处理器在进行梯度融合时,采用相同的第一融合阈值。
本实施例中,第一处理器从所述第一处理器对应的梯度队列中取出N个梯度;并获取所述N个梯度取出顺序中的前M个梯度;将所述前M个梯度进行融合,获得所述第二融合梯度。对融合之后的梯度进行运算,可以减少第一处理器与第二处理器之间的通信次数,提高数据传输效率,以提高获取目标融合梯度的效率,从而提高模型训练效率。
在本申请一个实施例中,所述将所述前M个梯度进行融合,获得所述第二融合梯度,包括:
若所述前M个梯度中第一梯度的数据类型的精度与预设精度不同,则对所述第一梯度进行精度转换,获得数据类型的精度与所述预设精度相同的新的第一梯度;
将进行精度转换后的前M个梯度进行融合,获得所述第二融合梯度。
预设精度可以预先设置,例如,设置16位浮点数(即FP16)为预设精度,若前M个梯度中有精度大于16位浮点数的精度,则将该梯度的数据转换成16位浮点数的数据,以降低梯度的数据的精度。例如,若第一梯度的数据的数据类型为32位浮点数,则将第一梯度的数据进行精度转换,转换成16位浮点数的数据。第一梯度为M个梯度中数据类型的精度与预算精度不同的梯度。进一步的,对进行精度转换的第一梯度进行标记。
预设精度还可以动态确定,例如,若前M个梯度的数据类型的精度并不完全相同,则可以将前M个梯度中,数据类型的精度最低的精度作为预设精度。
同样的,第二处理器在进行梯度融合之前,也可以先对梯度的精度进行转换。值得说明的是,各个处理器在对梯度进行精度转换时,采用相同的预设精度
本实施例中,在进行梯度融合之前,对梯度进行精度转换,将高精度的梯度转换为低精度的梯度,然后进行梯度融合,获得低精度的目标融合梯度,可减少计算复杂度,并且,在将目标融合梯度发送给第二处理器时,还可以减少数据传输量。
在本申请一个实施例中,所述根据所述目标融合梯度,对所述第一电子设备的学习模型的参数进行更新,包括:
根据梯度融合信息,对所述目标融合梯度进行拆分,获得M个第二梯度,所述梯度融合信息包括参与梯度融合的数量M,以及所述前M个梯度中各梯度的维度;
利用所述M个第二梯度对所述第一电子设备的学习模型的参数进行更新。
本实施例中,对目标融合梯度按照梯度融合信息进行拆分,例如,若进行梯度融合时,M为2,将两个4行4列的梯度进行融合,获得一个4行8列的第一融合梯度,第二融合梯度采用相同的方式进行融合,第二融合梯度也为一个4行8列的第二融合梯度,记录参与融合的梯度数量为2,两个梯度的维度均为4行4列。根据第一融合梯度和第二融合梯度获得的目标融合梯度,也是一个4行8列的梯度。对该目标融合梯度进行拆分时,将其拆分成2个4行4列的梯度,第一个第二梯度包括目标融合梯度的前4列,第二个第二梯度包括目标融合梯度的后4列。
将获得的M个第二梯度应用在第一电子设备的学习模型上,即利用所述M个第二梯度对所述第一电子设备的学习模型的参数进行更新。同样的,第二处理器获得的M个第二梯度对第二电子设备的学习模型的参数进行更新,这样,每个电子设备上的学习模型的参数都会被更新为相同的参数。
进一步的,在获得M个第二梯度之后,若前述步骤中对梯度进行精度转换过,此时还可以对第二梯度进行精度转换,将M个第二梯度中被标记的梯度进行精度转换,转换为初始精度。例如,前述步骤中,将精度为32位浮点数的梯度,转换成16位浮点数的数据,则对被标记的第二梯度进行精度转换时,将精度为16位浮点数的梯度转换为32为浮点数的梯度。再利用转换完成后的M个第二梯度对所述第一电子设备的学习模型的参数进行更新。
本实施例中,根据梯度融合信息,对所述目标融合梯度进行拆分,获得M个第二梯度,所述梯度融合信息包括参与梯度融合的数量M,以及所述前M个梯度中各梯度的维度,然后利用所述M个第二梯度对所述第一电子设备的学习模型的参数进行更新。梯度拆分与前述步骤的梯度融合进行配合使用,以减少第一处理器与第二处理器之间的通信次数,提高数据传输效率,以提高获取目标融合梯度的效率,从而提高模型训练效率。
在本申请一个实施例中,所述向第二电子设备发送梯度数量,包括:
每隔第一预设通信间隔时间,查询所述第一处理器对应的梯度队列中的梯度的数量,获得梯度数量;
向所述第二电子设备发送所述梯度数量。
处理器采用分配到的训练子样本对学习模型进行训练,在前向计算结束后得到模型的损失,然后进行反向传播,计算学习模型中每个张量(tensor)的梯度。每个处理器都采用上述方式进行梯度计算,并将计算获得的梯度放入处理器对应的梯度队列中,每个处理器对应一个梯度队列。在放置时,可按照各个张量在学习模型中的顺序放入处理器对应的梯度队列中;或者,按照第一处理器设置的顺序放入处理器对应的梯度队列中。
例如,由于各个处理器的计算快慢不同,相同时间段内,计算出的梯度的数量也不同,第一处理器收集汇总第二处理器当前计算出的梯度情况,若确定第一张量上的梯度在所有处理器上都已经计算完成,则将第一张量的名字广播给第二处理器,第二处理器接收到该广播后,将该计算出的第一张量的梯度放入对应的梯度队列中,第一处理器也会将计算出的第一张量的梯度放入其对应的梯度队列中。
第一处理器每隔第一预设通信间隔时间,查询所述第一处理器对应的梯度队列中的梯度的数量,获得梯度数量,并将梯度数量通过远程过程调用(Remote Procedure Call,RPC)广播给第二处理器。
本实施例中,由第一处理每隔第一预设通信间隔时间,查询所述第一处理器对应的梯度队列中的梯度的数量,获得梯度数量,并向所述第二电子设备发送所述梯度数量,便于各个处理器获取相同张量的梯度,并进行梯度融合,以实现多个处理器对同一学习模型的分布式训练,提高学习模型的训练效率。
在本申请一个实施例中,在所述根据所述目标融合梯度,对所述第一电子设备的学习模型的参数进行更新之后,还包括:
根据第一预设时间段内所述第一电子设备与所述第二电子设备之间的第一通信字节数,确定所述第一预设通信间隔时间和第一融合阈值对应的第一评分;
对所述第一预设通信间隔时间和第一融合阈值进行调整,获得第二预设通信间隔时间和第二融合阈值;
采用所述第二预设通信间隔时间和所述第二融合阈值,对所述第一电子设备的学习模型的参数进行更新;
根据第二预设时间段内所述第一电子设备与所述第二电子设备之间的第二通信字节数,确定所述第二预设通信间隔时间和第二融合阈值对应的第二评分;
根据所述第一评分和第二评分,从所述第一预设通信间隔时间和所述第二预设通信间隔时间中确定目标通信间隔时间,以及从所述第一融合阈值和所述第二融合阈值中确定目标融合阈值;
利用所述目标通信间隔时间和所述目标融合阈值,对所述第一电子设备的学习模型的参数进行更新,获得目标模型。
上述中,第一预设时间段为第一处理器使用第一预设通信间隔时间和第一融合阈值,完成个第一过程所采用的时间。第一过程可以是从第一处理器收集汇总第二处理器当前计算出的梯度情况开始,到采用梯度对学习模型进行更新完成的过程。第一通信字节数为第一预设时间段内所述第一电子设备与所述第二电子设备之间的通信字节数。根据第一预设时间段和第一通信字节数,可获得第一预设通信间隔时间和第一融合阈值对应的评分。进一步的,可以重复上述过程多次,获得第一预设通信间隔时间和第一融合阈值对应的多个评分,将这多个评分取平均值,将平均计算后获得的评分作为第一预设通信间隔时间和第一融合阈值对应的第一评分。
第二预设时间段为第一处理器使用第二预设通信间隔时间和第二融合阈值,完成第一过程所采用的时间。第二通信字节数为第二预设时间段内所述第一电子设备与所述第二电子设备之间的通信字节数。根据第二预设时间段和第二通信字节数,可获得第二预设通信间隔时间和第二融合阈值对应的评分。进一步的,可以重复上述过程多次,获得第二预设通信间隔时间和第二融合阈值对应的多个评分,将这多个评分取平均值,将平均计算后获得的评分作为第二预设通信间隔时间和第二融合阈值对应的第二评分。
根据第一评分和第二评分,确定目标通信间隔时间和目标融合阈值,例如,将第一评分和第二评分中得分最高的评分对应的通信间隔时间和融合阈值作为目标通信间隔时间和目标融合阈值;或者,对第一评分和第二评分,以及其各自对应的通信间隔时间和融合阈值,使用贝叶斯优化搜索获得目标通信间隔时间和目标融合阈值;或者,在根据贝叶斯优化搜索获得通信间隔时间和融合阈值之后,在通信间隔时间和融合阈值的设置下,对学习模型进行训练,获得通信间隔时间和融合阈值对应下的评分,采用前述相同方式,获得多组通信间隔时间和融合阈值对应下的评分,将最高评分对应的通信间隔时间和融合阈值作为目标通信间隔时间和目标融合阈值。
具体的,在对学习模型的参数进行一轮更新之后,可以采用新的预设通信间隔时间和新的融合阈值,即第二预设通信间隔时间和第二融合阈值,对学习模型进行下一轮训练。第一处理器可通过调整第一预设通信间隔时间和第一融合阈值,获得不同的预设通信间隔时间和不同的融合阈值,并在多组预设通信间隔时间和融合阈值的设置下,利用训练子样本对学习模型进行训练,获得各组预设通信间隔时间和融合阈值,以及其对应的评分,并将最高评分对应的预设通信间隔时间和融合阈值作为学习模型训练最终的预设通信间隔时间和融合阈值,利用训练子样本对学习模型进行训练。
对于每组预设通信间隔时间和融合阈值的评分,获取过程可以为:在该组预设通信间隔时间和融合阈值设置下,获取第一处理器对学习模型的参数进行一轮更新的第一过程的总耗时,以及第一处理器与第二处理器之间的通信总字节数,计算通信性能:通信性能=通信总字节数/总耗时,并将通信性能作为该组预设通信间隔时间和融合阈值对应的评分。
进一步的,在获取每组预设通信间隔时间和融合阈值的评分时,可以在该组预设通信间隔时间和融合阈值设置下,对学习模型的参数进行多轮更新,针对每一轮更新,均可获得一个评分,将多轮更新的评分进行平均后,可作为该组预设通信间隔时间和融合阈值的评分。
对于多组预设通信间隔时间和融合阈值,以及评分,可采用贝叶斯优化搜索来求解预设通信间隔时间和融合阈值的最优解,以优化参数,降低优化难度,再使用最优解更新训练的预设通信间隔时间和融合阈值参数。
重复上述方式,获得多组最优解。
对于每组最优解,在该组最优解设置下,获取第一处理器对学习模型的参数进行多轮更新的第一过程的总耗时,以及第一处理器与第二处理器之间的通信总字节数,并计算多轮更新对应的评分,最后将评分进行平均后,作为该组最优解对应的评分。计算获得多组最优解对应的评分,并将评分最高的最优解中的通信间隔时间和融合阈值作为目标通信间隔时间和目标融合阈值。
利用所述目标通信间隔时间和所述目标融合阈值,对所述第一电子设备的学习模型的参数进行更新,获得目标模型。也就是说,第一处理器在该目标通信间隔时间和目标融合阈值设置下,利用训练子样本对学习模型进行训练。
本实施例中,通过调整通信间隔时间和融合阈值,来对学习模型进行训练,计算通信间隔时间和融合阈值对应的评分,根据评分来确定目标通信间隔时间和目标融合阈值,以对通信间隔时间和融合阈值进行优化,提高学习模型的训练效率。
参见图2,图2是本申请实施例提供的模型训练方法的流程图,如图2所示,本实施例提供一种模型训练方法,应用于第二电子设备,第二电子设备包括第二处理器,包括以下步骤:
步骤201、接收第一电子设备发送的梯度数量。
分布式系统包括多个处理器,处理器可为图形处理器(Graphics ProcessingUnit,GPU),这多个处理器可包括在一个或多个电子设备上,即第一个电子设备可包括一个或多个处理器。本申请中的模型训练方法,可用于分布式系统的模型训练中。
从多个处理器中选出一个处理器作为第一处理器,第一处理器可通过人为指定,也可采用预设规则自动选出,在此不做限定。第二处理器的数量可为一个或多个。
将训练样本按照处理器的数量进行均等划分,获得多份训练子样本,每个训练子样本分配给一个处理器。处理器与该处理器训练的学习模型均设置在同一电子设备上,处理器采用分配到的训练子样本对该学习模型进行训练。各个处理器训练的学习模型相同。
处理器采用分配到的训练子样本对学习模型进行训练,在前向计算结束后得到模型的损失,然后进行反向传播,计算学习模型中每个张量(tensor)的梯度。每个处理器都采用上述方式进行梯度计算,并将计算获得的梯度放入处理器对应的梯度队列中,每个处理器对应一个梯度队列。在放置时,可按照各个张量在学习模型中的顺序放入处理器对应的梯度队列中;或者,按照第一处理器设置的顺序放入处理器对应的梯度队列中。
例如,由于各个处理器的计算快慢不同,相同时间段内,计算出的梯度的数量也不同,第一处理器收集汇总第二处理器当前计算出的梯度情况,若确定第一张量上的梯度在所有处理器上都已经计算完成,则将第一张量的名字广播给第二处理器,第二处理器接收到该广播后,将该计算出的第一张量的梯度放入对应的梯度队列中,第一处理器也会将计算出的第一张量的梯度放入其对应的梯度队列中。
梯度可理解为是多维矩阵,各处理器计算出的同一张量上的梯度具有相同的维度。
梯度数量可理解为第一处理器对应的梯度队列中的梯度的数量。
步骤202、向所述第一电子设备发送第一融合梯度,所述第一融合梯度根据从所述第二处理器对应的梯度队列中取出的N个梯度融合获得,N为所述梯度数量。
第二电子设备接收到梯度数量之后,第二处理器从对应的梯度队列中取出N个梯度进行梯度融合,获得第一融合梯度,并发送给第一电子设备。第一电子设备接收第二电子设备发送的第一融合梯度,其中,N为梯度数量。第二电子设备将N个梯度进行融合之后再发送给第一电子设备,可减少第二电子设备与第一电子设备之间的通信次数,提高训练效率。
第一处理器也从其对应的梯度队列中取出N个梯度进行梯度融合,获得第二融合梯度。
步骤203、接收所述第一电子设备发送的所述目标融合梯度。
第一融合梯度和第二融合梯度具有相同的维度。第一处理器在获得第一融合梯度和第二融合梯度之后,可对第一融合梯度和第二融合梯度进行求和后求取平均值,获得目标融合梯度。第一融合梯度的数量与第二处理器的数量相同。
步骤204、根据所述目标融合梯度,对所述第二电子设备的学习模型的参数进行更新。
第一处理器和第二处理器均采用目标融合梯度对各自对应的学习模型的参数进行更新,可使得各处理器对应的学习模型的参数保持相同,实现分布式模型训练。
本实施例中,第二电子设备接收第一电子设备发送的梯度数量;向所述第一电子设备发送第一融合梯度,所述第一融合梯度根据从所述第二处理器对应的梯度队列中取出的N个梯度融合获得,N为所述梯度数量;接收所述第一电子设备发送的所述目标融合梯度;根据所述目标融合梯度,对所述第二电子设备的学习模型的参数进行更新。由于第二电子设备发送的第一融合梯度,对N个梯度进行了梯度融合,可减少第一电子设备与第二电子设备之间的通信次数,提高学习模型的训练效率。
在本申请一个实施例中,在所述接收第一电子设备发送的梯度数量之后,在所述向所述第一电子设备发送第一融合梯度之前,还包括:
从所述第二处理器对应的梯度队列中取出N个梯度;
获取N个梯度取出顺序中的前M个梯度,其中,所述前M个梯度的字节数之和不大于第一融合阈值,且所述前M个梯度与第三梯度的字节数之和大于第一融合阈值,所述第三梯度为N个梯度取出顺序中,排序在所述前M个梯度之后的梯度,M为不大于N的正整数;
将所述前M个梯度进行融合,获得所述第一融合梯度。
上述中,所述N个梯度由所述第二处理器在采用训练子样本对所述学习模型进行训练的过程中获得,训练子样本为将训练样本按照处理器的数量进行均等划分,获得的多份训练子样本中的一份,每个训练子样本分配给一个处理器。
本实施例中的步骤,为第二电子设备获得第一融合梯度的过程。具体的,由第二处理器从其对应的梯度队列中取出N个梯度,队列具有先进先出的特性,这N个梯度之间的先后顺序与其出队的顺序一致。
梯度的字节数可以理解为梯度数据所占的字节数(byte)。
对梯度队列中当前取出的梯度的字节数进行判断,判断其是否不大于第一融合阈值,若大于,则继续从梯度队列中取出梯度,直到取到目标梯度,所述目标梯度为从梯度队列中取出的字节数不大于第一融合阈值的梯度;
若梯度队列中当前取出的梯度的字节数不大于第一融合阈值,则将从梯度队列中取出的所有目标梯度的字节数进行累加,若累加和不大于第一融合阈值,则继续从梯度队列中取出目标梯度;若累加和大于第一融合阈值,则最新取出的目标梯度不参与累加,并继续从梯度队列中取出目标梯度,重复上述累加和取出过程,直到梯度队列中的所有梯度均被取出。也就是说,获取N个梯度取出顺序中的前M个梯度,其中,前M个梯度的字节数之和不大于第一融合阈值,且若前M个梯度中不包括最后取出(即第N个取出)的梯度,则前M个梯度与第三梯度的字节数之和大于第一融合阈值,第三梯度为N个梯度取出顺序中,排序在前M个梯度之后的梯度。
将M个梯度进行融合,可以是将M个梯度进行拼接,例如,将两个4行4列的梯度进行融合时,可将第二个梯度拼接在第一个梯度的右侧,获得一个4行8列的梯度,或者,将第二个梯度拼接在第一个梯度的下侧,获得一个8行4列的梯度。
在进行梯度融合时,还可记录参与融合的梯度的数量M,以及每个梯度的大小,也可以理解为梯度的维度,例如上述示例中,参与融合的两个梯度的大小为4行4列。后续进行梯度拆分时,可使用此处记录的参与融合的梯度数量M,以及每个梯度的维度。
进一步的,第一处理器也采用上述相同的方式对其对应的梯度队列中的梯度进行融合,值得说明的是,各个处理器在进行梯度融合时,采用相同的第一融合阈值。
若第二处理器在接收到第一处理器发送的梯度数量N时,对应的梯度队列中的梯度数量小于N,则等待一段时间,直到梯度队列中的梯度数量等于N,再从所述第二处理器对应的梯度队列中取出N个梯度。
本实施例中,第二处理器从所述第二处理器对应的梯度队列中取出N个梯度;并获取所述N个梯度取出顺序中的前M个梯度;将所述前M个梯度进行融合,获得所述第二融合梯度。将第二融合梯度发送给第一处理器时,可以减少第二处理器与第一处理器之间的通信次数,提高数据传输效率,以提高获取目标融合梯度的效率,从而提高模型训练效率。
在本申请一个实施例中,所述将所述前M个梯度进行融合,获得所述第一融合梯度,包括:
若所述前M个梯度中第一梯度的数据类型的精度与预设精度不同,则对所述第一梯度进行精度转换,获得数据类型的精度与所述预设精度相同的新的第一梯度;
将进行精度转换后的前M个梯度进行融合,获得所述第一融合梯度。
预设精度可以预先设置,例如,设置16位浮点数(即FP16)为预设精度,若前M个梯度中有精度大于16位浮点数的精度,则将该梯度的数据转换成16位浮点数的数据,以降低梯度的数据的精度。例如,若第一梯度的数据的数据类型为32位浮点数,则将第一梯度的数据进行精度转换,转换成16位浮点数的数据。第一梯度为M个梯度中数据类型的精度与预算精度不同的梯度。进一步的,对进行精度转换的第一梯度进行标记。
预设精度还可以动态确定,例如,若前M个梯度的数据类型的精度并不完全相同,则可以将前M个梯度中,数据类型的精度最低的精度作为预设精度。
同样的,第一处理器在进行梯度融合之前,也可以先对梯度的精度进行转换。值得说明的是,各个处理器在对梯度进行精度转换时,采用相同的预设精度。
本实施例中,在进行梯度融合之前,对梯度进行精度转换,将高精度的梯度转换为低精度的梯度,可降低第一融合梯度所占的字节数,从而降低第二处理器与第一处理器之间的数据传输量。
在本申请一个实施例中,所述根据所述目标融合梯度,对所述第二电子设备的学习模型的参数进行更新,包括:
根据梯度融合信息,对所述目标融合梯度进行拆分,获得M个第二梯度,所述梯度融合信息包括参与梯度融合的数量M,以及所述前M个梯度中各梯度的维度;
利用所述M个第二梯度对所述第二电子设备的学习模型的参数进行更新。
对目标融合梯度按照梯度融合信息进行拆分,例如,若进行梯度融合时,M为2,将两个4行4列的梯度进行融合,获得一个4行8列的第一融合梯度,第二融合梯度采用相同的方式进行融合,第二融合梯度也为一个4行8列的第二融合梯度,记录参与融合的梯度数量为2,两个梯度的维度均为4行4列。根据第一融合梯度和第二融合梯度获得的目标融合梯度,也是一个4行8列的梯度。对该目标融合梯度进行拆分时,将其拆分成2个4行4列的梯度,第一个第二梯度包括目标融合梯度的前4列,第二个第二梯度包括目标融合梯度的后4列。
将获得的M个第二梯度应用在第二电子设备的学习模型上,即利用所述M个第二梯度对所述第二电子设备的学习模型的参数进行更新。同样的,第二处理器获得的M个第二梯度对第一电子设备的学习模型的参数进行更新,这样,每个电子设备上的学习模型的参数都会被更新为相同的参数。
进一步的,在获得M个第二梯度之后,若前述步骤中对梯度进行精度转换过,此时还可以对第二梯度进行精度转换,将M个第二梯度中被标记的梯度进行精度转换,转换为初始精度。例如,前述步骤中,将精度为32位浮点数的梯度,转换成16位浮点数的数据,则对被标记的第二梯度进行精度转换时,将精度为16位浮点数的梯度转换为32为浮点数的梯度。再利用转换完成后的M个第二梯度对所述第二电子设备的学习模型的参数进行更新。
本实施例中,根据梯度融合信息,对所述目标融合梯度进行拆分,获得M个第二梯度,所述梯度融合信息包括参与梯度融合的数量M,以及所述前M个梯度中各梯度的维度,然后利用所述M个第二梯度对所述第二电子设备的学习模型的参数进行更新。梯度拆分与前述步骤的梯度融合进行配合使用,以减少第一处理器与第二处理器之间的通信次数,提高数据传输效率,以提高获取目标融合梯度的效率,从而提高模型训练效率。
以下实施例对本申请提供模型训练方法进行描述。如3所示,包括:
步骤1、第一处理器(以下用Rank0表示第一处理器)初始化通信间隔时间和融合阈值;
步骤2、Rank0初始化学习模型(以下简称模型)的参数,并广播给Rank(以下用Rank表示第二处理器);
步骤3、训练数据集分隔,即为将训练数据集按照所有处理器的数量均等划分;
步骤4、模型训练。每个处理器在分配到的数据集上取样本,作为输入进行模型的前向计算;
步骤5、各Rank将梯度值发送给Rank0。每个处理器在前向计算结束后得到模型的损失,然后开始反向传播:计算模型中每个张量(tensor)的梯度,并将梯度值发送给Rank0;
步骤6、Rank0收集汇总所有处理器的梯度计算情况,Rank通过RPC将梯度计算情况汇报给Rank0。当Rank0发现某个tensor的梯度在所有处理器上都已经被计算完成,则将此tensor的名字广播给所有处理器,将tensor的梯度按顺序放入各个处理器对应的梯度队列中;
步骤7、每隔一个查询间隔,将间隔内可通信梯度取出。即,每隔一个通信间隔时间,Rank0查询自己的梯度队列,并将梯度数量通过RPC广播给其他Rank;所有处理器按照Rank0广播的梯度数量,从各自的梯度队列中按顺序取出对应的数量的梯度;若队列内梯度数量不足,则等待梯度入队,如图3中的标号A所示的模型梯度队列的梯度。
步骤8、使用(Compute Unified Device Architecture,CUDA)统一计算设备架构编写对tensor进行FP32与FP16格式互转的核函数,并使用该核函数将步骤7取出的FP32格式的梯度转换为FP16格式,并标记被转换的梯度;如图3中的标号A所示的模型梯度队列的梯度,梯度队列中的多个梯度的精度可能并不相同,有FP32格式的梯度,也有FP16格式的梯度。对梯度进行精度转换后,可获得FP16格式的梯度,如图3中的标号B所示的模型梯度队列的梯度。
步骤9、各处理器按照梯度融合阈值(即Fusion Threshold)将FP16格式的梯度进行融合;按顺序取出不超过梯度融合阈值的最多的梯度融合成一个梯度,并记录此次融合的梯度数量和每个梯度的大小(梯度的维度),反复进行此操作,直到所有梯度被融合。若梯度所占的字节数大于梯度融合阈值,则该梯度不参与融合操作;
如图3中的标号C所示的模型梯度队列的梯度,梯度0和梯度1融合,梯度3和梯度4融合。
步骤10、所有处理器集成通信,即Rank0接收其他Rank发送的融合梯度,并对融合后的梯度进行梯度聚合操作,聚合操作可为求取梯度的平均值,获得如图3中的标号D所示的模型梯度队列的梯度。
步骤11、梯度拆分。根据步骤9记录的信息将聚合后的梯度拆分成融合前数量和大小。
步骤12、将拆分后的梯度,根据步骤8的标记将FP16的梯度转换回FP32格式,获得如图3中的标号E所示的模型梯度队列中的梯度。
步骤13、将得到的梯度应用在模型上。
步骤14、记录步骤6到步骤13通信总字节数和总耗时,计算通信性能:总字节数/总耗时;
重复步骤6到步骤13多次,次数可自定义设置,例如,五次,对得到的通信性能取平均,作为当前使用的通信间隔时间(Interval Time)和梯度融合阈值(Fusion Threshold)参数的评分;
步骤15、根据使用过的通信间隔时间、梯度融合阈值和对应的评分,使用贝叶斯优化搜索通信间隔时间和梯度融合阈值的最优解,并使用最优解对当前的通信间隔时间和梯度融合阈值进行更新;
步骤16、重复步骤14到步骤15十次(次数可自定义设置),得到十组通信间隔时间、梯度融合阈值和对应的评分,取最高评分对应的通信间隔时间和梯度融合阈值作为训练参数;
步骤17、使用步骤16得到的通信间隔时间和梯度融合阈值,重复步骤4到步13直到模型训练结束。
本申请中的模型训练方法,可将梯度进行压缩和融合,有效的减少通信量和通信次数,提高业务模型的训练速度,节约训练时间;将梯度进行压缩和融合,还减少机房网络侧的压力;自动调优找到最优的训练参数,对不同模型的性能调优可自动化完成,节约人力投入,提升训练的自动化能力。
参见图4,图4是本申请实施例提供的模型训练装置的结构图,如图4所示,本实施例提供第一模型训练装置400,应用于第一电子设备,所述第一电子设备包括第一处理器,包括:
第一发送模块401,用于向第二电子设备发送梯度数量;
接收模块402,用于接收所述第二电子设备基于所述梯度数量发送的第一融合梯度;
第一获取模块403,用于根据所述第一融合梯度与第二融合梯度,获得目标融合梯度,其中,所述第二融合梯度根据从所述第一处理器对应的梯度队列中取出的N个梯度进行融合获得,N为所述梯度数量;
第二发送模块404,用于向所述第二电子设备发送所述目标融合梯度;
第一更新模块405,用于根据所述目标融合梯度,对所述第一电子设备的学习模型的参数进行更新。
进一步的,第一模型训练装置400还包括:
第二获取模块,用于从所述第一处理器对应的梯度队列中取出N个梯度;
第三获取模块,用于获取所述N个梯度取出顺序中的前M个梯度,所述前M个梯度的字节数之和不大于第一融合阈值,且若前M个梯度中不包括最后取出的梯度,则所述前M个梯度与第三梯度的字节数之和大于第一融合阈值,所述第三梯度为取出顺序排在所述前M个梯度之后的梯度,M为不大于N的正整数;
融合模块,用于将所述前M个梯度进行融合,获得所述第二融合梯度。
进一步的,所述融合模块,包括:
转换子模块,用于若所述前M个梯度中第一梯度的数据类型的精度与预设精度不同,则对所述第一梯度进行精度转换,获得数据类型的精度与所述预设精度相同的新的第一梯度;
融合子模块,用于将进行精度转换后的前M个梯度进行融合,获得所述第二融合梯度。
进一步的,所述第一更新模块405,包括:
拆分子模块,用于根据梯度融合信息,对所述目标融合梯度进行拆分,获得M个第二梯度,所述梯度融合信息包括参与梯度融合的数量M,以及所述前M个梯度中各梯度的维度;
更新子模块,用于利用所述M个第二梯度对所述第一电子设备的学习模型的参数进行更新。
进一步的,所述第二发送模块404,包括:
查询子模块,用于每隔第一预设通信间隔时间,查询所述第一处理器对应的梯度队列中的梯度的数量,获得梯度数量;
发送子模块,用于向所述第二电子设备发送所述梯度数量。
进一步的,第一模型训练装置400还包括:
第一确定模块,用于根据第一预设时间段内所述第一电子设备与所述第二电子设备之间的第一通信字节数,确定所述第一预设通信间隔时间和第一融合阈值对应的第一评分;
调整模块,用于对所述第一预设通信间隔时间和第一融合阈值进行调整,获得第二预设通信间隔时间和第二融合阈值;
第二更新模块,用于采用所述第二预设通信间隔时间和所述第二融合阈值,对所述第一电子设备的学习模型的参数进行更新;
第二确定模块,用于根据第二预设时间段内所述第一电子设备与所述第二电子设备之间的第二通信字节数,确定所述第二预设通信间隔时间和第二融合阈值对应的第二评分;
第三确定模块,用于根据所述第一评分和第二评分,从所述第一预设通信间隔时间和所述第二预设通信间隔时间中确定目标通信间隔时间,以及从所述第一融合阈值和所述第二融合阈值中确定目标融合阈值;
第三更新模块,用于利用所述目标通信间隔时间和所述目标融合阈值,对所述第一电子设备的学习模型的参数进行更新,获得目标模型。
本申请实施例提供的第一模型训练装置400能够实现图1的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
参见图5,图5是本申请实施例提供的模型训练装置的结构图,如图5所示,本实施例提供第二模型训练装置500,应用于第二电子设备,所述第二电子设备包括第二处理器,包括:
第一接收模块501,用于接收第一电子设备发送的梯度数量;
发送模块502,用于向所述第一电子设备发送第一融合梯度,所述第一融合梯度根据从所述第二处理器对应的梯度队列中取出的N个梯度融合获得,N为所述梯度数量;
第二接收模块503,用于接收所述第一电子设备发送的所述目标融合梯度;
更新模块504,用于根据所述目标融合梯度,对所述第二电子设备的学习模型的参数进行更新。
进一步的,第二模型训练装置500还包括:
第一获取模块,用于从所述第二处理器对应的梯度队列中取出N个梯度;
第二获取模块,用于获取N个梯度取出顺序中的前M个梯度,所述前M个梯度的字节数之和不大于第一融合阈值,且若前M个梯度中不包括最后取出的梯度,则所述前M个梯度与第三梯度的字节数之和大于第一融合阈值,所述第三梯度为取出顺序排在所述前M个梯度之后的梯度,M为不大于N的正整数;
融合模块,用于将所述前M个梯度进行融合,获得所述第一融合梯度。
进一步的,所述融合模块,包括:
转换子模块,用于若所述前M个梯度中第一梯度的数据类型的精度与预设精度不同,则对所述第一梯度进行精度转换,获得数据类型的精度与所述预设精度相同的新的第一梯度;
融合子模块,用于将进行精度转换后的前M个梯度进行融合,获得所述第一融合梯度。
进一步的,所述更新模块504,包括:
拆分子模块,用于根据梯度融合信息,对所述目标融合梯度进行拆分,获得M个第二梯度,所述梯度融合信息包括参与梯度融合的数量M,以及所述前M个梯度中各梯度的维度;
更新子模块,用于利用所述M个第二梯度对所述第二电子设备的学习模型的参数进行更新。
本申请实施例提供的第二模型训练装置500能够实现图2的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例的模型训练的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的模型训练的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的模型训练的方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的模型训练的方法对应的程序指令/模块(例如,附图4所示的第一发送模块401、接收模块402、第一获取模块403、第二发送模块404和第一更新模块405,或者,附图5所示的第一接收模块501、发送模块502、第二接收模块503和更新模块504)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的模型训练的方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据模型训练的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至模型训练的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
模型训练的方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与模型训练的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本申请中,第一电子设备向第二电子设备发送梯度数量;接收所述第二电子设备基于所述梯度数量发送的第一融合梯度;根据所述第一融合梯度与第二融合梯度,获得目标融合梯度,其中,所述第二融合梯度根据从所述第一处理器对应的梯度队列中取出的N个梯度进行融合获得,N为所述梯度数量;向所述第二电子设备发送所述目标融合梯度;根据所述目标融合梯度,对所述第一电子设备的学习模型的参数进行更新。由于第二电子设备发送的第一融合梯度,对N个梯度进行了梯度融合,可减少第一电子设备与第二电子设备之间的通信次数,提高学习模型的训练效率。
第一处理器从所述第一处理器对应的梯度队列中取出N个梯度;并获取所述N个梯度取出顺序中的前M个梯度;将所述前M个梯度进行融合,获得所述第二融合梯度。对融合之后的梯度进行运算,可以减少第一处理器与第二处理器之间的通信次数,提高数据传输效率,以提高获取目标融合梯度的效率,从而提高模型训练效率。
在进行梯度融合之前,对梯度进行精度转换,将高精度的梯度转换为低精度的梯度,然后进行梯度融合,获得低精度的目标融合梯度,可减少计算复杂度,并且,在将目标融合梯度发送给第二处理器时,还可以减少数据传输量。
根据梯度融合信息,对所述目标融合梯度进行拆分,获得M个第二梯度,所述梯度融合信息包括参与梯度融合的数量M,以及所述前M个梯度中各梯度的维度,然后利用所述M个第二梯度对所述第一电子设备的学习模型的参数进行更新。梯度拆分与前述步骤的梯度融合进行配合使用,以减少第一处理器与第二处理器之间的通信次数,提高数据传输效率,以提高获取目标融合梯度的效率,从而提高模型训练效率。
由第一处理每隔第一预设通信间隔时间,查询所述第一处理器对应的梯度队列中的梯度的数量,获得梯度数量,并向所述第二电子设备发送所述梯度数量,便于各个处理器获取相同张量的梯度,并进行梯度融合,以实现多个处理器对同一学习模型的分布式训练,提高学习模型的训练效率。
通过调整通信间隔时间和融合阈值,来对学习模型进行训练,计算通信间隔时间和融合阈值对应的评分,根据评分来确定目标通信间隔时间和目标融合阈值,以对通信间隔时间和融合阈值进行优化,提高学习模型的训练效率。
第二电子设备接收第一电子设备发送的梯度数量;向所述第一电子设备发送第一融合梯度,所述第一融合梯度根据从所述第二处理器对应的梯度队列中取出的N个梯度融合获得,N为所述梯度数量;接收所述第一电子设备发送的所述目标融合梯度;根据所述目标融合梯度,对所述第二电子设备的学习模型的参数进行更新。由于第二电子设备发送的第一融合梯度,对N个梯度进行了梯度融合,可减少第一电子设备与第二电子设备之间的通信次数,提高学习模型的训练效率。
第二处理器从所述第二处理器对应的梯度队列中取出N个梯度;并获取所述N个梯度取出顺序中的前M个梯度;将所述前M个梯度进行融合,获得所述第二融合梯度。将第二融合梯度发送给第一处理器时,可以减少第二处理器与第一处理器之间的通信次数,提高数据传输效率,以提高获取目标融合梯度的效率,从而提高模型训练效率。
第二处理器在进行梯度融合之前,对梯度进行精度转换,将高精度的梯度转换为低精度的梯度,可降低第一融合梯度所占的字节数,从而降低第二处理器与第一处理器之间的数据传输量。
根据梯度融合信息,对所述目标融合梯度进行拆分,获得M个第二梯度,所述梯度融合信息包括参与梯度融合的数量M,以及所述前M个梯度中各梯度的维度,然后利用所述M个第二梯度对所述第二电子设备的学习模型的参数进行更新。梯度拆分与前述步骤的梯度融合进行配合使用,以减少第一处理器与第二处理器之间的通信次数,提高数据传输效率,以提高获取目标融合梯度的效率,从而提高模型训练效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (22)
1.一种模型训练方法,应用于第一电子设备,所述第一电子设备包括第一处理器,所述方法包括:
向第二电子设备发送梯度数量;
接收所述第二电子设备基于所述梯度数量发送的第一融合梯度,所述第一融合梯度是根据从第二电子设备的第二处理器对应的梯度队列中取出的N个梯度融合获得;
根据所述第一融合梯度与第二融合梯度,获得目标融合梯度,其中,所述第二融合梯度根据从所述第一处理器对应的梯度队列中取出的N个梯度进行融合获得,N为所述梯度数量;
向所述第二电子设备发送所述目标融合梯度;
根据所述目标融合梯度,对所述第一电子设备的学习模型的参数进行更新。
2.根据权利要求1所述的方法,其中,在所述向第二电子设备发送梯度数量之后,在所述根据所述第一融合梯度与第二融合梯度,获得目标融合梯度之前,还包括:
从所述第一处理器对应的梯度队列中取出N个梯度;
获取所述N个梯度取出顺序中的前M个梯度,其中,所述前M个梯度的字节数之和不大于第一融合阈值,M为不大于N的正整数;
将所述前M个梯度进行融合,获得所述第二融合梯度。
3.根据权利要求2所述的方法,其中,所述将所述前M个梯度进行融合,获得所述第二融合梯度,包括:
若所述前M个梯度中第一梯度的数据类型的精度与预设精度不同,则对所述第一梯度进行精度转换,获得数据类型的精度与所述预设精度相同的新的第一梯度;
将进行精度转换后的前M个梯度进行融合,获得所述第二融合梯度。
4.根据权利要求2所述的方法,其中,所述根据所述目标融合梯度,对所述第一电子设备的学习模型的参数进行更新,包括:
根据梯度融合信息,对所述目标融合梯度进行拆分,获得M个第二梯度,所述梯度融合信息包括参与梯度融合的数量M,以及所述前M个梯度中各梯度的维度;
利用所述M个第二梯度对所述第一电子设备的学习模型的参数进行更新。
5.根据权利要求2所述的方法,其中,所述向第二电子设备发送梯度数量,包括:
每隔第一预设通信间隔时间,查询所述第一处理器对应的梯度队列中的梯度的数量,获得梯度数量;
向所述第二电子设备发送所述梯度数量。
6.根据权利要求5所述的方法,其中,在所述根据所述目标融合梯度,对所述第一电子设备的学习模型的参数进行更新之后,还包括:
根据第一预设时间段内所述第一电子设备与所述第二电子设备之间的第一通信字节数,确定所述第一预设通信间隔时间和第一融合阈值对应的第一评分;
对所述第一预设通信间隔时间和第一融合阈值进行调整,获得第二预设通信间隔时间和第二融合阈值;
采用所述第二预设通信间隔时间和所述第二融合阈值,对所述第一电子设备的学习模型的参数进行更新;
根据第二预设时间段内所述第一电子设备与所述第二电子设备之间的第二通信字节数,确定所述第二预设通信间隔时间和第二融合阈值对应的第二评分;
根据所述第一评分和第二评分,从所述第一预设通信间隔时间和所述第二预设通信间隔时间中确定目标通信间隔时间,以及从所述第一融合阈值和所述第二融合阈值中确定目标融合阈值;
利用所述目标通信间隔时间和所述目标融合阈值,对所述第一电子设备的学习模型的参数进行更新,获得目标模型。
7.一种模型训练方法,应用于第二电子设备,所述第二电子设备包括第二处理器,所述方法包括:
接收第一电子设备发送的梯度数量;
向所述第一电子设备发送第一融合梯度,所述第一融合梯度根据从所述第二处理器对应的梯度队列中取出的N个梯度融合获得,N为所述梯度数量;
接收所述第一电子设备发送的目标融合梯度,所述目标融合梯度是根据所述第一融合梯度与第二融合梯度获得的,其中,所述第二融合梯度根据从所述第一电子设备的第一处理器对应的梯度队列中取出的N个梯度进行融合获得;
根据所述目标融合梯度,对所述第二电子设备的学习模型的参数进行更新。
8.根据权利要求7所述的方法,其中,在所述接收第一电子设备发送的梯度数量之后,在所述向所述第一电子设备发送第一融合梯度之前,还包括:
从所述第二处理器对应的梯度队列中取出N个梯度;
获取N个梯度取出顺序中的前M个梯度,其中,所述前M个梯度的字节数之和不大于第一融合阈值,M为不大于N的正整数;
将所述前M个梯度进行融合,获得所述第一融合梯度。
9.根据权利要求8所述的方法,其中,所述将所述前M个梯度进行融合,获得所述第一融合梯度,包括:
若所述前M个梯度中第一梯度的数据类型的精度与预设精度不同,则对所述第一梯度进行精度转换,获得数据类型的精度与所述预设精度相同的新的第一梯度;
将进行精度转换后的前M个梯度进行融合,获得所述第一融合梯度。
10.根据权利要求8所述的方法,其中,所述根据所述目标融合梯度,对所述第二电子设备的学习模型的参数进行更新,包括:
根据梯度融合信息,对所述目标融合梯度进行拆分,获得M个第二梯度,所述梯度融合信息包括参与梯度融合的数量M,以及所述前M个梯度中各梯度的维度;
利用所述M个第二梯度对所述第二电子设备的学习模型的参数进行更新。
11.一种模型训练装置,应用于第一电子设备,所述第一电子设备包括第一处理器,所述装置包括:
第一发送模块,用于向第二电子设备发送梯度数量;
接收模块,用于接收所述第二电子设备基于所述梯度数量发送的第一融合梯度,所述第一融合梯度是根据从第二电子设备的第二处理器对应的梯度队列中取出的N个梯度融合获得;
第一获取模块,用于根据所述第一融合梯度与第二融合梯度,获得目标融合梯度,其中,所述第二融合梯度根据从所述第一处理器对应的梯度队列中取出的N个梯度进行融合获得,N为所述梯度数量;
第二发送模块,用于向所述第二电子设备发送所述目标融合梯度;
第一更新模块,用于根据所述目标融合梯度,对所述第一电子设备的学习模型的参数进行更新。
12.根据权利要求11所述的装置,其中,还包括:
第二获取模块,用于从所述第一处理器对应的梯度队列中取出N个梯度;
第三获取模块,用于获取所述N个梯度取出顺序中的前M个梯度,其中,所述前M个梯度的字节数之和不大于第一融合阈值,M为不大于N的正整数;
融合模块,用于将所述前M个梯度进行融合,获得所述第二融合梯度。
13.根据权利要求12所述的装置,其中,所述融合模块,包括:
转换子模块,用于若所述前M个梯度中第一梯度的数据类型的精度与预设精度不同,则对所述第一梯度进行精度转换,获得数据类型的精度与所述预设精度相同的新的第一梯度;
融合子模块,用于将进行精度转换后的前M个梯度进行融合,获得所述第二融合梯度。
14.根据权利要求12所述的装置,其中,所述第一更新模块,包括:
拆分子模块,用于根据梯度融合信息,对所述目标融合梯度进行拆分,获得M个第二梯度,所述梯度融合信息包括参与梯度融合的数量M,以及所述前M个梯度中各梯度的维度;
更新子模块,用于利用所述M个第二梯度对所述第一电子设备的学习模型的参数进行更新。
15.根据权利要求12所述的装置,其中,所述第二发送模块,包括:
查询子模块,用于每隔第一预设通信间隔时间,查询所述第一处理器对应的梯度队列中的梯度的数量,获得梯度数量;
发送子模块,用于向所述第二电子设备发送所述梯度数量。
16.根据权利要求15所述的装置,其中,还包括:
第一确定模块,用于根据第一预设时间段内所述第一电子设备与所述第二电子设备之间的第一通信字节数,确定所述第一预设通信间隔时间和第一融合阈值对应的第一评分;
调整模块,用于对所述第一预设通信间隔时间和第一融合阈值进行调整,获得第二预设通信间隔时间和第二融合阈值;
第二更新模块,用于采用所述第二预设通信间隔时间和所述第二融合阈值,对所述第一电子设备的学习模型的参数进行更新;
第二确定模块,用于根据第二预设时间段内所述第一电子设备与所述第二电子设备之间的第二通信字节数,确定所述第二预设通信间隔时间和第二融合阈值对应的第二评分;
第三确定模块,用于根据所述第一评分和第二评分,从所述第一预设通信间隔时间和所述第二预设通信间隔时间中确定目标通信间隔时间,以及从所述第一融合阈值和所述第二融合阈值中确定目标融合阈值;
第三更新模块,用于利用所述目标通信间隔时间和所述目标融合阈值,对所述第一电子设备的学习模型的参数进行更新,获得目标模型。
17.一种模型训练装置,应用于第二电子设备,所述第二电子设备包括第二处理器,所述装置包括:
第一接收模块,用于接收第一电子设备发送的梯度数量;
发送模块,用于向所述第一电子设备发送第一融合梯度,所述第一融合梯度根据从所述第二处理器对应的梯度队列中取出的N个梯度融合获得,N为所述梯度数量;
第二接收模块,用于接收所述第一电子设备发送的目标融合梯度,所述目标融合梯度是根据所述第一融合梯度与第二融合梯度获得的,其中,所述第二融合梯度根据从所述第一电子设备的第一处理器对应的梯度队列中取出的N个梯度进行融合获得;
更新模块,用于根据所述目标融合梯度,对所述第二电子设备的学习模型的参数进行更新。
18.根据权利要求17所述的装置,其中,还包括:
第一获取模块,用于从所述第二处理器对应的梯度队列中取出N个梯度;
第二获取模块,用于获取N个梯度取出顺序中的前M个梯度,其中,所述前M个梯度的字节数之和不大于第一融合阈值,M为不大于N的正整数;
融合模块,用于将所述前M个梯度进行融合,获得所述第一融合梯度。
19.根据权利要求18所述的装置,其中,所述融合模块,包括:
转换子模块,用于若所述前M个梯度中第一梯度的数据类型的精度与预设精度不同,则对所述第一梯度进行精度转换,获得数据类型的精度与所述预设精度相同的新的第一梯度;
融合子模块,用于将进行精度转换后的前M个梯度进行融合,获得所述第一融合梯度。
20.根据权利要求18所述的装置,其中,所述更新模块,包括:
拆分子模块,用于根据梯度融合信息,对所述目标融合梯度进行拆分,获得M个第二梯度,所述梯度融合信息包括参与梯度融合的数量M,以及所述前M个梯度中各梯度的维度;
更新子模块,用于利用所述M个第二梯度对所述第二电子设备的学习模型的参数进行更新。
21. 一种电子设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法,或者所述至少一个处理器能够执行权利要求7-10中任一项所述的方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法,或者,所述计算机指令用于使所述计算机执行权利要求7-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011048284.3A CN112001455B (zh) | 2020-09-29 | 2020-09-29 | 模型训练方法、装置以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011048284.3A CN112001455B (zh) | 2020-09-29 | 2020-09-29 | 模型训练方法、装置以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112001455A CN112001455A (zh) | 2020-11-27 |
CN112001455B true CN112001455B (zh) | 2024-02-20 |
Family
ID=73474948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011048284.3A Active CN112001455B (zh) | 2020-09-29 | 2020-09-29 | 模型训练方法、装置以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112001455B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108986063A (zh) * | 2018-07-25 | 2018-12-11 | 浪潮(北京)电子信息产业有限公司 | 梯度融合的方法、装置及计算机可读存储介质 |
US10152676B1 (en) * | 2013-11-22 | 2018-12-11 | Amazon Technologies, Inc. | Distributed training of models using stochastic gradient descent |
CN110995737A (zh) * | 2019-12-13 | 2020-04-10 | 支付宝(杭州)信息技术有限公司 | 联邦学习的梯度融合方法及装置和电子设备 |
CN111310932A (zh) * | 2020-02-10 | 2020-06-19 | 深圳前海微众银行股份有限公司 | 横向联邦学习系统优化方法、装置、设备及可读存储介质 |
CN111526169A (zh) * | 2019-02-01 | 2020-08-11 | 阿里巴巴集团控股有限公司 | 通过网络发送数据的方法、介质、服务器和计算机设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636098B2 (en) * | 2006-09-28 | 2009-12-22 | Microsoft Corporation | Salience preserving image fusion |
AU2009212881B2 (en) * | 2009-08-31 | 2012-06-14 | Canon Kabushiki Kaisha | Efficient radial gradient fills |
US11244243B2 (en) * | 2018-01-19 | 2022-02-08 | Hypernet Labs, Inc. | Coordinated learning using distributed average consensus |
-
2020
- 2020-09-29 CN CN202011048284.3A patent/CN112001455B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10152676B1 (en) * | 2013-11-22 | 2018-12-11 | Amazon Technologies, Inc. | Distributed training of models using stochastic gradient descent |
CN108986063A (zh) * | 2018-07-25 | 2018-12-11 | 浪潮(北京)电子信息产业有限公司 | 梯度融合的方法、装置及计算机可读存储介质 |
CN111526169A (zh) * | 2019-02-01 | 2020-08-11 | 阿里巴巴集团控股有限公司 | 通过网络发送数据的方法、介质、服务器和计算机设备 |
CN110995737A (zh) * | 2019-12-13 | 2020-04-10 | 支付宝(杭州)信息技术有限公司 | 联邦学习的梯度融合方法及装置和电子设备 |
CN111310932A (zh) * | 2020-02-10 | 2020-06-19 | 深圳前海微众银行股份有限公司 | 横向联邦学习系统优化方法、装置、设备及可读存储介质 |
Non-Patent Citations (3)
Title |
---|
一个轻量级分布式机器学习系统的设计与实现;宋匡时等;计算机工程(01);207-213 * |
基于HPC环境的深度学习并行优化;陈孟强;颜子杰;叶彦;吴维刚;;计算机工程与科学(S1);137-144 * |
基于梯度融合规则的医学图像融合方法;汪亮亮;张贵仓;贾雯晓;;计算机应用研究(07);311-313 * |
Also Published As
Publication number | Publication date |
---|---|
CN112001455A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111639710A (zh) | 图像识别模型训练方法、装置、设备以及存储介质 | |
EP3916630A1 (en) | Method and apparatus for identifying video | |
CN111461290B (zh) | 模型参数更新方法及装置 | |
KR102528748B1 (ko) | 지식 그래프를 구축하는 방법, 장치, 기기 및 저장 매체 | |
JP7222040B2 (ja) | モデル訓練、画像処理方法及びデバイス、記憶媒体、プログラム製品 | |
CN112084366B (zh) | 用于检索图像的方法、装置、设备以及存储介质 | |
CN111783948A (zh) | 模型训练方法、装置、电子设备以及存储介质 | |
CN111461343B (zh) | 模型参数更新方法及其相关设备 | |
CN112559870B (zh) | 多模型融合方法、装置、电子设备和存储介质 | |
CN112102448A (zh) | 虚拟对象图像显示方法、装置、电子设备和存储介质 | |
CN111539224B (zh) | 语义理解模型的剪枝方法、装置、电子设备和存储介质 | |
CN112306836B (zh) | 采样对象确定方法、装置、电子设备存储介质和程序产品 | |
CN110569969A (zh) | 网络模型结构的采样方法、装置以及电子设备 | |
CN111291082B (zh) | 数据聚合处理方法、装置、设备及存储介质 | |
CN111563198B (zh) | 一种物料召回方法、装置、设备及存储介质 | |
CN111325332B (zh) | 卷积神经网络的处理方法和装置 | |
CN111680597A (zh) | 人脸识别模型处理方法、装置、设备和存储介质 | |
CN111640103A (zh) | 图像检测方法、装置、设备以及存储介质 | |
CN112001455B (zh) | 模型训练方法、装置以及电子设备 | |
CN111680599B (zh) | 人脸识别模型处理方法、装置、设备和存储介质 | |
CN111694648B (zh) | 一种任务调度方法、装置以及电子设备 | |
CN111553169B (zh) | 语义理解模型的剪枝方法、装置、电子设备和存储介质 | |
CN111079813B (zh) | 基于模型并行的分类模型计算方法和装置 | |
CN111177479A (zh) | 获取关系网络图中节点的特征向量的方法以及装置 | |
CN112560928B (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 |