System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及模型,尤其涉及一种模型训练方法、装置及计算机可读存储介质。
技术介绍
1、当前的分布式训练框架中,每个epoch(时期)在训练开始前通常会分配好所有worker(任务执行节点)各自的训练数据,这样进行配置的话,在实际的运行过程中可能存在不同程度的慢节点,当worker中存在慢节点时,就会拖慢整体的训练速度。
技术实现思路
1、本专利技术所要解决的技术问题是针对现有技术的上述不足,提供一种模型训练方法、装置及计算机可读存储介质,能够规避慢节点效应,提高模型训练的速度。
2、第一方面,本专利技术提供一种模型训练方法,包括:
3、根据总样本为每个任务执行节点worker初始分配训练任务,初始分配的训练任务包括m个批batch的样本,所述m大于等于1;
4、启动各worker基于所述初始分配的训练任务对模型进行训练;
5、接收目标worker发送的新任务申请请求,并根据所述新任务申请请求判断所述总样本是否分配完毕,所述目标worker为所有worker中的任意一个worker;
6、若所述总样本分配完毕,则进一步判断其他worker是否存在还没有被其处理的batch;
7、若其他worker存在还没有被其处理的batch,则从所述其他worker没有被其处理的batch中选择全部或部分batch重新分配给所述目标worker进行处理。
8、进一步地,所述根据总样本为每个任务执行节点worker
9、根据当前的空闲计算资源设定所述初始分配的训练任务中各batch的批大小batch_size,以及分配给每个worker的batch个数m。
10、进一步地,所述启动各worker基于所述初始分配的训练任务对模型进行训练之后,所述方法还包括:
11、接收各worker发送的最新模型参数获取请求;
12、根据所述模型参数获取请求向各个worker同步最新的模型参数。
13、进一步地,所述接收目标worker发送的新任务申请请求之前,所述方法还包括:
14、接收所述目标worker发送的最新梯度;
15、根据所述目标worker发送的最新梯度以及其他worker的最新梯度更新最新模型参数。
16、进一步地,更新后的最新模型参数为融合后的梯度,所述根据所述目标worker发送的最新梯度以及其他worker的最新梯度更新最新模型参数,具体包括:
17、根据以下公式更新所述最新模型参数:
18、fg=sum(gi*bi)/sum(bi)
19、其中,fg为融合后的梯度,gi为第i个worker最新梯度,bi是第i个worker的batch_size。
20、进一步地,若所述总样本未分配完毕,所述方法还包括:
21、继续为所述目标worker分配训练任务。
22、进一步地,所述继续为所述目标worker分配训练任务,具体包括:
23、动态调整batch_size的大小或待继续分配的训练任务中batch的个数;
24、根据调整后的batch_size和/或调整后的batch个数,从所述总样本未分配的样本中继续分配训练任务给所述目标worker,并将最新的模型参数同步给所述目标worker,以使所述目标worker基于最新的模型参数以及继续分配的训练任务对所述模型进行训练。
25、进一步地,所述方法还包括:
26、当检测到计算资源更新时,判断所述总样本是否分配完毕;
27、若否,则启动新的worker,并根据所述总样本中未分配的样本为所述新的worker分配训练任务。
28、第二方面,本专利技术提供一种模型训练装置,包括:
29、初始分配模块,用于根据总样本为每个任务执行节点worker初始分配训练任务,初始分配的训练任务包括m个批batch的样本,所述m大于等于1;
30、worker启动模块,用于启动各worker基于所述初始分配的训练任务对模型进行训练;
31、任务请求获取模块,用于接收目标worker发送的新任务申请请求,并根据所述新任务申请请求判断所述总样本是否分配完毕,所述目标worker为所有worker中的任意一个worker;
32、batch判断模块,用于若所述总样本分配完毕,则进一步判断其他worker是否存在还没有被其处理的batch;
33、重新分配模块,用于若其他worker存在还没有被其处理的batch,则从所述其他worker没有被其处理的batch中选择全部或部分batch重新分配给所述目标worker进行处理。
34、第三方面,本专利技术提供一种模型训练装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现上述第一方面所述的模型训练方法。
35、第四方面,本专利技术提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的模型训练方法。
36、本专利技术提供的模型训练方法、装置及计算机可读存储介质,首先根据总样本为每个任务执行节点worker初始分配训练任务,初始分配的训练任务包括m个批batch的样本,所述m大于等于1,然后启动各worker基于所述初始分配的训练任务对模型进行训练;在接收到目标worker发送的新任务申请请求后,根据所述新任务申请请求判断所述总样本是否分配完毕;若所述总样本分配完毕,则进一步判断其他worker是否存在还没有被其处理的batch;若其他worker存在还没有被其处理的batch,则从所述其他worker没有被其处理的batch中选择全部或部分batch重新分配给所述目标worker进行处理,本专利技术通过将慢节点未完成的batch重新分配给快节点,能够在保证训练效果的基础上规避慢节点效应、从而提高模型训练的速度,解决了现有的模型训练方法当worker中存在慢节点时,容易拖慢模型整体的训练速度的问题。
本文档来自技高网...【技术保护点】
1.一种模型训练方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据总样本为每个任务执行节点worker初始分配训练任务之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述启动各worker基于所述初始分配的训练任务对模型进行训练之后,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述接收目标worker发送的新任务申请请求之前,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,更新后的最新模型参数为融合后的梯度,所述根据所述目标worker发送的最新梯度以及其他worker的最新梯度更新最新模型参数,具体包括:
6.根据权利要求2所述的方法,其特征在于,若所述总样本未分配完毕,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述继续为所述目标worker分配训练任务,具体包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.一种模型训练装置,其特征在于,包括:
10.一种模型训
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-8中任一项所述的模型训练方法。
...【技术特征摘要】
1.一种模型训练方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据总样本为每个任务执行节点worker初始分配训练任务之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述启动各worker基于所述初始分配的训练任务对模型进行训练之后,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述接收目标worker发送的新任务申请请求之前,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,更新后的最新模型参数为融合后的梯度,所述根据所述目标worker发送的最新梯度以及其他worker的最新梯度更新最新模型参数,具体包括:
6.根据权利要求...
【专利技术属性】
技术研发人员:朱晓雨,
申请(专利权)人:中国联合网络通信集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。