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

模型部署方法、模型运行方法、装置、介质、及电子设备

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


模型部署方法、模型运行方法、装置、介质、及电子设备

技术领域

本公开涉及人工智能技术领域,具体地,涉及一种模型部署方法、模型运行方法、装置、介质、及电子设备。

背景技术

自动机器学习(automatic machine learning,AutoML)提供数据清洗、特征工程、模型构建、模型训练和评估等机器学习的各个过程的全套自动化解决方法,以算力换人力和时间,减少对机器学习工程师的依赖。AutoML在模型构建、模型训练和评估的过程中通常利用模型搜索方法,获取可以部署于对应终端设备,以实现模型结构和模型参数的自动优化。由于终端存在多种类型,不同类型对应的硬件类型不同,使得计算能力或者计算性能参差不齐,从而导致终端所适配的最优模型的模型结构、模型大小各有不同。

相关技术中,多是将同一模型部署到所有终端上,无法确保所部署的模型与终端的计算能力或者计算性能相适配,无法使部署在终端上的模型的效果或性能达到最优。

发明内容

本公开的目的是提供一种模型部署方法、模型运行方法、装置、介质、及电子设备,以解决相关中存在的问题。

为了实现上述目的,本公开第一方面提供一种模型部署方法,所述方法包括:

响应于接收到待部署终端的各异构硬件的相关信息,根据原始模型对应的映射关系和所述各异构硬件的相关信息,确定所述各异构硬件对应的所述原始模型的目标版本模型,其中,所述原始模型对应的映射关系用于表征原始模型中每一算子在不同异构硬件上运行时的耗时信息;

将所述各异构硬件对应的所述原始模型的目标版本模型下发至所述待部署终端,以在所述待部署终端中部署所述各异构硬件对应的所述原始模型的目标版本模型。

可选地,所述原始模型对应的映射关系通过以下方式得到:

统计每一终端类型的各异构硬件的相关信息得到异构硬件列表,以及统计原始模型中每一算子得到原始模型的算子列表;

针对所述异构硬件列表中的每一异构硬件,遍历所述原始模型的算子列表,确定当前遍历到的算子在所述异构硬件上运行时的耗时信息,以得到当前遍历到的算子在每一异构硬件上运行时的耗时信息;

在遍历结束时,根据遍历过程中得到的每一算子在每一异构硬件上运行时的耗时信息,得到所述原始模型对应的映射关系。

可选地,所述响应于接收到待部署终端的各异构硬件的相关信息,根据原始模型对应的映射关系以及各异构硬件的相关信息,确定所述各异构硬件对应的所述原始模型的目标版本模型,包括:

响应于接收到待部署终端的各异构硬件的相关信息,根据原始模型对应的映射关系和所述各异构硬件的相关信息,在所述原始模型的每一类算子中确定所述各异构硬件对应的耗时最小的算子,其中,实现相同功能的算子属于同一类算子;

根据所述原始模型的每一类算子中所述各异构硬件对应的耗时最小的算子,确定所述各异构硬件对应的所述原始模型的目标版本模型。

可选地,在确定出所述各异构硬件对应的所述原始模型的目标版本模型之后,所述方法还包括:

获取所述原始模型对应的训练样本,并利用所述训练样本对所述各异构硬件对应的所述原始模型的目标版本模型进行训练;

所述将所述各异构硬件对应的所述原始模型的目标版本模型下发至所述待部署终端,以在所述待部署终端中部署所述各异构硬件对应的所述原始模型的目标版本模型,包括:

将训练完成的所述各异构硬件对应的所述原始模型的目标版本模型下发至所述待部署终端,以在所述待部署终端中部署训练完成的所述各异构硬件对应的所述原始模型的目标版本模型。

可选地,所述方法还包括:

在获取到原始模型时,向待部署终端发送信息获取请求,所述信息获取请求用于请求所述待部署终端的各异构硬件的相关信息;或者

在接收到待部署终端发送的模型部署请求时,向所述待部署终端发送所述信息获取请求。

本公开第二方面提供一种模型运行方法,所述方法包括:

在部署有各异构硬件对应的原始模型的目标版本模型的情况下,确定所述各异构硬件的当前剩余资源和所述各异构硬件运行其对应的待运行模型的目标版本模型的总时长,其中,按照本公开第一方面所述方法在终端中部署各异构硬件对应的原始模型的目标版本模型,所述待运行模型为所述原始模型中的一者或多者;

根据所述各异构硬件的当前剩余资源和所述各异构硬件运行其对应的待运行模型的目标版本模型的总时长,确定运行所述待运行模型的目标异构硬件;

在所述目标异构硬件上运行所述目标异构硬件对应的待运行模型的目标版本模型。

所述根据所述各异构硬件的当前剩余资源和所述各异构硬件运行其对应的待运行模型的目标版本模型的总时长,确定运行所述待运行模型的目标异构硬件,包括:

针对每一待运行模型,根据各异构硬件的当前剩余资源和所述各异构硬件运行其对应的该待运行模型的目标版本模型的总时长,确定各异构硬件运行其对应的该待运行模型的目标版本模型时的预估时长;

根据所述各异构硬件运行其对应的每一待运行模型的目标版本模型时的预估时长,确定运行每一待运行模型的目标异构硬件。

本公开第三方面提供一种模型部署装置,所述装置包括:

第一确定模块,被配置为响应于接收到待部署终端的各异构硬件的相关信息,根据原始模型对应的映射关系和所述各异构硬件的相关信息,确定所述各异构硬件对应的所述原始模型的目标版本模型,其中,原始模型对应的映射关系用于表征原始模型中每一算子在不同异构硬件上运行时的耗时信息;

第一发送模块,被配置为将所述各异构硬件对应的所述原始模型的目标版本模型下发至所述待部署终端,以在所述待部署终端中部署所述各异构硬件对应的所述原始模型的目标版本模型。

本公开第四方面提供一种型运行装置,所述装置包括:

第四确定模块,被配置为在部署有各异构硬件对应的原始模型的目标版本模型的情况下,确定所述各异构硬件的当前剩余资源和所述各异构硬件运行其对应的待运行模型的目标版本模型的总时长,其中,按照本公开第一方面所述方法在终端中部署各异构硬件对应的原始模型的目标版本模型,所述待运行模型为所述原始模型中的一者或多者;

第五确定模块,被配置为根据所述各异构硬件的当前剩余资源和所述各异构硬件运行其对应的待运行模型的目标版本模型的总时长,确定运行所述待运行模型的目标异构硬件;

运行模块,被配置为在所述目标异构硬件上运行所述目标异构硬件对应的原始模型的目标版本模型。

本公开第五方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面或第二方面所述方法的步骤。

本公开第六方面提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面所述方法的步骤。

本公开第七方面提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第二方面所述方法的步骤。

通过上述技术方案,根据用于表征原始模型中每一算子在不同异构硬件上运行时的耗时信息的映射关系和各异构硬件的相关信息,确定待部署终端的各异构硬件对应的原始模型的目标版本模型,并下发至待部署终端,以在待部署终端中部署各异构硬件对应的原始模型的目标版本模型。如此,针对待部署终端的每一异构硬件,可以确定出与该异构硬件相适配的目标版本模型,能够充分发挥终端的硬件能效,提升模型的精度和运行效率,进而提升用户使用体验。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据一示例性实施例示出的一种模型部署方法的流程图。

图2是根据一示例性实施例示出的一种确定原始模型对应的映射关系的方法的流程图。

图3是根据一示例性实施例示出的一种模型运行方法的流程图。

图4是根据一示例性实施例示出的另一种模型运行方法的流程图。

图5是根据一示例性实施例示出的一种模型部署装置的框图。

图6是根据一示例性实施例示出的一种模型运行装置的框图。

图7是根据一示例性实施例示出的一种电子设备的框图。

图8是根据一示例性实施例示出的另一种电子设备的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

需要说明的是,本公开中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。

如背景技术所言,模型所部署的终端存在多种类型,不同的终端所对应的硬件类型不同,例如,不同的终端设备对应的硬件厂商不同,硬件平台不同,芯片运行IP不同,造成不同终端设备所适配的最优模型的模型结构、模型大小各有不同。终端尤其是手机设备碎片化严重,性能指标主要看TP90性能指标,其中,TP90性能指标是指90%的数据都满足某一条件的指标。在相关技术中,模型部署方案为了兼顾高、中、低不同配置的机型,侧重于确保压缩后模型的大小和性能在中端配置的终端上满足要求,这样做会损失模型精度,高端配置的终端上未能充分利用其计算能力造成计算性能浪费,而低端配置的终端上可能会由于其计算能力较差导致模型的性能差或者模型中的一些算法无法运行。因此,相关技术中的模型部署方案无法使模型有效发挥终端的硬件能效,使得终端上部署的模型的精度较低,从而导致终端的运行效果较差。

有鉴于此,本公开提供一种模型部署方法、模型运行方法、装置、介质、及电子设备,能够为终端部署与该终端的计算能力适配的模型,以使模型能够充分发挥终端的硬件能效,进而提升模型的精度和运行效率。

首先应当理解的是,本公开提供的模型部署方法可以应用于电子设备,如终端、服务器或云服务器中,其中,终端可以是手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等;服务器可以为独立的服务器,也可以为服务器集群。本公开对此不作具体限定。本公开实施例可以以模型部署方法应用于服务器为例进行说明。

图1是根据一示例性实施例示出的一种模型部署方法的流程图。如图1所示,该方法可以包括以下步骤。

在步骤11中,响应于接收到待部署终端的各异构硬件的相关信息,根据原始模型对应的映射关系和各异构硬件的相关信息,确定各异构硬件对应的原始模型的目标版本模型。

在本公开中,原始模型对应的映射关系用于表征原始模型中每一算子在不同异构硬件上运行时的耗时信息。此外,原始模型对应的映射关系是预先生成的,且针对每一原始模型,均可以预先生成该原始模型对应的映射关系。示例地,原始模型可以是分类的MobileNetV1原始模型、检测的YoloV5原始模型等。

待部署终端可以为手机、平板、笔记本电脑等便携式终端,也可以为台式机、服务器等非便携式终端。待部署终端的各异构硬件包括但不限于图形处理器(GraphicsProcessing Unit,GPU)、中央处理器(Central Processing Unit,CPU)、数字信号处理器(Digital Signal Processing,DSP)、嵌入式神经网络(neural-network processingunits,NPU)。应当理解的是,待部署终端可以包括上述异构硬件中的一者或多者。

异构硬件的相关信息可以是异构硬件的硬件信息,不同的异构硬件所对应的能够充分发挥该硬件能效的模型也不同。例如,硬件信息包括硬件型号、硬件的生产厂家、硬件的主频信息、睿频信息、核心数、线程数、缓存等级、内存类型等。例如,核心数和线程数较多、缓存和内存较大的硬件对应的能够发挥该硬件能效的模型可以是精度较高计算较为复杂的模型。

在一种可能的实施方式中,在获取到原始模型时,向待部署终端发送信息获取请求,信息获取请求用于请求待部署终端的各异构硬件的相关信息。示例地,服务器在获取到原始模型时,向待部署终端发送信息获取请求,待部署终端在接收到该获取请求时,通过终端上的软件开发工具包(Software Development Kit,SDK)自动查询待部署终端的各异构硬件的相关信息,并将各异构硬件的相关信息上传至服务器,以使服务器获取到待部署终端的各异构硬件的相关信息。

在另一种实施例中,在接收到待部署终端发送的模型部署请求时,向待部署终端发送信息获取请求。示例地,待部署终端根据业务需求可以主动向服务器发送模型部署请求,其中,该模型部署请求可以包括待部署终端所需求的原始模型标识,以便于服务器在接收到该模型部署请求时确定待部署终端需求的是何种原始模型。服务器在接收到待部署终端发送的模型部署请求时,向待部署终端发送信息获取请求。其中,信息获取请求如前文所述,此处不再赘述。

服务器在接收到待部署终端的各异构硬件的相关信息,综合原始模型对应的映射关系和各异构硬件的相关信息,确定各异构硬件对应的原始模型的目标版本模型。其中,原始模型的目标版本模型是指从原始模型中选取部分算子所生成的模型,该目标版本模型能够实现与该原始模型相同的功能。并且,该目标版本模型是与异构硬件相适配的模型。

在步骤S12中,将各异构硬件对应的原始模型的目标版本模型下发至待部署终端,以在待部署终端中部署各异构硬件对应的原始模型的目标版本模型。

示例地,假设服务器预先生成实现分类功能的MobileNetV1原始模型对应的映射关系和实现检测功能的YoloV5原始模型对应的映射关系。若待部署终端的各异构硬件包括GPU和CPU,按照步骤11所述的方式,可以确定出GPU对应的MobileNetV1原始模型的目标版本模型和YoloV5原始模型的目标版本模型,以及CPU对应的MobileNetV1原始模型的目标版本模型和YoloV5原始模型的目标版本模型。并将GPU对应的MobileNetV1原始模型的目标版本模型和YoloV5原始模型的目标版本模型,以及CPU对应的MobileNetV1原始模型的目标版本模型和YoloV5原始模型的目标版本模型均下发至待部署终端,进而待部署终端在该终端中部署GPU对应的MobileNetV1原始模型的目标版本模型和YoloV5原始模型的目标版本模型,以及CPU对应的MobileNetV1原始模型的目标版本模型和YoloV5原始模型的目标版本模型。

采用上述技术方案,根据用于表征原始模型中每一算子在不同异构硬件上运行时的耗时信息的映射关系和各异构硬件的相关信息,确定待部署终端的各异构硬件对应的原始模型的目标版本模型,并下发至待部署终端,以在待部署终端中部署各异构硬件对应的原始模型的目标版本模型。如此,针对待部署终端的每一异构硬件,可以确定出与该异构硬件相适配的目标版本模型,能够充分发挥终端的硬件能效,提升模型的精度和运行效率,进而提升用户使用体验。

图2是根据一示例性实施例示出的一种确定原始模型对应的映射关系的方法的流程图。如图2所示,确定原始模型对应的映射关系的方法可以包括以下步骤。

在步骤S21中,统计每一终端类型的各异构硬件的相关信息得到异构硬件列表,以及统计原始模型中每一算子得到原始模型的算子列表。

在实际应用中,同一类型的终端在出厂时其异构硬件是相同的。例如,同一类型的终端的异构硬件包括GPU、CPU和NPU,且同一类型的终端中的GPU的相关信息相同,CPU的相关信息相同,以及NPU的相关信息相同。因此,在本公开中,统计每一终端类型的各异构硬件的相关信息得到异构硬件列表。为了便于描述,下面以异构硬件的相关信息为异构硬件的型号为例进行说明。

应当理解的是,同一算子在同一型号的异构硬件上运行时的耗时信息是相同的,即,同一算子在型号相同的GPU上运行时的耗时是相同的,在型号相同的CPU上运行时的耗时是相同的,以及,在型号相同的NPU上运行时的耗时是相同的。因此,为了避免重复测试同一算子在同一型号的异构硬件上运行时的耗时,在一种可能的实施方式中,异构硬件列表中仅包括型号不同的异构硬件的型号。

此外,针对每一原始模型,统计该原始模型中每一算子得到该原始模型的算子列表。应当理解的是,原始模型中包括多种类型的算子,且每种类型可以包括多个算子。示例地,分类原始模型可以包括多个用于图像处理的算子、多个用于识别对象的算子、以及多个用于识别边缘像素点的算子等等。

在步骤S22中,针对异构硬件列表中每一异构硬件,遍历原始模型的算子列表,确定当前遍历到的算子在该异构硬件上运行时的耗时信息,以得到当前遍历到的算子在每一异构硬件上运行时的耗时信息。

在实际应用中,考虑到算子运行的引擎可能不同,因此,为了能够实测算子在异构硬件上运行时的耗时信息,还可以对算子进行格式转换。在格式转换之后,再确定当前遍历到的算子在该异构硬件上运行时的耗时信息。

在步骤S23中,在遍历结束时,根据遍历过程中得到的每一算子在每一异构硬件上运行时的耗时信息,得到原始模型对应的映射关系。

示例地,针对异构硬件列表中每一异构硬件,在遍历到算子列表中第i个算子时,实测第i个算子在该异构硬件上运行时的耗时信息,以得到第i个算子在每一异构硬件上运行时的耗时信息。其中,i的取值范围为1至n,n为原始模型中包括的算子的数量。在遍历结束时,可以得到该原始模型对应的映射关系。

在一种实施例中,图1中步骤S11的具体实施方式为:响应于接收到待部署终端的各异构硬件的相关信息,根据原始模型对应的映射关系和各异构硬件的相关信息,在原始模型的每一类算子中确定各异构硬件对应的耗时最小的算子,其中,实现相同功能的算子属于同一类算子;根据原始模型的每一类算子中各异构硬件对应的耗时最小的算子,确定各异构硬件对应的原始模型的目标版本模型。

在该实施例中,基于AutoML自动搜索技术,根据原始模型对应的映射关系和各异构硬件的相关信息,在原始模型的每一类算子中确定各异构硬件对应的耗时最小的算子。示例地,分类原始模型可以包括多个用于图像处理的算子、多个用于识别对象的算子、以及多个用于识别边缘像素点的算子。其中,多个用于图像处理的算子包括算子11、算子12和算子13,多个用于识别对象的算子包括算子21和算子22,多个用于识别边缘像素点的算子包括算子31、算子32和算子33。假设在用于图像处理的这类算子中,GPU对应的耗时最小的算子为算子11,在用于识别对象的这类算子中,GPU对应的耗时最小的算子为22,在用于识别边缘像素点的这类算子中,GPU对应的耗时最小的算子为算子31,则确定该待部署终端的GPU对应的分类原始模型的目标版本模型为由算子11、算子22和算子31组成的模型。类似地,按照上述方式还可以确定出该待部署终端的CPU对应的分类原始模型的目标版本模型。

此外,应当理解的是,在某一类算子的每一个算子在异构硬件上运行时的耗时较大,且去除该类算子后不影响原始模型的功能的情况下,生成的异构硬件对应的原始模型的目标版本模型可以不包括该类算子中的任一算子。

采用上述技术方案,得到的每一异构硬件对应的原始模型的目标版本模型在该异构硬件上运行时总耗时较小,提升模型运行效率,进而提升用户使用体验。

在一种实施例中,在确定出各异构硬件对应的原始模型的目标版本模型之后,该方法还可以包括:获取原始模型对应的训练样本,并利用训练样本对各异构硬件对应的原始模型的目标版本模型进行训练。相应地,图1中步骤12的具体实施方式为:将训练完成的各异构硬件对应的所述原始模型的目标版本模型下发至待部署终端,以在待部署终端中部署训练完成的各异构硬件对应的原始模型的目标版本模型。

应当理解的是,得到的目标版本模型的体积远小于模型的体积,因此,在得到目标版本模型之后,利用训练样本对该目标版本模型进行训练,能够有效提高目标版本模型的精度。示例地,利用人脸比对业务数据集作为训练样本,对按照上述方式得到的人脸对比原始模型的目标版本模型和该人脸对比原始模型进行相同的训练,训练得到的目标版本模型的精度为99.56%,而人脸对比原始模型的精度为99.39%,因此,能够有效提高目标版本模型的精度。

此外,考虑到在相关技术中,在具备多异构硬件的终端如无人机人工智能物联网(Artificial Intelligence&Internet of Things,AIoT)平台上,只能使用单一的异构硬件来运行模型。在多个模型需要同时运行的情况,该多个模型也只能在同一个异构硬件上运行,使得多个模型抢占同一硬件资源,导致模型的性能严重下降,并且,一个异构硬件运行多个模型,也会增加模型的运行时长。因此,可以针对每一待运行模型,为其分配运行该待运行模型的最优的目标异构硬件。

示例地,图3是根据一示例性实施例示出的一种模型运行方法的流程图。如图3所示,该方法可以包括以下步骤。

在步骤S31中,在部署有各异构硬件对应的原始模型的目标版本模型的情况下,确定各异构硬件的当前剩余资源和各异构硬件运行其对应的待运行模型的目标版本模型的总时长。

其中,可以按照图1所述的方法在终端中部署各异构硬件对应的原始模型的目标版本模型,待运行模型为原始模型中的一者或多者。

在本公开中,异构硬件的当前剩余资源可以根据异构硬件的当前负载情况和总资源得到。其中,异构硬件的当前负载情况可以是异构硬件的每个核心的工作频率、使用率、占用的内存空间大小、占用的线程情况等等。

各异构硬件运行其对应的待运行模型的目标版本模型的总时长可以是是根据原始模型中每一类算子中各异构硬件对应的耗时最小的算子的耗时确定的。例如,在该原始模型的每一类算子中确定异构硬件CPU对应的耗时最小的算子分别为算子11、算子22和算子31。则将CPU运行算子11、算子22和算子31的时长确定为异构硬件CPU运行其对应的待运行模型的目标版本模型的总时长。

在步骤S32中,根据各异构硬件的当前剩余资源和各异构硬件运行其对应的待运行模型的目标版本模型的总时长,确定运行待运行模型的目标异构硬件。

应当理解的是,在本公开中,根据各异构硬件的当前剩余资源和各异构硬件运行其对应的待运行模型的目标版本模型的总时长,可以选择最优的分配方式为每一待运行模型分配一个异构硬件。

在步骤S33中,在目标异构硬件上运行目标异构硬件对应的待运行模型的目标版本模型。

采用上述技术方案,可以根据各异构硬件的当前剩余资源和各异构硬件运行其对应的待运行模型的目标版本模型的总时长确定运行每一待运行模型的目标异构硬件,即,针对每一待运行模型,均可以根据各异构硬件的当前剩余资源和各异构硬件运行其对应的待运行模型的目标版本模型的总时长,确定一个目标异构硬件,并在该目标异构硬件上运行其对应的待运行模型的目标版本模型。如此,可以确保目标版本模型能够充分发挥硬件能效,进一步提升模型运行效率和用户使用体验。

图4是根据一示例性实施例示出的另一种模型运行方法的流程图。如图4所示,该方法可以包括:

在步骤41中,查询终端上的各异构硬件。

在步骤S42中,确定各异构硬件的当前剩余资源。

在步骤S43中,确定待运行模型以及各异构硬件运行其对应的待运行模型的目标版本模型的总时长。

在步骤S44中,针对每一待运行模型,根据各异构硬件的当前剩余资源和各异构硬件运行其对应的该待运行模型的目标版本模型的总时长,确定各异构硬件运行其对应的该待运行模型的目标版本模型时的预估时长。

在步骤S45中,根据各异构硬件运行其对应的每一待运行模型的目标版本模型时的预估时长,确定运行每一待运行模型的目标异构硬件。

应当理解的是,若待运行模型的数量为一个,考虑到当前剩余资源最多的异构硬件的计算能力较好,在该异构硬件上运行其对应的待运行模型的目标版本模型时,该异构硬件可以充分调用当前剩余资源来运行目标版本模型,进而可以提高目标版本模型运行的效率,因此,在一种实施方式中,可以直接将当前剩余资源最多的异构硬件确定为运行该待运行模型的目标异构硬件。然而考虑到当前剩余资源最多的异构硬件在运行其对应的该待运行模型的目标版本模型时所花费的时长可能是较长的,可能会导致用户体验较差,因此,在另一种实施方式中,也可以根据各异构硬件的当前剩余资源和各异构硬件运行其对应的该待运行模型的目标版本模型的总时长,确定各异构硬件运行其对应的该待运行模型的目标版本模型时的预估时长,进而确定运行该待运行模型的目标异构硬件。

针对待运行模型数量为多个的情况,为了避免模型等待时间较长,则针对每一待运行模型,根据各异构硬件的当前剩余资源和各异构硬件运行其对应的该待运行模型的目标版本模型的总时长,确定各异构硬件运行其对应的该待运行模型的目标版本模型时的预估时长,以及,根据各异构硬件运行其对应的每一待运行模型的目标版本模型时的预估时长,确定运行每一待运行模型的目标异构硬件。

在该实施方式中,为了避免某模型等待时间较长的问题,在为每一待运行模型分配最优的目标异构硬件时,可以在异构硬件当前剩余资源的情况确定运行其对应的每一待运行模型的目标版本模型的预估时长,并根据该预估时长确定每一待运行模型的目标异构硬件。

示例地,针对每一异构硬件,可以在异构硬件当前剩余资源的情况下,实测异构硬件对应的每一待运行模型的目标版本模型在该异构硬件上运行时的耗时,作为预估时长。又示例地,直接根据各异构硬件的当前剩余资源和各异构硬件运行其对应的该待运行模型的目标版本模型的总时长,确定各异构硬件运行其对应的该待运行模型的目标版本模型时的预估时长。例如,假设异构硬件当前剩余资源为50%,而在生成原始模型对应的映射关系时的该异构硬件的资源为100%,并且,在该异构硬件的资源为100%的情况下,在该异构硬件上运行其对应的待运行模型的目标版本模型的总时长为2ms,则在异构硬件当前剩余资源为50%的情况下,在该异构硬件上运行其对应的待运行模型的目标版本模型的总时长为4ms,即,根据该异构硬件的当前剩余资源确定该异构硬件运行其对应的待运行模型的目标版本模型时的预估时长为4ms。如此,按照该方式,可以确定出每一异构硬件运行其对应的待运行模型的目标版本模型时的预估时长。

例如,待运行模型为模型A、模型B和模型C,其中,终端中部署的异构硬件为GPU和CPU,并且,CPU运行模型A的目标版本模型时的预估时长为2ms、运行模型B的目标版本模型时的预估时长为0.5ms、运行模型C的目标版本模型时的预估时长为0.5ms,GPU运行模型A的目标版本模型时的预估时长为1ms、运行模型B的目标版本模型时的预估时长为0.2ms、运行模型C的目标版本模型时的预估时长为0.1ms,为了避免模型等待时间较长,尽快确保CPU和GPU能够同时完成模型的运行,因此,可以将模型B和模型C分配给CPU,将模型A分配给GPU。即,CPU为运行模型B和模型C的目标异构硬件,GPU为运行模型A的目标异构硬件。这样,可以在GPU上运行模型A对应的目标版本模型,在CPU上运行模型B和模型C对应的目标版本模型,使得GPU和CPU能够同时完成运行模型的任务。

如此,根据各异构硬件的当前剩余资源为待运行模型分配不同的异构硬件,可以有效避免多个模型在同一异构硬件上运行时抢占资源导致的性能下降问题。并且,根据各异构硬件运行其对应的每一待运行模型的目标版本模型时的预估时长,确定运行每一待运行模型的目标异构硬件,可以减小模型等待时间,进一步提升模型运行效率和用户使用体验。

基于同一发明构思,本公开还提供一种模型部署装置。图5是根据一示例性实施例示出的一种模型部署装置的框图。如图5所示,模型部署装置500可以包括:

第一确定模块501,被配置为响应于接收到待部署终端的各异构硬件的相关信息,根据原始模型对应的映射关系和所述各异构硬件的相关信息,确定所述各异构硬件对应的所述原始模型的目标版本模型,其中,原始模型对应的映射关系用于表征原始模型中每一算子在不同异构硬件上运行时的耗时信息;

第一发送模块502,被配置为将所述各异构硬件对应的所述原始模型的目标版本模型下发至所述待部署终端,以在所述待部署终端中部署所述各异构硬件对应的所述原始模型的目标版本模型。

可选地,所述模型部署装置500还包括:

统计模块,被配置为统计每一终端类型的各异构硬件的相关信息得到异构硬件列表,以及统计原始模型中每一算子得到原始模型的算子列表;

第二确定模块,被配置为针对所述异构硬件列表中的每一异构硬件,遍历所述原始模型的算子列表,确定当前遍历到的算子在所述异构硬件上运行时的耗时信息,以得到当前遍历到的算子在每一异构硬件上运行时的耗时信息;

第三确定模块,被配置为在遍历结束时,根据遍历过程中得到的每一算子在每一异构硬件上运行时的耗时信息,得到所述原始模型对应的映射关系。

可选地,所述第一确定模块501包括:

第一确定子模块,被配置为响应于接收到待部署终端的各异构硬件的相关信息,根据原始模型对应的映射关系和所述各异构硬件的相关信息,在所述原始模型的每一类算子中确定所述各异构硬件对应的耗时最小的算子,其中,实现相同功能的算子属于同一类算子;

第二确定子模块,被配置为根据所述原始模型的每一类算子中所述各异构硬件对应的耗时最小的算子,确定所述各异构硬件对应的所述原始模型的目标版本模型。

可选地,在确定出各异构硬件对应的所述原始模型的目标版本模型之后,所述模型部署装置500还包括:

训练模块,被配置为获取所述原始模型对应的训练样本,并利用所述训练样本对所述各异构硬件对应的所述原始模型的目标版本模型进行训练;

相应地,所述第一发送模块502被配置为:将训练完成的所述各异构硬件对应的所述原始模型的目标版本模型下发至所述待部署终端,以在所述待部署终端中部署训练完成的所述各异构硬件对应的所述原始模型的目标版本模型。

可选地,所述模型部署装置500还包括:

第二发送模块,被配置为在获取到原始模型时,向待部署终端发送信息获取请求,所述信息获取请求用于请求所述待部署终端的各异构硬件的相关信息;或者

第三发送模块,被配置为在接收到待部署终端发送的模型部署请求时,向所述待部署终端发送所述信息获取请求。

基于同一发明构思,本公开还提供一种模型运行装置。图6是根据一示例性实施例示出的一种模型运行装置的框图。如图6所示,模型运行装置600可以包括:

第四确定模块601,被配置为在部署有各异构硬件对应的原始模型的目标版本模型的情况下,确定所述各异构硬件的当前剩余资源和所述各异构硬件运行其对应的待运行模型的目标版本模型的总时长,其中,按照本公开所提供的模型部署方法在终端中部署各异构硬件对应的原始模型的目标版本模型,所述待运行模型为所述原始模型中的一者或多者;

第五确定模块602,被配置为根据所述各异构硬件的当前剩余资源和所述各异构硬件运行其对应的待运行模型的目标版本模型的总时长,确定运行所述待运行模型的目标异构硬件;

运行模块603,被配置为在所述目标异构硬件上运行所述目标异构硬件对应的原始模型的目标版本模型。

可选地,所述第五确定模块602包括:

第三确定子模块,被配置为针对每一待运行模型,根据各异构硬件的当前剩余资源和所述各异构硬件运行其对应的该待运行模型的目标版本模型的总时长,确定各异构硬件运行其对应的该待运行模型的目标版本模型时的预估时长;

第四确定子模块,被配置为根据所述各异构硬件运行其对应的每一待运行模型的目标版本模型时的预估时长,确定运行每一待运行模型的目标异构硬件。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图7是根据一示例性实施例示出的一种电子设备的框图。如图7所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。

其中,处理器701用于控制该电子设备700的整体操作,以完成上述的模型运行方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。

在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的模型运行方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的模型运行方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的模型运行方法。

图8是根据一示例性实施例示出的另一种电子设备的框图。例如,电子设备800可以被提供为一服务器。参照图8,电子设备800包括处理器822,其数量可以为一个或多个,以及存储器832,用于存储可由处理器822执行的计算机程序。存储器832中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器822可以被配置为执行该计算机程序,以执行上述的模型部署方法。

另外,电子设备800还可以包括电源组件826和通信组件850,该电源组件826可以被配置为执行电子设备800的电源管理,该通信组件850可以被配置为实现电子设备800的通信,例如,有线或无线通信。此外,该电子设备800还可以包括输入/输出(I/O)接口858。电子设备800可以操作基于存储在存储器832的操作系统。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的模型部署方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器832,上述程序指令可由电子设备800的处理器822执行以完成上述的模型部署方法。

在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的模型部署方法的代码部分。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

相关技术
  • 神经网络模型的优化方法及装置、电子设备和存储介质
  • 模型处理方法及装置、存储介质和电子设备
  • 模型扩展方法及装置、电子设备和存储介质
  • 模型生成方法、装置、电子设备和计算机可读存储介质
  • 三维模型的处理方法、装置、电子设备及可读存储介质
  • 模型部署方法、模型部署装置、终端设备及可读存储介质
  • 模型部署、运行方法、装置、离线分析工具和电子设备
技术分类

06120115585612