CN112631719B - 数据预测模型调用方法、装置、设备和存储介质 - Google Patents
数据预测模型调用方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN112631719B CN112631719B CN202011539496.1A CN202011539496A CN112631719B CN 112631719 B CN112631719 B CN 112631719B CN 202011539496 A CN202011539496 A CN 202011539496A CN 112631719 B CN112631719 B CN 112631719B
- Authority
- CN
- China
- Prior art keywords
- data
- model
- class
- machine learning
- java
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000010801 machine learning Methods 0.000 claims abstract description 91
- 238000006243 chemical reaction Methods 0.000 claims abstract description 48
- 238000004458 analytical method Methods 0.000 claims abstract description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 10
- 230000009466 transformation Effects 0.000 claims description 10
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 238000012795 verification Methods 0.000 description 6
- 238000007418 data mining Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种数据预测模型调用方法、装置、设备及存储介质,包括获取数据预测机器学习模型的预设格式文件包;解析所述预设格式文件包,得到所述数据预测机器学习模型对应每个节点的java类,所述数据预测机器学习模型包括模型信息节点、数据字典节点和数据转换字典节点;将每个所述java类热加载到java虚拟机中;控制所述java虚拟机执行所述数据预测机器学习模型的每个所述java类,以得到所述数据预测机器学习模型的预测结果。本申请还提供一种计算机可读存储介质,本申请能够提高数据预测模型解析和执行效率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据预测模型调用方法、装置、设备和存储介质。
背景技术
数据挖掘是指从大量的数据中通过算法搜索隐藏于其中有效信息的过程。目前,数据挖掘技术在多种业务场景中被广泛使用。例如,在风险贷前、贷中的业务场景中,需要根据商户的大量的交易流水数据挖掘出商户的贷款风险,以授权高价值商户,预防高风险商户等等。数据挖掘需要使用对应的数据预测模型执行,随着使用业务场景的增多,不同业务场景下需要使用不同的数据预测模型,然而有些数据预测模型结构复杂,在执行时需要递归多层,运行耗时,并且不同数据预测模型的模型部署和运维方式复杂且各不相同。比如,目前主流的数据预测模型是基于JAVA模型引擎,因此,大部分数据预测模型仅支持使用PMML进行模型交互,由开源组件JPMML对数据预测模型进行解析、执行,其中,JPMML是指用Java编写的用于解析PMML的组件。但是在实际应用场景下,JPMML在复杂情况下的系统资源占用以及耗时均很高。因此,需要一种提高的数据预测模型的解析和执行效率的方法。
发明内容
有鉴于此,本发明实施例提供了一种数据预测模型调用方法、装置、计算机设备及计算机可读存储介质,用于解决数据预测模型解析和执行效率低的问题。
本发明实施例是通过下述技术方案来解决上述技术问题:
一种数据预测模型调用方法,包括:
获取数据预测机器学习模型的预设格式文件包;
解析所述预设格式文件包,得到所述数据预测机器学习模型对应每个节点的java类,所述数据预测机器学习模型包括模型信息节点、数据字典节点和数据转换字典节点;
将所述java类热加载到java虚拟机中;
控制所述java虚拟机执行所述数据预测机器学习模型的java类,以得到所述数据预测机器学习模型的预测结果。
进一步地,所述解析所述预设格式文件包,得到所述数据预测机器学习模型对应每个节点的java类包括:
识别所述预设格式文件包中的数据字典节点,将所述数据字典节点解析成DataDictionary类;
识别所述预设格式文件包中的数据转换字典节点,将所述数据转换字典节点解析成TransformationDictionary类;
识别所述预设格式文件包中的模型信息节点,将所述模型信息节点解析成Model类。
进一步地,所述识别所述预设格式文件包中的数据字典节点包括:
当识别到数据类型的说明字符或操作类型的说明字符时,确定所述说明字符为数据字典节点;
所述识别所述预设格式文件包中的数据转换字典节点包括:
当识别到数据转换逻辑字符时,确定所述数据转换逻辑字符为数据转换字典节点;
所述识别所述预设格式文件包中的模型信息节点,将所述模型信息节点解析成Model类包括:
当识别到模型类型标识时,确定所述模型标签所在的节点为模型信息节点;
将所述模型信息节点解析成Model类。
进一步地,所述将所述java类热加载到java虚拟机中包括:
获取每个java类的二进制字节流,所述二进制字节流中包含常量池;
验证所述二进制字节流中的信息是否符合当前虚拟机的要求;
当所述二进制字节流符合当前虚拟机的要求后,为每个所述java类分配内存并设置类变量初始值;以及
将所述常量池中的符号引用替换为直接引用;
对每个所述java类进行初始化,完成所述java类热加载。
进一步地,所述控制所述java虚拟机执行对应的机器学习模型的java类,以得到所述数据预测机器学习模型的预测结果包括:
控制所述java虚拟机根据DataDictionary类中的规范字段确定数据预测机器学习模型所需要的规范数据的类型;
控制所述java虚拟机通过TransformationDictionary类根据所述规范数据的类型,对对所获取的输入数据执行转换,以得到所需要的规范数据;
控制所述java虚拟机通过Model类对所述规范数据执行预测算法,以得到所述数据预测机器学习模型的预测结果。
进一步地,所述模型信息节点内存储有模型标签,所述识别所述预设格式文件包中的模型信息节点,将所述模型信息节点解析成Model类包括:
获取所述模型标签,根据所述模型标签获取机器学习模型对应的预测算法;
将所述预测算法封装在所述Model类中。
进一步地,所述执行所述数据预测机器学习模型的java类,以得到所述数据预测机器学习模型的预测结果后,所述方法还包括:
将所述预测结果存储至区块链中。
为了实现上述目的,本发明实施例还提供一种数据预测模型调用装置,包括:
预设格式文件包获取模块,用于获取数据预测机器学习模型的预设格式文件包;
预设格式文件包解析模块,用于解析所述预设格式文件包,得到所述数据预测机器学习模型对应每个节点的java类,所述数据预测机器学习模型包括模型信息节点、数据字典节点和数据转换字典节点;
java类热加载模块,用于将所述java类热加载到java虚拟机中;
java类执行模块,用于控制所述java虚拟机执行所述数据预测机器学习模型的java类,以得到所述数据预测机器学习模型的预测结果。
为了实现上述目的,本发明实施例还提供一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述数据预测模型调用方法的步骤。
为了实现上述目的,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的数据预测模型调用方法的步骤。
本发明实施例提供的数据预测模型调用方法、装置、计算机设备及计算机可读存储介质,本实施例通过获取数据预测机器学习模型的预设格式文件包;解析所述预设格式文件包,得到所述数据预测机器学习模型对应每个节点的java类,所述数据预测机器学习模型包括模型信息节点、数据字典节点和数据转换字典节点;将所述java类热加载到java虚拟机中;控制所述java虚拟机执行所述数据预测机器学习模型的java类,以得到所述数据预测机器学习模型的预测结果。能够提高数据预测模型解析和执行效率。通过对数据预测模型对应的预设格式文件包进行解析,将数据预测模型中复杂的树型结构由之前的递归解析方式变为平铺的非递归逻辑判断和运算,去除嵌套调用,最终生成Java可执行文件,在Java虚拟机内热加载执行,提高了模型的解析效率,从而提高了模型的执行效率。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为本发明实施例一之数据预测模型调用方法的步骤流程图;
图2为本发明实施例一之解析所述预设格式文件包,得到所述数据预测机器学习模型对应每个节点的java类方法的步骤流程图;
图3为本发明实施例一之将所述模型信息节点解析成Model类方法的步骤流程图;
图4为本发明实施例一之将所述java类热加载到java虚拟机中方法的步骤流程图;
图5为本发明实施例一之控制所述java虚拟机执行所述数据预测机器学习模型的java类,以得到所述数据预测机器学习模型的预测结果方法的步骤流程图;
图6为本发明实施例二之数据预测模型调用装置的程序模块示意图;
图7为本发明实施例三之计算机设备的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
请参阅图1,示出了本发明实施例之数据预测模型调用方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备为执行主体进行示例性描述,具体如下:
如图1所示,所述数据预测模型调用方法可以包括步骤S100~S400,其中:
步骤S100,获取数据预测机器学习模型的预设格式文件包。
在示例性的实施例中,所述预设格式文件包可以为xml格式文件包。
以下以预设格式文件包为xml格式文件包进行示例性说明所述数据预测模型调用方法的具体操作。
所述xml格式文件包包括模型信息节点、数据字典节点和数据转换字典节点,所述xml格式文件包符合PMML规范。
具体的,包含机器学习模型的xml格式文件包是指,将机器学习模型导出为xml格式文件包。或者是由开发人员预先编写机器学习模型的xml文件。PMML(Predictive ModelMarkup Language,预言模型标记语言)是一种利用XML描述和存储数据挖掘模型的标准语言,它依托xml本身特有的数据分层思想和应用模式,实现了数据挖掘中模型的可移植性。
在示例性的实施例中,机器学习模型的xml格式文件包包括模型信息节点、数据字典节点和数据转换字典节点。其中,模型信息节点是指机器学习模型的类型以及模型参数。机器学习模型的类型包括神经网络、决策树、Kmeans聚类等等,模型参数是指模型从历史训练数据中学到的一部分,是机器学习算法的关键。模型参数包括人造神经网络中的权重;支持向量机中的支持向量;线性回归或逻辑回归中的系数等等。
步骤S200,解析所述预设格式文件包,得到所述数据预测机器学习模型对应每个节点的java类,所述数据预测机器学习模型包括模型信息节点、数据字典节点和数据转换字典节点。
在示例性的实施例中,如图2所示,步骤S200还可以进一步包括:
步骤S201,识别所述预设格式文件包中的数据字典节点,将所述数据字典节点解析成DataDictionary类。
当识别到数据类型的说明字符或操作类型的说明字符时,确定所述说明字符为数据字典节点。
数据字典(DataDictionary)节点用于描述字段信息,包括模型的规范字段和输出字段,规范字段是指模型处理需要的字段,输出字段是指模型对规范字段进行处理后输出的预测结果。每一个字段用DataField元素描述。其中,DataField有三个必须的属性:name字段或特征名字,optype操作类型,有三个可选值:categorical类别变量,只能进行相等的判断;ordinal序数变量还可以进行顺序比较;continuous只有这个操作类型才能进行算术运算。dataType为数据类型。
在示例性的实施例中,识别所述预设格式文件包中的数据字典节点可以进一步包括:
步骤S202,识别所述预设格式文件包中的数据转换字典节点,将所述数据转换字典节点解析成TransformationDictionary类。
在示例性的实施例中,识别所述预设格式文件包中的数据转换字典节点可以进一步包括:
当识别到数据转换逻辑字符时,确定所述数据转换逻辑字符为数据转换字典节点。
数据转换字典(TransformationDictionary)节点用于保存哪些输入字段需要转换,以及机器学习模型获取这些输入字段后,将输入字段转换为规范字段的处理转换过程。具体可以是通过函数对输入数据进行的转换,得到规范数据。其中,对输入数据进行转换的函数包括,Normalization,表示对输入数据进行归一化处理,输入数据可以是连续或离散值;Discretization,表示将连续值的输入数据变成离散值;Value mapping,表示将离散值的输入数据映射为离散值;Aggregation,是聚合函数,表示对输入数据数据执行求和。举例来说,一个机器学习模型为了预测停车所需的制动压力,获取室外温度和湿度作为输入数据,并将这两个数据结合起来,以获取路上是否结冰的结冰数据,然后结冰数据被作为模型的规范数据来预测停车所需的制动压力。又例如,一个机器学习模型是为了对文本进行聚类,获取文本中的单词作为输入数据,将单词转化为对应的词向量,然后将词向量作为规范数据来进行文本聚类。
此外,当业务场景的实现需要使用多个模型时,通过用Segmentation,Segmentation用于表示融合和组织多个模型,每一个模型都被包括在子元素Segment中。Segmentation中的属性multipleModelMethod可以用来表明多个模型的组合方式,可以取得的值包括:modelChain模型链,将前一个模型的预测值作为后一个模型的输入;sum求和,将多个模型的预测值求和;average平均,将多个模型的预测值平均。每一个Segment包含属性id和weight,其中weight为可选属性,在机器学习模型的组合方式为加权融合的情况下才有用。
步骤S203,识别所述预设格式文件包中的模型信息节点,将所述模型信息节点解析成Model类。
在示例性的实施例中,步骤S203可以进一步包括:
当识别到模型类型标识时,确定所述模型类型标识所在的节点为模型信息节点;
将所述模型信息节点解析成Model类。
具体的,在编写xml格式文件包时,为模型信息节点赋予模型类型标识,当识别到模型类型标识时,则确定该节点为模型信息节点,并将还模型信息节点解析成Model类。
在示例性的实施例中,如图3所示,所述将所述模型信息节点解析成Model类包括:
步骤2032A,获取所述模型标签,根据所述模型标签获取机器学习模型对应的预测算法;
步骤2032B,将所述预测算法封装在所述Model类中。
具体的,由于每种类型的机器学习模型对应不同的预测算法,根据不同的模型会有不同的标签,如回归模型就是<RegressionModel>、聚类就是<ClusteringModel>,树模型<TreeModel>等,如果一个模型比较复杂,需要用到好几种基本模型,则由标签<MiningModel>定义,如gbdt(梯度提升树)模型就是由TreeModel和RegressionModel组合而成。此,在解析模型信息节点时,通过模型的标签,获取机器学习模型对应的预测算法,并将该算法封装在Model类中
步骤S300,将所述java类热加载到java虚拟机中。
在示例性的实施例中,如图4所示,步骤S300还包括:
步骤S301,获取每个java类的二进制字节流,所述二进制字节流中包含常量池。
具体的,通过一个java类的全限定名来获取定义此java类的二进制字节流;将这个二进制字节流所代表的静态存储结构转换为方法区的运行时数据结构;在内存中生成一个代表这个java类的java.lang.Class对象,作为方法区这个java类的各种数据的访问入口。
步骤S302,验证所述二进制字节流中的信息是否符合当前虚拟机的要求。
具体地,校验字节流是否符合Class文件格式的规范,并且能够被当前版本的虚拟机处理。主要验证主、次版本号是否是当前虚拟机处理范围之内;常量池的常量中是否有不被支持的常量类型(检查常量tag标志);指向常量的各种索引值中是否有指向不存在的常量或不符合类型的常量;ONSTANT_Utf8_info型的常量中是否有不符合UTF8编码的数据;Class文件中各个部分及文件本身是否有被删除的或附加的其他信息等。以上是一部分校验内容,经过这些校验后,字节流才会进入内存的方法区中存储,接下来基于方法区的存储结构进行验证。包括:元数据验证、字节码验证和符号引用验证。
步骤S303,当所述二进制字节流符合当前虚拟机的要求后,为每个所述java类分配内存并设置类变量初始值;以及
将所述常量池中的符号引用替换为直接引用。
具体的,为类变量赋予初始值,并针对类或接口、字段、类方法、接口方法、方法类型、方法句柄和调用点限定符7类符号引用,将常量池中的符号引用替换为直接引用。符号引用就是一组符号来描述目标,可以是任何字面量。直接引用就是直接指向目标的指针、相对偏移量或一个间接定位到目标的句柄。
步骤S304,对所述java类进行初始化,完成所述java类热加载。
具体的,初始化是指为类的静态变量赋予正确的初始值,主要对类变量进行初始化,以完成所述java类热加载。
步骤S400,控制所述java虚拟机执行所述数据预测机器学习模型的java类,以得到所述数据预测机器学习模型的预测结果。
具体的,将xml格式文件包转换为对应的机器学习模型后,所有java类的的执行顺序已经确定,当获取输入的预测变量后,直接按照java类的顺序执行。java类中包含从xml格式文件包中翻译过来的java函数,执行java类就是指的调用这些java函数,以得到机器学习模型的预测结果。
在示例性的实施例中,如图5所示,所述步骤S400还可以进一步包括:
步骤S401,控制所述java虚拟机根据DataDictionary类中的规范字段,所述规范字段用于确定数据预测机器学习模型所需要的规范数据的类型。
步骤S402,控制所述java虚拟机通过TransformationDictionary类根据所述规范数据的类型,对所获取的输入数据执行转换,以得到所需要的规范数据。
具体的,当确定机器学习模型预测算法所需要的规范数据后,对机器学习模型的输入数据进行数据转化处理,得到规范数据。
步骤S403,控制所述java虚拟机通过Model类对所述规范数据执行预测算法,以得到所述数据预测机器学习模型的预测结果。
具体的,通过Model类的预测算法,对规范数据进行计算,以得到机器学习模型的预测结果。
在示例的实施例中,所述执行所述数据预测机器学习模型的java类,以得到所述数据预测机器学习模型的预测结果后,所述方法还包括:
将所述预测结果存储至区块链中。
具体的,基于预测结果得到对应的摘要信息,具体来说,摘要信息由预测结果进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该摘要信息,以便查证预测结果是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本实施例通过获取数据预测机器学习模型的xml格式文件包;解析所述xml格式文件包,得到所述数据预测机器学习模型对应每个节点的java类,所述数据预测机器学习模型包括模型信息节点、数据字典节点和数据转换字典节点;将所述java类热加载到java虚拟机中;控制所述java虚拟机执行所述数据预测机器学习模型的java类,以得到所述数据预测机器学习模型的预测结果。通过针对JAVA虚拟机优化后的算法将模型包进行解析,将复杂的由原来的递归解析方式修改为平铺的非递归逻辑判断和运算,去除嵌套调用,最终生成JAVA可执行文件,在JVM内热加载执行。能够在同一个业务场景中同时嵌入多种模型,在实现模型的业务效果的同时,不会影响实时时效;持业务算法快速上线,提升效率;可以引入更多更复杂的机器学习模型,达到更好的业务效果,例如在风险贷前、贷中,市场,服管等业务场景中,授权高价值商户,精准营销,高风险商户防堵,降低客诉率等等。
实施例二
请继续参阅图6,示出了本发明数据预测模型调用装置的程序模块示意图。在本实施例中,数据预测模型调用装置20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述数据预测模型调用方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述数据预测模型调用装置20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
预设格式文件包获取模块200,用于获取数据预测机器学习模型的预设格式文件包;
预设格式文件包解析模块202,用于解析所述预设格式文件包,得到所述数据预测机器学习模型对应每个节点的java类,所述数据预测机器学习模型包括模型信息节点、数据字典节点和数据转换字典节点;
进一步地,预设格式文件包解析模块202还用于:
识别所述预设格式文件包中的数据字典节点,将所述数据字典节点解析成DataDictionary类;
识别所述预设格式文件包中的数据转换字典节点,将所述数据转换字典节点解析成TransformationDictionary类;
识别所述预设格式文件包中的模型信息节点,将所述模型信息节点解析成Model类。
进一步地,预设格式文件包解析模块202还用于:
识别所述预设格式文件包中的数据字典节点包括:
当识别到数据类型的说明字符或操作类型的说明字符时,确定所述说明字符为数据字典节点;
所述识别所述预设格式文件包中的数据转换字典节点包括:
当识别到数据转换逻辑字符时,确定所述数据转换逻辑字符为数据转换字典节点;
所述识别所述预设格式文件包中的模型信息节点,将所述模型信息节点解析成Model类包括:
当识别到模型类型标识时,确定所述模型标签所在的节点为模型信息节点;
将所述模型信息节点解析成Model类。
进一步地,预设格式文件包解析模块202还用于:
获取所述模型标签,根据所述模型标签获取机器学习模型对应的预测算法;
将所述预测算法封装在所述Model类中。
java类热加载模块204,用于将所述java类热加载到java虚拟机中;
进一步地,java类热加载模块204还用于:
获取所述java类的二进制字节流、运行时数据结构和数据的访问入口;
对所述java类的二进制字节流进行验证;
为所述java类的类变量分配内存并设置类变量初始值;
对所述java类进行解析,将常量池内的符号引用替换为直接引用;
对所述java类进行初始化,完成所述java类热加载。
java类执行模块206,用于控制所述java虚拟机执行所述数据预测机器学习模型的java类,以得到所述数据预测机器学习模型的预测结果。
进一步地,java类执行模块206还用于:
控制所述java虚拟机根据DataDictionary类中的规范字段,所述规范字段用于确定数据预测机器学习模型所需要的规范数据的类型;
控制所述java虚拟机通过TransformationDictionary类根据所述规范数据的类型,对对所获取的输入数据执行转换,以得到所需要的规范数据;
控制所述java虚拟机通过Model类对所述规范数据执行预测算法,以得到所述数据预测机器学习模型的预测结果。
所述执行所述数据预测机器学习模型的java类,以得到所述数据预测机器学习模型的预测结果后,进一步地,java类执行模块206还用于:
将所述预测结果存储至区块链中。
实施例三
参阅图7,是本发明实施例7之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,所述计算机设备2至少包括,但不限于,可通过系统装置总线相互通信连接存储器21、处理器22、网络接口23、以及数据预测模型调用装置20。其中:
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统装置和各类应用软件,例如上述实施例的数据预测模型调用装置20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行数据预测模型调用装置20,以实现上述实施例的数据预测模型调用方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图7仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述数据预测模型调用装置20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图6示出了所述实现数据预测模型调用装置20实施例二的程序模块示意图,该实施例中,所述基于数据预测模型调用装置20可以被划分为预设格式文件包获取模块200、预设格式文件包解析模块202、java类热加载模块204和java类执行模块206。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述数据预测模型调用装置20在所述计算机设备2中的执行过程。所述程序模块预设格式文件包获取模块200-java类执行模块206的具体功能在实施例二中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储数据预测模型调用装置20,被处理器执行时实现上述实施例的数据预测模型调用方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种数据预测模型调用方法,其特征在于,包括:
获取数据预测机器学习模型的预设格式文件包;
解析所述预设格式文件包,得到所述数据预测机器学习模型对应每个节点的java类,所述数据预测机器学习模型包括模型信息节点、数据字典节点和数据转换字典节点;
将每个所述java类热加载到java虚拟机中;
控制所述java虚拟机执行所述数据预测机器学习模型的每个所述java类,以得到所述数据预测机器学习模型的预测结果;
其中,所述解析所述预设格式文件包,得到所述数据预测机器学习模型对应每个节点的java类包括:
识别所述预设格式文件包中的数据字典节点,将所述数据字典节点解析成DataDictionary类;
识别所述预设格式文件包中的数据转换字典节点,将所述数据转换字典节点解析成TransformationDictionary类;
识别所述预设格式文件包中的模型信息节点,将所述模型信息节点解析成Model类;
其中,所述识别所述预设格式文件包中的数据字典节点包括:
当识别到数据类型的说明字符或操作类型的说明字符时,确定所述说明字符为数据字典节点;
所述识别所述预设格式文件包中的数据转换字典节点包括:
当识别到数据转换逻辑字符时,确定所述数据转换逻辑字符为数据转换字典节点;
所述识别所述预设格式文件包中的模型信息节点,将所述模型信息节点解析成Model类包括:
当识别到模型类型标识时,确定模型标签所在的节点为模型信息节点;
将所述模型信息节点解析成Model类;
其中,所述将所述每个所述java类热加载到java虚拟机中包括:
获取每个java类的二进制字节流,所述二进制字节流中包含常量池;
验证所述二进制字节流中的信息是否符合当前虚拟机的要求;
当所述二进制字节流符合当前虚拟机的要求后,为每个所述java类分配内存并设置类变量初始值;以及
将所述常量池中的符号引用替换为直接引用;
对每个所述java类进行初始化,完成所述java类热加载。
2.根据权利要求1所述的数据预测模型调用方法,其特征在于,所述控制所述java虚拟机执行对应的机器学习模型的每个所述java类,以得到所述数据预测机器学习模型的预测结果包括:
控制所述java虚拟机根据DataDictionary类中的规范字段确定数据预测机器学习模型所需要的规范数据的类型;
控制所述java虚拟机通过TransformationDictionary类根据所述规范数据的类型,对所获取的输入数据执行转换,以得到所需要的规范数据;
控制所述java虚拟机通过Model类对所述规范数据执行预测算法,以得到所述数据预测机器学习模型的预测结果。
3.根据权利要求2所述的数据预测模型调用方法,其特征在于,所述模型信息节点内存储有模型标签,所述识别所述预设格式文件包中的模型信息节点,将所述模型信息节点解析成Model类包括:
获取所述模型标签,根据所述模型标签获取机器学习模型对应的预测算法;
将所述预测算法封装在所述Model类中。
4.根据权利要求1至3任一项所述的数据预测模型调用方法,其特征在于,所述执行所述数据预测机器学习模型的java类,以得到所述数据预测机器学习模型的预测结果后,所述方法还包括:
将所述预测结果存储至区块链中。
5.一种数据预测模型调用装置,其特征在于,包括:
预设格式文件包获取模块,用于获取数据预测机器学习模型的预设格式文件包;
预设格式文件包解析模块,用于得到所述数据预测机器学习模型对应每个节点的java类,所述数据预测机器学习模型包括模型信息节点、数据字典节点和数据转换字典节点;
java类热加载模块,用于将所述java类热加载到java虚拟机中;
java类执行模块,用于控制所述java虚拟机执行所述数据预测机器学习模型的java类,以得到所述数据预测机器学习模型的预测结果;
其中,所述预设格式文件包解析模块还用于:
识别所述预设格式文件包中的数据字典节点,将所述数据字典节点解析成DataDictionary类;
识别所述预设格式文件包中的数据转换字典节点,将所述数据转换字典节点解析成TransformationDictionary类;
识别所述预设格式文件包中的模型信息节点,将所述模型信息节点解析成Model类;
其中,所述识别所述预设格式文件包中的数据字典节点包括:
当识别到数据类型的说明字符或操作类型的说明字符时,确定所述说明字符为数据字典节点;
所述识别所述预设格式文件包中的数据转换字典节点包括:
当识别到数据转换逻辑字符时,确定所述数据转换逻辑字符为数据转换字典节点;
所述识别所述预设格式文件包中的模型信息节点,将所述模型信息节点解析成Model类包括:
当识别到模型类型标识时,确定模型标签所在的节点为模型信息节点;
将所述模型信息节点解析成Model类;
其中,所述java类热加载模块还用于:
获取每个java类的二进制字节流,所述二进制字节流中包含常量池;
验证所述二进制字节流中的信息是否符合当前虚拟机的要求;
当所述二进制字节流符合当前虚拟机的要求后,为每个所述java类分配内存并设置类变量初始值;以及
将所述常量池中的符号引用替换为直接引用;
对每个所述java类进行初始化,完成所述java类热加载。
6.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述的数据预测模型调用方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1至4中任一项所述的数据预测模型调用方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011539496.1A CN112631719B (zh) | 2020-12-23 | 2020-12-23 | 数据预测模型调用方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011539496.1A CN112631719B (zh) | 2020-12-23 | 2020-12-23 | 数据预测模型调用方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112631719A CN112631719A (zh) | 2021-04-09 |
CN112631719B true CN112631719B (zh) | 2023-11-10 |
Family
ID=75321687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011539496.1A Active CN112631719B (zh) | 2020-12-23 | 2020-12-23 | 数据预测模型调用方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631719B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115168916B (zh) * | 2022-07-26 | 2023-01-13 | 北京大数据先进技术研究院 | 一种面向移动终端应用的数字对象可信存证方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062521A (zh) * | 2019-11-29 | 2020-04-24 | 微民保险代理有限公司 | 一种在线预测方法、系统及服务器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11087236B2 (en) * | 2016-07-29 | 2021-08-10 | Splunk Inc. | Transmitting machine learning models to edge devices for edge analytics |
-
2020
- 2020-12-23 CN CN202011539496.1A patent/CN112631719B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062521A (zh) * | 2019-11-29 | 2020-04-24 | 微民保险代理有限公司 | 一种在线预测方法、系统及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN112631719A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11494294B2 (en) | Model integration tool | |
CN107479882B (zh) | 投保页面的生成方法、生成装置、介质及电子设备 | |
CN109032590B (zh) | 一种可视化开发环境的配置方法、装置、终端及存储介质 | |
CN107665216A (zh) | 一种数据库访问方法及中间件 | |
CN114218315A (zh) | 接口生成方法、装置、计算机设备及存储介质 | |
CN111274202B (zh) | 电子合同生成方法、装置、计算机设备及存储介质 | |
CN112631719B (zh) | 数据预测模型调用方法、装置、设备和存储介质 | |
CN111241803A (zh) | 生成文本文件的方法、装置、计算机设备及可读存储介质 | |
CN112422450A (zh) | 计算机设备、服务请求的流量控制方法及装置 | |
CN112364022B (zh) | 信息推导管理方法、装置、计算机设备及可读存储介质 | |
CN114327374A (zh) | 业务流程的生成方法、装置及计算机设备 | |
US10606843B2 (en) | Irreducible modules | |
CN112653697A (zh) | 基于云计算和区块链的访问请求处理方法及云端服务中心 | |
CN116028045A (zh) | 第三方应用代码快速分发方法、装置、设备及存储介质 | |
CN115543428A (zh) | 一种基于策略模板的模拟数据生成方法和装置 | |
CN111737319B (zh) | 用户集群的预测方法、装置、计算机设备和存储介质 | |
CN114356379A (zh) | 基于备份的服务升级方法、装置、设备及存储介质 | |
CN112528647A (zh) | 相似文本生成方法、装置、电子设备及可读存储介质 | |
CN112416488A (zh) | 一种用户画像实现的方法、装置、计算机设备及计算机可读存储介质 | |
CN111580799A (zh) | 领域特定语言脚本拼装方法及系统 | |
CN110502483A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN113129049B (zh) | 用于模型训练和应用的文件配置方法和系统 | |
CN112052034A (zh) | 计算接口构建方法、装置、计算机设备及可读存储介质 | |
CN117573199B (zh) | 一种模型差异对比分析方法、装置、设备及介质 | |
US20230130239A1 (en) | Inflating decision tree to facilitate parallel inference processing |
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 |