模型部署的方法、装置、系统、节点及存储介质与流程

文档序号:33484673发布日期:2023-03-15 14:13阅读:35来源:国知局
模型部署的方法、装置、系统、节点及存储介质与流程

1.本技术涉及计算机技术领域,并且更具体地,涉及计算机技术领域中的模型部署的方法、装置、系统、节点及存储介质。


背景技术:

2.人工智能模型的种类是多种多样的。例如各种目标检测模型、各种图像识别模型和各种语义分割模型等。不同人工智能模型的框架结构可能也存在差异。
3.相关技术中,一般是由算法工程师完成任意人工智能模型的训练,再由开发工程师将训练得到的模型数据用对应的技术框架进行程序开发,最后形成可供第三方调用的模型服务,这种由开发工程师进行程序开发的方式既繁琐又耗时。


技术实现要素:

4.本技术提供了模型部署的方法、装置、系统、节点及存储介质,该方法能够减少开发工程师的工作量,能够快速地部署目标模型。
5.第一方面,提供了一种模型部署的方法,该方法由模型服务节点执行,该方法包括:接收访问设备发送的模型部署请求,该模型部署请求包括用于部署目标模型所需要的框架结构和模型配置信息,该框架结构用于描述部署该目标模型时使用的运行环境,该模型配置信息用于描述部署该目标模型时使用的各种属性信息;基于该框架结构从多个候选执行节点中选择与该框架结构对应的目标执行节点,该候选执行节点用于基于模型配置信息完成模型的生成和部署任务;通过该目标执行节点,基于该模型配置信息,生成该目标模型;通过该目标执行节点部署该目标模型。
6.上述技术方案中,模型服务节点通过接收访问设备发送的模型部署请求;可以基于模型部署请求中包括的框架结构从多个候选执行节点中选择与该框架结构对应的目标执行节点,也就是说,基于该框架结构将模型部署请求交予多个候选执行节点中可以执行该模型部署请求的目标执行节点;进而可以通过目标执行节点基于模型部署请求中包括的模型配置信息,生成目标模型;通过该目标执行节点部署该目标模型。也就是说,无需开发工程师基于模型数据(框架结构和模型配置信息)利用对应的技术框架进行程序开发来形成目标模型服务,这可以减少开发工程师的工作量,可以快速地部署目标模型。
7.结合第一方面,在某些可能的实现方式中,通过该目标执行节点,基于该模型配置信息,生成该目标模型,包括:通过该目标执行节点,确定与该模型配置信息匹配的程序代码;通过该目标执行节点,基于该模型配置信息和该模型配置信息匹配的程序代码,生成该目标模型。
8.上述技术方案中,由于该模型配置信息描述了部署该目标模型时使用的各种属性信息,因此在确定部署该目标模型所需要的程序代码时,可以通过该目标执行节点,确定与该模型配置信息匹配的程序代码;从而再基于该模型配置信息和该模型配置信息匹配的程序代码,生成该目标模型。
9.结合第一方面和上述实现方式,在某些可能的实现方式中,该模型配置信息包括模型类型、模型配置参数、模型预处理过程和模型后处理过程,通过该目标执行节点,确定与该模型配置信息匹配的程序代码,包括:通过该目标执行节点,确定与该模型类型匹配的模型程序代码、与该模型预处理过程匹配的预处理程序代码,以及与该模型后处理过程匹配的后处理程序代码;通过该目标执行节点,基于该模型配置信息和该模型配置信息匹配的程序代码,生成该目标模型,包括:通过该目标执行节点,基于该模型配置参数、该模型程序代码、该预处理程序代码和该后处理程序代码,生成该目标模型。
10.上述技术方案中,在模型配置信息包括模型类型、模型配置参数、模型预处理过程和模型后处理过程的情况下,可以通过目标执行节点,确定与该模型类型匹配的模型程序代码、与该模型预处理过程匹配的预处理程序代码,以及与该模型后处理过程匹配的后处理程序代码;也就是说,通过目标执行节点,基于模型配置信息中包括的信息对应找到匹配的程序代码;进而通过目标执行节点基于找到的程序代码生成目标模型;也就是说,不需要开发工程师基于模型配置信息中包括的信息逐一地开发程序代码,这可以减少开发工程师的工作量,快速生成目标模型。
11.结合第一方面和上述实现方式,在某些可能的实现方式中,通过该目标执行节点,基于该模型配置参数、该模型程序代码、该预处理程序代码和该后处理程序代码,生成该目标模型,包括:通过该目标执行节点,采用该模型配置参数替换该模型程序代码、该预处理程序代码和该后处理程序代码中的对应部分,形成目标模型程序代码、目标预处理程序代码和目标后处理程序代码;将该目标模型程序代码、该目标预处理程序代码和该目标后处理程序代码进行组合,生成该目标模型。
12.上述技术方案中,在通过目标执行节点对应确定出模型程序代码、预处理程序代码和后处理程序代码后,可以通过目标执行节点,采用模型配置参数替换各个程序代码(模型程序代码、预处理程序代码和后处理程序代码)中的对应部分,以形成各个目标程序代码;进而通过目标执行节点对各个目标程序代码进行组合,也就是说,将各个目标程序代码之间进行连接,生成该目标模型。
13.结合第一方面和上述实现方式,在某些可能的实现方式中,该方法还包括下述中的任一项:在该模型程序代码、该预处理程序代码和该后处理程序代码存在于配置数据库的情况下,通过该目标执行节点从该配置数据库中调用该模型程序代码、该预处理程序代码和该后处理程序代码;在该模型程序代码、该预处理程序代码和该后处理程序代码中的至少一项不存在于该配置数据库的情况下,通过该目标执行节点获取该访问设备上传的自定义程序代码,该自定义程序代码包括不存在于该配置数据库中的程序代码。
14.上述技术方案中,在配置数据库中存有该模型程序代码、该预处理程序代码和该后处理程序代码的情况下,可以通过该目标执行节点从该配置数据库中直接调用已有的该模型程序代码、该预处理程序代码和该后处理程序代码;而在该模型程序代码、该预处理程序代码和该后处理程序代码不存于该配置数据库中的情况下,该访问设备可以将自定义的程序代码上传到配置数据库,这样可以通过目标执行节点从配置数据库中获取该访问设备自定义的程序代码,进而可以生成目标模型。这样,在配置数据库中有可以直接调用的程序代码的情况下,可以通过目标执行节点直接调用,这种方式下可以增加程序代码的重用率;而在配置数据中不存在可以通过目标执行节点直接调用的程序代码的情况下,可以通过访
问设备上传自定义的程序代码,这样就可以通过目标执行节点获取自定义的程序代码,进而可以生成目标模型,这种方式下可以避免配置数据库中没有访问设备需要的程序代码,而访问设备还无法自定义上传,进而不能生成目标模型的现象。
15.结合第一方面和上述实现方式,在某些可能的实现方式中,该模型部署请求还包括身份认证参数,该方法还包括:基于该身份认证参数验证该模型部署请求是否合法;以及,基于该框架结构从该多个候选执行节点中选择与该框架结构对应的目标执行节点,包括:在该模型部署请求合法的情况下,基于该框架结构从该多个候选执行节点中选择与该框架结构对应的目标执行节点。
16.上述技术方案中,在该模型配置信息中包括身份认证参数的情况下,可以通过该身份认证参数来验证访问设备发送的模型部署请求是否合法,进而可以在该模型部署请求合法的情况下,对该模型部署请求进行处理。也就是说,可以基于模型部署请求中包括的框架结构从该多个候选执行节点中选择与该框架结构对应的目标执行节点。而不是对所有的模型部署请求进行响应。这种在模型部署请求合法的情况下,对模型部署请求进行处理的过程,可以避免被访问设备被不合法的请求进行攻击等。
17.结合第一方面和上述实现方式,在某些可能的实现方式中,在接收到的模型部署请求的数量大于预设数量的情况下,对该接收到的模型部署请求进行流量控制。
18.上述技术方案中,在接收到的模型部署请求的数量较多的情况下,模型服务节点可以对该接收到的多个模型部署请求进行流量控制,这样可以避免模型部署请求的数量较多时,多个候选执行节点处理不过来的现象。
19.结合第一方面和上述实现方式,在某些可能的实现方式中,通过该目标执行节点部署该目标模型,包括:通过该目标执行节点将该目标模型部署在注册中心,该注册中心用于存储生成的模型以及将存储的模型下发至候选执行节点进行运行。
20.上述技术方案中,在目标模型的部署过程中,可以通过目标执行节点将目标模型部署在注册中心,而不是部署在目标执行节点或模型服务节点。也就是说,不同节点对应不同的功能。模型服务节点用于响应模型部署请求,确定目标执行节点(多个候选执行节点中的一种);候选执行节点用于生成和部署模型;而注册中心用于存储生成的模型和下发生成的模型。这种不同任务交予不同节点执行的过程,不容易出错。
21.结合第一方面和上述实现方式,在某些可能的实现方式中,该注册中心还存储有候选执行节点支持的框架类型,该方法还包括:从该注册中心获取该多个候选执行节点支持的框架类型;以及,基于该框架结构从该多个候选执行节点中选择与该框架结构对应的目标执行节点,包括:基于该多个候选执行节点支持的框架类型和该框架结构,从该多个候选执行节点中选择与该框架结构对应的目标执行节点。
22.上述技术方案中,在注册中心还存储有候选执行节点支持的框架类型的情况下,可以从注册中心获取多个候选执行节点支持的框架类型,这样可以基于多个候选执行节点支持的框架类型和该框架结构,从多个候选执行节点中选择一个候选执行节点,作为目标执行节点,使得该目标执行节点可以执行模型部署请求,完成目标模型的生成和部署任务。
23.第二方面,提供了一种模型部署的装置,该装置包括:接收单元,用于接收访问设备发送的模型部署请求,该模型部署请求包括用于部署目标模型所需要的框架结构和模型配置信息,该框架结构用于描述部署该目标模型时使用的运行环境,该模型配置信息用于
描述部署该目标模型时使用的各种属性信息;选择单元,用于基于该框架结构从多个候选执行节点中选择与该框架结构对应的目标执行节点,该候选执行节点用于基于模型配置信息完成模型的生成和部署任务;生成单元,用于通过该目标执行节点,基于该模型配置信息,生成该目标模型;部署单元,用于通过该目标执行节点部署该目标模型。
24.结合第二方面,在某些可能的实现方式中,生成单元,具体用于:通过该目标执行节点,确定与该模型配置信息匹配的程序代码;通过该目标执行节点,基于该模型配置信息和该模型配置信息匹配的程序代码,生成该目标模型。
25.结合第二方面和上述实现方式,在某些可能的实现方式中,该模型配置信息包括模型类型、模型配置参数、模型预处理过程和模型后处理过程,该装置还包括:确定单元,用于通过该目标执行节点,确定与该模型类型匹配的模型程序代码、与该模型预处理过程匹配的预处理程序代码,以及与该模型后处理过程匹配的后处理程序代码;该生成单元,具体还用于通过该目标执行节点,基于该模型配置参数、该模型程序代码、该预处理程序代码和该后处理程序代码,生成该目标模型。
26.结合第二方面和上述实现方式,在某些可能的实现方式中,该生成单元,具体还用于通过该目标执行节点,采用该模型配置参数替换该模型程序代码、该预处理程序代码和该后处理程序代码中的对应部分,形成目标模型程序代码、目标预处理程序代码和目标后处理程序代码;将该目标模型程序代码、该目标预处理程序代码和该目标后处理程序代码进行组合,生成该目标模型。
27.结合第二方面和上述实现方式,在某些可能的实现方式中,该装置还包括下述中的任一项:调用单元,用于在该模型程序代码、该预处理程序代码和该后处理程序代码存在于配置数据库的情况下,通过该目标执行节点从该配置数据库中调用该模型程序代码、该预处理程序代码和该后处理程序代码;获取单元,用于在该模型程序代码、该预处理程序代码和该后处理程序代码中的至少一项不存在于该配置数据库的情况下,通过该目标执行节点获取该访问设备上传的自定义程序代码,该自定义程序代码包括不存在于该配置数据库中的程序代码。
28.结合第二方面和上述实现方式,在某些可能的实现方式中,该模型部署请求还包括身份认证参数,该装置还包括;验证单元,用于基于该身份认证参数验证该模型部署请求是否合法;该选择单元,具体用于在该模型部署请求合法的情况下,基于该框架结构从该多个候选执行节点中选择与该框架结构对应的目标执行节点。
29.结合第二方面和上述实现方式,在某些可能的实现方式中,该装置还包括:控制单元,用于在接收到的模型部署请求的数量大于预设数量的情况下,对该接收到的模型部署请求进行流量控制。
30.结合第二方面和上述实现方式,在某些可能的实现方式中,该部署单元,具体用于,通过该目标执行节点将该目标模型部署在注册中心,该注册中心用于存储生成的模型以及将存储的模型下发至候选执行节点进行运行。
31.结合第二方面和上述实现方式,在某些可能的实现方式中,该注册中心还存储有候选执行节点支持的框架类型,该获取单元,还用于从该注册中心获取该多个候选执行节点支持的框架类型;该选择单元,具体还用于基于该多个候选执行节点支持的框架类型和该框架结构,从该多个候选执行节点中选择与该框架结构对应的目标执行节点。
32.第三方面,提供一种模型部署的系统,该系统包括模型服务节点和多个候选执行节点,该请求接收节点,用于:接收访问设备发送的模型部署请求,该模型部署请求包括用于部署目标模型所需要的框架结构和模型配置信息,该框架结构用于描述部署该目标模型时使用的运行环境,该模型配置信息用于描述部署该目标模型时使用的各种属性信息;基于该框架结构从多个候选执行节点中选择与该框架结构对应的目标执行节点,该候选执行节点用于基于模型配置信息完成模型的生成和部署任务;将该模型部署请求发送给该目标执行节点;该目标执行节点,用于:接收该模型服务节点发送的该模型部署请求;基于该模型配置信息,生成该目标模型;部署该目标模型。
33.第四方面,一种模型服务节点,该模型服务节点包括存储器、处理器以及存储在该存储器中并可在该处理器上运行的计算机程序,其中,该处理器执行该计算机程序时,使得该模型服务节点执行上述第一方面或第一方面任意一种可能的实现方式中的方法。
34.第五方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机或处理器上运行时,使得该计算机或处理器执行上述第一方面或第一方面任意一种可能的实现方式中的方法。
附图说明
35.图1是本技术实施例提供的一种模型部署的方法的示意性流程图;
36.图2是本技术实施例提供的一种生成目标模型的结构框图;
37.图3是本技术实施例提供的一种使用目标模型的示意流程图;
38.图4是本技术实施例提供的一种模型部署的装置的结构示意图;
39.图5是本技术实施例提供的一种模型部署的系统的结构示意图;
40.图6是本技术实施例提供的另一种模型部署的系统结构示意图;
41.图7是本技术实施例提供的一种模型服务节点的结构示意图。
具体实施方式
42.下面将结合附图,对本技术中的技术方案进行清楚、详尽地描述。其中,在本技术实施例的描述中,“多个”是指两个或多于两个。术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者多个该特征。
43.图1是本技术实施例提供的一种模型部署的方法的示意性流程图。
44.应理解,本技术实施例提供的一种模型部署的方法可以应用于模型服务节点,该模型服务节点可以理解为一种电子设备,该电子设备可以是具有一定数据处理功能的计算机、服务器等。
45.示例性的,如图1所示,该方法包括:
46.101,模型服务节点接收访问设备发送的模型部署请求,该模型部署请求包括用于部署目标模型所需要的框架结构和模型配置信息,该框架结构用于描述部署该目标模型时使用的运行环境,该模型配置信息用于描述部署该目标模型时使用的各种属性信息。
47.其中,该模型服务节点可以通过超文本传输协议(hyper text transfer protocol,http)以及js对象简谱(javascript object notation,json)的数据交互格式的
形式,或者,可以通过远程过程调用(remote procedure call,rpc)协议的方式接收访问设备的模型部署请求。
48.其中,模型服务节点具体可以理解为一种响应模型部署请求的服务节点,该服务节点的数量可以基于模型部署请求的数量进行相应地调整。也就是说,在模型部署请求的数量较多的情况下,可以设置较多的服务节点。在模型部署请求的数量较少的情况下,可以设置较少的服务节点等。
49.应理解,在一些实施例中,该访问设备可以是任意访问模型服务节点的设备,可以是向模型服务节点发送访问请求的设备。在该步骤101中,该访问请求为模型部署请求。
50.还应理解,在一些实施例中,针对模型的“部署”可以理解为基于目标模型所需要的各种配置信息,经过逐步地编写程序代码,对该程序代码进行整合后生成目标模型,并最终存储到某一位置的过程。
51.具体地,在步骤101之前,访问设备通过模型服务节点的网址,将模型部署请求发送给该模型服务节点。
52.其中,在步骤101之前,可以将访问设备发送的模型部署请求中包括的部署目标模型所需要的框架结构和模型配置信息存储在配置数据库;这样该模型服务节点可以从配置数据库中获取目标模型对应的框架结构和模型配置信息。
53.应理解,在一些实施例中,“框架结构”可以理解为一个模型的运行环境。例如,pytorch、tensorflow和caffe等。
54.其中,pytorch是一种用于神经网络的框架,它是基于python语言开发的,该pytorch框架具有自动求导的动态图功能。也就是说,当python解释器运行到相应的程序代码行时才创建计算图。pytorch允许研究人员使用图形处理器(graphic processing unit,gpu)的算力来实现神经网络的加速,提供了自动微分机制。pytorch框架主要应用于计算机视觉、自然语言和序列问题等。
55.其中,tensorflow是一个用于机器学习和深度神经网络学习的端到端的分布式框架,tensorflow编程接口支持python语言和c++语言,该tensorflow基于计算图来实现自动微分机制。使用数据流图进行数值计算。数据流图中的节点表示数学运算,数据流图中的边表示节点之间传递的多维数组(张量)。
56.其中,caffe是一个清楚而高效的开源深度学习框架,它是基于c++语言开发的,提供了c++接口、矩阵实验室(matrix laboratory,matlab)接口和电脑程式设计语言(python)接口。该caffe框架可以实现gpu并行架构下的深度卷积神经网络学习等算法。研究人员可以基于caffe框架定义各种各样的卷积神经网络的结构,并且可以在该caffe框架下增加自定义的程序代码,设计新的算法。该caffe框架只能够使用卷积神经网络,所有框架都是在基于卷积神经网络模型上进行的。
57.还应理解,在一些实施例中,“模型配置信息”可以简单地理解为一个可直接调用的模型的相关信息,该相关信息可以包括模型的各种属性信息。例如,模型类型、模型预处理过程、模型后处理过程和模型配置参数。
58.示例性的,模型类型可以是图片分类类型、目标检测类型、语义分割类型或文字识别类型等;模型预处理过程可以是在图片分类类型中,对图片进行灰度处理、平滑处理、锐化处理和增强处理等;模型后处理过程可以是在图片分类类型中,对图片进行裁剪、修正变
形和色阶调整等。
59.102,该模型服务节点基于该框架结构从多个候选执行节点中选择与该框架结构对应的目标执行节点,该候选执行节点用于基于模型配置信息完成模型的生成和部署任务。
60.一种可能的实现方式中,该注册中心还存储有候选执行节点支持的框架类型,该方法还包括:该模型服务节点从该注册中心获取该多个候选执行节点支持的框架类型;以及,步骤102,包括:该模型服务节点基于该多个候选执行节点支持的框架类型和该框架结构,从该多个候选执行节点中选择与该框架结构对应的目标执行节点。
61.应理解,在一些实施例中,“注册中心”可以理解为提供各种信息注册和发现功能的服务型工具。该服务型工具可以是开源的介于应用系统与系统软件之间的一类软件(中间件),它使用系统软件所提供的基础服务功能,衔接网络上应用系统的各个部分或不同的应用,可以达到资源共享和功能共享的目的。例如,该注册中心可以是分布式的动态命名和配置服务(dynamic naming and configuration service,nacos)。多个候选执行节点会定时(每间隔预设时长)地将自身支持的框架类型等信息注册到注册中心。模型服务节点可以定时地从注册中心获取候选执行节点的信息,可以获取多个候选执行节点中各个候选执行节点支持的框架类型。由于模型服务节点是可以定时(每间隔预设时长)获取多个候选执行节点的信息,因此可以得到有哪些候选执行节点在注册中心,有哪些候选执行节点已经不存在注册中心。
62.还应理解,多个候选执行节点中各个候选执行节点都有各自支持的框架类型。例如,第一候选执行节点支持的框架类型为pytorch,则第一候选执行节点可以写为“pytorch-执行节点”;第二候选执行节点支持的框架类型为tensorflow,则第二候选执行节点可以写为“tensorflow-执行节点”;第三候选执行节点支持的框架类型为caffe,则第三候选执行节点可以写为“caffe-执行节点”。上述多个候选执行节点中各个候选执行节点各自所支持的框架类型可以存储在注册中心。这样模型服务节点可以从注册中心中获取多个候选执行节点支持的框架类型。
63.上述技术方案中,在注册中心还存储有候选执行节点支持的框架类型的情况下,可以从注册中心处获取多个候选执行节点支持的框架类型,这样可以基于多个候选执行节点支持的框架类型和该框架结构,从多个候选执行节点中选择一个候选执行节点,作为目标执行节点,使得该目标执行节点可以执行模型部署请求,进行完成目标模型的生成和部署任务。
64.其中,多个候选执行节点可以具体理解为一种响应生成目标模型的请求的服务节点,该服务节点的数量可以基于生成目标模型的请求的数量进行相应地调整,也就是说,在生成同一框架类型的目标模型的请求数量较多的情况下,支持同一框架类型的候选执行节点可以设置较多的数量。在生成同一框架类型的目标模型的请求数量较少的情况下,支持同一框架类型的候选执行节点可以设置较少的数量。
65.一种可能的实现方式中,该模型服务节点基于该多个候选执行节点支持的框架类型和该框架结构,从该多个候选执行节点中选择与该框架结构对应的目标执行节点,包括:该模型服务节点将该框架结构与多个候选执行节点支持的框架类型进行比较,确定出该框架结构与多个候选执行节点中任一候选执行节点的框架类型相同;该模型服务节点将该多
个候选执行节点中与该框架结构相同的框架类型对应的候选执行节点确定为目标执行节点。
66.示例性的,模型部署请求包括的用于部署目标模型所需要的框架结构为tensorflow。多个候选执行节点分别为:pytorch-执行节点、tensorflow-执行节点和caffe-执行节点。模型服务节点将该多个候选执行节点支持的框架类型和该框架结构,从该多个候选执行节点中选择与框架结构tensorflow对应的目标执行节点为tensorflow-执行节点。
67.另一种可能的实现方式中,该模型部署请求还包括身份认证参数,该方法还包括:基于该身份认证参数验证该模型部署请求是否合法;以及,步骤102,包括:在该模型部署请求合法的情况下,基于该框架结构从该多个候选执行节点中选择与该框架结构对应的目标执行节点。
68.应理解,一般情况下,模型服务节点只允许一定身份权限的设备访问,则可以通过模型部署请求中是否包括有可以代表身份信息的参数来验证访问设备的身份权限。
69.上述技术方案中,在该模型配置信息中包括身份认证参数的情况下,可以通过该身份认证参数来验证访问设备发送的模型部署请求是否合法,进而可以在该模型部署请求合法的情况下,对该模型部署请求进行处理。也就是说,可以基于模型部署请求中包括的框架结构从该多个候选执行节点中选择与该框架结构对应的目标执行节点。而不是对所有的模型部署请求进行响应,这种在模型部署请求合法的情况下,模型服务节点对模型部署请求进行处理的过程,可以避免模型服务节点被访问设备被不合法的请求进行攻击等。
70.示例性的,在模型配置信息包括的身份认证参数小于5的情况下,模型部署请求是合法的。该模型服务节点接收访问设备发送的模型部署请求,该模型服务节点对模型部署请求进行处理,查看到该模型部署请求中的身份认证参数为1,则该模型服务节点验证得到该模型部署请求是合法的,可以基于该模型部署请求包括的框架结构从该多个候选执行节点中选择与该框架结构对应的目标执行节点。
71.103,该模型服务节点通过该目标执行节点,基于该模型配置信息,生成该目标模型。
72.一种可能的实现方式中,步骤103,包括:通过该目标执行节点,确定与该模型配置信息匹配的程序代码;通过该目标执行节点,基于该述模型配置信息和该模型配置信息匹配的程序代码,生成该目标模型。
73.上述技术方案中,由于该模型配置信息描述了部署该目标模型时使用的各种属性信息,因此在确定部署该目标模型所需要的程序代码时,可以通过该目标执行节点,确定与该模型配置信息匹配的程序代码;从而再基于该述模型配置信息和该模型配置信息匹配的程序代码,生成该目标模型。
74.一种可能的实现方式中,该模型配置信息包括模型类型、模型配置参数、模型预处理过程和模型后处理过程,通过该目标执行节点,确定与该模型配置信息匹配的程序代码,包括:通过该目标执行节点,确定与该模型类型匹配的模型程序代码、与该模型预处理过程匹配的预处理程序代码,以及与该模型后处理过程匹配的后处理程序代码;通过该目标执行节点,基于该模型配置信息和该模型配置信息匹配的程序代码,生成该目标模型,包括:通过该目标执行节点,基于该模型配置参数、该模型程序代码、该预处理程序代码和该后处
理程序代码,生成该目标模型。
75.应理解,模型配置参数可以是预设类型模型中、预设类型模型的模型预处理过程中和预设类型模型的模型后处理过程中所使用的参数。例如,在确定出模型类型为图片分类类型,则该模型为图片分类模型。模型配置参数可以是图片分类模型中卷积层的数量、卷积核的尺寸、卷积核每次滑动的步进值和池化层的步长等。在确定出图片分类模型的模型预处理过程为对图片进行灰度处理和增强处理,则模型配置参数还包括灰度处理过程中使用的浮点算法中的参数和增强处理过程中对图片进行缩放的参数等。在确定出图片分类模型的模型后处理过程为对图片进行色阶调整处理和裁剪处理,则模型配置参数还包括色阶调整处理过程中对灰度、平衡、高光三个滑块进行调整的参数和裁剪处理过程中对图片进行裁剪的参数等。
76.还应理解,任何模型的生成都是基于一行一行的程序代码来实现的。在确定出模型类型后,例如,模型类型为图片分类类型,可以确定出该模型是图片分类模型,进而可以确定出能够实现以图片分类为目的的程序代码;同样地,在确定出模型预处理过程后,例如,模型预处理过程为对图片进行灰度处理和增强处理,可以确定出能够实现以灰度处理和增强处理为目的的程序代码;在确定出模型后处理过程后,例如,模型后处理过程为对图片进行色阶调整处理和裁剪处理,可以确定出能够实现以色阶调整处理和裁剪处理为目的的程序代码。
77.上述技术方案中,在模型配置信息包括模型类型、模型配置参数、模型预处理过程和模型后处理过程的情况下,可以通过目标执行节点,确定与该模型类型匹配的模型程序代码、与该模型预处理过程匹配的预处理程序代码,以及与该模型后处理过程匹配的后处理程序代码。也就是说,通过目标执行节点基于模型配置信息中包括的信息对应找到匹配的程序代码;进而通过目标执行节点基于找到的程序代码生成目标模型。也就是说,不需要开发工程师基于模型配置信息中包括的信息逐一地开发程序代码,这可以减少开发工程师的工作量,快速地生成目标模型。
78.一种可能的实现方式中,该模型服务节点通过该目标执行节点,基于该模型配置参数、该模型程序代码、该预处理程序代码和该后处理程序代码,生成该目标模型,包括:该模型服务节点通过该目标执行节点,采用该模型配置参数替换该模型程序代码、该预处理程序代码和该后处理程序代码中的对应部分,形成目标模型程序代码、目标预处理程序代码和目标后处理程序代码;该模型服务节点将该目标模型程序代码、该目标预处理程序代码和该目标后处理程序代码进行组合,生成该目标模型。
79.应理解,一个程序代码块(该完整的预处理程序代码)和另一个程序代码块(该完整的模型程序代码)是需要连接起来的。否则在程序代码的编译过程中,程序代码编译器不能从一个程序代码块中的程序代码行运行到另一个程序代码块中的任一程序代码行。因此在得到目标模型程序代码、目标预处理程序代码和目标后处理程序代码后,需要对目标模型程序代码、目标预处理程序代码和目标后处理程序代码进行组合(连接)。
80.上述技术方案中,在通过目标执行节点对应确定出模型程序代码、预处理程序代码和后处理程序代码后,可以通过目标执行节点,采用模型配置参数替换各个程序代码(模型程序代码、预处理程序代码和后处理程序代码)中的对应部分,以形成各个目标程序代码;进而通过目标执行节点对各个目标程序代码进行配置。也就是说,将各个目标程序代码
之间进行连接,生成该目标模型。
81.示例性的,模型类型为图片分类类型,则该模型为图片分类模型;图片分类模型的模型预处理过程为对图片进行灰度处理和增强处理;图片分类模型的模型后处理过程为对图片进行色阶调整处理和裁剪处理。则图片分类模型的模型配置参数可以是图片分类模型中卷积层的数量、卷积核的尺寸、卷积核每次滑动的步进值和池化层的步长;灰度处理过程中使用的浮点算法中的参数,增强处理过程中对图片进行缩放的参数;色阶调整处理过程中对灰度、平衡、高光三个滑块进行调整的参数,裁剪处理过程中对图片进行裁剪的参数。
82.图片分类模型对应有图片分类模型的程序代码、图片分类模型的灰度处理和增强处理分别对应的灰度处理程序代码和增强处理程序代码、图片分类模型的色阶调整处理和裁剪处理分别对应的色阶调整处理程序代码和裁剪处理程序代码。
83.模型服务节点通过目标执行节点,采用模型配置参数中的卷积层的数量、卷积核的尺寸、卷积核每次滑动的步进值、池化层的步长、灰度处理过程使用的浮点算法中的参数、增强处理过程中对图片进行缩放的参数、色阶调整处理过程中对灰度、平衡、高光三个滑块进行调整的参数,以及裁剪处理过程中对图片进行裁剪的参数替换图片分类模型的程序代码、灰度处理程序代码、增强处理程序代码、色阶调整处理程序代码和裁剪处理程序代码中的对应部分,形成目标图片分类模型的程序代码、目标灰度处理程序代码、目标增强处理程序代码、目标色阶调整处理程序代码和目标裁剪处理程序代码;该模型服务节点将目标图片分类模型的程序代码、目标灰度处理程序代码、目标增强处理程序代码、目标色阶调整处理程序代码和目标裁剪处理程序代码进行组合,生成该目标模型。
84.一种可能的实现方式中,该方法还包括下述中的任一项:在该模型程序代码、该预处理程序代码和该后处理程序代码存在于配置数据库的情况下,该模型服务节点通过该目标执行节点从该配置数据库中调用该模型程序代码、该预处理程序代码和该后处理程序代码;在该模型程序代码、该预处理程序代码和该后处理程序代码中的至少一项不存在于该配置数据库的情况下,该模型服务节点通过该目标执行节点获取该访问设备上传的自定义程序代码,该自定义程序代码包括不存在于该配置数据库中的程序代码。
85.上述技术方案中,在通过目标执行节点确定出该模型程序代码、该预处理程序代码和该后处理程序代码后,可以在配置数据库中查找该模型程序代码、该预处理程序代码和该后处理程序代码;在配置数据库中存有该模型程序代码、该预处理程序代码和该后处理程序代码的情况下,可以通过该目标执行节点从该配置数据库中直接调用已有的该模型程序代码、该预处理程序代码和该后处理程序代码;而在该模型程序代码、该预处理程序代码和该后处理程序代码不存于该配置数据库中的情况下,该访问设备可以将自定义的程序代码上传到配置数据库,这样可以通过目标执行节点从配置数据库中获取该访问设备自定义的程序代码,进而可以生成目标模型。这样,在配置数据库有可以直接调用的程序代码的情况下,可以通过目标执行节点直接调用,这种方式下可以增加程序代码的重用率;而在配置数据中不存在可以通过目标执行节点直接调用的程序代码的情况下,可以通过访问设备上传自定义的程序代码,这样就可以通过目标执行节点获取自定义的程序代码,进而可以生成目标模型。这种方式下可以避免配置数据库中没有访问设备需要的程序代码,而访问设备还无法自定义上传,进而不能生成目标模型的现象。
86.104,该模型服务节点通过该目标执行节点部署该目标模型。
87.一种可能的实现方式中,步骤104,包括:该模型服务节点通过该目标执行节点将该目标模型部署在注册中心,该注册中心用于存储生成的模型以及将存储的模型下发至候选执行节点进行运行。
88.上述技术方案中,在目标模型的部署过程中,可以通过目标执行节点将目标模型部署在注册中心,而不是部署在目标执行节点或模型服务节点,也就是说,不同节点对应不同的功能。模型服务节点用于响应模型部署请求,确定目标执行节点(多个候选执行节点中的一种);候选执行节点用于生成和部署模型;而注册中心用于存储生成的模型和下发生成的模型。这种不同任务交予不同节点执行的过程,不容易出错。
89.一种可能的实现方式中,该方法还包括:该模型服务节点通过该目标执行节点对目标模型进行封装,确定该目标模型对应的服务接口;该模型服务节点通过该目标执行节点将该目标模型对应的服务接口部署在该注册中心。
90.应理解,在一些实施例中,上述实现方式中的“封装”可以理解为将目标模型的具体实现细节进行隐藏,只向访问设备提供目标模型的访问接口,即目标模型的入参和出参的信息。访问设备可以通过向目标模型输入入参,进而得到出参的信息。
91.上述技术方案中,通过目标执行节点对生成的目标模型进行封装,只对访问设备公开目标模型的入参和出参的信息。这样,访问设备能够很便捷地访问该目标模型对应的服务接口,即只需输入入参,就可以得到所需的出参的信息,不需要了解目标模型的实现细节。
92.还应理解,该多个候选执行节点还将生成的目标模型、目标模型的调用地址存储在注册中心。则该模型服务节点还可以定时(每隔预设时长)地从注册中心获取部署了哪些模型,可以基于目标模型的调用地址供访问设备使用等。
93.图2是本技术实施例提供的一种生成目标模型的结构框图。
94.示例性的,如图2所示,模型服务节点接收访问设备的模型部署请求,模型部署请求包括的框架结构为caffe;模型服务节点基于该框架结构caffe,从图2中的三种候选执行节点中的pytorch-执行节点、tensorflow-执行节点和caffe-执行节点中选择caffe-执行节点作为目标执行节点;模型服务节点通过caffe-执行节点基于模型配置参数,生成目标模型;模型服务节点通过caffe-执行节点将目标模型部署在注册中心。
95.上述模型部署的方法以及步骤101~步骤104中的各种可能的实现方式可以理解为一种目标模型的生成过程,目标模型对应的服务接口生成的过程。如下,可以是目标模型的使用过程。
96.一种可能的实现方式中,该模型服务节点接收访问设备的入参信息;该模型服务节点从注册中心将目标模型下发至目标执行节点;该模型服务节点通过目标执行节点将该入参信息输入到该目标模型,确定出参信息;通过该模型服务节点将该出参信息发送给该访问设备。
97.应理解,模型服务节点可以通过http协议以及json数据交互格式的形式,或者,可以通过rpc协议的方式将出参信息发送给该访问设备。
98.上述技术方案中,对目标模型的使用过程进行了描述。访问设备可以访问目标模型对应的服务接口,可以将自身的需求(入参信息)发送给模型服务节点;该模型服务节点基于部署在注册中心中的目标模型,可以通过目标执行节点将该入参信息输入到该目标模
型,确定出参信息;进而通过该模型服务节点将该出参信息发送给该访问设备。这样,访问设备能够很便捷地访问该目标模型对应的服务接口,在不需要了解目标模型的实现细节的情况下,只需输入入参信息,就可以快速地得到所需的出参信息。
99.图3是本技术实施例提供的一种使用目标模型的示意性流程图。
100.示例性的,以目标模型为物体识别模型为例。如图3所示,访问设备向模型服务节点发送一张物体的图片;模型服务节点接收该物体的图片;模型服务节点通过目标执行节点将该物体的图片输入到该物体识别模型,该物体识别模型对该图片中的物体进行识别,得到识别结果,可以得出该图片中的物体为苹果;模型服务节点将该识别结果(苹果)发送给访问设备。
101.图4是本技术实施例提供的一种模型部署的装置的结构示意图。
102.示例性的,如图4所示,该装置包括:
103.接收单元401,用于接收访问设备发送的模型部署请求,该模型部署请求包括用于部署目标模型所需要的框架结构和模型配置信息,该框架结构用于描述部署该目标模型时使用的运行环境,该模型配置信息用于描述部署该目标模型时使用的各种属性信息;
104.选择单元402,用于基于该框架结构从多个候选执行节点中选择与该框架结构对应的目标执行节点,该候选执行节点用于基于模型配置信息完成模型的生成和部署任务;
105.生成单元403,用于通过该目标执行节点,基于该模型配置信息,生成该目标模型;
106.部署单元404,用于通过该目标执行节点部署该目标模型。
107.可选地,生成单元403,具体用于通过该目标执行节点,确定与该模型配置信息匹配的程序代码;通过该目标执行节点,基于该述模型配置信息和该模型配置信息匹配的程序代码,生成该目标模型。
108.可选地,该模型配置信息包括模型类型、模型配置参数、模型预处理过程和模型后处理过程,该装置还包括:确定单元,用于通过该目标执行节点,确定与该模型类型匹配的模型程序代码、与该模型预处理过程匹配的预处理程序代码,以及与该模型后处理过程匹配的后处理程序代码;生成单元403,具体还用于通过该目标执行节点,基于该模型配置参数、该模型程序代码、该预处理程序代码和该后处理程序代码,生成该目标模型。
109.可选地,该生成单元403,具体还用于:通过该目标执行节点,采用该模型配置参数替换该模型程序代码、该预处理程序代码和该后处理程序代码中的对应部分,形成目标模型程序代码、目标预处理程序代码和目标后处理程序代码;将该目标模型程序代码、该目标预处理程序代码和该目标后处理程序代码进行组合,生成该目标模型。
110.可选地,该装置还包括下述中的任一项:调用单元,用于在该模型程序代码、该预处理程序代码和该后处理程序代码存在于配置数据库的情况下,通过该目标执行节点从该配置数据库中调用该模型程序代码、该预处理程序代码和该后处理程序代码;获取单元,用于在该模型程序代码、该预处理程序代码和该后处理程序代码中的至少一项不存在于该配置数据库的情况下,通过该目标执行节点获取该访问设备上传的自定义程序代码,该自定义程序代码包括不存在于该配置数据库中的程序代码。
111.可选地,该模型部署请求还包括身份认证参数,该装置还包括;验证单元,用于基于该身份认证参数验证该模型部署请求是否合法;该选择单元802,具体用于在该模型部署请求合法的情况下,基于该框架结构从该多个候选执行节点中选择与该框架结构对应的目
标执行节点。
112.可选地,该装置还包括:控制单元,用于在接收到的模型部署请求的数量大于预设数量的情况下,对该接收到的模型部署请求进行流量控制。
113.可选地,部署单元404,具体用于通过该目标执行节点将该目标模型部署在注册中心,该注册中心用于存储生成的模型以及将存储的模型下发至候选执行节点进行运行。
114.可选地,该注册中心还存储有候选执行节点支持的框架类型,该获取单元,还用于从该注册中心获取该多个候选执行节点支持的框架类型;该选择单元402,具体还用于基于该多个候选执行节点支持的框架类型和该框架结构,从该多个候选执行节点中选择与该框架结构对应的目标执行节点。
115.图5是本技术实施例提供的一种模型部署的系统的结构示意图。
116.示例性的,如图5所示,该系统包括模型服务节点501和多个候选执行节点502,该模型服务节点501,用于:接收访问设备发送的模型部署请求,该模型部署请求包括用于部署目标模型所需要的框架结构和模型配置信息,该框架结构用于描述部署该目标模型时使用的运行环境,该模型配置信息用于描述部署该目标模型时使用的各种属性信息;基于该框架结构从多个候选执行节点502中选择与该框架结构对应的目标执行节点,该候选执行节点用于基于模型配置信息完成模型的生成和部署任务;将该模型部署请求发送给该目标执行节点。
117.该目标执行节点5021,用于:接收该模型服务节点501发送的该模型部署请求;基于该模型配置信息,生成该目标模型;部署该目标模型。
118.可选地,在图6的另一种模型部署的系统的结构示意图所指的模型部署的系统中,该系统中还包括注册中心601和配置数据库602,该模型服务节点501,还用于从该注册中心601获取该多个候选执行节点502支持的框架类型;该模型服务节点501,具体用于基于该多个候选执行节点502支持的框架类型和该框架结构,从该多个候选执行节点502中选择与该框架结构对应的目标执行节点5021。
119.可选地,该模型配置信息包括模型类型、模型配置参数、模型预处理过程和模型后处理过程,该系统还包括下述中的任一项:该目标执行节点5021,还用于从该配置数据库602中调用与该模型的类型匹配的模型程序代码,从该配置数据库602中调用与该模型预处理过程匹配的预处理程序代码,以及从该配置数据库602中调用与该模型后处理过程匹配的后处理程序代码;该目标执行节点5021,具体用于基于该配置参数、该模型程序代码、该预处理程序代码和该后处理程序代码,生成该目标模型。
120.可选地,在该目标执行节点5021从该配置数据库602中调用与该模型的类型匹配的模型程序代码,从该配置数据库602中调用与该模型预处理过程匹配的预处理程序代码,以及从该配置数据库602中调用与该模型后处理过程匹配的后处理程序代码之前,在该模型程序代码、该预处理程序代码和该后处理程序代码存在于配置数据库602的情况下,该模型服务节点501通过该目标执行节点5021从该配置数据库602中调用该模型程序代码、该预处理程序代码和该后处理程序代码;在该模型程序代码、该预处理程序代码和该后处理程序代码中的至少一项不存在于该配置数据库602的情况下,该模型服务节点501通过该目标执行节点5021获取该访问设备上传的自定义程序代码,该自定义程序代码包括不存在于该配置数据库602中的程序代码。
121.图7是本技术实施例提供的一种电子设备的结构示意图。
122.示例性的,如图7所示,该电子设备包括:存储器701、处理器702以及存储在该存储器701中并在处理器702上运行的计算机程序703,其中,该处理器702执行该计算机程序703时,使得该电子设备可执行前述介绍的任意一种模型部署的方法。
123.本实施例可以根据上述方法示例对该电子设备进行功能模块的划分,例如,可以对应各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中,上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
124.在采用对应各个功能划分各个功能模块的情况下,该电子设备可以包括:接收模块、选择模块、生成模块、部署模块、调用模块和确定模块等。需要说明的是,上述方法实施例涉及的各个步骤的所有相关内容的可以援引到对应功能模块的功能描述,在此不再赘述。
125.本实施例提供的电子设备,用于执行上述一种模型部署的方法,因此可以达到与上述实现方法相同的效果。
126.在采用集成的单元的情况下,该电子设备可以包括处理模块、存储模块。其中,处理模块可以用于对该电子设备的动作进行控制管理。存储模块可以用于支持该电子设备执行相互程序代码和数据等。
127.其中,处理模块可以是处理器或控制器,其可以实现或执行结合本技术公开内容所藐视的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,数字信号处理(digital signal processing,dsp)和微处理器的组合等等,存储模块可以是存储器。
128.本实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机或处理器上运行时,使得该计算机或处理器执行前述介绍的任意一种模型部署的方法。
129.本实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述相关步骤,以实现前述介绍的任意一种模型部署的方法。
130.其中,本实施例提供的电子设备、计算机可读存储介质、包含指令的计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
131.通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
132.在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信
连接,可以是电性,机械或其它的形式。
133.以上内容,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1