首页> 中国专利> 机器学习模型预测在线服务的部署方法和装置

机器学习模型预测在线服务的部署方法和装置

摘要

本发明提供了一种机器学习模型预测在线服务的部署方法和装置,涉及计算机应用技术领域,该方法包括:首先利用特征处理的算子将预先获取的离线数据进行特征处理,生成模型训练集,其中特征处理的算子包括第一在线计算接口和第二在线计算接口;然后利用模型训练集对机器学习算法的算子进行训练,生成训练好的机器学习模型;再根据特征处理的算子和训练好的机器学习模型,确定算子链路;最后基于算子链路中的第一在线计算接口和第二在线计算接口,生成模型在线服务,该模型在线服务用于处理实时请求的数据,生成模型计算结果。通过上述方法可以代替人工转换代码,提高了模型开发的效率,并且降低了引入错误的可能性以及在线模型部署的成本。

著录项

  • 公开/公告号CN113064599A

    专利类型发明专利

  • 公开/公告日2021-07-02

    原文格式PDF

  • 申请/专利权人 顶象科技有限公司;

    申请/专利号CN202110370662.8

  • 发明设计人 蔡鹏;蔡石林;管胜;

    申请日2021-04-06

  • 分类号G06F8/60(20180101);G06N20/00(20190101);

  • 代理机构11463 北京超凡宏宇专利代理事务所(特殊普通合伙);

  • 代理人张萌

  • 地址 311121 浙江省杭州市余杭区五常街道文一西路998号19幢603B室

  • 入库时间 2023-06-19 11:42:32

说明书

技术领域

本发明涉及计算机应用技术领域,尤其是涉及一种机器学习模型预测在线服务的部署方法和装置。

背景技术

随着海量数据的出现,人工智能技术得到了迅速发展,其中,机器学习技术普遍被应用于从海量的数据记录(例如,金融数据、互联网数据等)中挖掘出有益的价值,越来越多机器学习模型以在线服务的形式被部署。在一个标准的机器学习开发流程中,原始数据经过特征加工形成特征宽表,再由特征宽表进行模型训练得到机器学习模型。在使用该类模型时,需要将训练好的模型部署为一个模型预测服务接口,请求数据经过和开发流程中相同的特征加工逻辑形成特征宽表,再调用模型预测服务接口得到预测结果。

在模型构建过程中,多数情况下会采用python或R语言进行模型开发工作,再将特征计算逻辑转化为java语言后进行部署。由于模型开发和模型部署时,特征宽表的生成使用了不同的语言,不可避免存在代码翻译的过程,目前常用的解决方法是使用人工进行代码转换,不但费时费力而且存在引入bug的可能,增加了使用人工智能AI(ArtificialIntelligence)模型技术解决实际业务问题的成本。

发明内容

本发明的目的在于提供一种机器学习模型预测在线服务的部署方法和装置,以缓解现有技术中存在的人工代码转换费时费力、开发效率低的技术问题。

为了实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本发明实施例提供了一种机器学习模型预测在线服务的部署方法,包括:利用特征处理的算子将预先获取的离线数据进行特征处理,生成模型训练集;上述特征处理的算子包括第一在线计算接口和第二在线计算接口;利用上述模型训练集对机器学习算法的算子进行训练,生成训练好的机器学习模型;上述训练好的机器学习模型的算子包括第一在线计算接口;根据所述特征处理的算子和所述训练好的机器学习模型,确定算子链路;所述算子链路包括所述特征处理的算子和所述训练好的机器学习模型的算子;基于所述算子链路中的所述第一在线计算接口和所述第二在线计算接口,生成模型在线服务;所述模型在线服务用于处理实时请求的数据,生成模型计算结果。

在一些可能的实施方式中,在将预先获取的离线数据进行特征处理,生成模型训练集的步骤之前,还包括:确定特征处理的算子和机器学习算法的算子;获取建模场景的离线数据,确定离线建模训练集。

在一些可能的实施方式中,上述特征处理的算子包括第一算子和第二算子,上述机器学习算法的算子包括第一算子;上述第一算子包括第一在线计算接口和第一离线计算接口,上述第二算子包括第二在线计算接口和第二离线计算接口。

在一些可能的实施方式中,上述第一算子在进行离线计算时,生成配置文件,上述配置文件用于计算上述第一算子的计算逻辑。

在一些可能的实施方式中,上述特征处理包括:数据清洗、数据填充和特征衍生中的一种或多种;如果上述特征处理为上述数据清洗或上述数据填充,上述特征处理的算子为第二算子;如果上述特征处理为特征衍生,上述特征处理的算子为第一算子,或者第一算子和第二算子。

在一些可能的实施方式中,所述算子链路包括多个第一算子和多个第二算子;基于所述算子链路中的所述第一在线计算接口和所述第二在线计算接口,生成模型在线服务的步骤,包括:调用上述算子链路中的所有上述第一算子和上述第二算子;基于上述第一算子的第一在线计算接口和上述第二算子的第二在线计算接口,生成模型在线服务。

在一些可能的实施方式中,上述第一算子为Estimator型算子,上述第二算子为Transformer型算子。

第二方面,本发明实施例提供了一种机器学习模型预测在线服务的部署装置,包括:特征处理模块,用于利用特征处理的算子将预先获取的离线数据进行特征处理,生成模型训练集;上述特征处理的算子包括第一在线计算接口和第二在线计算接口;训练模块,用于利用上述模型训练集对机器学习算法的算子进行训练,生成训练好的机器学习模型;上述训练好的机器学习模型的算子包括第一在线计算接口;确定模块,用于根据所述特征处理的算子和所述训练好的机器学习模型,确定算子链路;所述算子链路包括所述特征处理的算子和所述训练好的机器学习模型的算子;在线服务生成模块,用于基于所述算子链路中的所述第一在线计算接口和所述第二在线计算接口,生成模型在线服务;所述模型在线服务用于处理实时请求的数据,生成模型计算结果。

第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法的步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述第一方面任一项所述的方法。

本发明提供了一种机器学习模型预测在线服务的部署方法和装置,该方法包括:首先利用特征处理的算子将预先获取的离线数据进行特征处理,生成模型训练集,其中特征处理的算子包括第一在线计算接口和第二在线计算接口;然后利用模型训练集对机器学习算法的算子进行训练,生成训练好的机器学习模型;再根据特征处理的算子和训练好的机器学习模型,确定算子链路;最后基于算子链路中的第一在线计算接口和第二在线计算接口,生成模型在线服务,该模型在线服务用于处理实时请求的数据,生成模型计算结果。通过上述方法,可以代替人工转换代码的过程,提高模型开发的效率,并且降低引入错误的可能性,降低了在线模型部署的成本。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种机器学习模型预测在线服务的部署方法的流程示意图;

图2为本发明实施例提供的一种机器学习模型预测在线服务的部署方法中两种算子的开发流程示意图;

图3为本发明实施例提供的一种机器学习模型预测在线服务的部署装置的结构示意图;

图4为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在一个标准的机器学习开发流程中,原始数据经过特征加工形成特征宽表,再由特征宽表进行模型训练得到机器学习模型。在使用该类模型时,需要将训练好的模型部署为一个模型预测服务接口,请求数据经过和开发流程中相同的特征加工逻辑形成特征宽表,再调用模型预测服务接口得到预测结果。模型开发所使用的语言(例如python、R等语言)的执行效率不够,现有的开发流程无法满足有时效性要求的在线业务场景,例如,在线信贷审核一般需要秒级反馈结果;应用程序内的广告栏推荐位则需要毫秒级响应,当客户开打应用程序时即可返回推荐结果。而可以满足时效要求的java、scal等语言直接进行模型开发很不方便。因此在多数情况下会采用使用python、R语言进行模型开发工作,模型部署时将特征计算逻辑转化为java语言后进行部署,实际预测工作流是实时请求先执行java特征加工逻辑后再调用模型服务。

在模型构建过程中,多数情况下会采用python或R语言进行模型开发工作,再将特征计算逻辑转化为java语言后进行部署。由于模型开发和模型部署时,特征宽表的生成使用了不同的语言,不可避免存在代码翻译的过程,目前常用的解决方法是使用人工进行代码转换,不但费时费力而且存在引入bug的可能,增加了使用人工智能AI(ArtificialIntelligence)模型技术解决实际业务问题的成本。

基于此,本发明实施例提供了一种机器学习模型预测在线服务的部署方法和装置,为便于对本实施例进行理解,首先对本发明实施例所公开的一种机器学习模型预测在线服务的部署方法进行详细介绍,参见图1所示的一种机器学习模型预测在线服务的部署方法的流程示意图,该方法可以由电子设备执行,主要包括以下步骤S110至步骤S140:

S110:利用特征处理的算子将预先获取的离线数据进行特征处理,生成模型训练集;特征处理的算子包括第一在线计算接口和第二在线计算接口;

特征处理包括:数据清洗、数据填充和特征衍生中的一种或多种;如果特征处理为数据清洗或数据填充,特征处理的算子为第二算子;如果特征处理为特征衍生,特征处理的算子为第一算子,或者第一算子和第二算子。

作为一个具体的示例,第一算子为Estimator型算子,第二算子为Transformer型算子。Estimator型算子包括离线计算接口和在线计算接口,Estimator型算子也包括离线计算接口和在线计算接口。

特征处理一般包含多个步骤,这些步骤中有些采用Transformer型算子,有些使用Estimator型算子,具体使用哪种类型的算子是由该计算步骤的计算逻辑决定的。一般来说,数据清洗和数据填充大多数情况使用Transformer型算子;而特征衍生则比较复杂,依照计算逻辑的不同,有相当一部分特征衍生采用Estimator型算子的,也有一部分采用Transformer型算子。

两种算子的主要区别在于,在模型预测过程中需要执行特征加工逻辑时,Transformer型算子只和计算逻辑本身相关,而Estimator型算子还和模型训练时特征加工执行生成的参数相关。

S120:利用模型训练集对机器学习算法的算子进行训练,生成训练好的机器学习模型;

其中,训练好的机器学习模型的算子包括第一在线计算接口;

S130:根据特征处理的算子和训练好的机器学习模型确定算子链路;算子链路包括特征处理的算子和训练好的机器学习模型的算子;

S140:基于算子链路中的第一在线计算接口和第二在线计算接口,生成模型在线服务;模型在线服务用于处理实时请求的数据,生成模型计算结果。

在一种实施例中,上述方法在利用特征处理的算子将预先获取的离线数据进行特征处理,生成模型训练集的步骤之前,一般还应该确定特征处理的算子以及机器学习算法的算子,然后获取建模场景的离线数据,确定离线建模训练集。

其中,特征处理的算子包括第一算子和第二算子,机器学习算法的算子包括第一算子;第一算子包括第一在线计算接口和第一离线计算接口,第二算子包括第二在线计算接口和第二离线计算接口。而第一算子在进行离线计算时,生成配置文件,配置文件用于计算第一算子的计算逻辑。

作为一个具体的示例,特征处理一般包含多个算子,多数情况下同时包含Estimator型和Transformer型两种类型的算子;机器学习算法的算子可能是一个,也可能是多个,全部为Estimator型算子。由于上述步骤S130中生成的算子链路包括特征处理的算子和训练好的机器学习模型的算子,因此该算子链路包括多个第一算子和多个第二算子,也即该算子链路包括多个第一在线计算接口和多个第二在线计算接口。

那么基于算子链路中的第一在线计算接口和第二在线计算接口,生成模型在线服务的步骤,则可以包括:首先调用算子链路中的所有第一算子和第二算子;然后基于第一算子的第一在线计算接口和第二算子的第二在线计算接口,生成模型在线服务。其中,第一算子为Estimator型算子,第二算子为Transformer型算子。该方法将特征加工和机器学习模型预测打包成一个算子链路,也即,将特征加工与模型预测功能打包发布,减少了上线工作量。

本发明提供了一种机器学习模型预测在线服务的部署方法和装置,该方法包括:首先利用特征处理的算子将预先获取的离线数据进行特征处理,生成模型训练集,其中特征处理的算子包括第一在线计算接口和第二在线计算接口;然后利用模型训练集对机器学习算法的算子进行训练,生成训练好的机器学习模型;再根据特征处理的算子和训练好的机器学习模型,确定算子链路;最后基于算子链路中的第一在线计算接口和第二在线计算接口,生成模型在线服务,该模型在线服务用于处理实时请求的数据,生成模型计算结果。通过上述方法,可以代替人工转换代码的过程,提高模型开发的效率,并且降低引入错误的可能性,降低了在线模型部署的成本。

以最常见的使用python语言进行AI模型开发的流程为例进行描述,一种实施例包括以下过程:

首先需要构建AI建模业务中常用的算法算子,常用算子包含特征处理和机器学习算法两大类,特征处理又包含数据清洗,数据填充,特征衍生等。这些算子可以分为两类:Transformer型和Estimator。

Transformer型算子:该类算子的输出结果仅和输入的单条数据相关;例如:数据填充、多个字段的综合运算、字符串分割等算子。这类算子在离线模型开发和在线预测时的计算逻辑完全相同,可以通过在java或者scala语言中直接调用python代码来实现计算接口,如图2的(A)部分所示。

Estimator型算子:该类算子的输出结果不但和输入的单条数据相关,也可以整个训练样本集相关。例如:归一化、标准化、模型的预测等算子。归一化需要根据整个训练样本集计算归一化的变换参数才能执行,模型的预测需要先训练一个模型,才能根据输入的数据进行预测。这类算子在离线计算时,会生成一个配置文件,用于记载该算子的计算逻辑。在线预测时需要在java或者scala语言环境中同时加载配置文件和python代码才能根据输入的单条数据获得输出结果,如图2的(B)部分所示。

通过构建上述两种类型的算子,编写了scala和python语言的支持接口,使对应代码可以在线服务化。Estimator型算子在线预测时需要在java或者scala语言环境中同时加载配置文件和python代码才能根据输入的单条数据获得输出结果。并且将机器学习专用计算逻辑组件化。Estimator型算子在线预测时需要在java或者scala语言环境中同时加载配置文件和python代码才能根据输入的单条数据获得输出结果,因此对于Estimator型的计算逻辑需要开发对应的组件,从而实现快速部署。

然后读取任一建模场景的离线数据,作为离线建模的训练集;再将读入的离线数据进行特征工程,计算所需要的入模特征,生成模型训练集;接下来将模型训练集输入机器学习算法算子进行模型训练。

训练完成后,将上面使用的算子和对应的模型文件输入到模型编译器中,生成模型在线服务,该模型编译器的计算逻辑为:将特征处理算子和机器学习算法算子以离线计算时使用的顺序串联起来(即,先特称处理算子再机器学习算法算子)生成一个算子链路,依次调用算子的实时在线计算接口。最后可以将实时请求的数据输入上面的模型在线服务中,实时输出模型计算结果。

本申请实施例提供的机器学习模型预测在线服务的部署方法将机器学习模型的开发和部署融为一体,在开发完成后,可以自动生成部署代码并部署上线,节省了大量的开发人力。将特征开发算子分为Transformer和Estimator两种类型,使用不同的处理方式,保证了特征开发的代码在训练和部署两种状态下的一致性,避免了代码改写过程中可能出现的逻辑bug。

本发明实施例还提供了一种机器学习模型预测在线服务的部署装置,参见图3,该装置包括:

特征处理模块310,用于利用特征处理的算子将预先获取的离线数据进行特征处理,生成模型训练集;特征处理的算子包括第一在线计算接口和第二在线计算接口;

训练模块320,用于利用模型训练集对机器学习算法的算子进行训练,生成训练好的机器学习模型;训练好的机器学习模型的算子包括第一在线计算接口;

确定模块330,用于根据特征处理的算子和训练好的机器学习模型,确定算子链路;算子链路包括特征处理的算子和训练好的机器学习模型的算子;

在线服务生成模块340,用于基于算子链路中的第一在线计算接口和第二在线计算接口,生成模型在线服务;模型在线服务用于处理实时请求的数据,生成模型计算结果。

本申请实施例所提供的机器学习模型预测在线服务的部署装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。本申请实施例提供的机器学习模型预测在线服务的部署装置与上述实施例提供的机器学习模型预测在线服务的部署方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

本申请实施例还提供了一种电子设备,具体的,该电子设备包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被所述处理器运行时执行如上所述实施方式的任一项所述的方法。

图4为本申请实施例提供的一种电子设备的结构示意图,该电子设备400包括:处理器40,存储器41,总线42和通信接口43,所述处理器40、通信接口43和存储器41通过总线42连接;处理器40用于执行存储器41中存储的可执行模块,例如计算机程序。

其中,存储器41可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。

总线42可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器41用于存储程序,所述处理器40在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器40中,或者由处理器40实现。

处理器40可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器40中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器40可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器41,处理器40读取存储器41中的信息,结合其硬件完成上述方法的步骤。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

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

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

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

应注意到:相似的标号和字母在附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号