一种模型推理代码的自动生成装置的制作方法
- 国知局
- 2024-08-05 12:18:32
本发明属于it与软件开发领域的软件开发,尤其涉及一种模型推理代码的自动生成装置。
背景技术:
1、人工智能,特别是深度学习为代表的机器学习技术正在逐渐成熟。深度学习的过程可以简单划分为两个部分,即训练和推理。训练指的是生成深度学习算法本身的过程,而推理则指的是将深度学习算法部署在推理卡上进行计算,生成结果的过程。不同的算法往往会使用不同的训练平台进行训练,并由此生成不同的中间表示(ir),例如:onnx、pt等。而在算法推理过程中,则往往需要将不同的中间表示经过二次编译,生成适用于推理平台的、更高效的中间表示,例如:plan、engine等。
2、然而,从现有技术看,上述过程十分低效,往往需要高度的人工参与,具体如下:
3、第一,算法的二次编译过程依靠手动完成。推理工程师需要自行判断需要部署的算法的中间表示的格式,并依据该格式来调用不同的二次编译平台。
4、第二,为了使经过二次编译的算法能够正常在推理平台上运行,推理工程师往往还需要编写额外的输入、输出处理脚本。
5、目前,尚未有能够支持算法自动化部署的相关研究出现。
6、与本专利较接近的专利如下:
7、《面向张量计算单元卷积算子优化实现方法》(专利号:cn202111195567.5):该专利描述了一种面向张量计算单元卷积算子优化实现方法,其通过深度学习编译器的dsl表示卷积算子,经对卷积计算进行坐标变换得到隐式通用矩阵乘法的计算表示;然后对卷积算子进行调度优化得到调度模板后,经搜索得到最优搜索参数并通过深度学习编译器的后端生成cuda c代码,再将生成的cuda c代码集成入神经网络,实现卷积神经网络在nvidiagpu平台上的推理速度提升。该专利面向神经网络的推理速度优化,但并未考虑代码的自动生成。
8、《基于自然语义理解的代码生成方法及系统》(专利号:cn202210886402.0):该专利描述了一种基于自然语义理解的代码生成方法及系统。该专利首先获取自然语言序列,并对获取的自然语言序列进行预处理得到预处理后的自然语言序列,接着构建代码生成模型,并对构建的代码生成模型进行训练得到训练后的代码生成模型,最后训练后的代码生成模型根据输入的自然语言序列生成目标代码;所述代码生成模型是基于编码器-解码器的神经网络结构,实现从自然语言序列到目标代码的自动生成。该专利所提出的架构的不足在于,其代码自动生成的机制是基于自然语言描述,生成结果的准确性依赖于语言描述的合理性,然而,本专利的目标在于不需要任何手动参与即可生成目标代码。
技术实现思路
1、本发明所要解决的技术问题是针对背景技术的不足提供了一种能够自动识别深度学习算法格式的、自动生成算法输入、输出处理脚本的代码自动生成装置。
2、本发明为解决上述技术问题采用以下技术方案:
3、一种模型推理代码的自动生成装置,包含模型读取层、模型转换层、参数读取层和参数转换层;
4、模型读取层,用于完成模型文件的读取;
5、模型转换层,用于加载模型的二次编译平台并完成二次编译。
6、参数读取层,用于读取模型的输入输出内容格式;
7、参数转换层,用于加载内存中的输入输出格式文件,并生成数据处理脚本。
8、作为本发明一种模型推理代码的自动生成装置的进一步优选方案,所述模型读取层用于读取模型的输入文件格式,使用文件后缀判别法完成模型文件的判断。
9、作为本发明一种模型推理代码的自动生成装置的进一步优选方案,所述模型读取层完成读取的模型文件存放在内存中。
10、作为本发明一种模型推理代码的自动生成装置的进一步优选方案,所述二次编译平台是tensorrt平台;其中,tensorrt为英伟达公司推出的模型推理加速平台。
11、作为本发明一种模型推理代码的自动生成装置的进一步优选方案,具体二次编译过程举例如下:如果模型读取层读取的是onnx模型,则直接加载tensort平台完成转换;
12、如果模型读取层读取的是pt模型,则需要进一步判断;onnx为开放神经网络交换,一种人工智能模型的数据格式;pt为pytorch平台使用的人工智能模型的数据格式。
13、作为本发明一种模型推理代码的自动生成装置的进一步优选方案,如果此时模型被识别为yolo模型,则该模型可以被加载用于二次编译;yolo为一种人工智能模型,是最广泛的目标检测模型;
14、如果模型并非yolo模型,则需要再次判断;如果模型文件中包含了模型的结构和参数,则该模型可以被加载;
15、如果模型文件没有包含模型的结构,则该层将直接将程序引导至结束。
16、作为本发明一种模型推理代码的自动生成装置的进一步优选方案,所述参数读取层使用自适应判别法读取模型的输入输出内容格式。
17、作为本发明一种模型推理代码的自动生成装置的进一步优选方案,以图像为例说明该处理流程:需要用户的轻度参与,用户需指定图像文件的存放位置、图像文件的处理方式。
18、作为本发明一种模型推理代码的自动生成装置的进一步优选方案,用户需指定图像文件的存放位置后,本层首先生成图像文件加载代码,将图像文件读取并加载到内存中;根据用户的指令,生成图像预处理代码;经过预处理的图像文件的大小应与参数读取层读取的结果一致。
19、作为本发明一种模型推理代码的自动生成装置的进一步优选方案,所述图像预处理代码包括:图像直接压缩、图像等比压缩后中央填充、图像等比压缩后边缘填充。
20、本发明采用以上技术方案与现有技术相比,具有以下技术效果:
21、1、本发明提出的方法能极大提升模型的推理部署效率;
22、2、本发明提出的方法在大部分情况下不需要设计人员撰写任何代码,简化了设计人员的工作流程。
23、3、本发明是首个提出自动化识别深度学习算法模型的中间表示,并自动进行算法二次编译和脚本生成的推理代码自动化生成系统。
技术特征:1.一种模型推理代码的自动生成装置,其特征在于:包含模型读取层、模型转换层、参数读取层和参数转换层;
2.根据权利要求1所述的一种模型推理代码的自动生成装置,其特征在于:所述模型读取层用于读取模型的输入文件格式,使用文件后缀判别法完成模型文件的判断。
3.根据权利要求2所述的一种模型推理代码的自动生成装置,其特征在于:所述模型读取层完成读取的模型文件存放在内存中。
4.根据权利要求1所述的一种模型推理代码的自动生成装置,其特征在于:所述二次编译平台是tensorrt平台;其中,tensorrt为英伟达公司推出的模型推理加速平台。
5.根据权利要求3所述的一种模型推理代码的自动生成装置,其特征在于:具体二次编译过程举例如下:如果模型读取层读取的是onnx模型,则直接加载tensort平台完成转换;
6.根据权利要求3所述的一种模型推理代码的自动生成装置,其特征在于:如果此时模型被识别为yolo模型,则该模型可以被加载用于二次编译;yolo为一种人工智能模型,是最广泛的目标检测模型;
7.根据权利要求1所述的一种模型推理代码的自动生成装置,其特征在于:所述参数读取层使用自适应判别法读取模型的输入输出内容格式。
8.根据权利要求1所述的一种模型推理代码的自动生成装置,其特征在于:以图像为例说明该处理流程:需要用户的轻度参与,用户需指定图像文件的存放位置、图像文件的处理方式。
9.根据权利要求8所述的一种模型推理代码的自动生成装置,其特征在于:用户需指定图像文件的存放位置后,本层首先生成图像文件加载代码,将图像文件读取并加载到内存中;根据用户的指令,生成图像预处理代码;经过预处理的图像文件的大小应与参数读取层读取的结果一致。
10.根据权利要求9所述的一种模型推理代码的自动生成装置,其特征在于:所述图像预处理代码包括:图像直接压缩、图像等比压缩后中央填充、图像等比压缩后边缘填充。
技术总结本发明公开了一种模型推理代码的自动生成装置,属于IT与软件开发领域的软件开发技术领域包含模型读取层,用于完成模型文件的读取;模型转换层,用于完成模型文件的二次编译;参数读取层,用于完成模型输入输出参数的读取;参数转换层,用于生成常用的输入输出预处理代码;本发明提出的方法能极大提升模型的推理部署效率;本发明提出的方法在大部分情况下不需要设计人员撰写任何代码,简化了设计人员的工作流程;本发明是首个提出自动化识别深度学习算法模型的中间表示,并自动进行算法二次编译和脚本生成的推理代码自动化生成系统。技术研发人员:林玠珉,林翔鹏,郭逸豪,莫宇,冯逸楠,杨茂根受保护的技术使用者:天翼云科技有限公司技术研发日:技术公布日:2024/8/1本文地址:https://www.jishuxx.com/zhuanli/20240802/262079.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。