一种三方库接入方法、装置、设备、程序产品及介质与流程
- 国知局
- 2024-07-31 23:10:23
本发明涉及计算机,特别涉及一种三方库接入方法、装置、设备、程序产品及介质。
背景技术:
1、预训练模型是一种深度学习模型,通过在大规模数据集上进行训练来完成特定任务。这种模型通常在通用任务上学习到的特征可以被迁移到其他特定任务中。llm(即largelanguage models,大语言模型)是预训练模型在自然语言处理领域的一种具体应用,近年来,大语言模型发展势头迅猛。针对大语言模型训练过程中的效率问题,研究人员提出了多种优化算法和并行计算技术。如图1所示,当前多数提高大语言模型训练效率的优化主要以nvidia的图形处理器(gpu,即graphics processing unit)为后端硬件平台,对于其他硬件设备,如果想要使用同样的大语言模型训练优化技巧提高训练性能,则需要重新接入;且多数提高大语言模型训练效率的优化的三方库基于pytorch深度学习框架实现,其他深度学习框架接入也需要重新适配。
2、因此,如何对接多个异构硬件设备以及如何基于其他深度学习框架对接三方库是本领域技术人员目前需要解决的问题。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种三方库接入方法、装置、设备、程序产品及介质,不仅能够向上承接不同的深度学习框架,同时还能够向下兼容不同的硬件设备。其具体方案如下:
2、第一方面,本技术公开了一种三方库接入方法,包括:
3、获取预训练模型训练过程中使用的目标三方库,并对所述目标三方库进行梳理以分割出所述目标三方库中的计算模块;其中,所述计算模块用于实现各种算法的计算功能;
4、确定接入所述目标三方库的深度学习框架类型,并根据所述深度学习框架类型,将所述计算模块中的计算逻辑分解为基于人工智能算力框架执行的目标算子;所述人工智能算力框架为用于实现人工智能算法的计算框架;
5、利用所述人工智能算力框架调用所述目标算子以完成所述目标三方库的接入,并基于所述人工智能算力框架与所述目标三方库对接异构硬件设备。
6、可选的,接入所述目标三方库的深度学习框架类型包括pytorch深度学习框架以及除所述pytorch深度学习框架之外的其他深度学习框架。
7、可选的,所述确定接入所述目标三方库的深度学习框架类型,并根据所述深度学习框架类型,将所述计算模块中的计算逻辑分解为基于人工智能算力框架执行的目标算子,包括:
8、如果所述目标三方库的深度学习框架类型为所述pytorch深度学习框架,则根据所述人工智能算力框架提供的第一算子对所述计算模块中的计算逻辑进行分解,以得到基于人工智能算力框架执行的目标算子。
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、确定所述目标三方库中交互调用的python接口以及基于预设程序设计语言实现的计算逻辑接口;
50、分割所述python接口和所述计算逻辑接口,并对分割后结果进行解析以得到所述目标三方库中的计算模块。
51、第二方面,本技术公开了一种三方库接入装置,包括:
52、计算功能分割模块,用于获取预训练模型训练过程中使用的目标三方库,并对所述目标三方库进行梳理以分割出所述目标三方库中的计算模块;其中,所述计算模块用于实现各种算法的计算功能;
53、目标算子确定模块,用于确定接入所述目标三方库的深度学习框架类型,并根据所述深度学习框架类型,将所述计算模块中的计算逻辑分解为基于人工智能算力框架执行的目标算子;所述人工智能算力框架为用于实现人工智能算法的计算框架;
54、三方库接入模块,用于利用所述人工智能算力框架调用所述目标算子以完成所述目标三方库的接入,并基于所述人工智能算力框架与所述目标三方库对接异构硬件设备。
55、第三方面,本技术公开了一种电子设备,包括:
56、存储器,用于存储计算机程序;
57、处理器,用于加载并执行所述计算机程序以实现前述的三方库接入方法。
58、第四方面,本技术公开了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现前述三方库接入方法的步骤。
59、第五方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中所述计算机程序被处理器执行时实现前述三方库接入方法。
60、本技术提供了一种三方库接入方法,包括:获取预训练模型训练过程中使用的目标三方库,并对所述目标三方库进行梳理以分割出所述目标三方库中的计算模块;其中,所述计算模块用于实现各种算法的计算功能;确定接入所述目标三方库的深度学习框架类型,并根据所述深度学习框架类型,将所述计算模块中的计算逻辑分解为基于人工智能算力框架执行的目标算子;所述人工智能算力框架为用于实现人工智能算法的计算框架;利用所述人工智能算力框架调用所述目标算子以完成所述目标三方库的接入,并基于所述人工智能算力框架与所述目标三方库对接异构硬件设备。
61、本技术的有益技术效果为:针对预训练模型训练的优化过程,通过对使用的目标三方库进行梳理,将其中用于实现各种算法计算的计算模块分割出来进行分解重构,有效保留了其他接口的完整性,减少了代码修改量,极大的缩减三方库接入流程,有效提高三方库接入效率。由于本发明针对三方库接入方案仅对计算逻辑进行修改,因此可接入不同的深度学习框架,提高了其他深度学习框架预训练模型训练效率。进一步的,使用人工智能算力框架作为三方库计算逻辑的实现平台,通过调用分解后的目标算子实现三方库的计算逻辑,做到一次接入即可对接异构硬件设备,实现多个硬件设备后端的接入,降低适配成本,减少人力成本投入,有效提高三方库异构硬件设备的适配效率。可见,基于人工智能算力框架执行三方库中的计算逻辑以实现三方库的接入,不仅能够向上承接不同的深度学习框架,同时还能够向下兼容不同的硬件设备,有效提高开发效率。
62、此外,本技术提供的一种三方库接入装置、设备、程序产品及介质,与上述三方库接入方法对应,效果同上。
本文地址:https://www.jishuxx.com/zhuanli/20240730/196216.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。