深度学习模型部署方法和装置

文档序号:35421493发布日期:2023-09-13 08:27阅读:39来源:国知局
深度学习模型部署方法和装置

本发明涉及人工智能,尤其涉及一种深度学习模型部署方法和装置。


背景技术:

1、近年来,随着图形处理器(graphics processing unit,gpu)、中央处理器(central processing unit,cpu)、神经网络处理器(neural network processing unit,npu)等硬件性能的不断提升,以深度学习为代表的人工智能技术取得了突飞猛进的发展并在各行各业中广泛应用。为了方便开发者快速高效地实现基于深度学习的智能算法,caffe、tensorflow、pytorch、mxnet、paddlepaddle等深度学习编程框架应运而生。众多深度学习开发框架的出现加快了模型的开发,但不同框架开发并训练生成的模型运行所必需的环境也不尽相同,这使得基于不同框架开发的模型需要部署在一起时,必须安装大量不同的依赖软件并进行相应的环境配置,从而造成准备模型运行环境工作繁杂,费时费力。另一方面,随着人工智能应用场景的不断扩展,除了传统的服务器,需要运行深度学习模型的设备也变得越来越多样,譬如,手机、开发板等。基于深度学习开发框架开发的模型由于框架规模大、依赖环境复杂等原因往往不适合在手机、开发板等应用环境中部署。此外,深度学习模型的结构复杂参数庞大,实时运行对算力的要求较高,因此,在生产环境部署深度学习模型时需要针对软硬件环境进行优化从而最大限度提升模型的运行效率。然而,生产环境中硬件的多样性使得同一个深度学习模型要在不同环境中部署就需要进行不同的优化,这同样给模型部署工作带来了巨大的挑战。

2、当前针对深度学习模型部署过程中存在的诸多难题,学术界和工业界经过多年探索构建了一条模型部署流水线。通过将基于深度学习开发框架开发和训练生产的原始模型型转换为只描述网络结构的中间表示,然后推理引擎把中间表示转换成特定的文件格式并在对应硬件平台上运行模型。从而实现让深度学习模型能够快速、高效地部署在某一环境上。但是,该过程中依旧存在一些问题,比如,基于深度学习开发框架开发和训练生产的原始模型在转换到中间表示时,需要将原始模型中的每个算子翻译成中间表示定义的算子,在翻译过程中可能会存在算子不兼容的问题。又如,原始模型转换中间表示时使用的第一中间表示版本与实际部署环境中推理引擎版本可能存在不兼容的问题。而针对这些问题,通常情况下,在进行模型部署过程中,需要人工逐个确定排除这些问题,因此使深度学习模型部署过程还需要依赖大量的人工操作,不够便捷以及自动化。


技术实现思路

1、本发明提供一种深度学习模型部署方法和装置,用以提供一种深度学习模型部署方法,解决深度学习模型部署过程还需要依赖大量的人工操作,不够便捷以及自动化的问题。

2、本发明提供一种深度学习模型部署方法,包括:获取深度学习原始模型文件、第一关系表以及第二关系表;其中,所述第一关系表中包含所述深度学习原始模型文件中各原始算子、所述各原始算子对应的第一中间表示算子集版本以及第一开发框架版本之间的对应关系;所述第二关系表中包括所述第一中间表示算子集版本,和所述第一中间表示算子集版本对应的第一推理引擎版本、第一中间表示版本之间的对应关系;所述第一中间表示算子集版本为对应中间表示版本所支持的算子集版本号;基于所述深度学习原始模型文件、所述第一关系表以及所述第二关系表,确定进行深度学习原始模型转换需要的版本参数;基于所述版本参数,确定所述深度学习原始模型文件中深度学习原始模型的可部署的中间表示模型;将所述可部署的中间表示模型部署在目标设备上。

3、基于上述任一实施例,所述基于所述深度学习原始模型文件、所述第一关系表以及所述第二关系表,确定进行深度学习原始模型转换需要的版本参数,包括:基于所述深度学习原始模型文件以及所述第一关系表,确定所述各原始算子对应的第一中间表示算子集版本以及第一开发框架版本;基于所述各原始算子对应的第一中间表示算子集版本和所述第二关系表,确定所述各原始算子对应的第一推理引擎版本以及第一中间表示版本;基于所述各原始算子对应的第一中间表示算子集版本、第一开发框架版本、第一推理引擎版本以及第一中间表示版本,确定进行深度学习原始模型转换需要的版本参数。

4、基于上述任一实施例,所述基于所述深度学习原始模型文件以及所述第一关系表,确定所述各原始算子对应的第一中间表示算子集版本以及第一开发框架版本,包括:基于所述深度学习原始模型文件,确定深度学习原始模型中的各原始算子;从所述第一关系表中获取所述各原始算子对应的第一中间表示算子集版本以及第一开发框架版本。

5、基于上述任一实施例,所述基于所述各原始算子对应的第一中间表示算子集版本、第一开发框架版本、第一推理引擎版本以及第一中间表示版本,确定进行深度学习原始模型转换需要的版本参数,包括:将所述各原始算子对应的第一中间表示算子集版本中,版本要求最高的第一中间表示算子集版本,确定为深度学习原始模型转换需要的第二中间表示算子集版本;所述第二中间表示算子集版本为深度学习原始模型转换需要的中间表示版本所支持的算子集版本;依次从所述各原始算子对应的第一开发框架版本、第一推理引擎版本以及第一中间表示版本中,确定与所述第二中间表示算子集版本对应的第二开发框架版本、第二推理引擎版本以及第二中间表示版本;将所述第二中间表示算子集版本、第二开发框架版本、第二推理引擎版本以及第二中间表示版本,确定为进行深度学习原始模型转换需要的版本参数,并向用户展示所述版本参数。

6、基于上述任一实施例,所述基于所述版本参数,确定所述深度学习原始模型文件中深度学习原始模型的可部署的中间表示模型,包括:响应于用户的操作,安装目标深度学习开发框架版本;其中,所述目标深度学习开发框架版本为所述第二开发框架版本或比所述第二开发框架版本高的深度学习开发框架版本;调用所述目标深度学习开发框架版本提供的所述第二中间表示版本对应的中间表示转换接口,以所述第二中间表示算子集版本对应的参数格式作为所述中间表示转换接口的参数输入格式,得到所述深度学习原始模型的初始中间表示模型;基于所述第二推理引擎版本对应的推理引擎,对所述初始中间表示模型进行格式验证,在确定所述格式验证通过的情况下,将所述初始中间表示模型保存为可部署的中间表示模型;或,在确定所述格式验证不通过的情况下,输出格式验证错误。

7、基于上述任一实施例,在所述基于所述第二推理引擎版本对应的推理引擎,对所述初始中间表示模型进行格式验证之前,所述方法还包括:在确定目标环境的推理引擎版本低于或者高于所述第二推理引擎版本的情况下,向用户发出目标提示,所述目标提示用于提醒用户推理引擎版本过低以及需要安装所述第二推理引擎版本的推理引擎。

8、基于上述任一实施例,在所述获取深度学习原始模型文件、第一关系表以及第二关系表之前,所述方法还包括:基于各深度学习开发框架版本中各算子与第三中间表示算子集版本的关系,确定并保存所述第一关系表;其中,所述第三中间表示算子集版本为各深度学习开发框架版本对应的目录下的文件中,各深度学习开发框架支持的中间表示算子集版本;基于推理引擎版本、中间表示版本以及中间表示算子集版本的发布信息,确定并保存所述第二关系表。

9、本发明还提供一种深度学习模型部署装置,包括:获取模块,用于获取深度学习原始模型文件、第一关系表以及第二关系表;其中,所述第一关系表用于表示原始算子、第一中间表示算子集版本以及第一开发框架版本之间的对应关系;所述第二关系表中包括所述第一中间表示算子集版本,和所述第一中间表示算子集版本对应的第一推理引擎版本、第一中间表示版本之间的对应关系;所述第一中间表示算子集版本为对应中间表示版本所支持的算子集版本号;第一确定模块,用于基于所述深度学习原始模型文件、所述第一关系表以及所述第二关系表,确定进行深度学习原始模型转换需要的版本参数;第二确定模块,用于基于所述版本参数,确定所述深度学习原始模型文件中深度学习原始模型的可部署的中间表示模型;部署模块,用于将所述可部署的中间表示模型部署在目标设备上。

10、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述深度学习模型部署方法的步骤。

11、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述深度学习模型部署方法的步骤。

12、本发明提供的深度学习模型部署方法和装置,通过将第一关系表、第二关系表,即将深度学习原始模型中原始算子、第一中间表示算子集版本以及第一开发框架版本之间的对应关系,以及第一推理引擎版本、第一中间表示版本以及所述第一中间表示算子集版本之间的对应关系预先保存,从而实现在部署过程中,能够根据这些关系自动得到深度学习原始模型各算子对应的第一中间表示算子集版本以及第一开发框架版本、第一推理引擎版本、第一中间表示版本,并基于这些信息最终确定对深度学习原始模型进行中间表示时使用的中间表示算子集版本、推理引擎版本、中间表示版本。因此,减少了对人工的依赖,自动实现深度学习原始模型转换需要的版本参数的确定,使部署过程更加便捷和自动化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1