面向流式数据的机器学习模型在线服务部署方法及系统与流程

文档序号:33396012发布日期:2023-03-08 13:28阅读:117来源:国知局
面向流式数据的机器学习模型在线服务部署方法及系统与流程

1.本发明涉及机器学习模型部署技术领域,具体涉及一种面向流式数据的机器学习模型在线服务部署方法及系统。


背景技术:

2.机器学习正得到越来越广泛的应用和部署,用易用、高效、便捷的方式使用机器学习模型,构建具有企业应用价值的模型服务,才能完成机器学习应用生命周期的闭环。业界常见的机器学习框架有tensorflow、pytorch等,通常都提供离线训练和相应的模型服务化的解决方案;以http或者grpc接口对外提供服务,模型在线服务当前是以批处理方式提供的,用户发送批量请求数据到模型服务,模型服务进行预测并将结果发送给客户端,主要侧重于使用静态模型和历史静态数据进行训练并提供预测;比如用户在浏览网站时,可以根据用户历史行为数据来推送新闻。
3.在大多数实际用例中,预测结果或效果在移动应用程序中可用或显示在网页上后,用户才能继续后续操作,这使得实时机器学习越来越受到用例的关注;例如使用编码为特征的近期会话活动的实时推荐模型、音乐会门票预订/拼车应用程序中使用的激增价格预测算法等。实时机器学习处理的是流式数据,处理流数据的难度更大,因为数据量没有限定,而且数据输入的比率和速度也会变化,传统的批处理处理方式显然不能满足这种动态实时数据处理的需求。
4.数据的批处理,可以理解为一系列相关的任务按顺序或并行的,一个接一个地执行,批处理的输入是在一段时间内收集好的数据。大部分情况下,批处理的输出数据和输入数据都是有边界数据。随着互联网的飞速发展,各种信息正在爆炸性增长,持续生成动态新数据,批处理的模型部署方式存在数据重复传输、处理速度慢、响应时间长、无法进行实时预测的问题。批量预测会降低用户体验,但不会导致灾难性的后果,比如广告排序、twitter 的热门趋势标签排序、facebook 的新闻订阅排序、到达时间估计等等;但,存在一些应用如果没有在线预测会出现灾难性的后果,甚至变得毫无作用,比如高频交易、自动驾驶汽车、语音助手、手机的人脸 / 指纹解锁、老年人跌倒检测、欺诈检测等。对于欺诈交易,若能达到实时检测的效果,就可以直接防止事件发生。批处理对不需要实时分析结果的场景,是一个很好的选择;特别是业务逻辑十分复杂,数据量大的时候,更容易从数据中挖掘到有用的信息。因此,当应用的实时分析处理有要求的情况下,或者数据传输的结束时间、数据量无法确定的情况下,就需要采用流处理的架构来完成这件事情。


技术实现要素:

5.本发明目的在于提供一种面向流式数据的机器学习模型在线服务部署方法及系统,通过构建分布式服务部署架构、开发带有流技术的实时处理通道,实现了对流式数据的近实时的处理能力,并且能处理大批量的数据,克服现有机器学习模型在线服务部署方法处理延时性强,计算性能较低等缺点。
6.为达成上述目的,本发明提出如下技术方案:一种面向流式数据的机器学习模型在线服务部署方法,包括:构建面向流式数据的机器学习模型在线服务框架,包括统一的模型在线服务对外api接口、流式数据实时处理通道和分布式模型预测服务;其中,所述流式数据实时处理通道包括grpc服务集群和消息队列服务;所述分布式模型预测服务包括若干具有模型预测功能的机器学习模型;所述grpc服务集群包括若干grpc服务端节点;接收来自于各应用客户端的连接请求,利用grpc双向流建立各应用客户端与grpc服务集群内各grpc服务端节点的双向通信连接;grpc服务集群内各grpc服务端节点持续接收来自于各应用客户端的流式请求数据,并顺序存储至消息队列服务中;监听消息队列服务,在接收到新的请求数据时在分布式模型预测服务中选择对应的机器学习模型进行模型预测,并将预测结果写入消息队列服务中;监听消息队列服务,在接收到新的预测结果时通过统一的模型在线服务对外api接口将预测结果实时推送至与对应请求的应用客户端。
7.进一步的,所述统一的模型在线服务对外api接口由web api网关提供;所述grpc服务集群内grpc服务端节点与应用客户端保持可双向通信的长连接,用于接收流式数据请求并缓存至消息队列服务、监听消息队列服务获取预测结果后异步实时推送至应用客户端;所述消息队列服务包括请求消息队列和回复消息队列,所述请求消息队列用于缓存流式请求数据,所述回复消息队列用于缓存预测结果。
8.进一步的,所述应用客户端即grpc客户端,所述grpc服务集群内各grpc服务端节点注册服务信息至web api网关;当grpc客户端发起一次grpc请求时,与所述grpc服务端节点建立双向通信连接并交互的过程如下:接收grpc客户端的grpc请求并判断当前可用的grpc服务端节点;根据预设的负载均衡策略选择可连接的grpc 服务端节点,并将节点信息发送给grpc客户端,以便grpc客户端根据节点信息建立与grpc 服务端节点的双向通信连接;对与grpc 服务端节点双向通信连接的grpc客户端分配一具有唯一性的客户端id,以便grpc 服务端节点接收对应客户端id的grpc客户端发送的流式请求数据,实现grpc 服务端节点和grpc客户端的交互。
9.进一步的,所述grpc服务端节点接收流式请求数据并顺序存储至消息队列服务中的具体过程为:grpc服务端根据接收流式请求数据的时间顺序,生成各流式请求数据对应的请求id;依次发送附加有请求id的各流式请求数据至以客户端id为标识的请求消息队列中;其中,流式请求数据包括模型输入数据、预测应用的机器学习模型、模型预测参数。
10.进一步的,所述监听消息队列服务至将预测结果写入消息队列服务中的具体过程为:监听请求消息队列,并在接收到新的流式请求数据时根据应用场景基于不同窗口
模式将无边界数据集切分为选定机器学习模型对应处理的数据集;将切分后的数据集输入至机器学习模型,获得预测结果;写入预测结果至以客户端id为标识的回复消息队列中,并在预测结果中添加与流式请求数据对应的请求id,以便在预测结果无序的情况下重组预测结果。
11.本发明另一技术方案在于公开一种面向流式数据的机器学习模型在线服务部署系统,该系统包括:构建模块,用于构建面向流式数据的机器学习模型在线服务框架,包括统一的模型在线服务对外api接口、流式数据实时处理通道和分布式模型预测服务;其中,所述流式数据实时处理通道包括grpc服务集群和消息队列服务;所述分布式模型预测服务包括若干具有模型预测功能的机器学习模型;所述grpc服务集群包括若干grpc服务端节点;第一接收模块,用于接收来自于各应用客户端的连接请求,利用grpc双向流建立各应用客户端与grpc服务集群内各grpc服务端节点的双向通信连接;第二接收模块,用于grpc服务集群内各grpc服务端节点持续接收来自于各应用客户端的流式请求数据,并顺序存储至消息队列服务中;第一监听模块,用于监听消息队列服务,在接收到新的请求数据时在分布式模型预测服务中选择对应的机器学习模型进行模型预测,并将预测结果写入消息队列服务中;第二监听模块,用于监听消息队列服务,在接收到新的预测结果时通过统一的模型在线服务对外api接口将预测结果实时推送至与对应请求的应用客户端。
12.进一步的,所述面向流式数据的机器学习模型在线服务框架的统一的模型在线服务对外api接口由web api网关提供;所述grpc服务集群内grpc服务端节点与应用客户端保持可双向通信的长连接,用于接收流式数据请求并缓存至消息队列服务、监听消息队列服务获取预测结果后异步实时推送至应用客户端;所述消息队列服务包括请求消息队列和回复消息队列,所述请求消息队列用于缓存流式请求数据,所述回复消息队列用于缓存预测结果。
13.进一步的,所述第一接收模块实现建立各应用客户端与grpc服务集群的双向通信连接的执行单元包括:接收判断单元,用于接收grpc客户端发起的grpc请求并判断当前可用的grpc服务端节点;其中,grpc客户端即所述应用客户端,所述grpc服务集群内各grpc服务端节点注册服务信息至web api网关;选择单元,用于根据预设的负载均衡策略选择可连接的grpc 服务端节点,并将节点信息发送给grpc客户端,以便grpc客户端根据节点信息建立与grpc 服务端节点的双向通信连接;分配交互单元,用于对与grpc 服务端节点双向通信连接的grpc客户端分配一具有唯一性的客户端id,以便grpc 服务端节点接收对应客户端id的grpc客户端发送的流式请求数据,实现grpc 服务端节点和grpc客户端的交互。
14.进一步的,所述第二接收模块通过grpc服务端节点接收流式请求数据并顺序存储至消息队列服务中的具体执行单元包括:生成单元,用于grpc服务端节点根据接收流式请求数据的时间顺序,生成各流式
请求数据对应的请求id;发送单元,用于依次发送附加有请求id的各流式请求数据至以客户端id为标识的请求消息队列中;其中,流式请求数据包括模型输入数据、预测应用的机器学习模型、模型预测参数。
15.进一步的,所述第一监听模块监听消息队列服务,并最终将预测结果写入消息队列服务中的具体执行单元包括:第一监听单元,用于监听请求消息队列,并在接收到新的流式请求数据时根据应用场景基于不同窗口模式将无边界数据集切分为选定机器学习模型对应处理的数据集;模型预测单元,用于将切分后的数据集输入至机器学习模型,获得预测结果;写入单元,用于写入预测结果至以客户端id为标识的回复消息队列中,并在预测结果中添加与流式请求数据对应的请求id,以便在预测结果无序的情况下重组预测结果。
16.由以上技术方案可知,本发明的技术方案获得了如下有益效果:本发明公开的面向流式数据的机器学习模型在线服务部署方法及系统,其方法包括:构建面向流式数据的机器学习模型在线服务框架,包括统一的模型在线服务对外api接口、流式数据实时处理通道和分布式模型预测服务;其中,流式数据实时处理通道包括grpc服务集群和消息队列服务,分布式模型预测服务包括若干机器学习模型;接收应用客户端的连接请求,根据grpc双向流建立应用客户端与grpc服务集群内各grpc服务端节点的双向通信连接;grpc服务集群内各grpc服务端节点接收流式请求数据并存储至消息队列服务中;监听消息队列服务,在接收到新的流式请求数据时选择对应的机器学习模型进行模型预测,并将预测结果写入消息队列服务中,以便通过统一的模型在线服务对外api接口将预测结果实时推送至应用客户端。
17.本发明通过上述分布式服务部署架构,实现了对流式数据的近实时的处理能力,并且能处理大批量的数据,具体优势包括:1)将在线模型服务由批量预测转换为流处理实时预测的方式,有效降低处理延迟;通过开发带有流技术的实时处理通道,使用消息队列缓存事件数据,模型服务监听存储在消息队列中的事件数据,实时预测将结果写回消息队列,然后响应用户,充分实现方法的实时特性;实时特性确保数据新鲜,并使模型能够响应最新的变化。
18.2)业务中海量的无限数据集越来越普遍,本方法中使用为无限数据流处理而设计的系统处理数据,将输入数据根据应用场景分配到特定大小的窗口中,然后将这些窗口中的每一个作为单独的有限数据集进行处理,大大提升数据处理效率,减少处理延迟。
19.3)本发明的面向流式数据的机器学习模型在线服务框架采用了支持模型计算负载均衡、可平行扩展的架构设计,有效应对不断增长的流式数据和模型处理能力,随着时间的推移,能均匀地分配计算能力,计算性能高。
20.应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只要在这样的构思不相互矛盾的情况下都可以被视为本公开的发明主题的一部分。
21.结合附图从下面的描述中可以更加全面地理解本发明教导的前述和其他方面、实施例和特征。本发明的其他附加方面例如示例性实施方式的特征和/或有益效果将在下面的描述中显见,或通过根据本发明教导的具体实施方式的实践中得知。
附图说明
22.附图不表示按照真实参照物比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的实施例,其中:图 1 为本发明面向流式数据的机器学习模型在线服务框架示意图;图 2 为本发明模型对外api实现grpc服务端的负载均衡示意图;图 3 为本发明grpc服务端对流式请求数据的预处理和缓存处理示意图;图 4 为本发明分布式模型预测服务订阅流式请求数据的示意图;图 5 为本发明分布式模型预测服务将预测结果写入到消息队列的示意图;图 6 为本发明预测结果推送到应用客户端的示意图;图7为本发明面向流式数据的机器学习模型在线服务部署方法流程图。
具体实施方式
23.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。
24.本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样, 除非上下文清楚地指明其它情况,否则单数形式的“一个”“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现在“包括”或者“包含”前面的元件或者物件涵盖出现在“包括”或者“包含”后面列举的特征、整体、步骤、操作、元素和/或组件, 并不排除一个或多个其它特征、整体、步骤、 操作、元素、组件和/或其集合的存在或添加。
25.基于现有模型在线服务部署方法多采用数据批处理的方式进行数据处理,该方式虽然可以批量完成数据处理,但是一方面处理的数据多为有边界的数据、无法对无边界数据进行处理,另一方面处理的效率不高、且处理具有延迟性、无法进行实时预测;采用流处理的方式能有效解决现有数据批处理存在的不足。本发明基于流式数据的特点,提出一种面向流式数据的机器学习模型在线服务部署方法及系统,其采用分布式架构实现模型服务、web服务的解耦和互相的依赖,并开发带有流技术的实时处理通道,实现流式数据的实时机器学习预测,提供更实时的数据分析能力,以及实现服务的高可用性。
26.下面结合附图所示的具体实施例,对本发明公开的面向流式数据的机器学习模型在线服务部署方法及系统作进一步具体介绍。
27.图7所示的实施例公开了面向流式数据的机器学习模型在线服务部署方法的流程,该流程具体包括如下步骤:步骤s102,构建面向流式数据的机器学习模型在线服务框架,包括统一的模型在线服务对外api接口、流式数据实时处理通道和分布式模型预测服务;其中,所述流式数据
实时处理通道包括grpc服务集群和消息队列服务,所述分布式模型预测服务包括若干具有模型预测功能的机器学习模型;所述grpc服务集群包括若干grpc服务端节点;实施中,该在线服务框架实现了流式数据的持续传输、实时的机器学习分析。具体如图1所示,统一的模型在线服务对外api接口由web api网关提供,能降低应用客户端与服务端的交互复杂度,并可统一做切面任务和服务端的负载均衡。grpc服务集群是将多个grpc服务端节点集中起来一起提供同一种服务,可以提升服务整体计算能力,在应用客户端看来就像是只有一个服务节点;grpc服务端节点与应用客户端保持可双向通信的长连接,用于接收流式数据请求并缓存至消息队列服务、监听消息队列服务获取预测结果后异步实时推送至应用客户端;消息队列服务用于缓存流式请求数据和分析结果、实现请求的异步处理和数据高峰期的削峰处理,包括请求消息队列和回复消息队列,其中,请求消息队列用于缓存流式请求数据,回复消息队列用于缓存预测结果。本在线服务框架基于消息队列服务实现了多个机器学习模型之间预测请求的负载均衡和水平扩展,进而让框架具有低延迟、可扩展、高吞吐的特性。
28.步骤s104,接收来自于各应用客户端的连接请求,利用grpc双向流建立各应用客户端与grpc服务集群内各grpc服务端节点的双向通信连接;在图2示出的均衡负载示意图中,应用客户端即grpc客户端,本方案中应用客户端是实现了grpc协议的客户端,应用客户端与grpc服务端节点是通过grpc协议进行通信;建立连接时,grpc客户端向grpc服务集群内各grpc服务端节点发起连接请求。具体的,grpc服务集群内所有的grpc服务端节点预先注册服务信息到web api网关中,然后,当grpc客户端发起一次grpc请求时,实现如下流程,即:接收grpc客户端的grpc请求并判断当前可用的grpc服务端节点;根据预设的负载均衡策略选择可连接的grpc 服务端节点,并将节点信息发送给grpc客户端,以便grpc客户端根据节点信息建立与grpc 服务端节点的双向通信连接;对与grpc 服务端节点双向通信连接的grpc客户端分配一具有唯一性的客户端id,以便grpc 服务端节点接收对应客户端id的grpc客户端发送的流式请求数据,实现grpc 服务端节点和grpc客户端的交互;如图2所示,双向通信时grpc 服务端节点将客户端的信息缓存直至连接断开。
29.其中,当前可用的grpc服务端节点通过访问web api网关获得,具体为,grpc服务端节点启动时注册其服务信息,包括ip和端口,到web api网关,web api网关定时发送各个grpc服务端节点的健康检查心跳,grpc客户端根据返回的grpc服务端节点状态判断这个服务端节点是否可用。另外,不同的负载均衡策略下,选择grpc服务端节点的方式不一样。例如,在轮询策略下,web api网关会将收到的用于连接的grpc请求循环分配到grpc服务集群中的每个grpc 服务端节点;在随机策略下,web api网关会将收到的用于连接的grpc请求从grpc服务集群列表中随机选择一个grpc 服务端节点,然后该将连接请求转发到该grpc 服务端节点。
30.步骤s106,grpc服务集群内各grpc服务端节点持续接收来自于各应用客户端的流式请求数据,并顺序存储至消息队列服务中;应用客户端发起的流式请求数据根据其与grpc 服务端节点建立的双向通信连接,发送到对应的grpc 服务端节点,grpc 服务端节点对接收的流式请求数据作进一步的处理。本实施例中,处理流程如图3所示,grpc服务端节点会为每个grpc客户端分配一个线
程或者协程处理其请求,接收到grpc客户端的请求数据之后依次写入到相应的请求消息队列中;具体的,grpc服务端节点会先根据接收流式请求数据的时间顺序,生成各流式请求数据对应的请求id;然后,grpc服务端节点依次发送附加有请求id的各流式请求数据至以客户端id为标识的请求消息队列中;其中,流式请求数据包括模型输入数据、预测应用的机器学习模型、模型预测参数等三类信息,并且在一个grpc客户端与grpc 服务端节点构成的双向通信链路中,除模型输入数据必须在每一个流式请求数据中记载,预测应用的机器学习模型和模型预测参数可以只在依据请求先后顺序的确定的第一条流式请求数据中标明,后续的流式请求数据均采用相同的机器学习模型和模型预测参数。
31.可选的,当请求消息队列仅有一队时,grpc服务端节点在前期生成请求id后,将同时附加请求id和客户端id的各流式请求数据发送到消息队列,以便后续对请求处理后的结果反馈到对应的应用客户端。
32.步骤s108,监听消息队列服务,在接收到新的流式请求数据时在分布式模型预测服务中选择对应的机器学习模型进行模型预测,并将预测结果写入消息队列服务中;由分布式模型预测服务执行监听工作,具体的,分布式模型预测服务中的所有模型预测服务以组订阅的方式订阅请求消息队列和回复消息队列中的数据。对于流式请求数据,监听消息队列服务至将预测结果写入消息队列服务中的具体过程为:监听请求消息队列,并在接收到新的流式请求数据时根据应用场景基于不同窗口模式将无边界数据集切分为选定机器学习模型对应处理的数据集;将切分后的数据集输入至机器学习模型,获得预测结果。实施如图4所示,分布式模型预测服务每订阅收到一个流式请求数据,会解析流式请求数据中的内容,判断使用的机器学习模型以及如何获取模型输入数据、如何进行无边界数据集的截取(包括根据应用场景确定的窗口模式、窗口大小等),从而获取机器学习模型和相应的输入数据,进行模型预测。
33.完成模型预测并获得预测结果后,写入预测结果至以客户端id为标识的回复消息队列中,并在预测结果中添加与流式请求数据对应的请求id,以便在预测结果无序的情况下重组预测结果。如图5所示,分布式模型预测服务在处理流式请求数据时可以获取到数据中的客户端id和请求id,依据此将预测结果写入到相应的客户端id的回复消息队列中。
34.步骤s110,监听消息队列服务,在接收到新的预测结果时通过统一的模型在线服务对外api接口将预测结果实时推送至与对应请求的应用客户端。
35.分布式模型预测服务进一步监听回复消息队列中的预测结果,在接收到新的预测结果时将预测结果实时推送到对应的应用客户端。如图6所示,grpc服务端节点会监听本节点处理的相应客户端的回复消息队列,在收到预测结果之后先根据请求id进行排序,然后将预测结果按照顺序推送给应用客户端。
36.本方案中,在grpc 服务端节点接收对应的grpc客户端发送的流式请求数据后,使用唯一的客户端id对请求数据进行标识,模型服务处理完成之后,对应请求的预测结果同样使用此客户端id进行标识,如此,grpc服务端节点接收到预测结果才能将其推送到相应的grpc客户端。
37.上述实施例公开的面向流式数据的机器学习模型在线服务部署方法相较于现有的模型在线服务部署方式,通过开发带有流技术的实时处理通道,实现处理数据更快速、实时的特点,尤其是对于流式数据而言,通过消息队列服务可以避免数据的重复上传,避免流
量的浪费,充分实现流式数据的实时机器学习;本方法中的模型部署方式不仅可以实现模型服务、web服务的解耦和互相的依赖,而且方案中的服务部署可以水平扩展,进而支撑更大的数据量,提供更实时的数据分析能力,以及实现服务的高可用性。
38.在本发明的实施例中,还提供一种电子设备,该设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器运行所述计算机程序时实现上述实施例公开的面向流式数据的机器学习模型在线服务部署方法。
39.上述程序可以运行在处理器中,或者也可以存储在存储器中,即计算机可读介质中,计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (pram)、静态随机存取存储器 (sram)、动态随机存取存储器 (dram)、其他类型的随机存取存储器 (ram)、只读存储器 (rom)、电可擦除可编程只读存储器 (eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器 (cd-rom)、数字多功能光盘 (dvd) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体,如调制的数据信号和载波。
40.这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤,对应于不同的方法步骤可以通过不同的模块来实现。
41.在本实施例中,就提供了这样一种装置或系统,该系统可以称为一种面向流式数据的机器学习模型在线服务部署系统,该系统包括:构建模块,用于构建面向流式数据的机器学习模型在线服务框架,包括统一的模型在线服务对外api接口、流式数据实时处理通道和分布式模型预测服务;其中,所述流式数据实时处理通道包括grpc服务集群和消息队列服务;所述分布式模型预测服务包括若干具有模型预测功能的机器学习模型;所述grpc服务集群包括若干grpc服务端节点;第一接收模块,用于接收来自于各应用客户端的连接请求,利用grpc双向流建立各应用客户端与grpc服务集群内各grpc服务端节点的双向通信连接;第二接收模块,用于grpc服务集群内各grpc服务端节点持续接收来自于各应用客户端的流式请求数据,并顺序存储至消息队列服务中;第一监听模块,用于监听消息队列服务,在接收到新的流式请求数据时在分布式模型预测服务中选择对应的机器学习模型进行模型预测,并将预测结果写入消息队列服务中;第二监听模块,用于监听消息队列服务,在接收到新的预测结果时通过统一的模型在线服务对外api接口将预测结果实时推送至与对应请求的应用客户端。
42.该系统用于实现上述实施例公开的面向流式数据的机器学习模型在线服务部署方法的步骤,已经进行说明的,在此不再赘述。
43.例如,构建模块构建的面向流式数据的机器学习模型在线服务框架的统一的模型在线服务对外api接口由web api网关提供;流式数据实时处理通道的grpc服务集群内grpc服务端节点与应用客户端保持可双向通信的长连接,用于接收流式数据请求并缓存至消息队列服务、监听消息队列服务获取预测结果后异步实时推送至应用客户端;流式数据实时处理通道的消息队列服务包括请求消息队列和回复消息队列,所述请求消息队列用于缓存
流式请求数据,所述回复消息队列用于缓存预测结果。
44.又例如,第一接收模块实现建立各应用客户端与grpc服务集群的双向通信连接的执行单元包括:接收判断单元,用于接收grpc客户端发起的grpc请求并判断当前可用的grpc服务端节点;其中,grpc客户端即所述应用客户端,所述grpc服务集群内各grpc服务端节点注册服务信息至web api网关;选择单元,用于根据预设的负载均衡策略选择可连接的grpc 服务端节点,并将节点信息发送给grpc客户端,以便grpc客户端根据节点信息建立与grpc 服务端节点的双向通信连接;分配交互单元,用于对与grpc 服务端节点双向通信连接的grpc客户端分配一具有唯一性的客户端id,以便grpc 服务端节点接收对应客户端id的grpc客户端发送的流式请求数据,实现grpc 服务端节点和grpc客户端的交互。
45.又例如,第二接收模块通过grpc服务端节点接收流式请求数据并顺序存储至消息队列服务中的具体执行单元包括:生成单元,用于grpc服务端节点根据接收流式请求数据的时间顺序,生成各流式请求数据对应的请求id;发送单元,用于依次发送附加有请求id的各流式请求数据至以客户端id为标识的请求消息队列中;其中,流式请求数据包括模型输入数据、预测应用的机器学习模型、模型预测参数。
46.又例如,第一监听模块监听消息队列服务,并最终将预测结果写入消息队列服务中的具体执行单元包括:第一监听单元,用于监听请求消息队列,并在接收到新的流式请求数据时根据应用场景基于不同窗口模式将无边界数据集切分为选定机器学习模型对应处理的数据集;模型预测单元,用于将切分后的数据集输入至机器学习模型,获得预测结果;写入单元,用于写入预测结果至以客户端id为标识的回复消息队列中,并在预测结果中添加与流式请求数据对应的请求id,以便在预测结果无序的情况下重组预测结果。
47.又例如,第二监听模块监听消息队列服务,并最终将预测结果实时推送至与对应请求的应用客户端的执行单元包括:第二监听单元,用于监听回复消息队列;推送单元,用于在监听到回复消息队列接收到新的预测结果时将预测结果实时推送到与回复消息队列标识的客户端id对应的应用客户端。
48.本发明公开的方法及系统实现面向流式数据的机器学习模型在线服务框架对外提供异步web接口,实时接收、缓存和处理数据、发送分析结果,避免客户端的无效堵塞;本部署方案中利用分布式服务部署架构,有效解决现有机器学习模型在线服务部署方法处理延时性强、计算性能较低等问题,实现了对流式数据的近实时的处理能力,并且能处理大批量的数据。
49.虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1