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

模型部署方法、装置、设备和介质

文献发布时间:2023-06-19 16:03:19



技术领域

本申请涉及深度学习技术领域,尤其涉及一种模型部署方法、装置、设备和介质。

背景技术

深度学习模型通常都是通过大量的训练数据训练得到,训练完成后的深度学习模型需要应用落地,赋能到产业应用中。例如将深度学习模型部署到自动驾驶车辆中的人工智能(Artificial Intelligence,AI)芯片中,AI芯片基于该深度学习模型的推理结果实现自动驾驶控制。

现有技术中,深度学习模型在部署到AI芯片时,通常都需要事先利用框架工具将深度学习模型进行格式转换,然后才能部署到相应的芯片中。

但是,现有的模型部署方式,由于各个AI芯片厂家都有各自的框架工具,导致用户在部署深度学习模型至不同AI芯片时,往往需要事先熟练去掌握不同的框架工具,费事费力,模型部署效率低。

发明内容

本申请提供一种模型部署方法、装置、设备和介质,用于解决现有模型部署效率低的问题。

第一方面,本申请实施例提供一种模型部署方法,包括:

获取人工智能芯片的芯片类型;

根据所述芯片类型,在预设的软件开发工具包中获取中间模型和用于转化所述中间模型的目标框架工具,所述软件开发工具包中包括至少一种中间模型和框架工具,所述中间模型由预先训练好的深度学习模型转化得到;

根据所述目标框架工具,将所述中间模型转换为所述芯片类型对应的二进制文件;

根据所述二进制文件,将所述深度学习模型部署至所述人工智能芯片中。

在第一方面的一种可能设计中,所述根据所述芯片类型,在预设的软件开发工具包中获取目标中间模型和用于转化所述中间模型的目标框架工具,包括:

根据预设对应表中的第一对应关系,获取所述芯片类型对应的模型标识信息,所述第一对应关系用于表征各个芯片类型与模型标识信息的对应关系;

在所述软件开发工具包中查找得到所述模型标识信息所标识的模型,作为所述中间模型;

根据所述预设对应表中的第二对应关系,获取所述芯片类型对应的框架工具作为所述目标框架工具,所述第二对应关系用于表征各个芯片类型与框架工具的对应关系。

在第一方面的另一种可能设计中,所述方法还包括:

每间隔预设更新时间周期,对所述预设对应表进行更新。

在第一方面的再一种可能设计中,所述根据所述芯片类型,在预设的软件开发工具包中获取中间模型和用于转化所述中间模型的目标框架工具之前,所述方法还包括:

获取至少两个预先训练好的深度学习模型,其中,不同的深度学习模型基于不同的深度学习框架开发得到;

将所述至少两个预先训练好的深度学习模型转换为所述中间模型;

将所述中间模型存储到软件开发工具包中。

在第一方面的又一种可能设计中,所述根据所述二进制文件,将所述深度学习模型部署至所述人工智能芯片中,包括:

获取所述人工智能芯片的应用逻辑,所述应用逻辑包括前处理、深度学习模型推理和后处理;

根据所述二进制文件和所述应用逻辑,编码得到可执行文件;

根据所述可执行文件,将所述深度学习模型部署至所述人工智能芯片中。

在第一方面的又一种可能设计中,所述将所述深度学习模型部署至所述人工智能芯片中之后,所述方法还包括:

根据预设对应表,在所述软件开发工具包中获取与所述芯片类型对应的目标调度框架,所述软件开发工具包括中包括有不同芯片类型对应的调度框架;

根据所述目标调度框架,调度所述人工智能芯片中的硬件以执行所述深度学习模型,所述硬件包括图形处理器、现场可编程逻辑门阵列和专用集成电路中的至少一种。

在第一方面的又一种可能设计中,所述根据所述二进制文件,将所述深度学习模型部署至所述人工智能芯片中之后,所述方法还包括:

每间隔预设时间周期,确定部署至所述人工智能芯片的深度学习模型的准确度是否下降;

若所述准确度下降,则对所述深度学习模型进行更新。

在第一方面的又一种可能设计中,所述对所述深度学习模型进行更新,包括:

获取所述人工智能芯片的远程模型更新请求;

根据所述远程模型更新请求,部署新的深度学习模型至所述人工智能芯片中。

在第一方面的又一种可能设计中,所述根据所述远程模型更新请求,部署新的深度学习模型至所述人工智能芯片中,包括:

根据所述远程模型更新请求,获取训练数据,所述训练数据包括新增的样本图片;

根据所述训练数据,训练得到新的深度学习模型;

将所述新的深度学习模型通过空中下载技术部署至所述人工智能芯片中。

在第一方面的又一种可能设计中,所述确定部署至所述人工智能芯片的深度学习模型的准确度是否下降,包括:接收用户反馈的提示信息,根据所述提示信息确定所述深度学习模型的准确度是否下降。

在第一方面的又一种可能设计中,所述确定部署至所述人工智能芯片的深度学习模型的准确度是否下降,包括:

获取样本数据,所述样本数据包括已标识的图片、已标识的视频中的至少一种;

获取所述深度学习模型对所述样本数据的预测结果;

根据所述预测结果,确定所述深度学习模型的准确度是否下降。

在第一方面的又一种可能设计中,所述获取人工智能芯片的芯片类型,包括:

与承载所述人工智能芯片的设备进行远程通信,发送信息获取请求至所述设备以获取所述人工智能芯片的芯片类型。

第二方面,本申请实施例提供一种模型部署装置,包括:

类型获取模块,用于获取人工智能芯片的芯片类型;

模型确定模块,用于根据所述芯片类型,在预设的软件开发工具包中获取中间模型和用于转化所述中间模型的目标框架工具,所述软件开发工具包中包括至少一种中间模型和框架工具,所述中间模型由预先训练好的深度学习模型转化得到;

模型转换模块,用于根据所述目标框架工具,将所述中间模型转换为所述芯片类型对应的二进制文件;

模型部署模块,用于根据所述二进制文件,将所述深度学习模型部署至所述人工智能芯片中。

第三方面,本申请实施例提供一种电子设备,包括:处理器,与所述处理器通信连接的存储器以及收发机;

所述存储器存储计算机执行指令;

所述收发机,用于在所述处理器的控制下收发数据;

所述处理器执行所述存储器存储的计算机执行指令,以实现上述的方法。

第四方面,本申请实施例提供一种可读存储介质,所述可读存储介质中存储有计算机指令,所述计算机指令被处理器执行时用于实现上述的方法。

本申请实施例提供的模型部署方法、装置、设备和介质,通过利用软件开发工具包中封装的各种框架工具对模型进行转换,使得用户在进行模型部署时,不需要去事先了解芯片类型并根据芯片类型掌握对应的框架工具,降低了用户工作量,方便了模型的部署,提高模型部署效率。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理;

图1为本申请实施例提供的模型部署的应用场景示意图;

图2为本申请实施例提供的模型部署方法的流程示意图;

图3为本申请实施例提供的软件开发工具包的结构示意图;

图4为本申请实施例提供的自动驾驶平台泊车系统的硬件结构示意图;

图5为本申请实施例提供的模型更新示意图;

图6为本申请实施例提供的模型部署方法的交互示意图;

图7为本申请实施例提供的模型部署装置的结构示意图;

图8为本申请实施例提供的电子设备的结构示意图。

通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

首先对本申请所涉及的名词进行解释:

人工智能芯片:人工智能(Artificial Intelligence,AI)芯片也被称为AI加速器或计算卡,即专门用于处理人工智能应用中的大量计算任务的模块(其他非计算任务仍由中央处理器(Central Processing Unit,CPU)负责)。

深度学习框架:在深度学习初始阶段,每个深度学习研究者都需要写大量的重复代码。为了提高工作效率,这些研究者就将这些代码写成了一个框架让所有研究者一起使用。现最为流行的框架主要包括Tensorflow、Caffe和PyTorch等。

深度学习:深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。

图1为本申请实施例提供的模型部署的应用场景示意图,如图1所示,以车辆10中的车载芯片作为AI芯片为例,车辆10中的的智能网联汽车操作系统中的通信部件101可以先通过与路侧单元13交互,发送远程调用请求给路侧单元13,然后由路侧单元13转发请求给云端服务器11,云端服务器11通过空中下载技术(Over the Air Technology,OTA)下发模型给路侧单元13,然后再由路侧单元13转发给车辆中的智能网联汽车操作系统中的通信部件101,最终实现模型部署应用到车辆的车载AI芯片中。AI模型应用的核心主要包括有两大块:其一为开发模型,其二为模型的部署应用。其中,模型部署阶段中涉及到模型转换、应用逻辑的设计以及硬件部署等过程,使用不同的深度学习框架训练得到的模型,在转换的过程中所使用的转换工具(即框架工具)也可能会不同,这主要取决于芯片类型。示例性的,以Caffe或者TensorFlow等深度学习框架训练得到的模型为例,如果部署到生产厂家A生产的AI芯片(例如芯片类型为A001),则需要使用对应的框架工具AL001,如果部署到生产厂家B生产的AI芯片(例如芯片类型为B001),则需要使用对应的框架工具BL001。在另一些应用场景中,除了车辆10之外,云端服务器11也可以与边缘云系统远程交互,下发模型部署到边缘云系统的AI芯片。

在相关技术应用中,通常各个AI芯片生产厂家都有自己的框架工具转换AI模型并部署到相应的AI芯片上。这会产生很多很多适配问题,对于不同类型的芯片,用户需要学习使用不同的框架工具,非常影响部署效率。

针对上述问题,本申请实施例提供的模型部署方法、装置、设备和介质,为了能够提高模型的部署效率,需要降低对用户的要求和工作量以提高效率,具体的,通过利用软件开发工具包(Software Development Kit,SDK)中封装的各种框架工具对模型进行转换,使得用户在进行模型部署时,不需要去事先了解芯片类型并根据芯片类型掌握对应的框架工具,降低了用户工作量,方便了模型的部署,提高模型部署效率。

下面,通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。

图2为本申请实施例提供的模型部署方法的流程示意图,该方法的执行主体可以是云端服务器,又或者也可以是本地的计算机设备。如图2所示,该方法具体可以包括如下步骤:

步骤S201、获取人工智能芯片的芯片类型。

在本实施例中,AI芯片根据生产厂家的不同,所属的芯片类型也不同,例如生产厂家A生产的AI芯片所属的芯片类型为A001,生产厂家B生产的AI芯片所属的芯片类型为B001。

其中,AI芯片通常都会有相应的搭载设备,例如车载AI芯片通常是搭载在自动驾驶车辆上。在本实施例中,可以通过芯片检测软件自动检测芯片的类型,然后由搭载设备发送给云端服务器或者计算机设备。又或者用户在知道芯片类型的前提下,也可以直接输入至云端服务器或者计算机设备。

示例性的,AI芯片可以包括图形处理器(Graphics Processing Unit,GPU)、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)和专用集成电路(Application Specific Integrated Circuit,ASIC)等。

示例性的,在一些其他实施方式中,云端服务器或本地的计算机设备可以与承载人工智能芯片的设备进行远程通信,发送信息获取请求至设备以获取人工智能芯片的芯片类型。其中,信息获取请求用于指示设备反馈人工智能芯片的芯片类型。承载人工智能芯片的设备可以是上述的自动驾驶车辆或者是边缘云设备。云端服务器通过进行远程通信来获取远端的AI芯片的芯片类型,能够降低用户的工作量并且更加方便快捷,可以有效的提高模型部署的效率。

步骤S202、根据芯片类型,在预设的软件开发工具包中获取中间模型和用于转化中间模型的目标框架工具。

其中,软件开发工具包中包括至少一种中间模型和框架工具,中间模型由预先训练好的深度学习模型转化得到。在本实施例中,示例性的,图3为本申请实施例提供的软件开发工具包的结构示意图,如图3所示,软件开发工具包中包括有中间模型、调度框架和框架工具。其中,中间模型包括有开放式神经网络交换(Open Neural Network Exchange,ONNX)以及NVVM等,调度框架包括有OpenVX(OpenVX是一个底层的编程框架,可以让开发人员以功能和性能的可移植性有效访问计算机视觉的硬件加速)、英伟达视觉编程接口(NVIDIA Vision Programming Interface,NVIDIA VPI)、张量虚拟机图形模块(TensorVirtual Machine Graph moudule,TVM Graph moudule)等,框架工具包括TIDL(TI深度学习库)、TensorRT(是英伟达推出的GPU推理引擎)、Apache TVM(是一个用于CPU、GPU和机器学习加速器的开源机器学习编译器框架)等。

在本实施例中,不同的芯片类型对应的中间模型可以是相同的,例如芯片类型为A001和B001对应的中间模型可以均为ONNX。转化中间模型的框架工具可以是TIDL、TensorRT、Apache TVM中的任意一种,具体根据芯片类型的不同决定使用哪一种框架工具。

步骤S203、根据目标框架工具,将中间模型转换为芯片类型对应的二进制文件。

在本实施例中,不同的AI芯片所能够支持的二进制文件不相同。根据AI芯片的芯片类型,可以使用不同的框架工具将中间模型(例如ONNX)转化为AI芯片支持的二进制文件。

示例性的,可以预先设置对应关系,不同类型的AI芯片对应使用不同的框架工具以转换成该类型AI芯片支持的二进制文件。示例性的,以芯片类型为英伟达的图形处理器为例,可以使用TensorRT框架工具将中间模型转换为该芯片支持的二进制文件。

步骤S204、根据二进制文件,将深度学习模型部署至人工智能芯片中。

在本实施例中,在将训练好的深度学习模型部署至AI芯片的过程中,深度学习模型首先转换为中间模型,然后再将中间模型转换为二进制文件,最后得到转换为二进制文件的模型,加上应用逻辑(应用逻辑包括前处理、后处理和模型推理)通过编码器即可编码得到可执行的文件,从而部署到AI芯片中。

本申请实施例通过利用软件开发工具包中封装的各种框架工具对模型进行转换,使得用户在进行模型部署时,不需要去事先了解芯片类型并根据芯片类型掌握对应的框架工具,降低了用户工作量,方便了模型的部署,提高模型部署效率。

在一些实施例中,上述步骤S202具体可以通过如下步骤实现:根据预设对应表中的第一对应关系,获取芯片类型对应的模型标识信息;在软件开发工具包中查找得到模型标识信息所标识的模型,作为中间模型;根据预设对应表中的第二对应关系,获取芯片类型对应的框架工具作为目标框架工具。

其中,第一对应关系用于表征各个芯片类型与模型标识信息的对应关系,第二对应关系用于表征各个芯片类型与框架工具的对应关系。

示例性的,预设对应表可以如下表1:

表1

在表1中,不同生产厂家所生产的AI芯片的芯片类型各不相同,例如厂家H生产的AI芯片的芯片类型包括A1000,厂家M生产的AI芯片的芯片类型包括MDC610,厂家J生产的AI芯片的芯片类型包括J3等。不同类型的AI芯片,在转换成二进制模型时所使用的框架工具不相同以转换成各自生产的AI芯片所支持的二进制文件。

在本实施例中,模型标识信息是指模型的名称。第一对应关系即表1中的芯片类型与中间模型的对应关系。不同的中间模型的名称不相同。示例性的,中间模型除了包括ONNX模型之外还可以包括NVVM模型。框架工具包括有TIDL、TensorRT、OMG等框架工具。其中,第二对应关系可以是芯片类型与框架工具的对应关系。例如TDA4VM对应的框架工具为TIDL,Nvidia GPU对应的框架工具为TensorRT,A1000对应的框架工具为该生产厂家H提供的框架工具,MDC610对应的框架工具为该生产厂家M提供的框架工具,J3对应的框架工具为该生产厂家J提供的框架工具。

本申请实施例通过预设对应关系表中的对应关系,可以使得云端服务器或本地的计算机设备在预设的软件开发工具包中快速的找到对应的中间模型以及用于转化中间模型的框架工具,不需要用户事先学习掌握该框架工具,减少用户的工作负担,提高模型的部署效率。

在上述实施例的基础上,在一些实施例中,上述模型部署方法还可以包括如下步骤:每间隔预设更新时间周期,对预设对应表进行更新。

在本实施例中,预设对应表中的中间模型的版本是可以更新的,中间模型的版本越高,则中间模型的算子越丰富。另外芯片类型也可能会随着芯片版本的升级而出现更新的情况。在芯片类型出现更新之后,对应的框架工具也可以出现更新。

本申请实施例通过周期性的对预设对应表进行更新,能够保证云端服务器或本地的计算机设备基于芯片类型快速的找到对应的中间模型以及用于转化中间模型的框架工具,而不需要用户去查找并学习掌握对应的框架工具,减轻用户的工作负担,提高模型部署的效率。

在上述实施例的基础上,在一些实施例中,上述模型部署方法还可以包括如下步骤:获取至少两个预先训练好的深度学习模型;将至少两个预先训练好的深度学习模型转换为中间模型;将中间模型存储到软件开发工具包中。

其中,不同的深度学习模型基于不同的深度学习框架开发得到。在本实施例中,深度学习框架可以包括Caffe、TensorFlow和PyTorch等。通过Caffe、TensorFlow和PyTorch等训练得到的深度学习模型可以转换为上表1中的ONNX模型作为中间模型。

其中,ONNX是一种模型IR,用于在各种深度学习训练和推理框架转换的一个中间表示格式。ONNX是一个开源标准格式,用于表示机器学习模型,为不同深度学习模型框架(例如Pytrorch 、Tensorflow)提供的通用开源格式描述,因此,ONNX定义了一系列常用算子, 用于构建机器学习与深度学习模型。在实际业务中,可以使用Pytorch或者TensorFlow等深度学习框架训练模型,导出成ONNX格式,然后再转换成目标设备上支撑的模型格式。

本申请实施例通过将PyTorch、TensorFlow等框架训练得到的模型转换为ONNX作为中间模型后,实现中间模型的统一,不需要用户关注底层的模型,减少了用户的工作量,同时使用ONNX即可直接进行模型推理,而不再需要原先的训练框架,这使得模型的部署更为便捷和通用。

在一些实施例中,在进行模型部署时具体可以包括如下步骤:获取人工智能芯片的应用逻辑;根据二进制文件和应用逻辑,编码得到可执行文件;根据可执行文件,将深度学习模型部署至人工智能芯片中。

其中,应用逻辑包括前处理、深度学习模型推理和后处理。在本实施例中,AI模型部署应用的整个过程可以分为神经网络的设计以及训练、模型转换、应用逻辑的设计和硬件部署等四个步骤。其中,应用逻辑的设计包括前处理、深度学习模型推理和后处理。部署的硬件可以分为Nvidia GPU based 嵌入式系统,ASIC芯片嵌入式系统以及FPGA等。

其中,中间模型在转化为二进制文件之后,可以把转换为二进制文件的模型加上应用逻辑,即调度,图片预处理,深度学习推理,后处理这些,通过编码器编码生成可执行的文件,部署到AI芯片中。

本申请实施例通过将模型转换为二进制文件,然后加上应用逻辑,通过编码器生成可执行文件,实现模型的部署,使得用户不再需要提前掌握目标框架工具来转换模型,减少了用户的工作量,提高模型部署的效率。

在上述实施例的基础上,在一些实施例中,上述方法还包括:根据预设对应表,在软件开发工具包中获取与芯片类型对应的目标调度框架;根据目标调度框架,调度人工智能芯片中的硬件以执行深度学习模型。

其中,软件开发工具包中包括有不同芯片类型对应的调度框架,硬件包括图形处理器GPU、现场可编程逻辑门阵列FPGA和专用集成电路ASIC中的至少一种。在本实施例中,继续参考上表1,预设对应表中包括有第三对应关系:芯片类型与调度框架的对应关系。示例性的,当芯片类型为TDA4VM时,对应的调度框架为OpenVX。

在本实施例中,调度框架用于调度AI芯片里面的CPU、GPU、图像信号处理(ImageSignal Processing,ISP)和协处理器,实现硬件加速,通过调度框架去使用这些硬件,以执行深度学习模型。示例性的,图4为本申请实施例提供的自动驾驶平台泊车系统的硬件结构示意图,如图4所示,泊车系统中使用的为TDA4芯片。其中,A72为TDA4芯片上的CPU,连接有镜头畸变校正(Lens Distortion Correction,LDC)模块,其用于对图像进行畸变矫正。DCCR5F为另一个CPU,连接有视频成像子系统(Video Imaging Subsystem,VISS),其用于处理RAW数据并输出RGB或YUV图像。C66_1和C66_2为用于前处理、后处理的DSP,C66_1连接有Multi-Scalar(简称MSC),用于对图像进行缩放。C7x/MMA是深度学习推理AI引擎芯片,GPU为图形处理器。

本申请实施例通过目标调度框架对芯片中的硬件进行调度,在模型部署到AI芯片之后,可以通过目标调度框架对各个硬件的调度,实现硬件加速,提高模型的适用性。

在一些实施例中,上述模型部署方法还可以包括如下步骤:每间隔预设时间周期,确定深度学习模型的准确度是否下降;若准确度下降,则对部署于人工智能芯片中的深度学习模型进行更新。

在本申请实施例中,模型在部署到AI芯片中之后,随着时间变化、天气变化或者场景变化等,模型的准确度有可能出现下降。示例性的,AI芯片可以搭载在自动驾驶车辆等设备上,在将模型部署到AI芯片中之后,在车辆驾驶过程中如果出现场景大幅度变化,则有可能会造成模型准确度下降,容易造成自动驾驶车辆出现事故等情况。另外模型准确率可能还会随天气变化。

本申请实施例通过周期性的检测模型的准确度,能够保证模型推理结果的准确性,提高模型的应用效果。

示例性的,在其他实施例中,可以通过接收用户反馈的提示信息来确定深度学习模型的准确度是否下降。例如用户在驾驶车辆时如果发现车辆存在错误的驾驶策略,则可以输入提示信息,由车辆上传到云端服务器。

可选的,在另一些实施例中,也可以通过获取样本数据以及获取深度学习模型对样本数据的预测结果;根据预测结果,确定深度学习模型的准确度是否下降。其中,样本数据包括已标识的图片、已标识的视频中的至少一种。

在本实施例中,可以通过模型管理器定期通过已标识的图片等对模型进行准确率测试。其中,已标识的图片可以包括新建房屋的图片、冬季和夏季图片以及原训练模型的图片等。

本申请实施例通过测试样本来检测模型的准确度是否下降,能够有效的预防模型随天气、场景的变化出现准确度下降的问题,保证模型推理准确性。

其中,在对模型进行更新时,可以通过空中下载技术(Over the Air Technology,OTA)从云端服务器OTA新的模型以实现更新。具体的,在一些实施例中,在通过OTA实现模型更新时,具体可以包括如下步骤:获取人工智能芯片的远程模型更新请求;根据远程模型更新请求,部署新的深度学习模型至人工智能芯片中。

在本实施中,以AI芯片搭载的设备为自动驾驶车辆为例,自动驾驶车辆的智能网联汽车操作系统可以与云端服务器进行远程交互,发送远程模型更新请求,云端服务器通过OTA的方式下发新的模型至智能网联汽车操作系统以实现AI芯片中模型的更新。

本申请实施例通过OTA的方式可以远程对AI芯片中的模型进行更新,提高模型的部署的便捷性和部署效率。

进一步的,在上述实施例的基础上,在一些实施例中,可以通过如下方法获取新的深度学习模型并部署至AI芯片中:根据远程模型更新请求,获取训练数据;根据训练数据,训练得到新的深度学习模型;将新的深度学习模型通过空中下载技术部署至人工智能芯片中。

其中,训练数据包括新增的样本图片。示例性的,样本图片可以是新增的房屋样本图片,例如以自动驾驶车辆在某一个固定区域行驶为例,当该区域中出现新增的房屋时,则可以在原深度学习模型的样本数据的基础上,将新增的房屋图片作为样本图片添加至样本数据中,重新训练得到新的深度学习模型,然后通过OTA的方式下发至自动驾驶车辆。

本申请实施例通过新增图片重新训练得到新的深度学习模型,并通过OTA方式下发部署至AI芯片中,能够实现模型的快速部署更新,实时保证模型的准确度,避免模型随天气、场景变化出现准确度下降。

示例性的,图5为本申请实施例提供的模型更新示意图,如图5所示,云端通过证书颁发机构进行鉴权,在鉴权通过之后,通过OTA下发深度学习模型。其中,应用程序为DeepStream应用程序,用于将深度学习模型和其他复杂的处理任务引入到流处理管道中,以实现对摄像头采集的视频和话筒采集的音频数据实时分析。其中,DeepStream应用程序还可以向云端上报加密的元数据,云端可以对DeepStream应用程序进行管理。

图6为本申请实施例提供的模型部署方法的交互示意图,如图6所示,以边缘云芯片/车载芯片为例,边缘云芯片通常搭载在边缘云系统中,而车载芯片通常搭载在智能网联汽车操作系统中。该具体包括如下步骤:

步骤S601,与边缘云系统或智能网联汽车操作系统交互。

步骤S602,发起远程调用请求至云端。

步骤S603,确定中间模型。

步骤S604,下发模型。

步骤S605,部署至边缘云芯片/车载芯片。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

图7为本申请实施例提供的模型部署装置的结构示意图,该模型部署装置可以集成在计算机设备/云端服务器上。如图7所示,该模型部署装置700包括类型获取模块710、模型确定模块720、模型转换模块730和模型部署模块740。

其中,类型获取模块710用于获取人工智能芯片的芯片类型。模型确定模块720用于根据芯片类型,在预设的软件开发工具包中获取中间模型和用于转化中间模型的目标框架工具。模型转换模块730用于根据目标框架工具,将中间模型转换为芯片类型对应的二进制文件。模型部署模块730用于根据二进制文件,将深度学习模型部署至人工智能芯片中。其中,软件开发工具包中包括至少一种中间模型和框架工具,中间模型由预先训练好的深度学习模型转化得到。

在一些实施例中,上述模型确定模块具体可以用于:根据预设对应表中的第一对应关系,获取芯片类型对应的模型标识信息;在软件开发工具包中查找得到模型标识信息所标识的模型,作为中间模型;根据预设对应表中的第二对应关系,获取芯片类型对应的框架工具作为目标框架工具。其中,第一对应关系用于表征各个芯片类型与模型标识信息的对应关系,第二对应关系用于表征各个芯片类型与框架工具的对应关系。

在一些实施例中,上述模型部署装置还包括更新模块,用于每间隔预设更新时间周期,对预设对应表进行更新。

在一些实施例中,上述模型部署装置还包括深度学习模型转化模块,用于获取至少两个预先训练好的深度学习模型;将至少两个预先训练好的深度学习模型转换为中间模型;将中间模型存储到软件开发工具包中。其中,不同的深度学习模型基于不同的深度学习框架开发得到。

在一些实施例中,上述模型部署模块具体可以用于:获取人工智能芯片的应用逻辑;根据二进制文件和应用逻辑,编码得到可执行文件;根据可执行文件,将深度学习模型部署至人工智能芯片中。其中,应用逻辑包括前处理、深度学习模型推理和后处理。

在一些实施例中,上述模型部署装置还包括执行模块,用于根据预设对应表,在软件开发工具包中获取与芯片类型对应的目标调度框架;根据目标调度框架,调度人工智能芯片中的硬件以执行深度学习模型。其中,软件开发工具包括中包括有不同芯片类型对应的调度框架,硬件包括图形处理器、现场可编程逻辑门阵列和专用集成电路中的至少一种。

在一些实施例中,上述模型部署装置还包括模型更新模块,用于每间隔预设时间周期,确定部署在人工智能芯片的深度学习模型的准确度是否下降;若准确度下降,则对深度学习模型进行更新。

在一些实施例中,上述模型更新模块具体可以用于:获取人工智能芯片的远程模型更新请求;根据远程模型更新请求,部署新的深度学习模型至人工智能芯片中。

在一些实施例中,上述模型更新模块具体可以用于:根据远程模型更新请求,获取训练数据,训练数据包括新增的样本图片;根据训练数据,训练得到新的深度学习模型;将新的深度学习模型通过空中下载技术部署至人工智能芯片中。

在一些实施例中,上述模型更新模块具体可以用于:接收用户反馈的提示信息,根据提示信息确定深度学习模型的准确度是否下降。

在一些实施例中,上述模型更新模块具体可以用于:获取样本数据;获取深度学习模型对样本数据的预测结果;根据预测结果,确定深度学习模型的准确度是否下降。其中,样本数据包括已标识的图片、已标识的视频中的至少一种。

在一些实施例中,上述类型获取模块,具体可以用于:与承载人工智能芯片的设备进行远程通信,发送信息获取请求至设备以获取人工智能芯片的芯片类型。其中,信息获取请求用于指示设备反馈人工智能芯片的芯片类型。

本申请实施例提供的装置,可用于执行上述实施例中的方法,其实现原理和技术效果类似,在此不再赘述。

需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,类型获取模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上类型获取模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。

图8为本申请实施例提供的电子设备的结构示意图。如图8所示,该电子设备800包括:包括:处理器810、存储器820和收发机830。其中,收发机830用于在处理器810的控制下接收和发送数据。

其中,总线接口可以包括任意数量的互联的总线和桥,具体由处理器810代表的一个或多个处理器和存储器820代表的存储器的各种电路链接在一起。总线接口还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机830可以是多个元件,即包括发送机和接收机。

处理器810负责管理总线架构和通常的处理,存储器820可以存储处理器810在执行操作时所使用的数据。可选的,处理器810可以是CPU(中央处理器)、ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable GateArray,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件),处理器也可以采用多核架构。处理器通过调用存储器存储的计算机执行指令,用于按照获得的可执行指令执行本申请实施例提供的任一方法。处理器与存储器也可以物理上分开布置。存储器820,用于存储计算机执行指令;收发机830,用于在处理器810的控制下收发数据;处理器810用于读取存储器中的计算机执行指令并执行上述实施例中的方法。

本实施例还提供一种可读存储介质,可读存储介质中存储有计算机指令,当电子设备的至少一个处理器执行该计算机指令时,电子设备执行上述的各种实施方式提供的模型部署方法。

本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中,a,b,c可以是单个,也可以是多个。

可以理解的是,在本申请实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

相关技术
  • 模型部署方法、模型部署装置、终端设备及可读存储介质
  • 模型发布方法、模型部署方法、装置、设备及存储介质
技术分类

06120114688806