掌桥专利:专业的专利平台
掌桥专利
首页

一种模型部署方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 18:37:28


一种模型部署方法、装置、电子设备及存储介质

技术领域

本申请涉及权限控制技术领域,具体涉及一种模型部署方法、装置、电子设备及存储介质。

背景技术

随着科技的进步,人工智能应用的领域也越来越广泛,对人们的日常生活产生了很多影响,而随着社会的发展,人工智能的需求量也日益加大。

在人工智能的开发过程中,从模型的构建、训练到部署应用都十分复杂,需要专业的技术人员耗费大量精力来完成。其中,在模型的部署过程中,技术人员要选取合适的框架与算法,通过训练与测试来实验模型的功能,并进行修正,比较复杂,耗费时间较长。

发明内容

鉴于以上所述现有技术的缺点,本发明提供一种模型部署方法、装置、电子设备及存储介质,以解决模型在特定平台部署复杂,耗时较长的技术问题。

本发明提供的模型部署方法及装置、电子设备和存储介质,包括:

对训练后的初始模型进行量化,得到量化模型;

获取所述量化模型的各模块的onnx模型及量化校准文件;

修正各模块的所述onnx模型及所述量化校准文件;

合并各模块的所述onnx模型及所述量化校准文件,得到第一onnx模型和量化校准文件集;

将所述量化校准文件集转码为可读取文件;

基于所述第一onnx模型和所述可读取文件,由平台生成模型;

对平台生成的模型进行部署。

于本发明的一实施例中,所述对训练后的初始模型进行量化,得到量化模型包括:使用PTQ工具或QAT工具对训练后的初始模型进行量化,得到量化模型。

于本发明的一实施例中,所述获取量化模型的各模块的onnx模型及量化校准文件包括:使用mqbench工具获得量化模型各模块的onnx模型及量化校准文件。

于本发明的一实施例中,所述修正各模块的onnx模型及量化校准文件包括:

删除各模块的所述onnx模型中多余的输出节点;

将各模块的所述onnx模型中相同的tensor名称设置一致;

根据部署代码的要求修改各模块的所述onnx模型。

于本发明的一实施例中,所述合并各模块的onnx模型及量化校准文件,得到第一onnx模型和量化校准文件集包括:

将修正后各模块的所述onnx模型合并为一个,得到所述第一onnx模型;

将各模块的所述量化校准文件合并为一个,得到所述量化校准文件集。

于本发明的一实施例中,所述将量化校准文件集转码为可读取文件包括:使用ASCII编码工具将所述量化校准文件集转化为可读取文件文件。

于本发明的一实施例中,基于所述第一onnx模型和可读取文件,由平台生成模型包括:将所述第一onnx模型和所述可读取文件输入到目标平台,由目标平台输出一个定点运行的目标平台的模型。

于本发明的一实施例中,还提供一种模型部署装置,所述装置包括:

量化模块,配置为对训练后的模型进行量化,得到量化模型;

获取模块,配置为获取量化模型的各模块的onnx模型及量化校准文件;

修正模块,配置为修正各模块的onnx模型及量化校准文件;

合并模块,配置为合并各模块的onnx模型及量化校准文件,得到第一onnx模型和量化校准文件集;

转码模块,配置为将量化校准文件集转码为可读取文件;

生成模块,配置为基于所述onnx模型和所述可读取文件,由平台生成模型;

部署模块,配置为对平台生成的模型进行部署。

于本发明的一实施例中,还提供一种电子设备,所述电子设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至7中任一项所述的模型部署方法。

于本发明的一实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行权利要求1至7中任一项所述的模型部署方法。

本发明的有益效果:本发明中获取量化后模型的onnx模型,提高tensorRT对算子的融合,提高运行效率,并转化为特定平台的模型,使模型和平台的兼容性更好,其中各个模块相互独立,可快速完成模型的部署,为工程项目节省时间。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1是本申请的一示例性实施例示出的模型部署方法的实施环境示意图;

图2是本申请的一示例性实施例示出的模型部署方法的流程图;

图3是图2所示实施例中的步骤S230在一示例性的实施例中的流程图;

图4是图2所示实施例中的步骤S240在一示例性的实施例中的流程图;

图5是本申请的一示例性实施例示出的模型部署方法的装置的框图;

图6示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

以下将参照附图和优选实施例来说明本发明的实施方式,本领域技术人员可由本说明书中所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。

Open Neural Network Exchange(ONNX,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。

ONNX是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如Pytorch,MXNet)可以采用相同格式存储模型数据并交互。ONNX的规范及代码主要由微软,亚马逊,Facebook和IBM等公司共同开发,以开放源代码的方式托管在Github上。目前官方支持加载ONNX模型并进行推理的深度学习框架有:Caffe2,PyTorch,MXNet,ML.NET,TensorRT和Microsoft CNTK,并且TensorFlow也非官方的支持ONNX。

MQBench是在实际硬件部署下评估量化算法的基准和框架。MQBench集成了Pytorch的最新特性,可以自动跟踪全精度模型并将其转换为量化模型。它为研究人员提供了大量的硬件和算法,以基准量化的可部署性和可再现性。

量化是指对模型的权重(weight)和数据(activation)进行低比特处理,让最终生成的网络模型更加轻量化,从而达到节省网络模型存储空间、降低传输时延、提高计算效率,达到性能提升与优化的目标。

训练后量化,PTQ(Post training quantization),将训练过的FP32网络直接转换为定点计算的网络,过程中无需对原始模型进行任何训练。只对几个超参数调整就可完成量化过程,量化模型以一种更有效的计算方式进行模型推理。量化后模型中的参数使用低bit表示,在数据搬移时降低了带宽要求,在计算过程中一般硬件对于低bit整形数据具有更高的标称算力,因此模型量化的优化方案在多数情况下可获得较大的推理速度提升,此方法已被广泛应用于大量的端侧和云侧部署场景。

量化感知训练,QAT(Quantization aware training),在量化的过程中,对网络进行训练,从而让网络参数能更好地适应量化带来的信息损失。这种方式更加灵活,因此准确性普遍比后训练量化要高。

请参阅图1,图1是本申请的一示例性实施例示出的模型部署方法的实施环境示意图。图1所示的第一智能终端110可以是车载电脑、平板电脑、笔记本电脑或者可穿戴设备等任意支持模型部署准备工作的终端设备,但并不限于此。图1所示的第二智能终端120是可以是车载电脑、平板电脑、笔记本电脑或者可穿戴设备等任意支持模型部署的终端设备。第一智能终端110可以通过3G(第三代的移动信息技术)、4G(第四代的移动信息技术)、5G(第五代的移动信息技术)等无线网络与第二智能终端120进行通信,本处也不对此进行限制.

请参阅图2,图2是本申请的一示例性实施例示出的模型部署方法的流程图。该方法可以应用于图1所示的实施环境,并由该实施环境中的智能终端110具体执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。在一示例性的实施例中,模型部署方法至少包括步骤S210至步骤S270,详细介绍如下:

步骤S210,对训练后的初始模型进行量化,得到量化模型。

本实施例中,模型的量化有两种,分别是使用PTQ工具和QAT工具。其中,PTQ量化效率高,QAT量化精度高,根据实际情况选用合适的量化方法。两种量化方法均在mqbench框架下完成。

步骤S220,获取所述量化模型的各模块的onnx模型及量化校准文件。

本实施例中,使用mqbench convert deploy函数获取所述量化模型的各模块的onnx模型及量化校准文件。

步骤S230,修正各模块的所述onnx模型及所述量化校准文件。

本实施例中,修正过程是下一步骤的铺垫,获取各模块的onnx模型后还需要修正后才能进一步合并。

步骤S240,合并各模块的所述onnx模型及所述量化校准文件,得到第一onnx模型和量化校准文件集。

本实施例中,量化模型中各模块的onnx模型合并后才是完整的onnx模型,合并所得到的第一onnx模型可以将模型同部署代码解耦,解耦后更换模型的拆分方式不影响部署代码。

步骤S250,将所述量化校准文件集转码为可读取文件。

本实施例中,将量化校准文件集转码为16进制的calib文件,所述calib文件可被trtexec命令读取。

步骤S260,基于所述第一onnx模型和所述可读取文件,由平台生成模型。

本实施例中,将英伟达的GPU做为目标平台,将第一onnx模型和calib文件输入到英伟达所提供的trtexec工具中,输出为一个定点运行(int8格式)的trt模型。

步骤S270,对平台生成的模型进行部署。

本实施例中,将平台生成的模型部署到目标平台即可完成部署。

图3是图2所示实施例中的步骤S230在一示例性的实施例中的流程图。如图3所示,所述修正各模块的onnx模型及量化校准文件过程包括步骤S310至S330,详细介绍如下:

步骤S310,删除各模块的所述onnx模型中多余的输出节点。

本实施例中,删除各模块onnx模型框架的原有输出节点中多余部分,只保留量化模型各模块所需的节点。

步骤S320,将各模块的所述onnx模型中相同的tensor名称设置一致。

本实施例中,将各模块中相同的tensor名称规范化处理,方便管理。

步骤S330,根据部署代码的要求修改各模块的所述onnx模型。

本实施例中,主要使用onnxgraphsurgeon工具根据部署代码的要求修改各模块的onnx模型,例如增加算子等。

图4是图2所示实施例中的步骤S240在一示例性的实施例中的流程图。如图4所示,所述合并各模块的onnx模型及量化校准文件,得到第一onnx模型和量化校准文件集包括步骤S410至步骤S420,详细介绍如下:

步骤S410,将修正后各模块的所述onnx模型合并为一个,得到所述第一onnx模型。

本实施例中,将各模块的onnx模型合并为一个,得到第一onnx模型,这样就可以将模型同部署代码解耦,更换模型拆分方式不影响部署代码,同时使用大的第一onnx模型也更有助与tensorRT对模型算子的融合,从而提高运行效率。

步骤S420,将各模块的所述量化校准文件合并为一个,得到所述量化校准文件集。

本实施例中,配合各模块的onnx模型的合并,将各模块的量化校准文件也合并,得到量化校准文件集。

图5是本申请的一示例性实施例示出的模型部署方法的装置的框图。该装置可以应用于图1所示的实施环境,并具体配置在智能终端110中。该装置也可以适用于其它的示例性实施环境,并具体配置在其它设备中,本实施例不对该装置所适用的实施环境进行限制。

如图5所示,该示例性的模型部署的装置包括:量化模块510、获取模块520、修正模块530、合并模块540、转码模块550、生成模块560、部署模块570。

所述量化模块510配置为对训练后的模型进行量化,得到量化模型;所述获取模块520配置为获取量化模型的各模块的onnx模型及量化校准文件;所述修正模块530配置为修正各模块的onnx模型及量化校准文件;所述合并模块540配置为合并各模块的onnx模型及量化校准文件,得到第一onnx模型和量化校准文件集;所述转码模块550配置为将量化校准文件集转码为可读取文件;所述生成模块560配置为基于所述onnx模型和所述可读取文件,由平台生成模型;所述部署模块570配置为对平台生成的模型进行部署。

需要说明的是,上述实施例所提供的模型部署装置与上述实施例所提供的模型部署方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的模型部署装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。

本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述各个实施例中提供的模型部署方法。

图6示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图6示出的电子设备的计算机系统600仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括中央处理单元(Central Processing Unit,CPU)601,其可以根据存储在只读存储器(Read-Only Memory,ROM)602中的程序或者从储存部分608加载到随机访问存储器(Random Access Memory,RAM)603中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 603中,还存储有系统操作所需的各种程序和数据。CPU601、ROM602以及RAM 603通过总线604彼此相连。输入/输出(Input/Output,I/O)接口605也连接至总线604。

以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分607;包括硬盘等的储存部分608;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入储存部分608。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的系统中限定的各种功能。

需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机的处理器执行时,使计算机执行如前所述的模型部署方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。

本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的模型部署方法。

上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

技术分类

06120115638541