适配多框架的微服务部署方法、装置、终端及存储介质与流程

文档序号:32435856发布日期:2022-12-06 18:51阅读:25来源:国知局
适配多框架的微服务部署方法、装置、终端及存储介质与流程

1.本发明涉及深度学习技术领域,尤其涉及的是适配多框架的微服务部署方法、装置、终端及存储介质。


背景技术:

2.深度学习框架主要有pytorch、tensorflow、paddlepaddle、mindspore等多种开源框架,不同框架、不同模型存储方式将导致训练出来的模型存储格式各有不同。
3.深度学习开发者在开发深度学习应用并将其部署为服务时,往往需要根据不同框架、不同模型的存储格式和类型,开发特定的微服务。若使用开源框架已经提供的推理工具,例如通过tfserving工具进行服务部署时,要考虑到该工具不支持通常的checkpoint和pb文件格式的模型,比如对于tensorflow的模型,部署前需要将模型提前转换成tfserving的格式;如果要将其他计算框架所开发的模型部署成应用,例如pytorch框架的模型在使用tfserving工具进行服务部署时,需要提前将此类型模型的先转为中间表示层,例如onnx文件格式,再转tensorflow的pb文件格式,然后才可以调用tfserving的api接口,此方式增加开发难度、学习成本高、部署周期长。
4.另外,在服务部署阶段还需要为模型应用服务指定特定的监听端口、预先填写模型配置文件,同时需要分配特定的计算资源设备;而在此过程中,服务配置文件不仅繁琐、易出错、无法避免计算资源抢占问题,也不能灵活使用计算集群中的空余节点资源,这显然不适用于大规模的模型服务部署,也不适合在请求高峰期时有效地进行服务扩容。故当前的部署方式面临着开发过程冗长、操作复杂、体验性不佳、服务管理困难等问题。
5.因此,现有技术还有待改进。


技术实现要素:

6.本发明要解决的技术问题在于,针对现有技术缺陷,本发明提供一种适配多框架的微服务部署方法、装置、终端及存储介质,以解决现有的深度学习模型微服务的部署方式操作复杂的技术问题。
7.本发明解决技术问题所采用的技术方案如下:
8.第一方面,本发明提供一种适配多框架的微服务部署方法,包括:
9.获取算法管理界面中的算法框架信息,通过mysql数据库存储对应字段的算法框架信息;
10.获取已提交的算法名称信息,并根据所述已提交的算法名称信息将训练管理层中已训练的深度学习模型发送至模型管理层;
11.通过所述模型管理层调用与所述已训练的深度学习模型适配的推理应用服务,并根据所述推理应用服务部署所述已训练的深度学习模型对应的微服务。
12.在一种实现方式中,所述算法框架信息包括:算法名称信息、算法框架信息以及模型名称信息。
13.在一种实现方式中,所述获取算法管理界面中的算法框架信息,通过mysql数据库存储对应字段的算法框架信息,包括:
14.获取所述算法管理界面中各深度学习模型对应的算法名称信息、算法框架信息以及模型名称信息;
15.通过mysql数据库存储对应字段的算法名称信息、算法框架信息以及模型名称信息,生成所述算法名称信息、所述算法框架信息以及所述模型名称信息的映射关系。
16.在一种实现方式中,所述获取已提交的算法名称信息,并根据所述已提交的算法名称信息将训练管理层中已训练的深度学习模型发送至模型管理层,包括:
17.获取所述训练管理层中已提交的算法名称信息;
18.根据所述已提交的算法名称信息调用对应的数据集和训练镜像;
19.根据所述数据集和所述训练镜像进行训练,得到所述已训练的深度学习模型;
20.将所述已训练的深度学习模型发送至所述模型管理层。
21.在一种实现方式中,所述根据所述数据集和所述训练镜像进行训练,得到所述已训练的深度学习模型,包括:
22.根据所述数据集和所述训练镜像对对应的算法进行训练,得到训练后的算法;
23.根据算法名称信息与模型名称信息的映射关系,获取所述训练后的算法对应的模型及版本信息;
24.根据获取的模型及版本信息存储得到所述已训练的深度学习模型。
25.在一种实现方式中,所述将所述已训练的深度学习模型发送至所述模型管理层,之后包括:
26.根据配置的格式和路径将所述已训练的深度学习模型存储在指定的对象存储服务中。
27.在一种实现方式中,通过所述模型管理层调用与所述已训练的深度学习模型适配的推理应用服务,并根据所述推理应用服务部署所述已训练的深度学习模型对应的微服务,包括:
28.根据配置的文件格式对所述已训练的深度学习模型进行封装;
29.根据预设服务配置信息调用与所述已训练的深度学习模型适配的推理应用服务,部署封装的深度学习模型对应的微服务。
30.在一种实现方式中,所述根据配置的文件格式对所述已训练的深度学习模型进行封装,包括:
31.根据所述已训练的深度学习模型对应的框架确定yaml文件格式;
32.从服务管理层的api接口中读取所述已训练的深度学习模型对应的配置参数;
33.根据读取的配置参数将所述已训练的深度学习模型封装成yaml文件格式的模型。
34.在一种实现方式中,所述根据预设服务配置信息调用与所述已训练的深度学习模型适配的推理应用服务,部署封装的深度学习模型对应的微服务,包括:
35.根据所述yaml文件中设置好的服务配置信息;
36.将封装的深度学习模型提交到集群调度和容器服务管理层,进行推理计算资源的分配处理;
37.根据分配的推理计算资源部署封装的深度学习模型对应的微服务。
38.在一种实现方式中,所述根据分配的计算资源部署封装的深度学习模型对应的微服务,包括:
39.构建派生类,并加载apis层中封装的深度学习模型;
40.选择分配的推理计算资源,通过暴露的api接口获取模型输入参数,并返回推理响应信息;
41.根据推理响应信息部署封装的深度学习模型对应的微服务。
42.第二方面,本发明提供一种适配多框架的微服务部署装置,包括:
43.算法管理模块,用于获取算法管理界面中的算法框架信息,通过mysql数据库存储对应字段的算法框架信息;
44.训练管理模块,用于获取已提交的算法名称信息,并根据所述已提交的算法名称信息将训练管理层中已训练的深度学习模型发送至模型管理层;
45.模型管理模块,用于通过所述模型管理层调用与所述已训练的深度学习模型适配的推理应用服务,并根据所述推理应用服务部署所述已训练的深度学习模型对应的微服务。
46.第三方面,本发明提供一种终端,包括:处理器以及存储器,所述存储器存储有适配多框架的微服务部署程序,所述适配多框架的微服务部署程序被所述处理器执行时用于实现如第一方面所述的适配多框架的微服务部署方法的操作。
47.第四方面,本发明还提供一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质存储有适配多框架的微服务部署程序,所述适配多框架的微服务部署程序被处理器执行时用于实现如第一方面所述的适配多框架的微服务部署方法的操作。
48.本发明采用上述技术方案具有以下效果:
49.本发明通过算法管理模块唯一标识模型的计算框架和算法对应的模型名称,并且在训练管理层利用已提交的算法信息将训练完成的模型发送到模型管理层,进而将该模型存储在指定的对象存储服务中;由模型服务管理层在部署服务时根据模型所属的计算框架,调用与其框架适配的推理应用容器服务,最终完成特定模型服务的应用部署。本发明在部署模型服务的过程中,用户无需自行构建推理镜像、仅需按照格式要求将训练代码完成的模型存储后,即可根据不同计算框架的推理后端完成服务部署,方便用户高效、快速地部署深度学习模型应用服务。
附图说明
50.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
51.图1是本发明的一种实现方式中适配多框架的微服务部署方法的流程图。
52.图2是本发明的一种实现方式中多框架模型容器服务一键部署方案整体设计架构图。
53.图3是本发明的一种实现方式中多框架模型容器服务一键部署方案详细结构图。
54.图4是本发明的一种实现方式中backends层推理服务后端实现图。
55.图5是本发明的一种实现方式中终端的功能原理图。
56.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
57.为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
58.示例性方法
59.在深度学习模型服务部署阶段,需要为模型应用服务指定特定的监听端口、预先填写模型配置文件,同时需要分配特定的计算资源设备;而在此过程中,服务配置文件不仅繁琐、易出错、无法避免计算资源抢占问题,也不能灵活使用计算集群中的空余节点资源,这显然不适用于大规模的模型服务部署,也不适合在请求高峰期时有效地进行服务扩容。故当前的部署方式面临着开发过程冗长、操作复杂、体验性不佳、服务管理困难等问题。
60.针对上述技术问题,本实施例中提供了一种适配多框架的微服务部署方法,通过算法管理模块唯一标识模型的计算框架和算法对应的模型名称,并且在训练管理层利用已提交的算法信息将训练完成的模型发送到模型管理层,进而将该模型存储在指定的对象存储服务中;由模型服务管理层在部署服务时根据模型所属的计算框架,调用与其框架适配的推理应用容器服务,最终完成特定模型服务的应用部署。在部署模型服务的过程中,用户无需自行构建推理镜像、仅需按照格式要求将训练代码完成的模型存储后,即可根据不同计算框架的推理后端完成服务部署,方便用户高效、快速地部署深度学习模型应用服务。
61.如图1所示,本发明实施例提供一种适配多框架的微服务部署方法,包括以下步骤:
62.步骤s100,获取算法管理界面中的算法框架信息,通过mysql数据库存储对应字段的算法框架信息。
63.在本实施例中,该适配多框架的微服务部署方法应用于终端上,该终端包括但不限于:计算机等设备;该终端上设置有多框架模型容器服务一键部署架构,该适配多框架的微服务部署方法实施于多框架模型容器服务一键部署架构。
64.在本实施例中,设计了算法管理模块、训练任务管理模块、模型存储模块、不同计算框架专属的推理容器服务和统一的模型服务管理模块api,考虑到不同模型执行推理服务时的计算硬件设备差异,规范了多个计算框架之间的模型存储格式,使得用户能够在资源隔离的前提下,灵活调度分配计算资源,实现快速、规范、高效地训练模型、存储模型并一键部署多个模型服务,进一步减少了复杂繁琐的资源隔离和切分、服务镜像构建及模型微服务代码的开发工作。
65.具体地,在本实施例的一种实现方式中,步骤s100包括以下步骤:
66.步骤s101,获取所述算法管理界面中各深度学习模型对应的算法名称信息、算法框架信息以及模型名称信息;
67.步骤s102,通过mysql数据库存储对应字段的算法名称信息、算法框架信息以及模型名称信息,生成所述算法名称信息、所述算法框架信息以及所述模型名称信息的映射关系。
68.在本实施例中,如图2所示,适配多框架的深度学习模型容器微服务一键部署方案整体设计自下而上包括:
69.infrastructure层,具体为训练、推理硬件设备如cpu/gpu/ascend/npu以及存储、网络等计算资源;
70.scheduler层,该层为资源调度管理层,负责整个集群内部的训练、推理应用计算资源调度;
71.backend层,该层为构建多种框架的推理服务后端,针对不同计算框架类型的模型,通过类的形式进行适配封装,进而对外暴露模型微服务rest api接口;
72.apis层,该层给用户提供了算法管理模块、训练任务管理模块、模型存储模块和服务管理模块,用户可以直接通过界面或者接口直接调用。
73.在本实施例中,在适配多框架的深度学习模型容器微服务一键部署框架中,apis层设置有算法管理界面、数据管理界面、镜像管理界面、训练管理界面、模型管理界面以及服务管理界面;在该算法管理界面中有多个深度学习模型,以及各深度学习模型对应的算法框架信息;其中,该算法框架信息包括:算法名称信息、算法框架信息以及模型名称信息。
74.进一步地,通过获取该算法管理界面中各深度学习模型对应的算法名称信息、算法框架信息以及模型名称信息,可利用mysql数据库存储对应字段的算法名称信息、算法框架信息以及模型名称信息,从而生成算法名称信息、算法框架信息以及模型名称信息的映射关系,得到模型的计算框架和算法对应的模型名称的唯一标识。
75.如图1所示,在本发明实施例的一种实现方式中,适配多框架的微服务部署方法还包括以下步骤:
76.步骤s200,获取已提交的算法名称信息,并根据所述已提交的算法名称信息将训练管理层中已训练的深度学习模型发送至模型管理层。
77.在本实施例中,在apis层的训练管理界面中,各用户可以在该训练管理界面中提交模型训练任务;然后,系统通过获取已提交任务中的算法名称信息,即可根据该算法名称信息及相应的映射关系,训练对应的算法,进而将训练管理层中已训练的深度学习模型发送至模型管理层,以通过该模型管理层实施相应的部署工作。
78.具体地,在本实施例的一种实现方式中,步骤s200包括以下步骤:
79.步骤s201,获取所述训练管理层中已提交的算法名称信息;
80.步骤s202,根据所述已提交的算法名称信息调用对应的数据集和训练镜像;
81.步骤s203,根据所述数据集和所述训练镜像进行训练,得到所述已训练的深度学习模型;
82.步骤s204,将所述已训练的深度学习模型发送至所述模型管理层。
83.步骤s205,根据配置的格式和路径将所述已训练的深度学习模型存储在指定的对象存储服务中。
84.在本实施例中,如图3所示,适配多框架的深度学习模型容器微服务一键部署方案具体实现包含三个部分:
85.apis层的算法管理模块接口用于关联多种框架下的算法和模型,保持映射关系;
86.训练任务管理模块在用户提交任务,调用数据集和训练镜像,完成某个具体算法的训练后,根据算法和模型的映射关系,可自动获取与之对应的模型及版本;其中,模型每
完成一次训练就会增加一个版本。算法管理模块完成了模型和算法的信息绑定;
87.模型存储模块可在训练任务完成后为用户提供模型的自动存储和版本管理功能;自动存储是根据统一的存储格式及存放路径进行存储:存储新增或者删除模型版本;
88.服务管理层为不同的模型服务提供了统一的api接口,内部可为不同框架的模型提供yaml文件形式的服务配置封装。
89.具体地,在训练任务管理模块中,根据用户提交的训练任务及任务中的算法名称信息,调用对应的数据集和训练镜像;其中,调用的数据集来源于数据集管理模块,调用的训练镜像来源于镜像管理模块;进而,根据所调用的数据集和训练镜像对训练任务中的算法进行训练,得到已训练的深度学习模型。
90.具体地,在本实施例的一种实现方式中,步骤s203包括以下步骤:
91.步骤s203a,根据所述数据集和所述训练镜像对对应的算法进行训练,得到训练后的算法;
92.步骤s203b,根据算法名称信息与模型名称信息的映射关系,获取所述训练后的算法对应的模型及版本信息;
93.步骤s203c,根据获取的模型及版本信息存储得到所述已训练的深度学习模型。
94.在本实施例中,对任务中的算法进行训练时,数据集管理模块根据算法名称信息查找对应的数据集名称和数据集版本,将匹配的数据集发送至训练管理层;镜像管理模块根据算法名称信息查找对应的镜像名称和镜像版本信息,将匹配的镜像文件发送至训练管理层;同时,算法管理模块则根据算法名称信息查找对应的算法框架信息和模型名称信息,将匹配的算法框架及模型发送至训练管理层。
95.进一步地,训练管理层根据数据集和训练镜像对对应的算法进行训练,得到训练后的算法,然后,根据算法名称信息与模型名称信息的映射关系,获取训练后的算法对应的模型及版本信息,根据获取的模型及版本信息存储得到已训练的深度学习模型。
96.如图1所示,在本发明实施例的一种实现方式中,适配多框架的微服务部署方法还包括以下步骤:
97.步骤s300,通过所述模型管理层调用与所述已训练的深度学习模型适配的推理应用服务,并根据所述推理应用服务部署所述已训练的深度学习模型对应的微服务。
98.在本实施例中,通过模型管理层调用与已训练的深度学习模型适配的推理应用服务,将已训练的深度学习模型部署在对应的k8s集群,并经过推理硬件设备的推理部署已训练的深度学习模型对应的微服务。
99.具体地,在本实施例的一种实现方式中,步骤s300包括以下步骤:
100.步骤s301,根据配置的文件格式对所述已训练的深度学习模型进行封装;
101.步骤s302,根据预设服务配置信息调用与所述已训练的深度学习模型适配的推理应用服务,部署封装的深度学习模型对应的微服务。
102.在本实施例中,模型存储模块可在训练任务完成后为用户提供模型的自动存储和版本管理功能;服务管理层为不同的模型服务提供了统一的api接口,内部可为不同框架的模型提供yaml文件形式的服务配置封装,不同模型的配置参数从服务管理层的api接口中自动读取填充,包括model_uri、model_volume_path、model_id、model_version等,封装成yaml文件格式提交到backend层。
103.具体地,在本实施例的一种实现方式中,步骤s301包括以下步骤:
104.步骤s301a,根据所述已训练的深度学习模型对应的框架确定yaml文件格式;
105.步骤s301b,从服务管理层的api接口中读取所述已训练的深度学习模型对应的配置参数;
106.步骤s301c,根据读取的配置参数将所述已训练的深度学习模型封装成yaml文件格式的模型。
107.在本实施例中,在backend层里为不同的计算框架提供了一套规范化模型加载和推理接口;在scheduler调度层里我们根据yaml文件中设置好的服务配置信息,提交到k8s集群调度和容器服务管理模块,进行推理计算资源的分配处理;最后完成服务部署后提供模型微服务的推理能力。
108.具体地,在本实施例的一种实现方式中,步骤s302包括以下步骤:
109.步骤s302a,根据所述yaml文件中设置好的服务配置信息;
110.步骤s302b,将封装的深度学习模型提交到集群调度和容器服务管理层,进行推理计算资源的分配处理;
111.步骤s302c,根据分配的推理计算资源部署封装的深度学习模型对应的微服务。
112.在本实施例中,如图4所示,不同计算框架推理服务后端实现通过seldoncomponent基类来进行派生,seldoncomponent是mlflow包中的一个基类,其包含了应用服务的计算推理逻辑,不同框架的推理后端都通过继承seldoncomponent类并重写该基类的方法,从而构建派生类(构建派生类即为实现不同计算框架的推理后端)。
113.具体地,在本实施例的一种实现方式中,步骤s302c包括以下步骤:
114.步骤s302c-1,构建派生类,并加载apis层中封装的深度学习模型;
115.步骤s302c-2,选择分配的推理计算资源,通过暴露的api接口获取模型输入参数,并返回推理响应信息;
116.步骤s302c-3,根据推理响应信息部署封装的深度学习模型对应的微服务。
117.在本实施例中,在seldoncomponent中通过self.load_model方法来加载apis层中按规范存储好的模型,该方法中通过device参数(device为计算资源,如gpu或者cpu)的选取可以选择最终的推理资源,通过self.predict方法所暴露的api接口获取输入参数并返回推理结果;其中,self.load_model方法的步骤包括读取模型文件路径、加载模型。
118.在获取的输入参数中,不同模型输入参数不同,可以是图片、文本等,推理结果和各个模型需要的结果适配,可能是类别信息、可能是文本信息等等;在获取的输入参数中,input参数存放于ndarray类型的参数x中,返回参数可为np.ndarray,list,str,bytes等数据类型。backends层的服务推理后端能够兼容为不同框架的模型进行应用部署。
119.在本实施例中,模型管理层将任务名称、模型名称、模型版本以及存储路径等信息提交至系统,系统根据服务配置模块中的模型对象存储路径、服务类型、服务描述信息、推理资源规格、模型计算框架名称、框架推理镜像名称以及框架推理镜像版本等信息,自动构建服务配置文件。
120.在k8s集群中,根据服务配置文件进行计算资源分配,然后自动构建服务镜像、模型微服务以及模型容器,完成深度学习模型的部署工作;而在推理应用服务管理模块中,根据k8s集群中的服务部署信息,配置服务名称、服务推理路径、服务api接口以及服务运行信
息等。
121.本实施例中设计了算法管理模块、训练任务管理模块、模型存储模块、不同计算框架专属的推理容器服务后端和统一的模型服务管理层api,从而兼容、支持不同深度学习框架的模型部署容器微服务应用。
122.本实施例通过上述技术方案达到以下技术效果:
123.本实施例不同框架模型根据算法管理、数据集管理、镜像管理的前置信息,可以完成模型的自动化存储,并将框架信息和模型文件映射绑定;在部署模型应用时,无需考虑额外的模型转换,可根据模型及其计算框架信息,自动匹配backends层中不同的推理服务后端镜像,更加灵活;用户部署模型服务时,无需另外构建模型服务配置文件,由服务管理从创建服务接口获取模型及资源规格相关信息交由scheduler调度层后,自动生成服务配置文件、自动获取集群计算资源、自动构建服务配置文件、自动构建模型服务镜像、自动构建及启动容器微服务,一键部署简单、高效;允许用户开发更多框架类型的推理服务后端,系统可扩展性更强。
124.示例性设备
125.基于上述实施例,本发明还提供一种适配多框架的微服务部署装置,包括:
126.算法管理模块,用于获取算法管理界面中的算法框架信息,通过mysql数据库存储对应字段的算法框架信息;
127.训练管理模块,用于获取已提交的算法名称信息,并根据所述已提交的算法名称信息将训练管理层中已训练的深度学习模型发送至模型管理层;
128.模型管理模块,用于通过所述模型管理层调用与所述已训练的深度学习模型适配的推理应用服务,并根据所述推理应用服务部署所述已训练的深度学习模型对应的微服务。
129.基于上述实施例,本发明还提供一种终端,其原理框图可以如图5所示。
130.该终端包括:通过系统总线连接的处理器、存储器、接口、显示屏以及通讯模块;其中,该终端的处理器用于提供计算和控制能力;该终端的存储器包括存储介质以及内存储器;该存储介质存储有操作系统和计算机程序;该内存储器为存储介质中的操作系统和计算机程序的运行提供环境;该接口用于连接外部设备,例如,移动终端以及计算机等设备;该显示屏用于显示相应的信息;该通讯模块用于与云端服务器或移动终端进行通讯。
131.该计算机程序被处理器执行时用以实现一种适配多框架的微服务部署方法的操作。
132.本领域技术人员可以理解的是,图5中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
133.在一个实施例中,提供了一种终端,其中,包括:处理器和存储器,存储器存储有适配多框架的微服务部署程序,适配多框架的微服务部署程序被处理器执行时用于实现如上的适配多框架的微服务部署方法的操作。
134.在一个实施例中,提供了一种存储介质,其中,存储介质存储有适配多框架的微服务部署程序,适配多框架的微服务部署程序被处理器执行时用于实现如上的适配多框架的微服务部署方法的操作。
135.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。
136.综上,本发明提供了一种适配多框架的微服务部署方法、装置、终端及存储介质,方法包括:获取算法管理界面中的算法框架信息,通过mysql数据库存储对应字段的算法框架信息;获取已提交的算法名称信息,并根据已提交的算法名称信息将训练管理层中已训练的深度学习模型发送至模型管理层;通过模型管理层调用与已训练的深度学习模型适配的推理应用服务,并根据推理应用服务部署已训练的深度学习模型对应的微服务。本发明通过模型管理层调用适配的推理应用服务,并规范不同框架所训练的模型存储方式差异性,统一模型的训练、推理资源规格及存储要求,可以兼容多个框架和不同类型的硬件设备,方便用户高效、快速地部署深度学习模型应用服务。
137.应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1