一种模型训练方法、产品、设备及计算机可读存储介质与流程
- 国知局
- 2024-07-31 23:10:23
本发明涉及分布式训练领域,特别涉及一种模型训练方法、产品、设备及计算机可读存储介质。
背景技术:
1、llm(large language model,大型语言模型)是一种旨在理解和生成人类语言的人工智能模型,指包含大量参数的语言模型,这些模型在大量文本数据上进行训练,模型本身的参数量会占用较大的存储空间,在模型训练过程中产生的梯度、激活值、优化器状态信息会进一步提升显存占用。因此,使用单张显卡进行llm的训练不能满足需求,需要使用分布式训练方式。但是目前常用的上层训练框架的源码可支持的加速装置的类型有限,从而使得用于分布式训练的加速装置的选择受限,因此,需要基于上层训练框架的源码对加速装置进行适配开发,但上层训练框架的源码架构复杂,代码量大,开发门槛高,导致加速装置的开发和维护难度较大。
2、因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
技术实现思路
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、针对每一所述目标加速装置,确定所述目标加速装置在当前次模型训练中的训练目标,按所述训练目标确定所述目标加速装置对应的目标待编译模块以及所述目标待编译模块中的目标虚拟方法,基于满足所述目标加速装置的运行需求的编译信息对所述目标虚拟方法进行实例化,以创建方法实例。
27、其中,控制当前训练框架在当前训练阶段调用对应的所述待编译模块中的所述方法实例训练预设模型之前,所述模型训练方法还包括:
28、确定每两个所述目标加速装置之间的通信状态,所述通信状态包括允许通信状态和禁止通信状态;
29、控制当前训练框架在当前训练阶段调用对应的所述待编译模块中的所述方法实例训练预设模型的过程包括:
30、当所有所述通信状态均为所述允许通信状态,控制当前训练框架在当前训练阶段调用对应的所述待编译模块中的所述方法实例,并将调用所述方法实例产生的训练数据通过所述通用接入平台转发至目的加速装置。
31、其中,控制当前训练框架在当前训练阶段调用对应的所述待编译模块中的所述方法实例训练预设模型之前,所述模型训练方法还包括:
32、确定每两个所述目标加速装置之间的通信状态,所述通信状态包括允许通信状态和禁止通信状态;
33、当存在任一所述通信状态为所述禁止通信状态,基于所有所述通信状态确定多个所述目标加速装置中的第一加速装置和多个第二加速装置,每一所述第二加速装置和所述第一加速装置之间的所述通信状态为所述允许通信状态;
34、控制当前训练框架在当前训练阶段调用对应的所述待编译模块中的所述方法实例训练预设模型的过程包括:
35、控制当前训练框架在当前训练阶段调用对应的所述待编译模块中的所述方法实例,并将调用所述方法实例产生的训练数据通过所述通用接入平台转发至所述第一加速装置,以便通过所述第一加速装置对所述训练数据进行调整;
36、将调整后的训练数据通过所述通用接入平台转发至目的加速装置,所述目的加速装置为任一个所述第二加速装置。
37、其中,控制当前训练框架在当前训练阶段调用对应的所述待编译模块中的所述方法实例训练预设模型之前,所述模型训练方法还包括:
38、基于第一用户选择指令加载所述预设模型;
39、基于用户配置指令调整所述预设模型的模型参数。
40、其中,控制当前训练框架在当前训练阶段调用对应的所述待编译模块中的所述方法实例训练预设模型之前,所述模型训练方法还包括:
41、基于第二用户选择指令确定训练数据集;
42、控制当前训练框架在当前训练阶段调用对应的所述待编译模块中的所述方法实例训练预设模型的过程包括:
43、基于所述训练数据集控制当前训练框架在当前训练阶段调用对应的所述待编译模块中的所述方法实例训练预设模型。
44、为解决上述技术问题,本发明还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上文任一项所述模型训练方法的步骤。
45、为解决上述技术问题,本发明还提供了一种电子设备,包括:
46、存储器,用于存储计算机程序;
47、处理器,用于执行所述计算机程序时实现如上文任一项所述模型训练方法的步骤。
48、为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任一项所述模型训练方法的步骤。
49、本发明提供了一种模型训练方法,将上层训练框架和加速装置均接入通用接入平台,在选定用于预设模型训练的目标加速装置后,利用满足目标加速装置的运行需求的编译信息对至少一个待编译模块中定义的虚拟方法进行实例化,以创建方法实例,在通过当前训练框架进行模型训练时,直接调用对应的方法实例即可,无需对加速装置进行适配开发,降低加速装置的开发难度和维护难度。本发明还提供了一种计算机程序产品、电子设备及计算机可读存储介质,具有和上述模型训练相同的有益效果。
本文地址:https://www.jishuxx.com/zhuanli/20240730/196215.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表