在线预测系统、设备、方法及电子设备与流程

文档序号:22739561发布日期:2020-10-31 09:21阅读:182来源:国知局
在线预测系统、设备、方法及电子设备与流程

本申请涉及人工智能技术领域,具体而言,涉及一种在线预测系统、设备、方法及电子设备。



背景技术:

现有的机器学习框架大致包括训练和预测两部分功能,且大规模的框架着重分布式训练和预测。一方面,分布式批处理的架构适用于大数据量的离线计算,往往无法满足或者充分满足高并发、高可用的实时业务上的模型预测需求;特别是在硬件资源有限的小规模公司或者团队内,其已有资源不足以支持分布式集群的建设。另一方面,小公司或者团队内业务需求迭代速度较快,对模型的使用和更新频率较高,随着业务场景的种类与数量逐渐增加,使用模型种类也随之增加。现有的分布式架构中实现的模型预测在面对实际业务场景中对模型进行多变使用方式时,往往需要在原框架的基础上进行再开发,增加开发成本、维护成本等。



技术实现要素:

有鉴于此,本申请的目的在于提供一种在线预测系统、设备、方法及电子设备,能够在实现实时业务上的在线模型预测的同时,减少开发成本和维护成本。

根据本申请的一个方面,提供一种在线预测系统,包括:入口接入服务模块和模型服务模块,同一个模型服务模块中的服务器上配置有同一类型的预测模型,所述预测模型为预先训练好的模型;所述入口接入服务模块用于接收用户的预测请求,基于所述预测请求确定至少一个目标服务器,向各个所述目标服务器下发所述预测请求对应的预测指令;以及接收各个所述目标服务器基于所述预测指令反馈的预测子结果,基于各个所述预测子结果向所述用户反馈总预测结果;所述目标服务器用于接收所述入口接入服务模块下发的预测指令,应用其上的预测模型对所述预测指令进行处理,得到预测子结果,将所述预测子结果反馈给所述入口接入服务模块。

在一些实施例中,所述预测请求包括多个预测子请求和共有特征数据;每个所述预测子请求包括模型信息和私有特征数据;所述入口接入服务模块还用于:解析所述预测请求得到各个预测子请求;对于每个所述预测子请求,根据所述预测子请求中的模型信息确定所述预测子请求对应的请求类型,所述请求类型包括:单模型调用请求和混合顺序模型调用请求;其中,所述单模型调用请求为所述预测子请求的模型信息仅包含一种模型类型的请求;所述混合顺序模型调用请求为所述预测子请求的模型信息包含多种模型类型的请求;根据所述请求类型选择至少一个目标服务器,向各个所述目标服务器下发所述预测子请求对应的预测指令。

在一些实施例中,所述入口接入服务模块还用于:如果所述请求类型为单模型调用请求,将所述模型信息中的模型类型对应的模型服务模块确定所述预测子请求对应的目标模型服务模块,并从所述目标模型服务模块中选择目标服务器;根据所述预测子请求中的私有特征数据和所述共有特征数据生成预测指令;将所述预测指令下发给所述目标服务器。

在一些实施例中,所述入口接入服务模块还用于:如果所述请求类型为混合顺序模型调用请求,根据所述模型信息中的模型类型的顺序,依次从每个所述模型类型对应的模型服务模块选择目标服务器,得到顺序排列的目标服务器组;根据每个模型类型对应的私有特征数据和所述共有特征数据,生成目标服务器组中每个目标服务器的预测指令;将第一个模型类型对应的预测指令下发给所述目标服务器组中的第一目标服务器,接收所述第一目标服务器返回的第一预测子结果;按照所述目标服务器组中目标服务器的顺序,依次选择当前服务器,对于每个所述当前服务器,均将所述当前服务器的预测指令和所述当前服务器的上一个服务器的预测子结果下发给所述当前服务器,以使所述当前服务器返回预测子结果。

在一些实施例中,所述入口接入服务模块还用于:如果所述预测请求中存在批量子请求,将所述批量子请求对应的多个预测子请求进行合并;所述批量子请求指模型类型均相同的多个所述预测子请求;选择所述批量子请求对应的目标服务器;根据合并后的私有特征数据和所述共有特征数据生成预测指令;将所述预测指令下发给所述批量子请求对应的目标服务器。

在一些实施例中,所述服务器还用于:从所述预测指令中解析出模型信息,所述模型信息包括模型名称和模型版本号;根据模型名称和模型版本号选择目标预测模型,应用选择出的目标预测模型对所述预测指令中的特征数据进行处理,得到预测子结果。

在一些实施例中,所述预测请求包括:司乘判责预测请求;所述司乘判责预测请求包括多个预测子请求;每个所述预测子请求中的私有特征数据包括以下之一:订单取消数据、订单费用数据、订单安全数据和订单评价数据。

在一些实施例中,所述预测子请求中的模型信息包括模型类型、模型名称和模型版本;所述模型类型、模型名称之间以第一预设分隔符分隔;当所述预测子请求为混合顺序模型调用请求时,多个子请求间以第二预设分隔符分隔。

在一些实施例中,所述模型服务模块至少包括以下之一:lr模型服务器集群、xgb模型服务器集群和dnn模型服务器集群。

根据本申请的另一个方面,提供一种在线预测设备,包括:特征数据获取模块,用于获取目标对象的特征数据;请求生成模块,用于根据当前的预测需求和所述特征数据,生成预测请求;预测模块,用于向入口接入服务模块发送所述预测请求,以使所述入口接入服务模块返回所述预测请求对应的总预测结果;其中,所述入口接入服务模块与每个模型服务模块中的服务器连接,同一个模型服务模块中的服务器上配置有同一类型的预测模型,所述预测模型为预先训练好的模型;所述入口接入服务模块通过服务器上的预测模型获取所述预测请求对应的总预测结果。

在一些实施例中,所述请求生成模块,还用于:根据应用场景将当前的所述预测需求进行划分,确定所述预测需求对应的多个预测子需求;基于所述预测需求和多个所述预测子需求,将所述特征数据划分为共有特征数据和每个所述预测子需求对应的私有特征数据;以及确定每个所述预测子需求对应的模型信息;根据所述共有特征数据、每个所述预测子需求对应的私有特征数据和所述模型信息,以及预设请求格式,生成所述预测请求。

根据本申请的另一个方面,提供一种在线预测方法,所述方法应用于入口接入服务模块,所述入口接入服务模块与每个模型服务模块中的服务器连接,同一个模型服务模块中的服务器上配置有同一类型的预测模型,所述预测模型为预先训练好的模型;所述方法包括:接收用户的预测请求;基于所述预测请求确定至少一个目标服务器;向各个所述目标服务器下发所述预测请求对应的预测指令;接收各个所述目标服务器基于所述预测指令反馈的预测子结果;其中,所述预测子结果为所述目标服务器应用其上的预测模型对所述预测指令进行处理得到的;基于各个所述预测子结果向所述用户反馈总预测结果。

在一些实施例中,所述预测请求包括多个预测子请求和共有特征数据;每个所述预测子请求包括模型信息和私有特征数据;基于所述预测请求确定至少一个目标服务器;向各个所述目标服务器下发所述预测请求对应的预测指令的步骤,包括:解析所述预测请求得到各个预测子请求;对于每个所述预测子请求,根据所述预测子请求中的模型信息确定所述预测子请求对应的请求类型,所述请求类型包括:单模型调用请求和混合顺序模型调用请求;其中,所述单模型调用请求为所述预测子请求的模型信息仅包含一种模型类型的请求;所述混合顺序模型调用请求为所述预测子请求的模型信息包含多种模型类型的请求;根据所述请求类型选择至少一个目标服务器,向各个所述目标服务器下发所述预测子请求对应的预测指令。

在一些实施例中,根据所述请求类型选择至少一个目标服务器,向各个所述目标服务器下发所述预测子请求对应的预测指令的步骤,包括:如果所述请求类型为单模型调用请求,将所述模型信息中的模型类型对应的模型服务模块确定所述预测子请求对应的目标模型服务模块,并从所述目标模型服务模块中选择目标服务器;根据所述预测子请求中的私有特征数据和所述共有特征数据生成预测指令;将所述预测指令下发给所述目标服务器。

在一些实施例中,根据所述请求类型选择至少一个目标服务器,向各个所述目标服务器下发所述预测子请求对应的预测指令的步骤,还包括:如果所述请求类型为混合顺序模型调用请求,根据所述模型信息中的模型类型的顺序,依次从每个所述模型类型对应的模型服务模块选择目标服务器,得到顺序排列的目标服务器组;根据每个模型类型对应的私有特征数据和所述共有特征数据,生成目标服务器组中每个目标服务器的预测指令;将第一个模型类型对应的预测指令下发给所述目标服务器组中的第一目标服务器,接收所述第一目标服务器返回的第一预测子结果;按照所述目标服务器组中目标服务器的顺序,依次选择当前服务器,对于每个所述当前服务器,均将所述当前服务器的预测指令和所述当前服务器的上一个服务器的预测子结果下发给所述当前服务器,以使所述当前服务器返回预测子结果。

在一些实施例中,所述方法还包括:如果所述预测请求中存在批量子请求,将所述批量子请求对应的多个预测子请求进行合并;所述批量子请求指模型类型均相同的多个所述预测子请求;选择所述批量子请求对应的目标服务器;根据合并后的私有特征数据和所述共有特征数据生成预测指令;将所述预测指令下发给所述批量子请求对应的目标服务器。

根据本申请的另一个方面,提供一种在线预测方法,该方法应用于用户设备,所述方法包括:获取目的对象的特征数据;根据当前的预测需求和所述特征数据,生成预测请求;向入口接入服务模块发送所述预测请求,以使所述入口接入服务模块返回所述预测请求对应的总预测结果;其中,所述入口接入服务模块与每个模型服务模块中的服务器连接,同一个模型服务模块中的服务器上配置有同一类型的预测模型,所述预测模型为预先训练好的模型;所述入口接入服务模块通过服务器上的预测模型获取所述预测请求对应的总预测结果。

在一些实施例中,根据当前的预测需求和所述特征数据,生成预测请求的步骤,包括:根据应用场景将当前的所述预测需求进行划分,确定所述预测需求对应的多个预测子需求;基于所述预测需求和多个所述预测子需求,将所述特征数据划分为共有特征数据和每个所述预测子需求对应的私有特征数据;以及确定每个所述预测子需求对应的模型信息;根据所述共有特征数据、每个所述预测子需求对应的私有特征数据和所述模型信息,以及预设请求格式,生成所述预测请求。

根据本申请的另一个方面,提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述第三方面或第四方面所述方法的步骤。

根据本申请的另一个方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第三方面或第四方面所述方法的步骤。

本申请提供的在线预测系统中,同一个模型服务模块中的服务器上配置有同一类型的预测模型,且该预测模型为预先训练好的模型,入口接入服务模块在接收到用户的预测请求后,基于该预测请求从模型服务模块中确定出至少一个目标服务器,然后向各个目标服务器下发上述预测请求对应的预测指令;目标服务器在接收到上述入口接入服务模块下发的预测指令后,应用其上的预测模型对上述预测指令进行处理,得到预测子结果,并将该预测子结果反馈给入口接入服务模块,入口接入服务模块最终基于各个所述预测子结果向用户反馈总预测结果,该系统通过入口接入服务模块对模型服务模块中一个或者多个目标模型的调用,可以实现实时业务的在线模型预测,且方便对模型服务模块进行模型扩展,避免了重复开发导致的人力物力成本,缩短了模型接入线上的时间。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例提供的一种在线预测系统的架构示意图;

图2示出了本申请实施例提供的另一种在线预测系统的架构示意图;

图3示出了本申请实施例提供的一种预测子请求格式示意图;

图4示出了本申请实施例提供的一种批量混合模型请求处理过程示意图;

图5示出了本申请实施例提供的另一种批量混合模型请求处理过程示意图;

图6示出了本申请实施例提供的一种在线预测设备的架构示意图;

图7示出了本申请实施例提供的一种在线预测方法的方法流程图;

图8示出了本申请实施例提供的另一种在线预测方法的方法流程图;

图9示出了本申请实施例提供的另一种在线预测方法的方法流程图;

图10示出了本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。

另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“司乘判责模型预测”,给出以下实施方式。对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。虽然本申请主要围绕司乘判责进行描述,但是应该理解,这仅是一个示例性实施例,本申请还可以应用于其他多种不同的模型预测应用场景中。

需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。

本申请的一个方面涉及一种在线预测系统,该系统包括:入口接入服务模块和模型服务模块,其中,同一个模型服务模块中的服务器上配置有同一类型的预测模型,该预测模型为预先训练好的模型。

上述入口接入服务模块可以用于接收用户的预测请求,基于预测请求确定至少一个目标服务器,向各个目标服务器下发预测请求对应的预测指令;以及接收各个目标服务器基于预测指令反馈的预测子结果,基于各个预测子结果向用户反馈总预测结果。上述目标服务器可以用于接收入口接入服务模块下发的预测指令,应用其上的预测模型对预测指令进行处理,得到预测子结果,将预测子结果反馈给入口接入服务模块。

值得注意的是,在本申请提出申请之前,现有的分布式架构中实现的模型预测无法满足或充分满足高并发、高可用的实时业务上的模型预测需求,而且面对实际业务场景中对模型进行多变使用方式时,往往需要在原框架的基础上进行再开发,增加开发成本、维护成本等。

然而,本申请提供的在线预测系统中,同一个模型服务模块中的服务器上配置有同一类型的预先训练好的预测模型,入口接入服务模块在接收到用户的预测请求后,基于该预测请求从模型服务模块中确定出至少一个目标服务器,然后向各个目标服务器下发上述预测请求对应的预测指令;目标服务器在接收到上述入口接入服务模块下发的预测指令后,应用其上的预测模型对上述预测指令进行处理,得到预测子结果,并将该预测子结果反馈给入口接入服务模块,入口接入服务模块最终可以基于各个所述预测子结果向用户反馈总预测结果,该系统通过入口接入服务模块对模型服务模块中一个或者多个目标模型的调用,可以实现实时业务的在线模型预测,且方便对模型服务模块进行模型扩展,避免了重复开发导致的人力物力成本,缩短了模型接入线上的时间。

图1是本申请实施例提供的一种在线预测系统100的架构示意图。该系统包括:入口接入服务模块102和模型服务模块104,这些模块在硬件上可以对应于同一个服务器集群,或者也可以分别对应不同的服务器集群,其中,同一个模型服务模块104中的服务器上配置有同一类型的预测模型,该预测模型为预先训练好的模型。

作为一种优选实施方式,上述模型服务模块104可以至少包括以下之一:lr模型服务器集群、xgb模型服务器集群和dnn模型服务器集群,如图2所示,本申请实施例将各个模型子系统使用的模型从原系统中剥离,以模型类型为粒度搭建微服务,即构建lr、xgb、dnn三个模型微服务,libra-model-lr、libra-model-xgb和libra-model-dnn,也就是上述三种服务器集群。每个微服务在对应集群中负责相应类型模型的在线预测。

并且,针对请求处理、负载均衡以及扩展功能的需求建立统一的转发处理服务,形成单独的微服务,同时也作为整个在线预测系统的统一接入入口,即上述入口接入服务模块,如libra-api,上述三个模型微服务与libra-api入口接入服务模块,构成在线预测系统(libra)。

这里引入了模型调用调度的概念,即如果调用方想使用批量预测、查看模型状态信息甚至模型混合调用等功能,都可以通过在此处实现的调度算法来实现。该系统在实现多种模型支持的基础上,达成了模型调用与请求处理的分离,业务与数据计算之间的解耦合;将原来每个系统都需要实现的模型调用与特征处理抽象化,避免了重复开发从而节省人力,缩短了模型接入线上的时间。

具体实施时,上述入口接入服务模块可以接收用户的预测请求,该预测请求可以是基于总需求生成的一个总的预测请求,也可以是基于不同子需求所生成的多个不同的预测子请求,在司乘判责模型预测应用场景中,该预测请求可以是司乘判责预测请求,司乘判责预测请求又可以包括多个预测子请求。判责引擎是网约车服务场景中的重要策略引擎,是针对订单取消、费用、评价和安全等方面司乘责任判定和管控用的统一后台策略引擎系统,由数个服务系统组成,使用以机器学习为主的系列算法完成判责处理。

上述入口接入服务模块可以基于预测请求从上述模型服务模块中确定出至少一个目标服务器,比如:基于上述司乘判责预测请求中的多个预测子请求,可以从上述三种服务器集群中选择出多个目标服务器,如dnn模型服务器集群中的两个目标服务器和xgb模型服务器集群中的一个目标服务器。确定目标服务器的方式可以有多种,比如随机选择一个集群中的一个服务器作为目标服务器,或者基于负载均衡原则从集群中选择合适的服务器作为目标服务器。然后向各个目标服务器下发预测请求对应的预测指令。

上述一个或多个目标服务器在接收到上述入口接入服务模块下发的预测指令后,应用其上的预测模型对预测指令进行处理,得到预测子结果,并将预测子结果反馈给上述入口接入服务模块。具体的处理过程可以是对预测指令进行解析,确定出该预测指令对应的目标模型,通过该目标模型对预测指令中的特征数据进行预测,得到预测子结果。

上述入口接入服务模块在接收到各个目标服务器基于预测指令反馈的预测子结果后,进一步基于各个预测子结果向用户反馈总预测结果。比如,将多个预测子结果进行打包发送。

本申请提供的在线预测系统通过入口接入服务模块对模型服务模块中一个或者多个目标模型的调用,可以实现实时业务的在线模型预测,且方便对模型服务模块进行模型扩展,避免了重复开发导致的人力物力成本,缩短了模型接入线上的时间。

在一些实施例中,上述预测请求包括多个预测子请求和共有特征数据;每个预测子请求包括模型信息和私有特征数据。

其中,共有特征数据多个预测子请求共用的特征数据,由于上述多个预测子请求往往来自于相同的应用场景,因此这些预测子请求会有大量的公用特征输入,比如,一些模型都处于判断同一位司机的一些情况,那么它们多少都会用到与这个司机相关的特征,比如行车时间、距离等等。

上述私有特征数据为每个预测子请求独有的特征,复用上面的举例:一个模型会单独判断司机的绕路行为,那么会使用距离相关的特征;另一个模型则会判断司机的多收费行为,费用相关的距离则会被使用。之所以将共有特征数据和私有特征数据分开保存,是为了最小化整个预测请求,避免内部的数据冗余,从而提高网络传输效率。

上述模型信息可以包括:模型类型、模型名称和模型版本,其中,模型类型、模型名称之间以第一预设分隔符分隔;当预测子请求为混合顺序模型调用请求时,多个子请求间以第二预设分隔符分隔。

比如:对于单模型调用请求,其预测子请求的格式为lr_dujscancelpasv1,其中,lr为模型类型,dujscancelpas为模型名称,v1为模型版本,lr和dujscancelpas之间由第一预设分隔符“_”进行分隔。当预测子请求为混合顺序模型调用请求时,其预测子请求的格式为:lr_dujscancelpasv1|xgb_dujscancelpasv1,其中,两个不同类型的子请求间由第二预设分隔符“|”分隔。如图3所示,dujs还可以是系统名、服务名或者调用者名称,cancel可以是场景名或者系统内分类名,pas可以是自定义名称。

对于上述预测请求包括多个预测子请求和共有特征数据的情况,上述入口接入服务模块还用于:解析预测请求得到各个预测子请求;对于每个预测子请求,根据预测子请求中的模型信息确定预测子请求对应的请求类型,请求类型包括:单模型调用请求和混合顺序模型调用请求;其中,单模型调用请求为预测子请求的模型信息仅包含一种模型类型的请求;混合顺序模型调用请求为预测子请求的模型信息包含多种模型类型的请求;根据请求类型选择至少一个目标服务器,向各个目标服务器下发预测子请求对应的预测指令。

上述目标服务器还用于:从预测指令中解析出模型信息,模型信息包括模型名称和模型版本号;根据模型名称和模型版本号选择目标预测模型,应用选择出的目标预测模型对预测指令中的特征数据进行处理,得到预测子结果。

如图4所示,预测请求在请求层经过解析后,得到5个预测子请求,分别为子请求1、子请求2、子请求3、子请求4和子请求5。进一步,根据5个子请求中的模型信息,分别确定出每个子请求的请求类型,比如,子请求1和2中的模型信息中均包括有两种以上的不同模型类型,如xgb1和lr1,那么可以确定其为混合模型调用请求,子请求3、子请求4和子请求5中的模型信息中包括有一种模型类型,分别为lr2、lr2和xgb2,那么可以确定其为单模型调用请求。然后针对不同的请求类型确定出每个子请求对应的目标服务器,并向各个目标服务器下发预测子请求对应的预测指令。

具体的,针对请求类型为单模型调用请求的情况,入口接入服务模块会将模型信息中的模型类型对应的模型服务模块确定预测子请求对应的目标模型服务模块,比如,将子请求3、子请求4和子请求5的模型信息中的模型类型lr2、lr2和xgb2分别对应的lr模型服务器集群、lr模型服务器集群和xgb模型服务器集群,作为上述三个子请求分别对应的目标服务器集群,并从目标服务器集群中选择目标服务器,具体的选择方式可以参见前述实施例,然后再根据预测子请求中的私有特征数据和共有特征数据生成预测指令,并将预测指令下发给目标服务器。

针对请求类型为混合顺序模型调用请求的情况,入口接入服务模块可以根据模型信息中的模型类型的顺序,依次从每个模型类型对应的模型服务模块选择目标服务器,得到顺序排列的目标服务器组;比如,上述子请求1和子请求2中根据模型信息中模型类型的顺序,依次选择目标服务器,得到的目标服务器组为:目标xgb服务器1和目标lr服务器2。

然后根据每个模型类型对应的私有特征数据和共有特征数据,生成目标服务器组中每个目标服务器的预测指令;将第一个模型类型对应的预测指令下发给目标服务器组中的第一目标服务器,接收第一目标服务器返回的第一预测子结果;按照目标服务器组中目标服务器的顺序,依次选择当前服务器,对于每个当前服务器,均将当前服务器的预测指令和当前服务器的上一个服务器的预测子结果下发给当前服务器,以使当前服务器返回预测子结果。

比如,对于上述子请求1(子请求2同理),可以先根据共有特征数据和子请求1中的私有特征数据,生成目标服务器组中目标xgb服务器1和目标lr服务器2分别对应的预测指令,即第一预测指令和第二预测指令。将第一预测指令发送给目标xgb服务器1,得到第一预测子结果,然后将第一预测子结果和第二预测指令同时发送给目标lr服务器2,得到第二预测子结果,也就是子请求1对应的最终预测结果。

对于预测请求中的多个预测子请求存在批量子请求(指模型类型均相同的多个预测子请求)的情况,上述入口接入服务模块还可以将批量子请求对应的多个预测子请求进行合并;而每预测子请求中的数据结构不变;选择批量子请求对应的目标服务器;根据合并后的私有特征数据和共有特征数据生成预测指令;将预测指令下发给批量子请求对应的目标服务器。

批量子请求的处理过程如图5所示:批量混合模型预测请求到来后,通过预测处理层处理后被拆分成多个预测子请求,与此同时,执行批量请求的分发与并发处理,将一个处理过程拆分成多个单一处理过程,单一处理过程进行输入处理、超时处理以及结果传递,单一处理过程中又包含一个或多个单元处理过程,比如,请求类型为混合顺序模型调用请求的预测子请求被进一步拆分后,就会对应于单一处理过程中的多个单元处理过程,若干个单元处理过程连接可以完成模型的混合顺序调用。具体的,聚合同种类型模型请求后顺序按步执行对下游模型的批量转发调用;或者,对于单个子请求,则会被聚合同类模型请求后执行对下游模型的批量转发调用。在所有请求获得下游系统回复后,收集、聚合结果,得到模型预测总结果,并将其封装为回复报文传回给调用方。

上述针对批量子请求进行合并并行的处理方式,可以提高多个子请求的处理效率。在此,复用图4所示的例子对批量子请求的处理过程进行说明:

比如,上述子请求1和子请求2中的模型类型均相同,则子请求1和子请求2为一组批量子请求,子请求3和子请求4中的模型类型相同,那么子请求3和子请求4为一组批量子请求,在处理时,可以将批量子请求进行统一处理,这样可以提高预测效率。

如图4所示,该预测请求中包括两个对应同一套xgboost和lr模型xgb1、lr1的混合顺序模型调用请求,子请求1和子请求2,两个对应相同lr模型lr2的单个lr模型调用请求,子请求3和子请求4,以及一个对应单独xgboost模型xgb2的子请求5。这些子请求包含自身所需的私有特征数据和模型信息,在分发层会依据模型名称进行分类打包发送,类与类之间的处理过程相互并行,互不影响。

两个访问lr2模型的子请求3和4会被打包在一起,组成新的批量请求调用libra-model-lr;访问xgb2模型的子请求5单独打包为新的批量请求调用libra-model-xgb。

在两个顺序混合子请求1和2中,请求的模型名称都为“xgb1|lr1”,会被打包在一起,但发送方式会特殊一些:两个请求都为顺序混合,且都为两步调用,因此会拆开分步执行。首先两个访问xgb1的子请求会在第一步被打包为新的批量请求发送给libra-model-xgb,在获取结果后,其结果会跟着对lr1的调用子请求一起打包发送为新的批量请求以进行第二步的lr预测调用libra-model-lr。

最后在结果层,每一类的处理结果在其处理过程完成后被收集并统一返回给调用方。

上述模型服务模块,也就是模型子系统皆为特定机器学习算法或者对应第三方库封装成的微服务系统,该系统中的每个服务器均可以支持单个模型预测和批量模型预测两种请求方式,原理同上。例子如下:

lr模型服务器集群:由于其预测的计算过程简单直接,因此可以实现基于训练结果权重的计算。系统本身实现了基于该代码库的封装与优化,相较底层库,在支持高并发的实时批量预测请求的基础上,提供了更高的稳定性和功能拓展性。

xgb模型服务器集群:使用了开源第三方库xgboost,系统本身实现了基于该代码库的封装与优化,相较底层库,在支持高并发的实时批量预测请求的基础上,提供了更高的稳定性和功能拓展性。

dnn模型服务器集群:使用了开源第三方库tensorflow,系统本身实现了基于该代码库的封装与优化,相较底层库,在支持高并发的实时批量预测请求的基础上,提供了更高的稳定性和功能拓展性。

此外,上述在线预测系统还可以支持更多模型,由于处理层libra-api的存在,使系统在所支持的模型类型上具有扩展性,新增的模型无论是自行实现还是针对第三方库的封装,都可以在遵守相同接口(预测请求)定义的情况下接入在线模型系统,且由于模型服务模块的请求处理机制都较为相似,可以使用代码生成工具来快速接入新的机器学习算法模型,从而达到快速上线,且兼具高并发与鲁棒性。比如:lr模型可以使用第三方库如:golearn、goml等;xgb模型可以使用其他第三方库如:lightgbm、treelite等;dnn模型可以使用其他第三方库如:caffe、keras等。

下面以一次单个混合顺序模型预测为例,说明入口接入服务模块与模型服务模块的工作过程:

预测请求中的模型信息为:

xgb_dujs_cancel_pas_pas_tree_v1|lr_dujs_cancel_pas_pas_score_v1

包含该模型信息和特征数据(包括第一个子请求对应的第一特征数据和第二个子请求对应的第二特征数据)的预测请求到达入口接入服务模块的处理顺序过程为:

1)预测请求被拆分成xgb_dujs_cancel_pas_pas_tree_v1和lr_dujs_cancel_pas_pas_score_v1两个子请求;

2)xgb_dujs_cancel_pas_pas_tree_v1中的模型名称、模型版本dujs_cancel_pas_pas_tree_v1和模型类型xgb被解析,随同第一特征数据一起被发送给xgb模型服务器集群中的第一目标服务器进行预测计算;

3)预测结束后第一预测子结果从上述第一目标服务器传回入口接入服务模块,该第一预测子结果与第二特征数据作为新的预测输入写入新的预测请求;

4)lr_dujs_cancel_pas_pas_score_v1中的模型名称和模型版本dujs_cancel_pas_pas_score_v1和模型类型lr被解析,随同新的预测请求一起被发送给lr服务器集群中的第二目标服务器进行预测计算;

5)预测结束后得到第二预测子结果,该第二预测子结果从第二目标服务器传回入口接入服务模块,作为预测请求的最终预测结果返回给用户。

在一些实施例中,根据本申请的另一个方面,提供一种在线预测设备,其框图如图6所示,该在线预测设备包括:特征数据获取模块62、请求生成模块64和预测模块66。

其中,特征数据获取模块62,用于获取目标对象的特征数据。比如,目标对象为司乘判责事件,那么其特征数据包括上述的共有特征数据和私有特征数据,其中,私有特征数据可以包括以下之一:订单取消数据、订单费用数据、订单安全数据和订单评价数据。

请求生成模块64,用于根据当前的预测需求和特征数据,生成预测请求。上述请求生成模块64进行请求生成的过程具体如下:

根据应用场景将当前的预测需求进行划分,确定预测需求对应的多个预测子需求;基于预测需求和多个预测子需求,将特征数据划分为共有特征数据和每个预测子需求对应的私有特征数据;以及确定每个预测子需求对应的模型信息;根据共有特征数据、每个预测子需求对应的私有特征数据和模型信息,以及预设请求格式,生成预测请求。

预测模块66,用于向入口接入服务模块发送预测请求,以使入口接入服务模块返回预测请求对应的总预测结果;其中,入口接入服务模块与每个模型服务模块中的服务器连接,同一个模型服务模块中的服务器上配置有同一类型的预测模型,预测模型为预先训练好的模型;入口接入服务模块通过服务器上的预测模型获取预测请求对应的总预测结果。

对于应用场景为司乘判责的情况,通过基于上述司乘判责事件中的特征数据生成的预测请求,可以获取到目标模型针对司机有责和乘客有责的预测结果,并结合规则对乘客和司机给出相应场景下的判责结果。本申请实施例能够实现针对订单取消、费用、评价和安全等方面司乘责任判定,进一步对上述场景事件进行统一后台管控。

下面结合上述图1-图6示出的关于在线预测系统和在线预测设备架构及工作过程描述的内容,对本申请实施例提供的在线预测方法进行说明。

参照图7所示,为本申请实施例提供的一种在线预测方法的流程示意图,该方法可以由在线预测系统中的入口接入服务模块来执行,其中,入口接入服务模块与每个模型服务模块中的服务器连接,同一个模型服务模块中的服务器上配置有同一类型的预测模型,预测模型为预先训练好的模型;具体执行过程为:

步骤s702,接收用户的预测请求;

步骤s704,基于预测请求确定至少一个目标服务器;向各个目标服务器下发预测请求对应的预测指令;

步骤s706,接收各个目标服务器基于预测指令反馈的预测子结果;其中,预测子结果为目标服务器应用其上的预测模型对预测指令进行处理得到的;

步骤s708,基于各个预测子结果向用户反馈总预测结果。

在一些实施例中,预测请求包括多个预测子请求和共有特征数据;每个预测子请求包括模型信息和私有特征数据;上述步骤s704:基于预测请求确定至少一个目标服务器;向各个目标服务器下发预测请求对应的预测指令,具体包括以下步骤,如图8所示:

步骤s802,解析预测请求得到各个预测子请求;

步骤s804,对于每个预测子请求,根据预测子请求中的模型信息确定预测子请求对应的请求类型,请求类型包括:单模型调用请求和混合顺序模型调用请求;其中,单模型调用请求为预测子请求的模型信息仅包含一种模型类型的请求;混合顺序模型调用请求为预测子请求的模型信息包含多种模型类型的请求;

步骤s806,根据请求类型选择至少一个目标服务器,向各个目标服务器下发预测子请求对应的预测指令。

上述步骤s806,根据请求类型选择至少一个目标服务器,向各个目标服务器下发预测子请求对应的预测指令,具体包括以下步骤:

如果请求类型为单模型调用请求,将模型信息中的模型类型对应的模型服务模块确定预测子请求对应的目标模型服务模块,并从目标模型服务模块中选择目标服务器;根据预测子请求中的私有特征数据和共有特征数据生成预测指令;将预测指令下发给目标服务器。

如果请求类型为混合顺序模型调用请求,根据模型信息中的模型类型的顺序,依次从每个模型类型对应的模型服务模块选择目标服务器,得到顺序排列的目标服务器组;根据每个模型类型对应的私有特征数据和共有特征数据,生成目标服务器组中每个目标服务器的预测指令;将第一个模型类型对应的预测指令下发给目标服务器组中的第一目标服务器,接收第一目标服务器返回的第一预测子结果;按照目标服务器组中目标服务器的顺序,依次选择当前服务器,对于每个当前服务器,均将当前服务器的预测指令和当前服务器的上一个服务器的预测子结果下发给当前服务器,以使当前服务器返回预测子结果。

在一些实施例中,如果预测请求中存在批量子请求,将批量子请求对应的私有特征数据合并;批量子请求指模型类型均相同的多个预测子请求;选择批量子请求对应的目标服务器;根据合并后的私有特征数据和共有特征数据生成预测指令;将预测指令下发给批量子请求对应的目标服务器。

上述如图7-图8示出的在线预测方法的执行过程原理同上述在线预测系统的工作过程一致,详细内容请参见上述系统实施例,在此不再赘述。

参照图9所示,为本申请实施例提供的另一种在线预测方法的流程示意图,该方法可以由在线预测系统中的用户设备来执行,具体执行过程为:

步骤s902,获取目的对象的特征数据;

步骤s904,根据当前的预测需求和特征数据,生成预测请求;

步骤s906,向入口接入服务模块发送预测请求,以使入口接入服务模块返回预测请求对应的总预测结果;其中,入口接入服务模块与每个模型服务模块中的服务器连接,同一个模型服务模块中的服务器上配置有同一类型的预测模型,预测模型为预先训练好的模型;入口接入服务模块通过服务器上的预测模型获取预测请求对应的总预测结果。

在一些实施例中,上述步骤s904:根据当前的预测需求和特征数据,生成预测请求,还具体包括以下步骤:

根据应用场景将当前的预测需求进行划分,确定预测需求对应的多个预测子需求;基于预测需求和多个预测子需求,将特征数据划分为共有特征数据和每个预测子需求对应的私有特征数据;以及确定每个预测子需求对应的模型信息;根据共有特征数据、每个预测子需求对应的私有特征数据和模型信息,以及预设请求格式,生成预测请求。

上述图9示出的在线预测方法的执行过程原理同上述在线预测设备的工作过程一致,详细内容请参见上述设备实施例,在此不再赘述。

本申请实施例还提供了一种电子设备200,如图10所示,为本申请实施例提供的电子设备200结构示意图,包括:处理器201、存储器202、和总线203。所述存储器202存储有所述处理器201可执行的机器可读指令(比如,图7-图9中的方法步骤对应的执行指令等),当电子设备200运行时,所述处理器201与所述存储器202之间通过总线203通信,所述机器可读指令被所述处理器201执行时执行如下处理:

接收用户的预测请求;基于预测请求确定至少一个目标服务器;向各个目标服务器下发预测请求对应的预测指令;接收各个目标服务器基于预测指令反馈的预测子结果;其中,预测子结果为目标服务器应用其上的预测模型对预测指令进行处理得到的;基于各个预测子结果向用户反馈总预测结果。

在一些实施例中,处理器201执行的指令还可以包括如下处理:

解析预测请求得到各个预测子请求;对于每个预测子请求,根据预测子请求中的模型信息确定预测子请求对应的请求类型,请求类型包括:单模型调用请求和混合顺序模型调用请求;其中,单模型调用请求为预测子请求的模型信息仅包含一种模型类型的请求;混合顺序模型调用请求为预测子请求的模型信息包含多种模型类型的请求;根据请求类型选择至少一个目标服务器,向各个目标服务器下发预测子请求对应的预测指令。

在一些实施例中,处理器201执行的指令还可以包括如下处理:

如果请求类型为单模型调用请求,将模型信息中的模型类型对应的模型服务模块确定预测子请求对应的目标模型服务模块,并从目标模型服务模块中选择目标服务器;根据预测子请求中的私有特征数据和共有特征数据生成预测指令;将预测指令下发给目标服务器。

在一些实施例中,处理器201执行的指令还可以包括如下处理:

如果请求类型为混合顺序模型调用请求,根据模型信息中的模型类型的顺序,依次从每个模型类型对应的模型服务模块选择目标服务器,得到顺序排列的目标服务器组;根据每个模型类型对应的私有特征数据和共有特征数据,生成目标服务器组中每个目标服务器的预测指令;将第一个模型类型对应的预测指令下发给目标服务器组中的第一目标服务器,接收第一目标服务器返回的第一预测子结果;按照目标服务器组中目标服务器的顺序,依次选择当前服务器,对于每个当前服务器,均将当前服务器的预测指令和当前服务器的上一个服务器的预测子结果下发给当前服务器,以使当前服务器返回预测子结果。

在一些实施例中,处理器201执行的指令还可以包括如下处理:

如果预测请求中存在批量子请求,将批量子请求对应的私有特征数据合并;批量子请求指模型类型均相同的多个预测子请求;选择批量子请求对应的目标服务器;根据合并后的私有特征数据和共有特征数据生成预测指令;将预测指令下发给批量子请求对应的目标服务器。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任一在线模型预测方法的步骤。

具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述在线模型预测方法,从而实现实时业务的在线模型预测,且方便对模型服务模块进行模型扩展,避免了重复开发导致的人力物力成本,缩短了模型接入线上的时间。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1