CN111260080A - 基于机器学习的流程优化方法、装置、终端及存储介质 - Google Patents
基于机器学习的流程优化方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN111260080A CN111260080A CN202010064043.1A CN202010064043A CN111260080A CN 111260080 A CN111260080 A CN 111260080A CN 202010064043 A CN202010064043 A CN 202010064043A CN 111260080 A CN111260080 A CN 111260080A
- Authority
- CN
- China
- Prior art keywords
- model
- preset
- target
- calling
- machine learning
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于机器学习的流程优化方法,建立预设模型与模型变量信息之间的第一关联关系及与模型场景信息之间的第二关联关系;获取与模拟试算请求指令对应目标模型;通过调用Groovy引擎获取目标模型的入参;调用模型引擎对目标模型的入参加密;调用模型引擎在Java中开启Process进程,通过Process进行调用Anaconda中的Python环境与模型文件;调用模型引擎对目标模型的入参解密;基于Anaconda中的Python环境与模型文件通过目标模型运算模拟试算请求数据。本发明还提供了一种装置、终端及存储介质。通过Java直接调用涵盖Python第三方类库齐全的Anaconda对模型进行运算,能够提高模型运算的正确率与速度。
Description
技术领域
本发明涉及模型部署领域,尤其涉及一种基于机器学习的流程优化方法、装置、终端及存储介质。
背景技术
人工智能是目前最前沿的技术之一,也是人类所能想象的科技界最突破性的发明。而机器学习作为人工智能的重要细分子类,自然而然就成了重点的研究方向,同时Python作为机器学习领域的第一语音工具,应用场景自然十分广泛。然而目前主流的系统基本都由java编写,要想在java系统中实现智能的属性,java调用Python机器学习模型成了一种必然的选择。
目前常见的java调用Python脚本方式主要有两种,一是通过jython.jar提供的类库实现,然而jython.jar不可能涵盖所有Python的第三方类库,执行程序的时候会遇到异常;二是通过将Python机器学习模型转换为PMML,再利用java调用PMLL实现,然而将Python机器学习模型转换为PMLL后,java需要对PMLL文件内容进行解析,操作繁琐,PMLL转换获得的模型与算法库模型相比预测结果存在偏差,且PMLL文件较大,占用过多系统资源。
因此,有必要提供一种利用java调用Python脚本的处理方法,提高Python机器学习模型运算的正确率和速度。
发明内容
鉴于以上内容,有必要提出一种基于机器学习的流程优化方法、装置、终端及存储介质,通过直接调用Anaconda中的Python环境,借助于Anaconda齐全的第三方库对机器学习模型进行运算,能够提高机器学习模型运算正确率与速度。
本发明实施例第一方面提供一种基于机器学习的流程优化方法,该方法应用于在Java环境调用Python机器学习模型,所述基于机器学习的流程优化方法包括:
建立预设模型与模型变量信息之间的第一关联关系及与模型场景信息之间的第二关联关系;
当接收到模拟试算请求指令时,根据所述第一关联关系和所述第二关联关系获取与所述模拟试算请求指令对应目标模型;
通过调用Groovy引擎获取入参配置规则,并根据所述入参配置规则得到所述目标模型的入参;
调用模型引擎对所述目标模型的入参进行加密处理;
调用所述模型引擎在Java中开启Process进程,并获取命令行参数中携带的与所述目标模型对应的Python环境路径与模型文件路径;
根据所述Python环境路径与所述模型文件路径通过所述Process进程调用Anaconda中的Python环境与模型文件;
调用所述模型引擎对所述目标模型的入参进行解密处理;
基于Anaconda中的Python环境与模型文件通过解密处理后的目标模型运算模拟试算请求数据并获取运算结果。
进一步地,在本发明实施例提供的上述基于机器学习的流程优化方法中,所述根据所述第一关联关系和所述第二关联关系获取与所述模拟试算请求指令对应目标模型包括:
获取与所述模拟试算请求指令对应的模拟试算请求数据;
确定与所述模拟试算请求数据对应的目标模型场景信息;
根据所述第二关联关系获取与所述目标模型场景信息对应的多个目标模型;
根据所述第一关联关系获取与所述多个目标模型中的每个目标模型对应的目标模型变量信息。
进一步地,在本发明实施例提供的上述基于机器学习的流程优化方法中,所述获取与所述模拟试算请求指令对应的模拟试算请求数据包括:
获取所述模拟试算请求指令中携带的数据定位标识;
遍历预设模拟数据库,获取与所述数据定位标识对应的模拟试算请求数据。
进一步地,在本发明实施例提供的上述基于机器学习的流程优化方法中,在所述根据所述第二关联关系获取与所述目标模型场景信息对应的多个目标模型之后,所述方法还包括:
启动多线程分别运行所述多个目标模型;
按照预设时间间隔获取多个不同的所述目标模型的输出结果;
获取每个目标模型所消耗的平均时间及所述输出结果的正确率;
将每个目标模型的所述平均时间与所述正确率输入至预设综合评价指标中,得到每个目标所述预设模型的综合评价结果;
比对所述每个目标模型的综合评价结果与预设结果阈值;
删除低于所述预设结果阈值的综合结果对应的目标模型,并保留高于所述预设结果阈值的综合结果对应的目标模型。
进一步地,在本发明实施例提供的上述基于机器学习的流程优化方法中,所述建立预设模型与模型变量信息之间的第一关联关系及与模型场景信息之间的第二关联关系包括:
分别获取预设模型、模型变量信息及模型场景信息对应的描述文本,作为第一描述文本、第二描述文本及第三描述文本;
从所述第一描述文本与所述第二描述文本中抽取出第一共性信息,从所述第一描述文本与所述第三描述文本中抽取出第二共性信息;
根据所述第一共性信息确定所述预设模型与所述模型变量信息的第一关联关系,根据所述第二共性信息确定所述预设模型与所述模型场景信息的第二关联关系。
进一步地,在本发明实施例提供的上述基于机器学习的流程优化方法中,所述Groovy引擎包括:
规则配置页面,用于接收用户针对不同模型场景设置的规则及配置数据并将接收到的规则及配置数据存储于Redis中;
规则发布单元,用于发布所述规则配置页面接收到的规则;
规则更新单元,用于读取所述Redis中的存储的配置数据并更新与所述配置数据对应的规则;
规则计算单元,用于当接收到模型入参计算请求时,根据所述Redis中更新后的规则进行计算并反馈计算结果。
进一步地,在本发明实施例提供的上述基于机器学习的流程优化方法中,所述调用模型引擎对所述目标模型的入参进行加密处理包括:
将所述目标模型的入参进行Base64编码生成编码字符串;
从Base64字符串映射表中随机获取预设个数的字符,并根据所获取的预设个数的字符组成随机字符串;
将所述随机字符串添加到所述编码字符串的预设位置,生成加密字符串。
本发明实施例第二方面还提供一种基于机器学习的流程优化装置,该装置应用于在Java环境调用Python机器学习模型,所述基于机器学习的流程优化装置包括:
关系建立模块,用于建立预设模型与模型变量信息之间的第一关联关系及与模型场景信息之间的第二关联关系;
模型确定模块,用于当接收到模拟试算请求指令时,根据所述第一关联关系和所述第二关联关系获取与所述模拟试算请求指令对应目标模型;
入参获取模块,用于通过调用Groovy引擎获取入参配置规则,并根据所述入参配置规则得到所述目标模型的入参;
加密处理模块,用于调用模型引擎对所述目标模型的入参进行加密处理;
路径获取模块,用于调用所述模型引擎在Java中开启Process进程,并获取命令行参数中携带的与所述目标模型对应的Python环境路径与模型文件路径;
环境调用模块,用于根据所述Python环境路径与所述模型文件路径通过所述Process进程调用Anaconda中的Python环境与模型文件;
解密处理模块,用于调用所述模型引擎对所述目标模型的入参进行解密处理;
结果运算模块,用于基于Anaconda中的Python环境与模型文件通过解密处理后的目标模型运算模拟试算请求数据并获取运算结果。
本发明实施例第三方面还提供一种终端,所述终端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现上述任意一项所述基于机器学习的流程优化方法。
本发明实施例第四方面还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述基于机器学习的流程优化方法。
本发明实施例提供一种基于机器学习的流程优化方法、基于机器学习的流程优化装置、终端及计算机可读存储介质,建立预设模型与模型变量信息之间的第一关联关系及与模型场景信息之间的第二关联关系;当接收到模拟试算请求指令时,根据所述第一关联关系和所述第二关联关系获取与所述模拟试算请求指令对应目标模型;通过调用Groovy引擎获取入参配置规则,并根据所述入参配置规则得到所述目标模型的入参;调用模型引擎对所述目标模型的入参进行加密处理;调用所述模型引擎在Java中开启Process进程,并获取命令行参数中携带的与所述目标模型对应的Python环境路径与模型文件路径;根据所述Python环境路径与所述模型文件路径通过所述Process进程调用Anaconda中的Python环境与模型文件;调用所述模型引擎对所述目标模型的入参进行解密处理;基于Anaconda中的Python环境与模型文件通过解密处理后的目标模型运算模拟试算请求数据并获取运算结果。利用本发明实施例,通过使用涵盖Python第三方类库齐全的Anaconda,在有新的Python第三方类库版本发布时,仅需替换最新版Anaconda即可,提高模型维护效率;且通过直接使用Python环境,能够降低模型运算结果的误差;通过模拟试算请求数据进行模型试算,能够保证模型运算的正确性,保证生产安全。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明第一实施方式提供的基于机器学习的流程优化方法的流程图。
图2是本发明一实施方式的终端的结构示意图。
图3是图2所示的终端的示例性的功能模块图。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
图1是本发明第一实施方式的基于机器学习的流程优化方法的流程图,所述基于机器学习的流程优化方法应用于在Java环境调用Python机器学习模型。如图1所示,所述基于机器学习的流程优化方法可以包括如下步骤:
S11、建立预设模型与模型变量信息之间的第一关联关系及与模型场景信息之间的第二关联关系。
建立预设模型与模型变量信息之间的第一关联关系及与模型场景信息之间的第二关联关系。其中,所述预设模型为根据具体需求建立的机器学习模型,例如,所述预设模型为公积金相关模型、保险业反欺诈相关模型等,在此不作限制。所述模型变量信息包括模型变量的名称、模型变量的类型及模型变量的版本,所述模型变量为所述预设模型建立时需要考虑的变量因素。以所述预设模型为公积金贷相关模型举例,其对应的模型变量包括年龄、信用状况以及收入等信息。所述模型场景信息为具体业务对应的应用场景,所述模型场景信息包括场景的名称、场景的详情介绍等信息。
在本发明的至少一实施例中,所述建立预设模型与模型变量信息之间的第一关联关系及与模型场景信息之间的第二关联关系的步骤包括:分别获取预设模型、模型变量信息及模型场景信息对应的描述文本,作为第一描述文本、第二描述文本及第三描述文本;从所述第一描述文本与所述第二描述文本中抽取出第一共性信息,从所述第一描述文本与所述第三描述文本中抽取出第二共性信息;根据所述第一共性信息确定所述预设模型与所述模型变量信息的第一关联关系,根据所述第二共性信息确定所述预设模型与所述模型场景信息的第二关联关系。其中,共性信息作为数据关联关系的唯一数据标识。
在本发明的至少一实施例中,在建立预设模型与模型变量信息之间的第一关联关系及与模型场景信息之间的第二关联关系之前,所述方法还包括:校验所述预设模型的唯一性。其中,所述校验所述预设模型的唯一性的步骤包括:获取用于唯一表示所述预设模型对应的数据内容的标识信息;通过所述预设模型对应的数据内容的标识信息与模型集合中模型的标识信息进行比较,检测是否存在一致的标识信息;若检测结果为不存在一致的标识信息,则所述预设模型满足唯一性。其中,表示所述预设模型对应的数据内容的标识信息为通过预设规则确定的,具体地,从所述预设模型对应的数据内容中选取出预设份数的数据内容;分别计算所述预设份数的数据内容的唯一哈希值;按照预设顺序将计算出的唯一哈希值写入预先配置的校验列中,并将所述校验列中的字符串作为所述预设模型对应的数据内容的标识信息。所述预设份数为用户预先设置的值,例如,所述预设份数为3份,在此不做限制。
S12、当接收到模拟试算请求指令时,根据所述第一关联关系和所述第二关联关系获取与所述模拟试算请求指令对应目标模型。
在本发明的至少一实施例中,提供一预设模拟数据库,所述预设模拟数据库中包括对应不同模型场景下的预设模型的模拟试算请求数据以及对应所述预设模型的业务人员本地计算结果。所述模拟试算请求数据与所述模拟试算请求指令一一对应,也即通过接收到的所述模拟试算请求指令,能够获取到唯一的模拟试算请求数据,所述模拟试算请求数据为模拟真实请求而设置的数据。
在本发明的至少一实施例中,所述根据所述第一关联关系和所述第二关联关系获取与所述模拟试算请求指令对应目标模型包括:获取与所述模拟试算请求指令对应的模拟试算请求数据;确定与所述模拟试算请求数据对应的目标模型场景信息;根据所述第二关联关系获取与所述目标模型场景信息对应的多个目标模型;根据所述第一关联关系获取与所述多个目标模型中的每个目标模型对应的目标模型变量信息。其中,所述获取与所述模拟试算请求指令对应的模拟试算请求数据包括:获取所述模拟试算请求指令中携带的数据定位标识;遍历预设模拟数据库,获取与所述数据定位标识对应的模拟试算请求数据。所述数据定位标识为预先设置的用于获取唯一对应的模拟试算请求数据的定位标识。
在本发明的至少一实施例中,所述预设模型与所述模型场景信息的关联关系不唯一,也即一所述模型场景信息对应一和/或多个所述预设模型,不同的预设模型通过不同的机器学习算法建立。对于一个模型场景信息下对应的多个不同的预设模型,选取一预设模型作为主模型,其余预设模型作为备选模型,从而根据多个不同的预设模型输出信息定期调整模型,提高算法的正确性与效率。
具体地,在所述根据所述第二关联关系获取与所述目标模型场景信息对应的多个目标模型之后,所述方法还包括:启动多线程分别运行所述多个目标模型;按照预设时间间隔获取多个不同的所述目标模型的输出结果;获取每个目标模型所消耗的平均时间及所述输出结果的正确率;将每个目标模型的所述平均时间与所述正确率输入至预设综合评价指标中,得到每个目标所述预设模型的综合评价结果;比对所述每个目标模型的综合评价结果与预设结果阈值;删除低于所述预设结果阈值的综合结果对应的目标模型,并保留高于所述预设结果阈值的综合结果对应的目标模型。其中,所述预设综合评价指标可以为用户通过多次试验设置的关于时间与正确率的函数关系,所述预设结果阈值为用户预先设置的值。将不同的所述预设模型按照优越性的高低进行排序,选取优越性最高的预设模型作为该模型场景下的主模型,其余预设模型作为该模型场景下的备选模型。
S13、通过调用Groovy引擎获取入参配置规则,并根据所述入参配置规则得到所述目标模型的入参。
通过调用Groovy引擎获取入参配置规则,并根据所述入参配置规则得到所述目标模型的入参。其中,Groovy引擎为利用Groovy脚本语言,运用特定策略对模型入参进行处理的技术。所述目标模型的入参包括该模型在运行时需要调用的入口参数。在所述目标模型的应用场景中,所述目标模型的入参具体可以包括例如姓名、email、电话号码,或者其他具有业务意义的数字、字符等信息。所述目标模型的入参可以根据所需构建的目标模型设计需求进行设计。
在本发明的至少一实施例中,所述Groovy引擎包括:规则配置页面,用于接收用户针对不同模型场景设置的规则及配置数据并将接收到的规则及配置数据存储于Redis中;规则发布单元,用于发布所述规则配置页面接收到的规则;规则更新单元,用于读取所述Redis中的存储的配置数据并更新与所述配置数据对应的规则;规则计算单元,用于当接收到模型入参计算请求时,根据所述Redis中更新后的规则进行计算并反馈计算结果。
可以理解的是,由于Groovy是一种脚本语言,完全兼容java语法,并且可在java中动态执行。基于这种特性,Groovy语言可以作为规则配置页面中的执行逻辑的承载者,即执行逻辑是可以被配置的,所以执行逻辑可以在不需要重新编译或者重启系统的情况下被改写,这极大的方便了系统的维护,也增强了系统的可扩展性。
S14、调用模型引擎对所述目标模型的入参进行加密处理。
在本发明的至少一实施例中,模型引擎为根据用户需求与一定算法,运用特定策略对模型进行处理的技术。所述模型引擎依托于多种技术,例如,模型入参加解密技术、模型环境调用技术等。
将所述目标模型的入参输出至模型引擎中,并调用所述模型引擎对所述目标模型的入参进行加密处理。加密处理的方式可以包括Base64加密处理,也可以为其他加密方式,在此不做限制。以加密方式为Base64加密为例,Base64是一种用于传输8bit字节代码的编码方式,Base64是一种基于64个可打印字符来表示二进制数据的方法,是一种双向加密方式。Base64相对更适于网络传输,并且具有安全的特性,可以将文档、图片等信息以编码的形式存放在容器中,有助于节省空间。
具体地,所述调用模型引擎对所述目标模型的入参进行加密处理的步骤包括:将所述目标模型的入参进行Base64编码生成编码字符串;从Base64字符串映射表中随机获取预设个数的字符,并根据所获取的预设个数的字符组成随机字符串;将所述随机字符串添加到所述编码字符串的预设位置,生成加密字符串。其中,所述预设位置可以用添加标识的方式进行标记,所述预设个数与所述预设位置为用户预先设置的,通过对进行Base64加密生成的编码字符串继续加密处理,得到最终的加密字符串,能够提高Base64编码的安全性。
S15、调用所述模型引擎在Java中开启Process进程,并获取命令行参数中携带的与所述目标模型对应的Python环境路径与模型文件路径。
在本发明的至少一实施例中,通过调用所述模型引擎在Java中开启Process进程,所述Process进程是计算机中的程序关于某数据集合上的一次运行活动,是计算机系统进行资源分配和调度的基本单位,具体地,通过所述模型引擎调用Runtime.getRuntime()的方式在Java中开启Process进程。其中,Runtime.getRuntime()为用于直接调用/开始/搜索程序和文件的指令,例如,Runtime.getRuntime().exec(“notepad.exe”)用于表示“打开记事本”的指令。所述Python环境路径及模型文件路径等信息通过命令行参数的形式进行携带。可以理解的是,由于几乎所有的生产环境使用的都是Linux系统,而Linux系统自带Python2环境。现在主流都是使用Python3环境,所述Python环境路径为Python3环境的绝对路径。可以理解的是,所述Python环境路径与所述目标模型的Python环境对应,所述Python环境为Python机器学习模型的运行环境,所述模型文件路径与所述目标模型的模型文件对应,所述模型文件为运行Python机器学习模型所需的文件。在所述获取命令行参数中携带的与所述目标模型对应的Python环境路径与模型文件路径的步骤之后,可以根据所述Python环境路径及模型文件路径得到所述目标模型对应的Python环境与模型文件。
S16、根据所述Python环境路径与所述模型文件路径通过所述Process进程调用Anaconda中的Python环境与模型文件。
在本发明的至少一实施例中,根据所述Python环境路径与所述模型文件路径通过所述Process进程直接调用Anaconda中的Python环境与模型文件。其中,Anaconda是一个开源的Python发行版本,其包含了conda、Python等多个科学包及其依赖项,Anaconda中涵盖所有Python语言的第三方类库。
S17、调用所述模型引擎对所述目标模型的入参进行解密处理。
在本发明的至少一实施例中,调用所述模型引擎对所述目标模型的入参进行解密处理,解密处理的方式可以为Base64解密处理,或者其他解密处理方式,在此不做限制。以解密方式为Base64解密处理为例,所述调用所述模型引擎对所述目标模型的入参进行解密处理包括:获取所述最终的加密字符串,并根据标识定位预设位置处的预设个数的随机字符串;将定位得到的所述随机字符串删除,得到所述编码字符串;对所述编码字符串进行Base64解码得到所述目标模型的入参的明文信息。
S18、基于Anaconda中的Python环境与模型文件通过解密处理后的目标模型运算模拟试算请求数据并获取运算结果。
基于Anaconda中的Python环境与模型文件通过解密处理后的目标模型运算模拟试算请求数据,并获取运算结果。在本发明的至少一实施例中,所述方法还包括:检测所述目标模型的执行结果是否正确。
具体地,所述检测所述目标模型的执行结果是否正确的步骤包括:调用所述预设模拟数据库得到对应所述目标模型的业务人员本地计算结果;将所述目标模型的执行结果与所述目标模型的业务人员本地计算结果进行比对,检测比对结果是否一致;若所述比对结果一致,则所述目标模型的执行结果正确;若所述比对结果不一致,则所述目标模型的执行结果不正确。
当所述目标模型的执行结果正确时,输出所述目标模型的执行结果;当所述目标模型的执行结果不正确时,输出报错信息。可以理解的是,只有当所述目标模型的执行结果正确时,才能利用所述目标模型对真实生产请求数据进行处理;当所述目标模型的执行结果不正确时,需对所述目标模型进行重新调整,以使得所述目标模型的执行结果正确,从而保证了模型处理的准确性。
本发明实施例提供的一种基于机器学习的流程优化方法,通过使用涵盖Python第三方类库齐全的Anaconda,在有新的Python第三方类库版本发布时,仅需替换最新版Anaconda即可,提高模型维护效率;且通过直接使用Python环境,能够降低模型运算结果的误差;通过模拟试算请求数据进行模型试算,能够保证模型运算的正确性,保证生产安全。
以上是对本发明实施例所提供的方法进行的详细描述。根据不同的需求,所示流程图中方块的执行顺序可以改变,某些方块可以省略。下面对本发明实施例所提供的终端1进行描述。
图2是本发明一实施方式的终端的结构示意图,如图2所示,终端1包括存储器10,存储器10中存储有基于机器学习的流程优化装置100。所述的终端1可以是计算机、平板电脑、个人数字助理等具有数据处理、分析、程序执行及显示等功能的电子设备。所述基于机器学习的流程优化装置100可以建立预设模型与模型变量信息之间的第一关联关系及与模型场景信息之间的第二关联关系;当接收到模拟试算请求指令时,根据所述第一关联关系和所述第二关联关系获取与所述模拟试算请求指令对应目标模型;通过调用Groovy引擎获取入参配置规则,并根据所述入参配置规则得到所述目标模型的入参;调用模型引擎对所述目标模型的入参进行加密处理;调用所述模型引擎在Java中开启Process进程,并获取命令行参数中携带的与所述目标模型对应的Python环境路径与模型文件路径;根据所述Python环境路径与所述模型文件路径通过所述Process进程调用Anaconda中的Python环境与模型文件;基于Anaconda中的Python环境与模型文件通过解密处理后的目标模型运算模拟试算请求数据并获取运算结果。利用本发明实施例,通过使用涵盖Python第三方类库齐全的Anaconda,在有新的Python第三方类库版本发布时,仅需替换最新版Anaconda即可,提高模型维护效率;且通过直接使用Python环境,能够降低模型运算结果的误差;通过模拟试算请求数据进行模型试算,能够保证模型运算的正确性,保证生产安全。
本实施方式中,终端1还可以包括显示屏20及处理器30。存储器10、显示屏20可以分别与处理器30电连接。
所述的存储器10可以是不同类型存储设备,用于存储各类数据。例如,可以是终端1的存储器、内存,还可以是可外接于该终端1的存储卡,如闪存、SM卡(Smart Media Card,智能媒体卡)、SD卡(Secure Digital Card,安全数字卡)等。此外,存储器10可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。存储器10用于存储各类数据,例如,所述终端1中安装的各类应用程序(Applications)、应用上述基于机器学习的流程优化方法而设置、获取的数据等信息。
显示屏20安装于终端1,用于显示信息。
处理器30用于执行所述基于机器学习的流程优化方法以及所述终端1内安装的各类软件,例如操作系统及应用显示软件等。处理器30包含但不限于处理器(CentralProcessing Unit,CPU)、微控制单元(Micro Controller Unit,MCU)等用于解释计算机指令以及处理计算机软件中的数据的装置。
所述的基于机器学习的流程优化装置100可以包括一个或多个的模块,所述一个或多个模块被存储在终端1的存储器10中并被配置成由一个或多个处理器(本实施方式为一个处理器30)执行,以完成本发明实施例。例如,参阅图3所示,所述基于机器学习的流程优化装置100可以包括关系建立模块101、模型确定模块102、入参获取模块103、加密处理模块104、路径获取模块105、环境调用模块106、解密处理模块107以及结果运算模块108。本发明实施例所称的模块可以是完成一特定功能的程序段,比程序更适合于描述软件在处理器30中的执行过程。
可以理解的是,对应上述基于机器学习的流程优化方法中的各实施方式,基于机器学习的流程优化装置100可以包括图3中所示的各功能模块中的一部分或全部,各模块的功能将在以下具体介绍。需要说明的是,以上基于机器学习的流程优化方法的各实施方式中相同的名词相关名词及其具体的解释说明也可以适用于以下对各模块的功能介绍。为节省篇幅及避免重复起见,在此就不再赘述。
关系建立模块101可以用于建立预设模型与模型变量信息之间的第一关联关系及与模型场景信息之间的第二关联关系。
模型确定模块102可以用于当接收到模拟试算请求指令时,根据所述第一关联关系和所述第二关联关系获取与所述模拟试算请求指令对应目标模型。
入参获取模块103可以用于通过调用Groovy引擎获取入参配置规则,并根据所述入参配置规则得到所述目标模型的入参。
加密处理模块104可以用于调用模型引擎对所述目标模型的入参进行加密处理。
路径获取模块105可以用于调用所述模型引擎在Java中开启Process进程,并获取命令行参数中携带的与所述目标模型对应的Python环境路径与模型文件路径。
环境调用模块106可以用于根据所述Python环境路径与所述模型文件路径通过所述Process进程调用Anaconda中的Python环境与模型文件。
解密处理模块107可以用于调用所述模型引擎对所述目标模型的入参进行解密处理。
结果运算模块108可以用于基于Anaconda中的Python环境与模型文件通过解密处理后的目标模型运算模拟试算请求数据并获取运算结果。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器30执行时实现上述任一实施方式中的基于机器学习的流程优化方法的步骤。
所述基于机器学习的流程优化装置100/终端1/计算机设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施方式方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器30执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)等。
所称处理器30可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器30是所述基于机器学习的流程优化装置100/终端1的控制中心,利用各种接口和线路连接整个基于机器学习的流程优化装置100/终端1的各个部分。
所述存储器10用于存储所述计算机程序和/或模块,所述处理器30通过运行或执行存储在所述存储器10内的计算机程序和/或模块,以及调用存储在存储器10内的数据,实现所述基于机器学习的流程优化装置100/终端1的各种功能。所述存储器10可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端1的使用所创建的数据(比如音频数据)等。
在本发明所提供的几个具体实施方式中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的系统实施方式仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
对于本领域技术人员而言,显然本发明实施例不限于上述示范性实施例的细节,而且在不背离本发明实施例的精神或基本特征的情况下,能够以其他的具体形式实现本发明实施例。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明实施例的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明实施例内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。系统、装置或终端权利要求中陈述的多个单元、模块或装置也可以由同一个单元、模块或装置通过软件或者硬件来实现。
以上实施方式仅用以说明本发明实施例的技术方案而非限制,尽管参照以上较佳实施方式对本发明实施例进行了详细说明,本领域的普通技术人员应当理解,可以对本发明实施例的技术方案进行修改或等同替换都不应脱离本发明实施例的技术方案的精神和范围。
Claims (10)
1.一种基于机器学习的流程优化方法,其特征在于,该方法应用于在Java环境调用Python机器学习模型,具体包括:
建立预设模型与模型变量信息之间的第一关联关系及与模型场景信息之间的第二关联关系;
当接收到模拟试算请求指令时,根据所述第一关联关系和所述第二关联关系获取与所述模拟试算请求指令对应目标模型;
通过调用Groovy引擎获取入参配置规则,并根据所述入参配置规则得到所述目标模型的入参;
调用模型引擎对所述目标模型的入参进行加密处理;
调用所述模型引擎在Java中开启Process进程,并获取命令行参数中携带的与所述目标模型对应的Python环境路径与模型文件路径;
根据所述Python环境路径与所述模型文件路径通过所述Process进程调用Anaconda中的Python环境与模型文件;
调用所述模型引擎对所述目标模型的入参进行解密处理;
基于Anaconda中的Python环境与模型文件通过解密处理后的目标模型运算模拟试算请求数据并获取运算结果。
2.根据权利要求1所述的基于机器学习的流程优化方法,其特征在于,所述根据所述第一关联关系和所述第二关联关系获取与所述模拟试算请求指令对应目标模型包括:
获取与所述模拟试算请求指令对应的模拟试算请求数据;
确定与所述模拟试算请求数据对应的目标模型场景信息;
根据所述第二关联关系获取与所述目标模型场景信息对应的多个目标模型;
根据所述第一关联关系获取与所述多个目标模型中的每个目标模型对应的目标模型变量信息。
3.根据权利要求2所述的基于机器学习的流程优化方法,其特征在于,所述获取与所述模拟试算请求指令对应的模拟试算请求数据包括:
获取所述模拟试算请求指令中携带的数据定位标识;
遍历预设模拟数据库,获取与所述数据定位标识对应的模拟试算请求数据。
4.根据权利要求2所述的基于机器学习的流程优化方法,其特征在于,在所述根据所述第二关联关系获取与所述目标模型场景信息对应的多个目标模型之后,所述方法还包括:
启动多线程分别运行所述多个目标模型;
按照预设时间间隔获取多个不同的所述目标模型的输出结果;
获取每个目标模型所消耗的平均时间及所述输出结果的正确率;
将每个目标模型的所述平均时间与所述正确率输入至预设综合评价指标中,得到每个目标所述预设模型的综合评价结果;
比对所述每个目标模型的综合评价结果与预设结果阈值;
删除低于所述预设结果阈值的综合结果对应的目标模型,并保留高于所述预设结果阈值的综合结果对应的目标模型。
5.根据权利要求1所述的基于机器学习的流程优化方法,其特征在于,所述建立预设模型与模型变量信息之间的第一关联关系及与模型场景信息之间的第二关联关系包括:
分别获取预设模型、模型变量信息及模型场景信息对应的描述文本,作为第一描述文本、第二描述文本及第三描述文本;
从所述第一描述文本与所述第二描述文本中抽取出第一共性信息,从所述第一描述文本与所述第三描述文本中抽取出第二共性信息;
根据所述第一共性信息确定所述预设模型与所述模型变量信息的第一关联关系,根据所述第二共性信息确定所述预设模型与所述模型场景信息的第二关联关系。
6.根据权利要求1所述的基于机器学习的流程优化方法,其特征在于,所述Groovy引擎包括:
规则配置页面,用于接收用户针对不同模型场景设置的规则及配置数据并将接收到的规则及配置数据存储于Redis中;
规则发布单元,用于发布所述规则配置页面接收到的规则;
规则更新单元,用于读取所述Redis中的存储的配置数据并更新与所述配置数据对应的规则;
规则计算单元,用于当接收到模型入参计算请求时,根据所述Redis中更新后的规则进行计算并反馈计算结果。
7.根据权利要求1所述的基于机器学习的流程优化方法,其特征在于,所述调用模型引擎对所述目标模型的入参进行加密处理包括:
将所述目标模型的入参进行Base64编码生成编码字符串;
从Base64字符串映射表中随机获取预设个数的字符,并根据所获取的预设个数的字符组成随机字符串;
将所述随机字符串添加到所述编码字符串的预设位置,生成加密字符串。
8.一种基于机器学习的流程优化装置,其特征在于,该装置应用于在Java环境调用Python机器学习模型,所述基于机器学习的流程优化装置包括:
关系建立模块,用于建立预设模型与模型变量信息之间的第一关联关系及与模型场景信息之间的第二关联关系;
模型确定模块,用于当接收到模拟试算请求指令时,根据所述第一关联关系和所述第二关联关系获取与所述模拟试算请求指令对应目标模型;
入参获取模块,用于通过调用Groovy引擎获取入参配置规则,并根据所述入参配置规则得到所述目标模型的入参;
加密处理模块,用于调用模型引擎对所述目标模型的入参进行加密处理;
路径获取模块,用于调用所述模型引擎在Java中开启Process进程,并获取命令行参数中携带的与所述目标模型对应的Python环境路径与模型文件路径;
环境调用模块,用于根据所述Python环境路径与所述模型文件路径通过所述Process进程调用Anaconda中的Python环境与模型文件;
解密处理模块,用于调用所述模型引擎对所述目标模型的入参进行解密处理;
结果运算模块,用于基于Anaconda中的Python环境与模型文件通过解密处理后的目标模型运算模拟试算请求数据并获取运算结果。
9.一种终端,其特征在于,所述终端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至7中任意一项所述基于机器学习的流程优化方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述基于机器学习的流程优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010064043.1A CN111260080A (zh) | 2020-01-20 | 2020-01-20 | 基于机器学习的流程优化方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010064043.1A CN111260080A (zh) | 2020-01-20 | 2020-01-20 | 基于机器学习的流程优化方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111260080A true CN111260080A (zh) | 2020-06-09 |
Family
ID=70954295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010064043.1A Pending CN111260080A (zh) | 2020-01-20 | 2020-01-20 | 基于机器学习的流程优化方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111260080A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782697A (zh) * | 2020-07-03 | 2020-10-16 | 智慧星链(厦门)数字科技有限公司 | 场景风控方法 |
CN112948080A (zh) * | 2021-02-25 | 2021-06-11 | 北京金山云网络技术有限公司 | 数据处理方法、装置及电子设备 |
CN113190877A (zh) * | 2021-04-29 | 2021-07-30 | 网易(杭州)网络有限公司 | 一种模型加载方法、装置、可读存储介质及电子设备 |
-
2020
- 2020-01-20 CN CN202010064043.1A patent/CN111260080A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782697A (zh) * | 2020-07-03 | 2020-10-16 | 智慧星链(厦门)数字科技有限公司 | 场景风控方法 |
CN112948080A (zh) * | 2021-02-25 | 2021-06-11 | 北京金山云网络技术有限公司 | 数据处理方法、装置及电子设备 |
CN112948080B (zh) * | 2021-02-25 | 2024-03-15 | 北京金山云网络技术有限公司 | 数据处理方法、装置及电子设备 |
CN113190877A (zh) * | 2021-04-29 | 2021-07-30 | 网易(杭州)网络有限公司 | 一种模型加载方法、装置、可读存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108292231B (zh) | 从数据生成应用的方法和系统 | |
CN111260080A (zh) | 基于机器学习的流程优化方法、装置、终端及存储介质 | |
CN110825363B (zh) | 智能合约获取方法、装置、电子设备及存储介质 | |
CN106575166A (zh) | 手写输入字符的处理、数据拆分和合并及编解码处理方法 | |
US11042710B2 (en) | User-friendly explanation production using generative adversarial networks | |
CN114238948A (zh) | 一种应用程序检测方法、装置、电子设备及存储介质 | |
CN114047929B (zh) | 基于知识增强的用户定义函数识别方法、装置及介质 | |
CN113158189A (zh) | 一种恶意软件分析报告生成方法、装置、设备和介质 | |
CN112070608A (zh) | 信息处理方法、装置、介质及电子设备 | |
CN113360217A (zh) | 规则引擎sdk调用方法、装置及存储介质 | |
WO2023126217A1 (en) | Graph neural network ensemble learning | |
CN105760761A (zh) | 软件行为分析方法和装置 | |
CN111737304B (zh) | 一种区块链数据的处理方法、装置及设备 | |
US20210288823A1 (en) | Secure and accountable execution of robotic process automation | |
CN111639903A (zh) | 一种针对架构变更的评审处理方法及相关设备 | |
CN111783119A (zh) | 表单数据安全控制方法、装置、电子设备及存储介质 | |
CN111221690A (zh) | 针对集成电路设计的模型确定方法、装置及终端 | |
US20200225942A1 (en) | Method for creating run-time executables for data analysis functions | |
CN115203674A (zh) | 一种应用程序自动登录方法、系统、装置及存储介质 | |
CN116107991A (zh) | 容器标签数据库构建方法、装置、存储介质及电子设备 | |
CN112463161A (zh) | 基于联邦学习的代码注释生成方法、系统及装置 | |
CN112925523A (zh) | 对象比较方法、装置、设备及计算机可读介质 | |
CN110532165B (zh) | 应用程序安装包特性检测方法、装置、设备及存储介质 | |
CN110134387A (zh) | 贷款业务中的单证模板数据处理方法、装置及计算机设备 | |
CN117290890B (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 |