一种模型推理系统、方法及设备与流程

文档序号:31094283发布日期:2022-08-10 00:26阅读:161来源:国知局
一种模型推理系统、方法及设备与流程

1.本发明涉及数据处理技术领域,具体涉及一种模型推理系统、方法及设备。


背景技术:

2.随着机器学习技术的不断发展,将机器学习得到的模型进行有效部署,成为了待解决的技术问题之一。目前,可以采用tf-serving(tensorflow serving,张量流服务)的方案,先将训练得到的模型转换为tf-serving支持的格式,然后再部署模型的配置文件。最终,通过启动服务并加载模型,在接收到模型推理请求时,就可以利用已部署的模型来处理该模型推理请求。
3.然而,现有的这种模型部署方式,对设备本身的硬件有一定的要求。例如,现有的这种模型部署方法,无法应用于不支持gpu(graphics processing unit,图形处理器)的设备中。这就导致现有的模型部署方式的适配性较差。


技术实现要素:

4.有鉴于此,本发明实施方式提供了一种模型推理系统、方法及设备,能够提高模型部署的适配性。
5.本发明一方面提供了一种模型推理系统,所述模型推理系统包括:请求管理模块、业务调度模块、模型推理模块、引擎适配模块以及多个推理引擎,其中:所述请求管理模块,用于接收外部请求,并将所述外部请求对应的队列消息存放于消息队列中;所述业务调度模块,用于从所述消息队列中读取所述队列消息,在所述队列消息为模型推理消息的情况下,将所述队列消息传递至所述模型推理模块;所述模型推理模块,用于通过所述引擎适配模块,从所述多个推理引擎中,调用与部署所述模型推理系统的当前设备相匹配的目标推理引擎,以利用所述目标推理引擎对所述队列消息进行处理。
6.本技术提供的技术方案,在模型推理系统中部署多个层级模块,各个层级模块之间通过协同运作,可以处理外部请求对应的队列消息。通过层级模块的方式进行部署,可以降低整个系统的耦合度,并可以方便地对出现问题的组件进行定位。同时,在模型推理系统中可以部署多个不同的推理引擎,通过引擎适配模块可以选择与当前设备相匹配的目标推理引擎,从而使得模型推理系统可以适用于具备不同硬件资源的设备,进而提高了模型部署的适配性。
7.在一个实施方式中,所述请求管理模块还用于,识别所述外部请求的请求类型,并将所述外部请求对应的队列消息,存放于与所述请求类型相匹配的消息队列中。
8.通过不同的消息队列管理不同类型的队列消息,能够提高队列消息的处理效率。
9.在一个实施方式中,所述业务调度模块中包含与所述消息队列相对应的线程组,所述消息队列中的队列消息由所述线程组内的各个线程并行读取。
10.每个消息队列可以对应各自的线程组,这样,线程组内的各个线程可以通过并行方式对消息队列中的队列消息进行读取并处理,从而提高了队列消息的处理效率。
11.在一个实施方式中,所述引擎适配模块提供具备不同功能的各个虚拟接口,各个所述推理引擎中均包括用于实现所述虚拟接口的子类。
12.引擎适配模块针对不同功能,可以提供对应的虚拟接口,不同的推理引擎可以根据自身的实际情况,实现该虚拟接口的子类,从而使得不同的推理引擎能够统一地接入引擎适配模块,进而使得模型推理系统能够适配于不同的设备。
13.在一个实施方式中,所述模型推理系统还包括监控模块;其中:所述业务调度模块,还用于在所述队列消息为监控消息的情况下,将所述队列消息传递至所述监控模块;所述监控模块,用于响应所述队列消息,反馈部署所述模型推理系统的当前设备的设备信息;其中,所述设备信息包括所述当前设备的资源使用信息和/或所述模型推理系统中的模型使用信息。
14.在接收到监控请求时,模型推理系统能够对该监控请求对应的监控消息进行处理,并反馈当前设备的各项设备信息,使得管理者能够对当前设备的状态以及设备中部署的模型进行确认和调试。
15.在一个实施方式中,所述模型推理系统还包括模型管理模块;其中:所述业务调度模块,还用于在所述队列消息为模型管理消息的情况下,将所述队列消息传递至所述模型管理模块;所述模型管理模块,用于识别所述队列消息中的模型管理类型,并针对目标模型,执行与所述模型管理类型相匹配的操作。
16.在接收到模型管理请求时,模型推理系统可以对模型管理消息进行处理。通过模型管理请求,可以灵活地对模型推理系统中部署的模型进行加载、卸载、更新、加解密等操作,从而提高了系统整体的便利性。
17.在一个实施方式中,所述模型推理系统还包括服务配置模块;其中:所述业务调度模块,还用于在所述队列消息为服务配置消息的情况下,将所述队列消息传递至所述服务配置模块;所述服务配置模块,用于根据所述服务配置消息,更新所述模型推理系统中的全局配置信息。
18.在一个实施方式中,所述服务配置模块在更新所述全局配置信息时,实现以下至少一种功能:设置日志打印等级,以使得所述模型推理系统打印出与所述日志打印等级相匹配的日志信息;设置中间结果保存策略,所述中间结果保存策略用于限定在对所述队列消息进行处理的过程中,产生的中间结果的保存方式;在所述当前设备支持多个推理引擎时,设置各个推理引擎的使用优先级。
19.通过处理服务配置消息,可以设置模型推理系统的全局配置信息。通过全局配置信息,可以灵活调节日志打印等级,设置中间结果的保存策略,以及设置各个推理引擎的优先级。通过这种方式,能够提高系统配置的灵活性。
20.本发明另一方面还提供一种应用于上述模型推理系统中的模型推理方法,所述方法包括:接收外部请求,并将所述外部请求对应的队列消息存放于消息队列中;从所述消息队列中读取所述队列消息,在所述队列消息为模型推理消息的情况下,从多个推理引擎中,调用与部署所述模型推理系统的当前设备相匹配的目标推理引擎;通过所述目标推理引擎对所述队列消息进行处理。
21.本发明另一方面还提供一种模型推理设备,所述模型推理设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的模
型推理方法。
22.本发明另一方面还提供一种计算机存储介质,所述计算机存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现上述的模型推理方法。
附图说明
23.通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
24.图1示出了本发明一个实施方式中模型推理系统的结构示意图;
25.图2示出了本发明一个实施方式中模型推理方法的步骤示意图;
26.图3示出了本发明一个实施方式中模型推理设备的结构示意图。
具体实施方式
27.为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
28.本技术提供的模型推理系统,可以部署于不同的设备中,该设备可以根据应用场景的不同而不同。例如,该模型推理系统可以部署于硬件配置较高的服务器中,也可以部署于硬件配置相对较低的边缘设备中。具体地,在服务器中,可能会具备数据处理能力较高的gpu,但是在边缘设备中,可能并没有安装gpu。本技术提供的模型推理系统,能够适配于硬件配置差异较大的不同设备。
29.请参阅图1,本技术一个实施方式提供的模型推理系统,可以包括请求管理模块、业务调度模块、模型推理模块、引擎适配模块以及多个推理引擎。
30.在实际应用中,请求管理模块可以通过远程过程调用(remote procedure call,rpc)的方式来实现。在请求管理模块中,可以预先通过restful的方式规定接口规范。此外,在请求管理模块中,还可以设定支持的网络请求协议。例如,请求管理模块可以支持http(hyper text transfer protocol,超文本传输协议)。当接收到符合接口规范的http请求时,请求管理模块就可以对该http请求进行处理。当然,在实际应用中,请求管理模块还可以支持更多的网络请求协议,这里就不一一例举了。
31.为了保证数据传输的一致性,在请求管理模块中还可以设置数据序列化和反序列化的规范。例如,在请求管理模块中,可以设置传输的数据都要符合json(javascript object notation,js对象简谱)格式,在提高数据传输效率的同时,能够保证数据传输的一致性。
32.需要说明的是,请求管理模块还可以采用其它更多的方式来实现。例如,请求管理模块可以部署为一个网关,通过该网关可以接收外部发来的网络请求,还可以向网络请求的发起方反馈对应的响应内容。
33.在一个实施方式中,请求管理模块可以接收外部请求,并将该外部请求对应的队列消息放置于消息队列中。具体地,在模型推理系统中,可以部署多个不同的消息队列。不
同的消息队列,对应的外部请求的请求类型也可以不同。请求管理模块在接收到外部请求时,可以识别该外部请求的请求类型,并将该外部请求对应的队列消息,存放于与所述请求类型相匹配的消息队列中。
34.在实际应用中,外部请求可以根据请求类型的不同进行划分。例如,外部请求可以包括模型推理请求、监控请求、模型管理请求以及服务配置请求等。
35.在本实施方式中,业务调度模块可以读取各个消息队列中的队列消息,并根据队列消息的类型,有选择地将队列消息传递至后续的模块。具体地,在业务调度模块中,可以包含与各个消息队列相对应的线程组。其中,每个消息队列都具备各自的线程组,在从消息队列中读取队列消息时,如果队列消息有多个,可以通过线程组中的各个线程并行读取和处理,从而提高队列消息的处理效率。
36.在一个实施方式中,若队列消息为模型推理消息,那么业务调度模块可以将该队列消息传递至模型推理模块。该模型推理模块可以按照预先设置的处理流程,对模型推理消息进行处理。
37.举例来说,若模型推理消息中携带待处理的图像,而模型推理模块中预先设定的处理流程是前处理、调用推理引擎和后处理,那么模型推理模块就可以先对该待处理的图像进行缩放、归一化、裁剪等前处理过程。然后再通过调用与图像处理相关的推理引擎,对前处理后的图像进行目标识别等操作。最终,针对推理引擎处理得到的结果,模型推理模块可以进行识别框坐标解析、阈值过滤等后处理过程。
38.在本实施方式中,在调用推理引擎对模型推理消息进行处理时,模型推理模块需要通过引擎适配模块,从多个推理引擎中,调用与部署所述模型推理系统的当前设备相匹配的目标推理引擎,从而利用所述目标推理引擎对该模型推理消息进行处理。
39.在模型推理系统中,引擎适配模块可以提供具备不同功能的各个虚拟接口,这些虚拟接口可以是采用虚方法实现的父类。各个不同的推理引擎通过实现该虚拟接口的子类,便可以接入到引擎适配模块中。
40.举例来说,不同的推理引擎可以是gpu引擎、cpu引擎、npu(neural network processing unit,神经网络处理器)引擎等。当然,在实际应用中,不同类型的引擎还可以有具体的实现方式。
41.在实际应用中,可以根据部署模型推理系统的当前设备的硬件配置,有选择地选用其中的一个推理引擎来对队列消息进行处理。具体地,若模型推理系统部署于服务器中,而该服务器上安装了gpu,那么可以调用gpu引擎来处理队列消息。而如果模型推理系统部署于边缘设备中,边缘设备通常没有安装gpu,那么可以调用cpu引擎来处理队列消息。
42.可见,通过引擎适配模块可以选择与当前设备相匹配的目标推理引擎,从而使得模型推理系统可以适用于具备不同硬件资源的设备,进而提高了模型部署的适配性。
43.请参阅图1,在一个实施方式中,模型推理系统还可以包括监控模块。具体地,业务调度模块还用于在队列消息为监控消息的情况下,将所述队列消息传递至所述监控模块。对应的,所述监控模块,用于响应所述队列消息,反馈部署所述模型推理系统的当前设备的设备信息;其中,所述设备信息包括所述当前设备的资源使用信息和/或所述模型推理系统中的模型使用信息。
44.具体地,监控消息通常需要获取与模型推理系统相关的软硬件信息,从而便于运
维人员监测系统当前的运行状态。其中,设备的资源使用信息可以包括cpu、gpu以及ram等硬件的使用信息,模型推理系统的模型使用信息则可以包括模型状态、模型推理时延等信息。
45.在本技术实施方式中的模型,可以指完成训练的深度学习模型,这些深度学习模型通过离线训练的方式完成训练后,可以部署到模型推理系统中,后续在调用推理引擎处理队列消息时,可以通过加载的深度学习模型对队列消息进行处理。
46.在一个实施方式中,模型推理系统中还可以包括模型管理模块,该模型管理模块可以对部署的各个深度学习模型进行管理。具体地,业务调度模块在所述队列消息为模型管理消息的情况下,可以将所述队列消息传递至所述模型管理模块。所述模型管理模块,用于识别所述队列消息中的模型管理类型,并针对目标模型,执行与所述模型管理类型相匹配的操作。
47.具体地,模型管理类型与对应执行的操作可以保持一致。例如,针对深度学习模型执行的操作可以包括加载、卸载、更新、加解密等操作。模型管理模块在接收到实际的模型管理消息后,可以执行与模型管理类型相匹配的操作。通过模型管理请求,可以灵活地对模型推理系统中部署的模型进行加载、卸载、更新、加解密等操作,从而提高了系统整体的便利性。
48.在一个实施方式中,模型推理系统中还可以包括服务配置模块。业务调度模块在所述队列消息为服务配置消息的情况下,可以将所述队列消息传递至所述服务配置模块。所述服务配置模块,可以根据所述服务配置消息,更新所述模型推理系统中的全局配置信息。
49.具体地,全局配置信息可以包括日志打印等级、中间结果保存策略以及推理引擎的使用优先级等。服务配置模块在更新全局配置信息时,可以实现以下一种或者多种功能:
50.设置日志打印等级,以使得所述模型推理系统打印出与所述日志打印等级相匹配的日志信息。
51.设置中间结果保存策略,所述中间结果保存策略用于限定在对所述队列消息进行处理的过程中,产生的中间结果的保存方式。
52.在所述当前设备支持多个推理引擎时,设置各个推理引擎的使用优先级。
53.举例来说,日志打印等级可以包括调试(debug)、正常(info)、警告(warning)、错误(error)四个等级,设置不同的等级,打印的信息量不同。例如,设置为debug时会把所有的日志进行输出,设置为info时会打印info、warning、error的日志信息,设置为warning时会打印warning、error日志信息,设置为error只打印error信息。
54.中间结果是指在前处理、模型推理和后处理的流程中产生的结果。在实际应用中,每个步骤的一些中间结果可以进行保存,是否保存中间结果,可以通过中间结果保存策略来实现。例如,该策略可以包括:是否保存原图、是否保存归一化后的图片、检测到目标后是否在原图中画出识别框等。
55.若当前设备中同时具备cpu和gpu,那么可以通过将gpu引擎的优先级设置为高于cpu引擎的优先级,这样,在当前设备中可以优先使用gpu引擎来处理队列消息,从而加速推理速度,并且针对不同的设备,可以选择合适的推理引擎。
56.本技术提供的技术方案,在模型推理系统中部署多个层级模块,各个层级模块之
间通过协同运作,可以处理外部请求对应的队列消息。通过层级模块的方式进行部署,可以降低整个系统的耦合度,并可以方便地对出现问题的组件进行定位。同时,在模型推理系统中可以部署多个不同的推理引擎,通过引擎适配模块可以选择与当前设备相匹配的目标推理引擎,从而使得模型推理系统可以适用于具备不同硬件资源的设备,进而提高了模型部署的适配性。
57.请参阅图2,本技术还提供一种应用于上述模型推理系统中的模型推理方法,所述方法包括:
58.s1:接收外部请求,并将所述外部请求对应的队列消息存放于消息队列中。
59.s2:从所述消息队列中读取所述队列消息,在所述队列消息为模型推理消息的情况下,从多个推理引擎中,调用与部署所述模型推理系统的当前设备相匹配的目标推理引擎。
60.s3:通过所述目标推理引擎对所述队列消息进行处理。
61.请参阅图3,本技术还提供一种模型推理设备,所述模型推理设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的模型推理方法。
62.本技术还提供一种计算机存储介质,所述计算机存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现上述的模型推理方法。
63.在本技术中,处理器可以为中央处理器(central processing unit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
64.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
65.存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
66.本领域技术人员可以理解,实现上述实施方式方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施方式的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
67.虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发
明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1