一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

推理服务方法、系统、存储介质和电子设备与流程

2022-04-06 19:14:19 来源:中国专利 TAG:


1.本发明涉及大数据领域,特别涉及一种推理服务方法、系统、存储介质和电子设备。


背景技术:

2.常见的大数据平台均具备机器学习能力,机器学习产生的模型可以发布为对外的推理服务,即根据用户的输入,使用推理服务来计算得到预测的结果。
3.当前常用的推理服务技术是使用容器技术,一般是启动单一的容器,在用户提交一个请求时,系统通过推理服务计算后返回一个推理结果。这种方式在面对大量推理需求时,存在并发度不够、响应时间长、无法及时返回预测结果的缺点。


技术实现要素:

4.鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的推理服务方法、系统、存储介质和电子设备。
5.第一方面,一种推理服务方法,应用于一种推理服务系统,所述推理服务系统包括主程序单元、m个消息队列容器和m
×
n个任务执行容器,其中,每个所述消息队列容器均与n个所述任务执行容器通信连接,不同的所述消息队列容器连接的所述任务执行容器不同,所述n和所述m为大于1的整数;
6.所述推理服务方法包括:
7.所述主程序单元获得用户输入的原始待预测数据;
8.所述主程序单元将所述原始待预测数据拆分成多个数据块;
9.所述主程序单元将所述多个数据块分别发送至相应的所述消息队列容器,以使得各相应的所述消息队列容器所连接的n个所述任务执行容器根据预先建立的预测模型对所述消息队列容器中的数据块进行预测,从而得到相应的预测结果,其中,一个所述数据块对应一个所述消息队列容器,每个所述数据块在相应的所述消息队列容器中的排序均相同。
10.结合第一方面,在某些可选的实施方式中,在所述主程序单元获得用户输入的原始待预测数据之后,所述方法还包括:
11.所述主程序单元判断所述原始待预测数据是否具备预设特征组中的全部特征,其中,所述预设特征组中的各所述特征为所述预测模型进行预测所需要的特征;
12.若是,则执行所述将所述原始待预测数据拆分成多个数据块的步骤;
13.若不是,则发出相应的报错告警,并结束本次预测过程。
14.结合第一方面,在某些可选的实施方式中,所述主程序单元将所述原始待预测数据拆分成多个数据块,包括:
15.所述主程序单元将所述原始待预测数据拆分成m个所述数据块。
16.结合上一个实施方式,在某些可选的实施方式中,所述主程序单元将所述多个数据块分别发送至相应的所述消息队列容器,以使得各相应的所述消息队列容器所连接的n
个所述任务执行容器根据预先建立的预测模型对所述消息队列容器中的数据块进行预测,从而得到相应的预测结果,包括:
17.将n个所述数据块分别随机发送至相应的n个所述消息队列容器,以使得各相应的所述消息队列容器所连接的n个所述任务执行容器根据预先建立的预测模型对所述消息队列容器中的数据块进行预测,从而得到相应的预测结果。
18.结合上一个实施方式,在某些可选的实施方式中,所述将n个所述数据块分别随机发送至相应的n个所述消息队列容器,以使得各相应的所述消息队列容器所连接的n个所述任务执行容器根据预先建立的预测模型对所述消息队列容器中的数据块进行预测,从而得到相应的预测结果,包括:
19.将n个所述数据块分别随机发送至相应的n个所述消息队列容器,以使得各相应的所述消息队列容器所连接的n个所述任务执行容器分别均执行方式一;
20.所述方式一包括:n个所述任务执行容器并行读取所述预测模型的模型文件和运行环境文件,从而加载所述预测模型;从所述消息队列容器获取相应的所述数据块并输入至所述预测模型,从而获得所述预测模型针对所述数据块输出的数据块预测结果。
21.结合上一个实施方式,在某些可选的实施方式中,所述方式一还包括:
22.各所述任务执行容器均将得到的所述数据块预测结果存储至存储单元。
23.结合上一个实施方式,在某些可选的实施方式中,所述方法还包括:
24.所述主程序单元根据各所述任务执行容器得到的所述数据块预测结果,确定针对所述原始待预测数据的预测结果。
25.第二方面,一种推理服务系统,包括:主程序单元、m个消息队列容器和m
×
n个任务执行容器,其中,每个所述消息队列容器均与n个所述任务执行容器通信连接,不同的所述消息队列容器连接的所述任务执行容器不同,所述n和所述m为大于1的整数;
26.所述主程序单元包括:原始数据单元、数据拆分单元和数据发送单元;
27.所述原始数据单元,用于获得用户输入的原始待预测数据;
28.所述数据拆分单元,用于将所述原始待预测数据拆分成多个数据块;
29.所述数据发送单元,用于将所述多个数据块分别发送至相应的所述消息队列容器,以使得各相应的所述消息队列容器所连接的n个所述任务执行容器分别根据预先建立的预测模型,以对相应的所述数据块进行预测,从而得到相应的预测结果,其中,每个所述数据块在相应的所述消息队列容器中的排序均相同。
30.第三方面,一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一项所述的推理服务方法。
31.第四方面,一种电子设备,所述电子设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述任一项所述的推理服务方法。
32.借由上述技术方案,本发明提供的推理服务方法、系统、存储介质和电子设备,可以通过所述主程序单元获得用户输入的原始待预测数据;所述主程序单元将所述原始待预测数据拆分成多个数据块;所述主程序单元将所述多个数据块分别发送至相应的所述消息队列容器,以使得各相应的所述消息队列容器所连接的n个所述任务执行容器根据预先建
立的预测模型对所述消息队列容器中的数据块进行预测,从而得到相应的预测结果,其中,一个所述数据块对应一个所述消息队列容器,每个所述数据块在相应的所述消息队列容器中的排序均相同。由此可以看出,本发明在面对大量推理需求时,可以并发多个任务执行容器,且每个任务执行容器只需针对一个数据块进行预测,效率较高,响应较快、可以及时返回预测结果。
33.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
34.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
35.图1示出了本发明提供的一种推理服务方法的流程图;
36.图2示出了本发明提供的一种推理服务系统的结构示意图;
37.图3示出了本发明提供的一种电子设备的结构示意图。
具体实施方式
38.常见的大数据平台均具备机器学习能力,机器学习产生的模型可以发布为对外的推理服务,即根据用户的输入,使用推理服务来计算得到预测的结果。
39.当前机器学习可以让计算机根据现有的数据来预测未来的结果和趋势,其常见过程为:数据获取与分析,数据预处理,特征工程,模型训练与调优,模型评估等。机器学习得到的结果是一个可用且有效的模型,用户在生产上部署该模型并将其发布为推理服务,常见的形式为输入一批观察数据进行预测。预测结果存储为文件形式或者放入数据库中。
40.从整体功能模块来讲,常见的推理服务系统一般包括:多框架模型模块,用于支持多种框架导出的模型;自定义镜像模块,用于获取用户发送的镜像文件,根据镜像文件进行部署,并执行推理服务,其中,镜像文件是用户将完成训练的模型和运行环境进行封装而得到的文件。将训练完成的模型和运行环境以镜像形式进行封装,提交到推理服务系统,推理服务系统通过参数传递形式进行线上推理服务的部署,不需要转换模型类型,也无需顾虑模型兼容性即可进行推理任务,提高了推理服务运行的效率。
41.经本方案发明人研究发现,推理服务常见的技术实现方案一般是启动单一的容器,在用户提交一个请求时,系统通过推理服务计算后返回一个预测结果。具体而言:
42.每当用户在页面创建模型的预测服务时,后台会创建一个pod容器来启动封装服务,封装服务启动时会加载模型文件。
43.当接收到用户在线预测的请求时,解析输入的数据(如json)并将数据加载(如dataframe)。
44.将加载数据传递给模型文件中的predict预测函数进行预测,将预测结果封装为相应格式(如json)返回用户。
45.这种方式在面对大量推理需求时,存在并发度不够、响应时间长、无法及时返回预
测结果的缺点。
46.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
47.本发明提供了一种推理服务方法,应用于一种推理服务系统,所述推理服务系统包括主程序单元、m个消息队列容器和m
×
n个任务执行容器,其中,每个所述消息队列容器均与n个所述任务执行容器通信连接,不同的所述消息队列容器连接的所述任务执行容器不同,所述n和所述m为大于1的整数;
48.可选的,本发明的实现方式可以是采用broker消息队列的方式(例如构建m个消息队列容器),将用户输入的原始待预测数据交由消息队列容器处理,消息队列容器分发计算任务给任务执行容器,如每个消息队列容器对应n个任务执行容器,并发量达到了m
×
n。
49.可选的,关于“容器”的相关概念,例如消息队列容器和任务执行容器均是本领域的公知概念,具体请参见领域对于“容器”的相关解释,本发明对此不做过多描述。
50.可选的,每当用户在页面创建预测模型的推理服务时,后台可以根据用户指定的数量创建的相应的消息队列容器和任务执行容器,本发明对此不做限制。
51.可选的,m和n可以相等,也可以不相等,本发明对此不做限制。
52.可选的,本发明的消息队列容器的实现方式可以包括:rabbitmq和redis,另外也可以支持mongodb、sqlalchemy和memcached等,本发明对此不做限制。
53.如图1所示,所述推理服务方法包括:s100、s200和s300;
54.s100、所述主程序单元获得用户输入的原始待预测数据;
55.可选的,本发明对于原始待预测数据所包括的具体内容不做限制,可以根据实际的使用场景进行设定。因为,对机器学习而言:输入的数据应该是结构化的数据;数据应该具备预测的特征(需要程序预先设置)。例如预测房价,那么输入的数据可以包括房子的位置、面积、房间数量和建造时间等数据。
56.为此,本发明为了提高本方案的可靠性,可以在接收到用户输入的原始待预测数据,对原始待预测数据进行识别,以确定用户输入的原始待预测数据是否具备用于预测的条件。
57.例如,结合图1所示的实施方式,在某些可选的实施方式中,在所述s100之后,所述方法还包括:步骤1.1、步骤1.2和步骤1.3;
58.步骤1.1、所述主程序单元判断所述原始待预测数据是否具备预设特征组中的全部特征,其中,所述预设特征组中的各所述特征为所述预测模型进行预测所需要的特征;
59.即主程序单元可以判断用户输入的原始待预测数据是否携带有各特征对应的数据字段。
60.步骤1.2、若是,则执行所述将所述原始待预测数据拆分成多个数据块的步骤;
61.可选的,若是,则说明后续预测模型在进行预测时所需的全部特征在原始待预测数据均存在,则可以继续执行后续的s200和s300,以对原始待预测数据进行预测。
62.步骤1.3、若不是,则发出相应的报错告警,并结束本次预测过程。
63.可选的,若不是,则说明后续预测模型在进行预测时所需的全部特征在原始待预
测数据并未均存在,则可以不执行后续的s200和s300,并发出相应的报错告警,以结束本次预测过程。
64.s200、所述主程序单元将所述原始待预测数据拆分成多个数据块;
65.可选的,本发明对于将数据进行拆分的方式不做限制,任何可行的方式均属于本发明的保护范围。例如,结合图1所示的实施方式,在某些可选的实施方式中,所述s200包括:
66.所述主程序单元将所述原始待预测数据拆分成m个所述数据块。
67.即,根据消息队列容器所连接的所述任务执行容器的数量进行拆分,以使得后续可以确保每个所述消息队列容器均被发送一个数据块,本发明对此不做限制。
68.s300、所述主程序单元将所述多个数据块分别发送至相应的所述消息队列容器,以使得各相应的所述消息队列容器所连接的n个所述任务执行容器根据预先建立的预测模型对所述消息队列容器中的数据块进行预测,从而得到相应的预测结果,其中,一个所述数据块对应一个所述消息队列容器,每个所述数据块在相应的所述消息队列容器中的排序均相同。
69.可选的,主程序单元在将多个数据块分别发送至相应的所述消息队列容器时可以是随机发送的,也可以是按照固定的顺序进行发送,本发明对此不做限制。但是,针对同一条原始待预测数据拆分成的多个数据块而言,每个数据块在消息队列容器中的排序均相同。例如数据块1在消息队列容器1中的排序为第一个,则数据块2在消息队列容器2中的排序也为第一个,数据块3在消息队列容器3中的排序也为第一个,以次类推。
70.针对任一个消息队列容器,由n个所述任务执行容器并行对其里面的数据块进行处理效率较高。其中,在同一时刻,本发明可以是n个所述任务执行容器对该消息队列容器中的一个数据块进行处理,也可以是n个所述任务执行容器对该消息队列容器中的n个数据块进行处理(一个任务执行容器处理一个数据块)。无论哪种方式,均极大地提高了本发明对于数据的处理效率,本发明对此不做限制。
71.例如,结合上一个实施方式,在某些可选的实施方式中,所述s300包括:
72.将n个所述数据块分别随机发送至相应的n个所述消息队列容器,以使得各相应的所述消息队列容器所连接的n个所述任务执行容器根据预先建立的预测模型对所述消息队列容器中的数据块进行预测,从而得到相应的预测结果。
73.可选的,本发明所说的预测模型可以是预先经过训练的神经网络模型。本发明可以将模型文件和相应的运行环境文件通过镜像的方式部署在云端,以便于不同容器使用神经网络模型提供的推理服务进行预测。
74.例如,结合上一个实施方式,在某些可选的实施方式中,所述将n个所述数据块分别随机发送至相应的n个所述消息队列容器,以使得各相应的所述消息队列容器所连接的n个所述任务执行容器根据预先建立的预测模型对所述消息队列容器中的数据块进行预测,从而得到相应的预测结果,包括:
75.将n个所述数据块分别随机发送至相应的n个所述消息队列容器,以使得各相应的所述消息队列容器所连接的n个所述任务执行容器分别均执行方式一;
76.所述方式一包括:n个所述任务执行容器并行读取所述预测模型的模型文件和运行环境文件,从而加载所述预测模型;从所述消息队列容器获取相应的所述数据块并输入
至所述预测模型,从而获得所述预测模型针对所述数据块输出的数据块预测结果。
77.可选的,基于预测模型(神经网路模型)对数据块进行预测,属于本领域常用的手段,本发明对此不做过多描述,具体请参见本领域的相关说明。
78.可选的,为了对预测结果进行进一步地分析,可以将数据块预测结果存储至相应的存储单元。例如,结合上一个实施方式,在某些可选的实施方式中,所述方式一还包括:
79.各所述任务执行容器均将得到的所述数据块预测结果存储至存储单元。
80.可选的,本发明可以使用持久化的存储,例如rabbitmq、redis、mongodb和sqlalchemy等,本发明对此不做限制。
81.结合上一个实施方式,在某些可选的实施方式中,所述方法还包括:
82.所述主程序单元根据各所述任务执行容器得到的所述数据块预测结果,确定针对所述原始待预测数据的预测结果。
83.可选的,通过结合各个数据块的数据块预测结果,可以确定整个原始待预测数据的预测结果,本发明对此过程不做任何限制,任何可行的方式均属于本发明的保护范围。
84.可选的,任务执行容器可以每隔一定时间(如10秒)判断消息队列容器中是否有相应的数据块,如固定时间(如5分钟)内没有数据,则任务执行容器退出,退出前给消息队列容器发送断开连接信号,消息队列容器接收信号后也退出。
85.如图2所示,本发明提供了一种推理服务系统,包括:主程序单元100、m个消息队列容器200和m
×
n个任务执行容器300,其中,每个所述消息队列容器200均与n个所述任务执行容器300通信连接,不同的所述消息队列容器200连接的所述任务执行容器300不同,所述n和所述m为大于1的整数;
86.所述主程序单元100包括:原始数据单元110、数据拆分单元120和数据发送单元130;
87.所述原始数据单元110,用于获得用户输入的原始待预测数据;
88.所述数据拆分单元120,用于将所述原始待预测数据拆分成多个数据块;
89.所述数据发送单元130,用于将所述多个数据块分别发送至相应的所述消息队列容器200,以使得各相应的所述消息队列容器200所连接的n个所述任务执行容器300分别根据预先建立的预测模型,以对相应的所述数据块进行预测,从而得到相应的预测结果,其中,每个所述数据块在相应的所述消息队列容器200中的排序均相同。
90.可选的,图2中的消息队列容器2001、消息队列容器2002和消息队列容器200n等,均是消息队列容器200,仅是为了区别不同的容器,在末尾加上数字作为编号,对于任务执行容器300也同等理解。
91.结合图2所示的实施方式,在某些可选的实施方式中,所述主程序单元100还包括:特征判断单元、第一结果单元和第二结果单元;
92.特征判断单元,用于在所述主程序单元100获得用户输入的原始待预测数据之后,判断所述原始待预测数据是否具备预设特征组中的全部特征,其中,所述预设特征组中的各所述特征为所述预测模型进行预测所需要的特征;
93.若是,则触发第一结果单元,若不是,则触发第二结果单元;
94.第一结果单元,用于执行所述将所述原始待预测数据拆分成多个数据块的步骤;
95.第二结果单元,用于发出相应的报错告警,并结束本次预测过程。
96.结合图2所示的实施方式,在某些可选的实施方式中,数据拆分单元120包括:数据拆分子单元;
97.所述数据拆分子单元,用于将所述原始待预测数据拆分成m个所述数据块。
98.结合上一个实施方式,在某些可选的实施方式中,所述数据发送单元130,包括:第一数据发送子单元;
99.第一数据发送子单元,用于将n个所述数据块分别随机发送至相应的n个所述消息队列容器200,以使得各相应的所述消息队列容器200所连接的n个所述任务执行容器300根据预先建立的预测模型对所述消息队列容器200中的数据块进行预测,从而得到相应的预测结果。
100.结合上一个实施方式,在某些可选的实施方式中,所述第一数据发送子单元,包括:第二数据发送子单元;
101.第二数据发送子单元,用于将n个所述数据块分别随机发送至相应的n个所述消息队列容器200,以使得各相应的所述消息队列容器200所连接的n个所述任务执行容器300分别均执行方式一;
102.所述方式一包括:n个所述任务执行容器300并行读取所述预测模型的模型文件和运行环境文件,从而加载所述预测模型;从所述消息队列容器200获取相应的所述数据块并输入至所述预测模型,从而获得所述预测模型针对所述数据块输出的数据块预测结果。
103.结合上一个实施方式,在某些可选的实施方式中,所述第二数据发送子单元在执行方式一时,具体还包括:
104.各所述任务执行容器300均将得到的所述数据块预测结果存储至存储单元。
105.结合上一个实施方式,在某些可选的实施方式中,所述主程序单元100还包括:预测结果单元;
106.所述预测结果单元,用于根据各所述任务执行容器300得到的所述数据块预测结果,确定针对所述原始待预测数据的预测结果。
107.本发明提供了一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一项所述的推理服务方法。
108.如图3所示,本发明提供了一种电子设备70,所述电子设备70包括至少一个处理器701、以及与所述处理器701连接的至少一个存储器702、总线703;其中,所述处理器701、所述存储器702通过所述总线703完成相互间的通信;所述处理器701用于调用所述存储器702中的程序指令,以执行上述任一项所述的推理服务方法。
109.在本技术中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
110.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实
施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
111.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
112.以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献