System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及训练模型,尤其一种模型动态训练方法及设备。
技术介绍
1、在过去的几年里,深度学习社区越来越依赖于大型的预训练的神经网络。这一趋势最明显的例子是自然语言处理,其中模型的参数计数随质量上的持续提高已经从数亿个增长到数十亿个。同样地,计算机视觉中的许多模型正在达到十亿参数的规模。在这个规模下,模型不再适合单个加速器,需要专门的训练算法来划分参数。虽然这些模型并行算法使用不同的划分策略,但它们都共同需要执行密集的设备到设备的通信。此外,如果单个设备出现故障,它就会导致整个训练过程出现故障。
2、因此,模型并行算法通常部署在专用的高性能计算(hpc)集群或超级计算机中。大多数研究人员负担不起适当评估他们的想法所需的实验。这最终限制了许多重要研究领域的科学进展。现有技术中提出了一种具成本效益的分布式训练策略,利用临时“抢占”实例,这些实例可以动态分配到硬件和电力需求低的地区,使它们比专用实例便宜2-10倍。另一种解决方案是通过将现有资源汇集在一起或使用志愿者的帮助来培训“协作”。
3、然而,在这两种设置中进行培训都需要专门的算法,以适应不断变化的工人数量,利用异构设备,并从硬件和网络故障中恢复。虽然有一些实用的算法为不可靠的硬件,他们只能训练相对较小的模型,以适合于最小的设备的内存。这限制了协同效率策略的实际影响,因为今天的大规模实验通常涉及具有数十亿个参数的模型。
技术实现思路
1、本申请的一个目的是提供一种模型动态训练方法及设备,实现在流水线阶段之间灵活
2、根据本申请的一个方面,提供了一种模型动态训练方法,其中,所述方法包括:
3、构建用于训练数据的流水线并行结构,其中,所述流水线并行结构包括按序迭代的至少一个流水线阶段,且每个所述流水线阶段包括至少一个对等点;
4、获取训练数据,并将所述训练数据输入至所述流水线并行结构,以使所述训练数据按照所述流水线阶段的迭代顺序在所述流水线并行结构中的各所述流水线阶段中进行训练;
5、计算所述训练数据传输至各所述流水线阶段时,每个所述流水线阶段的利用率;
6、基于每个所述流水线阶段的利用率,将所述利用率最低时对应的流水线阶段中的对等点,移动到目标流水线阶段,以使所述目标流水线阶段继续所述训练数据的训练,直至得到所述训练数据形成的模型;其中,所述目标流水线阶段为所述利用率最高时对应的流水线阶段或所述利用率大于预设利用率阈值时对应的流水线阶段。
7、进一步地,上述方法中,所述训练数据按照所述流水线阶段的迭代在所述流水线并行结构中的各所述流水线阶段中进行训练,包括:
8、在每一当前流水线阶段内,将当前流水线阶段中的、处理所述训练数据的对等点输出的训练结果输入至下一流水线阶段的任意对等点;其中,所述当前流水线阶段中的、处理所述训练数据的对等点同时处理相邻流水线阶段的至少一个输入数据或输出数据。
9、进一步地,上述方法中,所述一种模型动态训练方法还包括:
10、在每一当前流水线阶段内,获取各对等点的吞吐量;
11、基于各所述对等点的吞吐量,为所述当前流水线阶段选择一目标对等点;
12、将所述训练数据分配至所述目标对等点上,以使所述目标对等点执行对所述训练数据的训练。
13、进一步地,上述方法中,所述将所述利用率最低时对应的流水线阶段中的对等点,移动到目标流水线阶段,以使所述目标流水线阶段继续所述训练数据的训练,包括:
14、获取所述目标流水线阶段中的任一对等点的最新训练状态;
15、将所述目标流水线阶段中的任一对等点的最新训练状态,下载至所述利用率最低时对应的流水线阶段中的对等点,以使所述利用率最低时对应的流水线阶段中的对等点,在所述目标流水线阶段内继续所述训练数据的训练。
16、进一步地,上述方法中,所述一种模型动态训练方法还包括:
17、若当前流水线阶段中的、处理所述训练数据的对等点断开连接,则所述当前流水线阶段的上一流水线阶段,将所述上一流水线阶段中的、处理所述训练数据的对等点输出的训练结果输入至所述当前流水线阶段中的、除处理训练数据的对等点以外的其他对等点。
18、进一步地,上述方法中,所述训练数据在所述流水线并行结构中进行训练时包括前向传播训练和反向传播训练,
19、其中,当所述训练数据在所述流水线并行结构中进行反向传播训练时,计算每一所述流水线阶段中的、处理所述训练数据的对等点的参数梯度,以得到每一所述流水线阶段的累计参数梯度;
20、基于每一所述流水线阶段的累计参数梯度,采用全局归约算法,来平均每一所述流水线阶段的参数梯度。
21、根据本申请的另一方面,还提供了一种非易失性存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如上述一种模型动态训练方法。
22、根据本申请的另一方面,还提供了一种模型动态训练设备,其中,该设备包括:
23、一个或多个处理器;
24、计算机可读介质,用于存储一个或多个计算机可读指令,
25、当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述一种模型动态训练方法。
26、与现有技术相比,本申请通过构建用于训练数据的流水线并行结构,其中,所述流水线并行结构包括按序迭代的至少一个流水线阶段,且每个所述流水线阶段包括至少一个对等点;获取训练数据,并将所述训练数据输入至所述流水线并行结构,以使所述训练数据按照所述流水线阶段的迭代顺序在所述流水线并行结构中的各所述流水线阶段中进行训练;计算所述训练数据传输至各所述流水线阶段时,每个所述流水线阶段的利用率;基于每个所述流水线阶段的利用率,将所述利用率最低时对应的流水线阶段中的对等点,移动到目标流水线阶段,以使所述目标流水线阶段继续所述训练数据的训练,直至得到所述训练数据形成的模型;其中,所述目标流水线阶段为所述利用率最高时对应的流水线阶段或所述利用率大于预设利用率阈值时对应的流水线阶段,根据每个流水线阶段的利用率,在流水线并行结构中进行不同流水线阶段之间对等点的移动,有效均衡各个流水线阶段中训练数据的训练负载,提高模型动态训练效率,解决大型模型训练部署昂贵、繁杂,且因流水线阶段中对等点吞吐量弱而带来数据训练受限的问题。
本文档来自技高网...【技术保护点】
1.一种模型动态训练方法,其中,所述方法包括:
2.根据权利要求1所述的方法,其中,所述训练数据按照所述流水线阶段的迭代在所述流水线并行结构中的各所述流水线阶段中进行训练,包括:
3.根据权利要求2所述的方法,其中,所述方法还包括:
4.根据权利要求1所述的方法,其中,所述将所述利用率最低时对应的流水线阶段中的对等点,移动到目标流水线阶段,以使所述目标流水线阶段继续所述训练数据的训练,包括:
5.根据权利要求1所述的方法,其中,所述方法还包括:
6.根据权利要求1所述的方法,所述训练数据在所述流水线并行结构中进行训练时包括前向传播训练和反向传播训练,
7.一种非易失性存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如权利要求1至6中任一项所述的方法。
8.一种模型动态训练设备,其中,该设备包括:
【技术特征摘要】
1.一种模型动态训练方法,其中,所述方法包括:
2.根据权利要求1所述的方法,其中,所述训练数据按照所述流水线阶段的迭代在所述流水线并行结构中的各所述流水线阶段中进行训练,包括:
3.根据权利要求2所述的方法,其中,所述方法还包括:
4.根据权利要求1所述的方法,其中,所述将所述利用率最低时对应的流水线阶段中的对等点,移动到目标流水线阶段,以使所述目标流水线阶段继续所述训练数...
【专利技术属性】
技术研发人员:张炯,贾怡鸣,王沛弘,葛翔,刘瑾,秦壮言,贾雪丽,
申请(专利权)人:上海星图比特信息技术服务有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。