本技术涉及计算机,特别是涉及一种巨量模型的训练方法、装置、电子设备以及介质。
背景技术:
1、人工智能业务目前已经广泛落地,越来越多的深度学习业务已经部署到kubernetes集群上。随着海量数据的使用和模型规模的增长,巨量模型的能力不断涌现,与此同时如何在kubernetes集群上进行巨量模型的训练和部署成为各大厂商积极研究的重要课题之一。
2、在巨量模型开发过程中,开发人员主要进行环境构建、代码构建、模型搭建工作。巨量模型的训练所需要的计算环境、代码环境、测试环境与常规规模的模型是不能比拟的。在巨量模型的训练前期如何对巨量容器环境的协同统一管理,训练过程中如何对其进行有效的稳定保障,训练中如何及时处理和恢复异常状态,以及如何提供快速和高利用率的计算资源使用是需要解决的问题。
技术实现思路
1、本技术旨在提供一种巨量模型的训练方法、装置、电子设备以及介质,至少解决了在巨量模型的训练前期如何对巨量容器环境的协同统一管理,训练过程中如何对其进行有效的稳定保障,训练中如何及时处理和恢复异常状态,以及如何提供快速和高利用率的计算资源使用的问题。
2、为了解决上述技术问题,本技术是这样实现的:
3、本技术实施例公开了一种巨量模型的训练方法,应用于kubernetes集群,所述kubernetes集群至少包括调度器、节点,所述节点包括至少一个pod,所述方法包括:
4、收集计算集群硬件信息、巨量模型训练所需计算资源数目信息;所述计算集群硬件信息包括网络拓扑情况信息、训练数据集分布情况信息;
5、执行计算资源加载任务,并将所述计算资源加载任务的结果信息反馈给所述调度器;所述计算资源加载任务的结果信息记载有所述计算资源数目是否达到计算资源数目要求;
6、基于所述计算集群硬件信息和当前计算资源数目信息,通过所述调度器将所述pod调度至目标节点;
7、执行预处理任务,并将所述预处理任务的结果信息反馈给所述调度器;所述预处理任务包括训练数据集加载任务、网络配置任务、pod互信配置任务;所述预处理任务的结果信息记载有所述预处理任务是否完成;
8、在所述调度器将所述pod调度至目标节点、所述预处理任务完成、且所加载的计算资源数目达到计算资源数目要求的情况下时,调度器通知所述节点执行所述巨量模型的训练任务。
9、可选地,所述kubernetes集群包括监控系统,所述方法还包括:
10、在巨量模型的训练任务中,所述监控系统对训练任务的任务运行状态进行监控;所述任务运行状态包括计算资源运行状态、节点网络状态、pod运行状态。
11、可选地,所述监控系统对训练任务的任务运行状态进行监控,包括:
12、所述监控系统对所述巨量模型的训练任务中的所述kubernetes集群中的硬件信息进行采集,并分析所述巨量模型的训练任务是否出现异常情况;
13、若所述巨量模型的训练任务中出现异常情况,通过所述调度器处理所述异常情况,以使所述巨量模型训练任务继续进行。
14、可选地,所述分析所述巨量模型的训练任务是否出现异常情况的步骤,包括:
15、分析所述巨量模型的训练任务的节点是否出现异常情况;
16、若所述巨量模型的训练任务的节点出现异常情况,将出现异常情况的节点标记为脏节点。
17、可选地,所述方法还包括:
18、在巨量模型的训练任务执行前,设置任务类型为弹性模式或性能模式。
19、可选地,所述若所述巨量模型的训练任务中出现异常情况,通过所述调度器处理所述异常情况,以使所述巨量模型训练任务继续进行,包括:
20、所述任务类型为弹性模式时,将所述脏节点的计算资源移除;
21、将所述kubernetes集群中的其他节点的计算资源调整至脏节点;所述脏节点基于调整后的计算资源尝试继续执行训练任务,直至所述训练任务正常执行,则所述脏节点恢复正常;
22、在所述脏节点恢复至正常的情况下,根据所述kubernetes集群中所有节点的当前计算资源使用情况、所述巨量模型的训练任务的已进行时长、所述巨量模型的训练任务从发生异常情况至恢复正常所花费的时长对所述kubernetes集群所有节点进行评分;
23、增加所述得分最高的节点的计算资源数目。
24、可选地,所述若所述巨量模型的训练任务中出现异常情况,通过所述调度器处理所述异常情况,以使所述巨量模型训练任务继续进行,包括:
25、所述任务类型为性能模式时,将所述脏节点的计算资源移除;
26、从所述kubernetes集群可用的计算资源中选择计算资源补充至脏节点。
27、本技术实施例还公开了一种巨量模型的训练装置,应用于kubernetes集群,所述kubernetes集群至少包括调度器、节点,所述节点包括至少一个pod,所述装置包括:
28、收集模块,用于收集计算集群硬件信息、巨量模型训练所需计算资源数目信息;所述计算集群硬件信息包括网络拓扑情况信息、训练数据集分布情况信息;
29、计算资源加载任务执行模块,执行计算资源加载任务,并将所述计算资源加载任务的结果信息反馈给所述调度器;所述计算资源加载任务的结果信息记载有所述计算资源数目是否达到计算资源数目要求;
30、调度模块,用于基于所述计算集群硬件信息和当前计算资源数目信息,通过所述调度器将所述pod调度至目标节点;
31、预处理任务执行模块,用于执行预处理任务,并将所述预处理任务的结果信息反馈给所述调度器;所述预处理任务包括训练数据集加载任务、网络配置任务、pod互信配置任务;所述预处理任务的结果信息记载有所述预处理任务是否完成;
32、通知模块,用于在所述调度器将所述pod调度至目标节点、所述预处理任务完成、且所加载的计算资源数目达到计算资源数目要求的情况下时,调度器通知所述节点执行所述巨量模型的训练任务。
33、可选地,所述kubernetes集群包括监控系统,所述装置还包括:
34、监控模块,用于在巨量模型的训练任务中,所述监控系统对训练任务的任务运行状态进行监控;所述任务运行状态包括计算资源运行状态、节点网络状态、pod运行状态。
35、可选地,监控模块包括:
36、采集、分析子模块,用于对所述巨量模型的训练任务中的所述kubernetes集群中的硬件信息进行采集,并分析所述巨量模型的训练任务是否出现异常情况;
37、异常情况处理子模块,用于若所述巨量模型的训练任务中出现异常情况,通过所述调度器处理所述异常情况,以使所述巨量模型训练任务继续进行。
38、可选地,采集、分析子模块包括:
39、分析单元,用于分析所述巨量模型的训练任务的节点是否出现异常情况;
40、脏节点标记单元,用于若所述巨量模型的训练任务的节点出现异常情况,将出现异常情况的节点标记为脏节点。
41、可选地,所述装置还包括:
42、任务类型设置模块,用于在巨量模型的训练任务执行前,设置任务类型为弹性模式或性能模式。
43、可选地,异常情况处理子模块包括:
44、计算资源移除单元,用于在所述任务类型为弹性模式时,将所述脏节点的计算资源移除;
45、计算资源调整单元,用于将所述kubernetes集群中的其他节点的计算资源调整至脏节点;所述脏节点基于调整后的计算资源尝试继续执行训练任务,直至所述训练任务正常执行,则所述脏节点恢复正常;
46、评分单元,用于在所述脏节点恢复至正常的情况下,根据所述kubernetes集群中所有节点的当前计算资源使用情况、所述巨量模型的训练任务的已进行时长、所述巨量模型的训练任务从发生异常情况至恢复正常所花费的时长对所述kubernetes集群所有节点进行评分;
47、计算资源数目增加单元,用于增加所述得分最高的节点的计算资源数目。
48、可选地,异常情况处理子模块包括:
49、计算资源移除单元,用于在所述任务类型为性能模式时,将所述脏节点的计算资源移除;
50、计算资源补充单元,用于从所述kubernetes集群可用的计算资源中选择计算资源补充至脏节点。
51、本技术实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
52、所述存储器,用于存放计算机程序;
53、所述处理器,用于执行存储器上所存放的程序,实现如上任一项所述的方法。
54、本技术实施例还公开了一种计算机可读介质,其上存储有指令,当所述指令由一个或多个处理器执行时,使得所述处理器执行如上所述的方法。
55、本技术实施例包括以下优点:
56、收集计算集群硬件信息、巨量模型训练所需计算资源数目信息;执行计算资源加载任务,将计算资源加载任务的结果信息反馈给调度器;基于计算集群硬件信息和当前计算资源数目信息,通过调度器将pod调度至目标节点;执行预处理任务,并将预处理任务的结果信息反馈给调度器;在调度器将pod调度至目标节点、预处理任务完成、且所加载的计算资源数目达到计算资源数目要求的情况下时,调度器通知节点执行巨量模型的训练任务,实现了在训练前期对巨量容器环境的协同统一管理,训练过程中对其进行有效的稳定保障,对异常状态的及时处理和恢复,同时提供了快速和高利用率的计算资源使用。