CN113721898B - 机器学习模型部署方法、系统、计算机设备及存储介质 - Google Patents

机器学习模型部署方法、系统、计算机设备及存储介质 Download PDF

Info

Publication number
CN113721898B
CN113721898B CN202111007445.9A CN202111007445A CN113721898B CN 113721898 B CN113721898 B CN 113721898B CN 202111007445 A CN202111007445 A CN 202111007445A CN 113721898 B CN113721898 B CN 113721898B
Authority
CN
China
Prior art keywords
data
machine learning
offline
model
learning model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111007445.9A
Other languages
English (en)
Other versions
CN113721898A (zh
Inventor
周靖植
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202111007445.9A priority Critical patent/CN113721898B/zh
Publication of CN113721898A publication Critical patent/CN113721898A/zh
Application granted granted Critical
Publication of CN113721898B publication Critical patent/CN113721898B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种支持多框架的机器学习模型部署方法和装置,该方法包括:建立支持多框架的机器学习模型,将风控数据进行特征工程数据处理,得到特征数据,对特征数据进行机器学习建模得到PMML机器学习模型并进行模型训练;将风控数据的数据源表加工为离线特征,将离线特征存储到键值数据库,根据键值数据库将PMML机器学习模型封装成为离线函数模型,完成离线部署;根据PMML机器学习模型发布模型服务组件,接收线上请求,根据请求的关键字段查询健值数据库,得到离线特征,进而拼接请求中的线上特征,形成全量特征,完成线上部署。本申请减少人工成本,提升风险管控响应效率。实现了线上的灵活特征工程,同时支持热部署,减少平台版本的发布依赖。

Description

机器学习模型部署方法、系统、计算机设备及存储介质
技术领域
本申请涉及数据处理技术领域,特别是涉及支持多框架的机器学习模型部署方法、系统、计算机设备和存储介质。
背景技术
在核保、理赔等业务中需要严格管控风险(例如带病投保、冒名住院、假冒代办),降低潜在损失。目前业务风控一般经过人工信息核对、人工内容审核两个过程,存在人工风控能力不稳定与人工效率低下的问题。
智能风控模型采用机器学习框架,模型训练框架种类繁多,主要有Sklearn、R、SparkML、H2O、LightGBM、XGBoost等。
模型的使用方式主要有线上restapi服务、离线hive推断、离线spark推断等。
智能风控模型的线上服务往往基于python封装的原生模型提供服务。sklearn的模型使用sklearn加载推断,xgboost的模型采用xgboost加载推断等。现有技术中存在的问题是,没有实现通用的模型部署平台,一个平台生成的模型,无法在另一个平台进行部署。比如sklearn训练出来的模型,无法在hive和spark进行推断。这是风控模型部署时遇到的重大问题。目前的模型部署方案基于python服务,每个模型上线都需要独立开发python程序部署,开发维护工作量非常大。
另外,如图1所示,对于在线推断场景,每一个模型都需要写python代码封装成一个独特的特征加工和模型服务。如图2所示,对于离线推断场景,现在hive数据表首先进行数据预处理,然后把相关的hdfs文件同步到python离线推断机器。在这台机器上进行特征加工以及模型推断,最后将推断结果文件同步回hdfs,进行后续处理。然而,离线推断场景操作流程过于复杂,开发工作量大,不易于维护。
发明内容
基于此,本申请提供一种支持多框架的机器学习模型部署方法、装置、计算机设备和存储介质。
第一方面提供了一种支持多框架的机器学习模型部署方法,包括:
建立支持多框架的机器学习模型,将风控数据进行特征工程数据处理,得到特征数据,对所述特征数据进行机器学习建模得到PMML机器学习模型并进行模型训练;
将所述风控数据的数据源表加工为离线特征,将所述离线特征存储到键值数据库,根据所述键值数据库将所述PMML机器学习模型封装成为离线函数模型,完成离线部署;
根据所述PMML机器学习模型发布模型服务组件,接收线上请求,根据请求的关键字段查询健值数据库,得到离线特征,进而拼接请求中的线上特征,形成全量特征,完成线上部署。
进一步地,所述将风控数据的数据源表加工为离线特征,包括:
通过pyspark任务读取数据源表,对所述数据源表进行特征计算,获取特征数据;
将所述特征数据经过处理后进行存储;
通过sdk查询所述特征数据后输出。
进一步地,所述将所述风控数据的数据源表加工为离线特征,将所述离线特征存储到键值数据库,根据所述键值数据库将所述PMML机器学习模型封装成为离线函数模型,包括:
在数据平台使用hiveql、spark程序将风控数据的数据源表加工成为离线特征;
将所述离线特征存储到键值数据库;
根据所述键值数据库将所述PMML机器学习模型封装成为离线函数模型。
进一步地,所述将离线特征存储到键值数据库,包括:
调用python-kafka-sdk将所述离线特征写入kafka消息中间件中;
通过SparkStreaming实时流任务实时处理所述kafka消息中间件中的所述离线特征;
通过scene_type字段对处理完成的所述离线特征进行离线存储。
进一步地,包括:
在根据所述PMML机器学习模型发布模型服务组件,接收线上请求,根据请求的关键字段查询健值数据库,得到离线特征,进而拼接请求中的线上特征,形成全量特征,完成线上部署之后,包括:
采集离线数据表,经过特征工程数据处理,得到离线特征表;
使用所述hiveql、spark程序中的hive和spark函数,对于离线特征表进行推断,得到预测结果表;
根据所述预测结果表进行风控处理;
回流数据处理成为数据指标,通过数据看板进行查看。
进一步地,所述根据所述PMML机器学习模型发布模型服务组件,接收线上请求,根据请求的关键字段查询健值数据库,得到离线特征,进而拼接请求中的线上特征,形成全量特征,完成线上部署,包括:
根据所述PMML机器学习模型发布模型服务组件,并提供API接口;
接收线上请求,根据请求的关键字段查询健值数据库,得到离线特征,拼接请求中的线上特征,形成全量特征;
用groovy语言开发每个具体场景的风控规则,发布到规则引擎模块,完成线上部署。
进一步地,在接收线上请求,根据请求的关键字段查询健值数据库,得到离线特征,进而拼接请求中的线上特征,形成全量特征,完成线上部署之后,包括:
通过服务调用经过所述线上特征工程和模型服务组件,得到风控模型预测结果;
将所述全量特征和风控模型预测结果写入消息队列,回流到大数据平台;
回流数据处理成为数据指标,通过数据看板进行查看。
第二方面提供了一种支持多框架的机器学习模型部署系统,包括:
PMML建模模块,用于建立支持多框架的机器学习模型,将风控数据进行特征工程数据处理,得到特征数据,对所述特征数据进行机器学习建模得到PMML机器学习模型并进行模型训练;
离线部署模块,用于将所述风控数据的数据源表加工为离线特征,将所述离线特征存储到键值数据库,根据所述键值数据库将所述PMML机器学习模型封装成为离线函数模型,完成离线部署;
线上部署模块,用于根据所述PMML机器学习模型发布模型服务组件,接收线上请求,根据请求的关键字段查询健值数据库,得到离线特征,进而拼接请求中的线上特征,形成全量特征,完成线上部署。
第三方面提供了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述支持多框架的机器学习模型部署方法的步骤。
第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被一个或多个处理器执行时,实现如第一方面所述支持多框架的机器学习模型部署方法的步骤。
上述支持多框架的机器学习模型部署方法、系统、计算机设备和存储介质,相对于现有技术具有如下优势:
1、本申请通过人工智能技术,综合利用各种信息,构建智能风控平台对接各业务系统,辅助人工决策甚至自动决策替代人工作业,智能化地降低业务风险,减少人工成本,提升风险管控响应效率,提高业务风险管控能力。
2、提供了跨越训练框架的通用机器学习模型存储格式PMML,以及通用的PMML模型部署平台。减少了之前面向各种训练框架封装模型服务的工作。一个框架训练出来的模型可以被另一个框架使用,比如sklearn训练出来的模型,可以被spark程序使用。
3、自研hive和spark函数,直接在大数据平台上运行hive和spark离线模型推断,不需要再将文件传输到Python离线推断机器进行离线推断,再将结果回传大数据平台。
4、自研线上推断服务,通过配置化的方式实现模型服务和特征服务上线,使用动态groovy语言,实现了java体系的线上的灵活特征工程和风控规则,同时支持热部署,减少平台版本的发布依赖。
附图说明
图1为现有技术中在线推断场景示意图;
图2为现有技术中离线推断场景示意图;
图3为一个实施例中计算机设备的内部结构框图;
图4为一个实施例中支持多框架的机器学习模型部署方法的流程图;
图5为不同模型保存为PMML文件的流程图;
图6为本申请离线推断流程图;
图7为本申请基于PMML进行二次开发原理示意图;
图8为本申请采用hive的自定义函数进行风控模型离线推断示意图;
图9为本申请采用spark自定义函数进行风控模型离线推断示意图;
图10为一个实施例中支持多框架的机器学习模型部署系统的结构框图;
图11示出了本申请一实施例所提供的一种电子设备的结构示意图;
图12示出了本申请一实施例所提供的一种存储介质的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一文本增强脚本称为第二文本增强脚本,且类似地,可将第二文本增强脚本称为第二文本增强脚本。
实施例1
图3为一个实施例中计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种支持多框架的机器学习模型部署方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种支持多框架的机器学习模型部署方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
下面结合附图来描述根据本申请实施例提出的一种支持多框架的机器学习模型部署方法、装置、电子设备及存储介质。
术语解释:
PMML(Predictive Model Markup Language,预言模型标记模型)
本申请提供了一种支持多框架的机器学习模型部署方法及系统、计算机可读存储介质,所述支持多框架的机器学习模型部署集成方法,如图4所示,可包括但不限于如下的步骤。
S1、建立支持多框架的机器学习模型,将风控数据进行特征工程数据处理,得到特征数据,对所述特征数据进行机器学习建模得到PMML机器学习模型并进行模型训练。以下介绍步骤S1的细分步骤过程:
S11、将风控数据进行特征工程数据处理,得到特征数据。
具体的,通过对数据源采集数据,得到数据源表,对所述数据源表进行数据分析,得到特征数据。数据分析可以使用python、spark。
还例如,首先,由历史数据中获取用于训练模型的数据,提取各风控产品及其空间节点下数据,形成数据源表。
其次,样本数据中的特征可能会存在缺失值、重复值、异常值等等,那么本申请需要对特征中的相关噪点数据进行处理的,处理的目的是为了塑造出一个更纯净的样本集,让模型基于这组数据可以有更好的预测能力。当然,特征工程还包含其他的操作,但最终目的都是为了数据更加纯净,利于预测。
特征工程包括以下中的一种或多种:特征抽取、数据特征预处理、数据的降维。其中特征抽取包括文本特征的抽取、字典特征的抽取、one-hot编码。数据特征的预处理包括:
1、归一化
通过对原始数据进行变换把数据映射到0-1之间
公式:
X=(X-min)/(max-min)
说明:作用于每一列,max为这一列的最大值,min为这一列的最小值
2、标准化
X=(X-mean)/σ
说明:也是作用于每一列,mean为均值,σ为标准差,这也是统计学上的标准化公式
数据的降维指的是对于特征的数量,对于数据而言,并不是所有的特征数据都需要参与预测,本申请对特征进行筛选,即特征选择:从特征中选择部分的特征作为最终的机器学习输入的数据。包括以下两种方式:
1使用工具:包括Filter(过滤式)和Embedded(嵌入式)。
2采用主成分分析方法PCAS12、对特征数据进行机器学习建模,得到PMML机器学习模型并进行模型训练。建模框架可以使用多种机器学习框架(sklearn、xgboost、lightgbm、sparkml、R、H2O)。
S12、对所述特征数据进行机器学习建模得到PMML机器学习模型并进行模型训练。
本申请中,可以选择Spark MLib进行生成PMML模型,也可以使用python进行建模。得到的模型即为MAR中的模型逻辑保存在MAR的model目录中。MAR即本次机器学习流程使用到的特征定义,数据定义,模型逻辑,方法,资源包。MAR文件结构,assets.json中包含数据定义,特征定义,方法等数据结构,lib中保存对应方法使用的资源包。
模型训练可以使用开源框架sklearn、xgboost、lightgbm、sparkml、R、H2O,本申请的模型训练是在Zeppelin数据分析与模型训练平台下完成的。Zeppelin是一个开源的Web版的notebook,用户可在zeppelin编写代码/SQL进行进行数据建模分析、数据可视化等等,zeppelin支持Spark、Python、JDBC、Shell、Markdown、Tony。涵盖大部分的机器学习框架,包括sklearn、R、SparkML、H2O、LightGBM、XGBoost等。
PMML由于是通用的模型格式,所以会丧失特殊模型的特殊优化,对于特征工程部分的计算,PMML对特征工程对支持有限,线上、线下可以单独实现,PMML文件只负责模型部分,这样既可以做丰富的特征工程,也实现了模型的共用。如图7所示,本申请基于PMML进行二次开发,实现线上推断restapi服务、hiveSQL函数、spark函数。
还例如,本申请中,还可以获取自定义算法,基于自定义插件脚本,将所述自定义算法对应生成二进制模型文件,将所述二进制模型文件转换为离线模型文件,例如:通过工具包将自定义算法,例如:xgboost训练的算法进行存储,比如本地存储为二进制模型文件(bin文件),通过相应的工具命令将所述自定义算法转换为特定格式的离线模型文件,例如:PMML模型文件。
S13、不同框架得到的模型,保存成为PMML文件,如图5所示,包括以下步骤:
步骤S131:对多种程序语言进行容器化部署,基于容器技术,封装多种程序语言的软件开发工具包;
具体的,多种程序语言,不同的程序语言训练生成的模型文件需要投入生产,因此,需要戒托容器化技术,封装对应程序语言的软件开发工具包(Software DevelopmentKit,SDK),例如:封装python,c++,java对应的SDK,从而提供算法在线化。在本发明实施例中,所述容器技术为通用容器技术(k8s)。
步骤S132:根据所述多种程序语言的软件开发工具包,获取每一程序语言生成的离线模型文件。
具体的,根据所述多种程序语言的软件开发工具包,服务器能够获取每一程序语言生成的模型文件,在本发明实施例中,通过提供一套通用容器技术(k8s)解决框架,算法建模人员通过对应的程序语言,开发健壮性强的算法代码,直接从离线集成容器SDK,即可通过模型服务对外提供在线预测服务。
下面举例说明如何将各种框架保存为统一的模型文件--PMML文件:
Scikit-Learn模型保存为PMML文件,以决策树模型为例。通过PMML工具包将SKlearn模型转化为PMML文件。
R语言模型保存为PMML文件,以随机森林模型为例。通过PMML工具包将R语言模型转化为PMML文件。
PySpark模型保存为PMML文件,以决策树模型为例。通过PMML工具包将PySpark模型转化为PMML文件。
SparkML模型保存为PMML文件,以决策树模型为例。通过PMML工具包将SparkML模型转化为PMML文件。
H2O模型保存为PMML文件,以线性分类器为例。通过PMML工具包将H2O模型转化为PMML文件。
lightgbm模型保存文PMML文件以回归模型为例。通过PMML工具包将lightgbm模型转化为PMML文件。
xgboost模型保存文PMML文件,以线性回归模型为例。通过PMML工具包将xgboost模型转化为PMML文件。
S2、将步骤S1中的数据源表加工为离线特征,将所述离线特征存储到键值数据库,根据所述键值数据库将所述PMML机器学习模型封装成为离线函数模型,完成离线部署。所述离线函数模型能够根据所述离线特征进行推断,生成推断结果。以下介绍步骤S2的细分步骤过程:
S21、在数据平台使用hiveql、spark程序实现建模过程中的特征数据处理,将数据源表加工成为离线特征。所述数据平台为大数据平台Scala/Pyspark。
例如,本申请将采集的数据源表实时写入消息系统,之后,借助Spark Streaming实时消息系统将离线特征数据写入大数据平台,其中,Spark Streaming的处理方式不是按照相关技术的依次序处理每条数据,而是将对接的外部数据流按照时间切分,批处理一个个切分后的文件。能够实现实时写入,对比传统的离线交换,延迟低,在秒级别,而传统的离线交换,多则以天延迟,少则以分钟延迟。
还例如,本步骤还可以采用以下技术方案:
特征计算步骤:通过pyspark任务读取数据源表,对所述数据源表进行特征计算,获取特征数据;
数据存储步骤:将所述特征数据经过处理后进行存储;
数据查询步骤:通过sdk查询所述特征数据后输出。
S22、离线特征存储到键值数据库(比如redis或hbase)。
例如,将每日离线任务加工特征宽表结果存储到Hbase。其中,Hbase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价PCServer上搭建起大规模结构化存储集群。
还例如,本步骤还可以采用以下技术方案:
其中,所述特征存储步骤包括:
中间存储步骤:调用python-kafka-sdk将所述特征数据写入kafka消息中间件中;
数据处理步骤:通过SparkStreaming实时流任务实时处理所述kafka消息中间件中的所述特征数据;
数据写入步骤:对处理完成的所述特征数据进行离线存储。其中,所述数据写入步骤还包括通过scene_type字段将所述特征数据进行离线存储。
S23、根据键值数据库将PMML机器学习模型封装成为离线函数模型(比如hive和spark的自定义函数模型),离线函数模型能够根据所述离线特征进行推断,生成推断结果。
本步骤可以采用以下技术方案:
生成TensorFlow serving的容器(Docker)环境;
所述TensorFlow serving的Docker环境用于对所述PMML模型镜像后分别封装处理。
在一种可能实现方式中,其中所述TensorFlow serving分别包括RESTful和GRPC两种访问模式。
机器学习模型本质上是一个函数,其可以对一组数据进行训练,并提供一种算法,该算法可用于对这些数据进行推理并从中进行学习,对机器学习模型进行训练后,可以使用机器学习模型对之前未见过的数据进行推理,并对这些数据进行预测。训练模型就是用已有的数据,通过一些方法(最优化或者其他方法)确定函数的参数,参数确定后的函数就是训练的结果,使用模型就是把新的数据代入函数求值。例如,假设我们需要建立一个应用程序,该应用程序可以根据用户的面部表情识别用户的情感,那么我们可以首先基于tensorflow构建一个模型,并为该模型提供具有特定情感标记的面部图像,然后对该模型进行训练,从而生成一个情感识别模型,最后即可在能够识别任何用户情感的应用程序中使用该情感识别模型。
容器是一种轻量级的可执行程序包,可以提供程序运行时的独立资源空间、网络、CPU、内存、存储等工具的软件包。容器可在任意装有容器运行环境的机器上运行,包括windows,mac,linux等各个类型操作系统。一个容器中可以自定义和安装软件运行的所有必需组件,如代码、运行环境、系统工具、库和配置设置。软件开发者可以将应用以及依赖包打包到容器中,做成一个容器镜像,然后发布到任何容器环境的机器上。
当容器数量达到一定规模,就需要编排工具去管理,容器编排工具是一种提供调度和管理容器集群的技术,其采用容器(包含要执行的服务)和一组约束或规则作为部署描述符,一起组成可部署的工件,然后在多台机器上找到最适合部署的基础设施,并控制容器之间的交互。
本发明实施例的数据分析工作流的所有特性通过运行引擎和容器化技术来实现,运行引擎将分析模块的所有输出/输入进行详细记录,包括输入/输出数据格式、对应连接模块标识ID,连接的输出/输入标识ID,并根据这些信息自动推断分析模块间的依赖关系及运行顺序。如模块B/C只依赖模块A,模块D依赖模块B和模块C。通过模块ID和输入/输出ID,运行引擎可保证数据传递的准确性。通过输入输出数据格式信息,运行引擎可配合有数据输出的分析模块的容器化运行环境,将输出数据按照指定格式写入到运行引擎的存储服务,并设置该数据为只读,防止被篡改和删除。运行输入数据的分析模块时,运行引擎又配合输入数据的分析模块的容器化运行环境将数据从存储空间读入,并使用同样的格式规范对数据进行了解析,以此保证数据传递的可用性和一致性。运行引擎根据分析模块间依赖关系会允许所有依赖该输出的分析模块读取该输出数据,因此多个依赖该输出的分析模块均有读取权限,以此保证数据的复用性。
S3、根据所述PMML机器学习模型发布模型服务组件,接收线上请求,根据请求的关键字段,查询健值数据库,得到离线特征,拼接请求中的线上特征,形成全量特征,完成线上部署。以下介绍步骤S3的细分步骤过程:
S31、根据所述PMML机器学习模型发布模型服务组件,并提供API接口。例如,用springboot框架发布成模型服务组件,提供Rest-API。
还例如,本步骤可以采用以下技术方案:
对目标模型进行接口化,以得到可调用接口。在本实施例中,可调用接口是指可以由终端等进行调用后直接对接算法模型,是可调用算法模型的接口。
具体地,对目标PMML机器学习模型构建调用接口,并封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑,以形成可调用接口;当数据量超过预设数值时,通过spark、flink工具进行数据预处理后,再对所述目标PMML机器学习模型构建调用接口,并封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑。
即对所述目标PMML机器学习模型构建调用接口时,将以上过程封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装该方法形成可调用的web接口;特别地数据量比较大的情况下,算法模型的数据预处理会造成超时,通过spark、flink等工具进行算法模型的数据预处理,然后通过上述封装方法形成可调用的web接口避免接口超时的问题。
有了以上目标模型的输出,便可以构建调用接口,例如数据量不大的情况可以用springboot框架调用目标模型,直接对结果预测;数据量比较大的情况可以采用Springboot调用spark脚本运行分布式任务调用目标模型进行预测,然后将结果返回至终端,也就是通过终端调用该接口,将需要预测的数据通过在可调用接口输入后,由服务器调用对应的算法模型进行预测,并形成预测的结果,将预测结果反馈至终端显示。
S32、接收线上请求,根据请求的关键字段,查询健值数据库,拿到离线特征,拼接请求中的线上特征,形成全量特征。
例如,groovy脚本发布成为每个具体场景的线上特征服务,查询hbase特征表,拼接成特征宽表。
还例如,本步骤可以采用以下技术方案:
模型开发人员进行每个具体场景的核心逻辑的代码编辑,本实施例支持MYSQL和GROOVY脚本两种方式,并且在页面中可直接进行单元测试。
具体的,接收线上请求,根据请求的关键字段,查询健值数据库(例如hbase特征表),拿到离线特征,拼接请求中的线上特征,形成全量特征。
为实现建模人员能自主开发及测试模型,需提供在线编码(groovy)的方式实现特征提取,分箱建模,Java文件导入建模,并可进行在线测试。
S33、用groovy语言开发每个具体场景的风控规则,发布到规则引擎模块,完成线上部署。
本步骤可以采用以下技术方案:
用户根据需求执行响应的业务操作,规则引擎实时侦测业务操作事件。该规则引擎可为业务规则引擎,或者其他规则引擎,此处对此不作限制。
具体地,当侦测到业务操作事件时,根据业务操作事件从缓存库中匹配响应的业务规则实例。进一步地,缓存库中预先存储有一个以上业务规则实例,每一业务规则实例由后台研发人员根据实际需求,并基于groovy语言创建。当匹配到对应的业务规则实例时,输出对应的执行结果;当未匹配到时,停止进程。
S4、使用所述支持多框架的机器学习模型进行离线推断,如图6所示,步骤如下:
S41、风控业务离线数据表(客户信息表、交易数据表、客户行为表),经过特征工程数据处理,得到离线特征表。
例如,提取风控业务离线数据表中的特征项,其中,每个所述特征项对应目标样本的一个特征维度;通过样本ID将所述特征项关联至特征表的特征列,拼接生成当前周期的离线特征宽表。
在本实施例中,宽表将业务主题相关的指标、维度、属性关联在一张数据库表中,把不同的内容放在同一张表中存储,宽表的每个表项对应样本的一个特征项,并通过时间切分进行存储。
S42、使用S22得到的hive和spark函数,对于离线特征表进行推断,得到风控业务预测结果表。
在本实施例中,根据离线特征表将实时业务数据转换为对应不同特征以及特征下不同维度的多条输入数据,针对不同特征以及特征下不同维度的多条输入数据执行聚合或累加操作得到并存储中间汇总结果;优选的,通过flink flatMap算子按照不同的特征维度转换为多条数据,在key stream中进行不同特征维度的聚合、累加等操作,中间汇总结果存储在flink state backend中;
将离线特征输入预先训练完成的预测模型得到预测结果。
S43、业务系统根据预测结果表进行风控后续处理。
这个步骤根据不同的业务系统有所不同,但均为根据预测结果表进行风控处理。处理后产生回流数据,向学习模型回流。
S44、回流数据处理成为数据指标(业务调用量、准确率、召回率、F1-score),通过数据看板进行查看。
在这个步骤中,对回流数据进行数据分析得到各方面的数据指标,并进行展示。
S5、业务系统使用所述支持多框架的机器学习模型进行线上推断。具体包括如下步骤:
S51、业务系统通过http服务调用的方式经过S32的特征服务,S31的模型服务,最终得到风控模型预测结果。
例如,特征宽表数据提交到模型服务组件预测。
一个机器学习模型中通常包含有初始化函数、推断函数和退出函数,其中,初始化函数用于初始化模型运行环境并加载资源,推断函数用于根据加载的数据预测结果,退出函数用于程序退出时清理回收资源。机器学习模型通常不能直接对外提供服务,在实际应用中,机器学习模型需要与服务框架结合,以构建一个完整的模型服务组件,然后通过该模型服务组件对外提供服务。
模型服务组件可以通过Restful接口或者RPC接口暴露服务,以对外提供服务。
当用户通过Restful接口或者RPC接口访问模型服务组件时,用户的访问请求首先被引导至中间层,进而通过中间层触发机器学习模型运行,机器学习模型通过对数据进行分析得到预测结果,然后将上述预测结果传递至中间层,并最终通过Restful接口或者RPC接口返回给用户。
S52、线上全量特征和模型预测结果写入消息队列,回流到大数据平台。
例如,将所述特征宽表数据和步骤S51中的预测结果写入消息日志,回流到大数据平台。
S53、回流数据处理成为数据指标(业务调用量、准确率、召回率、F1-score),通过数据看板进行查看。
在这个步骤中,对回流数据进行数据分析得到各方面的数据指标,并进行展示。
应用本发明的模型部署方法,线上风控业务模型推断结果如下表所示,可见在线推断的速度得到很大提升。压测案例为200个特征的二分类模型,采用XGBoost转换为PMML格式,在4C8G服务器环境线上推断压测结果。
应用本发明的模型部署方法,离线风控业务模型推断结果如下:
(1)原有的独立python机器进行离线推断,1千万风控数据,整个过程需要经过数据的下载和回传,耗时40分钟。
(2)如图8所示,采用hive的自定义函数进行风控模型离线推断,1千万风控数据,推断时间15分钟,风控模型准确率不变。风控业务处理时间减少了25分钟,耗时减少约60%,效率提升接近1倍。
(3)如图9所示,采用spark自定义函数进行风控模型离线推断,1千万风控数据,推断时间2分钟,风控模型准确率不变。风控业务处理时间减少了38分钟,耗时减少95%,效率提升接近20倍。
如图10所示,在一个实施例中,提供了一种支持多框架的机器学习模型部署系统,该支持多框架的机器学习模型部署系统可以包括:
PMML建模模块411,用于建立支持多框架的机器学习模型,将风控数据进行特征工程数据处理,得到特征数据,对所述特征数据进行机器学习建模得到PMML机器学习模型并进行模型训练;
离线部署模块412,用于将所述风控数据的数据源表加工为离线特征,将所述离线特征存储到键值数据库,根据所述键值数据库将所述PMML机器学习模型封装成为离线函数模型,完成离线部署;
线上部署模块413,用于根据所述PMML机器学习模型发布模型服务组件,接收线上请求,根据请求的关键字段查询健值数据库,得到离线特征,进而拼接请求中的线上特征,形成全量特征,完成线上部署。
本申请实施方式还提供一种与前述实施方式所提供的支持多框架的机器学习模型部署方法对应的电子设备,以执行上支持多框架的机器学习模型部署方法。本申请实施例不做限定。
请参考图11,其示出了本申请的一些实施方式所提供的一种电子设备的示意图。如图11所示,所述电子设备2包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本申请前述任一实施方式所提供的支持多框架的机器学习模型部署方法。
其中,存储器201可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线202可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述支持多框架的机器学习模型部署方法可以应用于处理器200中,或者由处理器200实现。
处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
本申请实施例提供的电子设备与本申请实施例提供的支持多框架的机器学习模型部署方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的支持多框架的机器学习模型部署方法对应的计算机可读存储介质,请参考图12,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的支持多框架的机器学习模型部署方法。
如图12所示,存储器中可以存储有文本增强程序;处理器执行存储器中存储的文本增强程序时实现的步骤。
可选地,在其他的实施例中,文本增强程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器中,并由一个或多个处理器(本实施例为处理器)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述文本增强程序在电子装置中的执行过程。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的支持多框架的机器学习模型部署方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备有固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本申请进行说明而不是对本申请进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (6)

1.一种支持多框架的机器学习模型部署方法,其特征在于,包括:
建立支持多框架的机器学习模型,将风控数据进行特征工程数据处理,得到特征数据,对所述特征数据进行机器学习建模得到PMML机器学习模型并进行模型训练;
将所述风控数据的数据源表加工为离线特征,将所述离线特征存储到键值数据库,根据所述键值数据库将所述PMML机器学习模型封装成为离线函数模型,完成离线部署,包括:在数据平台使用hiveql、spark程序将风控数据的数据源表加工成为离线特征;将所述离线特征存储到键值数据库;根据所述键值数据库将所述PMML机器学习模型封装成为离线函数模型;所述将所述离线特征存储到键值数据库,包括:调用python-kafka-sdk将所述离线特征写入kafka消息中间件中;通过SparkStreaming实时流任务实时处理所述kafka消息中间件中的所述离线特征;通过scene_type字段对处理完成的所述离线特征进行离线存储;
根据所述PMML机器学习模型发布模型服务组件,接收线上请求,根据请求的关键字段查询健值数据库,得到离线特征,进而拼接请求中的线上特征,形成全量特征,完成线上部署,包括:根据所述PMML机器学习模型发布模型服务组件,并提供API接口;接收线上请求,根据请求的关键字段查询健值数据库,得到离线特征,拼接请求中的线上特征,形成全量特征;用groovy语言开发每个具体场景的风控规则,发布到规则引擎模块,完成线上部署;
采集离线数据表,经过特征工程数据处理,得到离线特征表;
使用所述hiveql、spark程序中的hive和spark函数,对于离线特征表进行推断,得到预测结果表;
根据所述预测结果表进行风控处理;
回流数据处理成为数据指标,通过数据看板进行查看。
2.如权利要求1所述的支持多框架的机器学习模型部署方法,其特征在于,
所述将风控数据的数据源表加工为离线特征,包括:
通过pyspark任务读取数据源表,对所述数据源表进行特征计算,获取特征数据;
将所述特征数据经过处理后进行存储;
通过sdk查询所述特征数据后输出。
3.如权利要求1所述的支持多框架的机器学习模型部署方法,其特征在于,在接收线上请求,根据请求的关键字段查询健值数据库,得到离线特征,进而拼接请求中的线上特征,形成全量特征,完成线上部署之后,包括:
通过服务调用所述线上特征和模型服务组件,得到风控模型预测结果;
将所述全量特征和风控模型预测结果写入消息队列,回流到大数据平台;
回流数据处理成为数据指标,通过数据看板进行查看。
4.一种支持多框架的机器学习模型部署系统,使用权利要求1-3任一项所述的方法,其特征在于,包括:
PMML建模模块,用于建立支持多框架的机器学习模型,将风控数据进行特征工程数据处理,得到特征数据,对所述特征数据进行机器学习建模得到PMML机器学习模型并进行模型训练;
离线部署模块,用于将所述风控数据的数据源表加工为离线特征,将所述离线特征存储到键值数据库,根据所述键值数据库将所述PMML机器学习模型封装成为离线函数模型,完成离线部署;
线上部署模块,用于根据所述PMML机器学习模型发布模型服务组件,接收线上请求,根据请求的关键字段查询健值数据库,得到离线特征,进而拼接请求中的线上特征,形成全量特征,完成线上部署。
5.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至3中任一项权利要求所述支持多框架的机器学习模型部署方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令被一个或多个处理器执行时,实现如权利要求1至3中任一项权利要求所述支持多框架的机器学习模型部署方法的步骤。
CN202111007445.9A 2021-08-30 2021-08-30 机器学习模型部署方法、系统、计算机设备及存储介质 Active CN113721898B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111007445.9A CN113721898B (zh) 2021-08-30 2021-08-30 机器学习模型部署方法、系统、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111007445.9A CN113721898B (zh) 2021-08-30 2021-08-30 机器学习模型部署方法、系统、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN113721898A CN113721898A (zh) 2021-11-30
CN113721898B true CN113721898B (zh) 2024-04-12

Family

ID=78679377

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111007445.9A Active CN113721898B (zh) 2021-08-30 2021-08-30 机器学习模型部署方法、系统、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN113721898B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115130008B (zh) * 2022-08-31 2022-11-25 喀斯玛(北京)科技有限公司 一种基于机器学习模型算法的搜索排序方法
CN116048542B (zh) * 2023-02-11 2023-10-31 之江实验室 一种计算机视觉深度学习模型的优化部署方法与装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111273901A (zh) * 2020-01-20 2020-06-12 浙江邦盛科技有限公司 一种可快捷上线部署的机器学习模型的文件格式及部署方法
CN112783655A (zh) * 2021-01-29 2021-05-11 北京明略昭辉科技有限公司 基于机器学习的模型部署方法、系统、服务器和存储介质
CN112801302A (zh) * 2021-02-04 2021-05-14 北京明略软件系统有限公司 一种基于接口的机器学习模型发布方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11720813B2 (en) * 2017-09-29 2023-08-08 Oracle International Corporation Machine learning platform for dynamic model selection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111273901A (zh) * 2020-01-20 2020-06-12 浙江邦盛科技有限公司 一种可快捷上线部署的机器学习模型的文件格式及部署方法
CN112783655A (zh) * 2021-01-29 2021-05-11 北京明略昭辉科技有限公司 基于机器学习的模型部署方法、系统、服务器和存储介质
CN112801302A (zh) * 2021-02-04 2021-05-14 北京明略软件系统有限公司 一种基于接口的机器学习模型发布方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Spark的流程化机器学习分析方法;赵玲玲 等;计算机系统应用;20161215;第25卷(第12期);第162-168页 *

Also Published As

Publication number Publication date
CN113721898A (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
US11669310B2 (en) Codeless development of enterprise application
CN113721898B (zh) 机器学习模型部署方法、系统、计算机设备及存储介质
US20130166563A1 (en) Integration of Text Analysis and Search Functionality
US20110153624A1 (en) Data model access configuration and customization
Oancea et al. Integrating R and hadoop for big data analysis
US11748762B2 (en) System for simulating and creating smart purchase agreements from master service agreements
US10860806B2 (en) Learning and classifying workloads powered by enterprise infrastructure
US10915378B1 (en) Open discovery service
CN111414369B (zh) 一种数据处理方法、装置及设备
CN110046974A (zh) 一种工程投标文件评估系统及方法
CN115082247B (zh) 基于标签库的系统投产方法、装置、设备、介质和产品
CN110766460A (zh) 一种用户画像的方法、装置、存储介质及计算机设备
US20160239275A1 (en) Generating an integrated service
Liermann et al. Hyperautomation (automated decision-making as part of RPA)
CN114463138A (zh) 风险监测方法、装置、设备及存储介质
CN117408821A (zh) 一种保险理赔核责方法、装置、计算机设备及存储介质
CN117033431A (zh) 工单处理方法、装置、电子设备和介质
US20230119881A1 (en) Data network, system and method for data ingestion in a data network
Urquhart Flow Architectures
US20170199729A1 (en) Application developing method and system
Steurer Kafka: Real-Time Streaming for the Finance Industry
McMahon Machine Learning Engineering with Python: Manage the production life cycle of machine learning models using MLOps with practical examples
WO2022184264A1 (en) Platform and method for building and deploying software applications
Watt et al. Business Driven Insight via a Schema-Centric Data Fabric.
CN112883091A (zh) 因子数据获取方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant