CN108733358A - 一种基于Spark的机器学习工作流构建方法及装置 - Google Patents
一种基于Spark的机器学习工作流构建方法及装置 Download PDFInfo
- Publication number
- CN108733358A CN108733358A CN201810487532.0A CN201810487532A CN108733358A CN 108733358 A CN108733358 A CN 108733358A CN 201810487532 A CN201810487532 A CN 201810487532A CN 108733358 A CN108733358 A CN 108733358A
- Authority
- CN
- China
- Prior art keywords
- program codes
- block
- spark
- node
- sequence
- 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
- 238000010801 machine learning Methods 0.000 title claims abstract description 41
- 238000010276 construction Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000012545 processing Methods 0.000 claims description 42
- 238000011156 evaluation Methods 0.000 claims description 11
- 230000015572 biosynthetic process Effects 0.000 claims description 10
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 12
- 238000013396 workstream Methods 0.000 description 7
- 238000005194 fractionation Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000033001 locomotion Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于Spark的机器学习工作流构建方法及装置,方法包括:预先定义至少两个工作流节点以及每一个工作流节点所分别对应的程序代码块;展示各个工作流节点,根据用户对展示的各个工作流节点的触发形成包括有至少两个目标工作流节点的有向流程图谱;解析有向流程图谱以确定各个目标工作流节点分别对应的目标程序代码块,确定出各个目标程序代码块之间的执行顺序;根据执行顺序,依次选择一个未被选择的目标程序代码块,并将选择的目标程序代码块发送至Spark集群,使得Spark集群执行其接收的目标程序代码块,直至每一个目标程序代码块均被Spark接收并成功执行。通过本发明的技术方案,可更为快速的实现构建机器学习工作流。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于Spark的机器学习工作流构建方法及装置。
背景技术
随着计算机应用技术的高速发展,通过机器学习训练得到的数据处理模型挖掘海量数据中隐含的价值成为当前一个热门的研究方向。为了避免原始数据收集、数据处理、特征提取、样本生成及模型评估等流程占用过多的时间,通常需要针对实际业务场景构建机器学习工作流。
目前,构建机器学习工作流时,通常需要工作人员结合实际业务场景的需求,针对机器学习工作流中每一个业务环节(工作流节点)分别开发程序代码块,然后将各个业务环节所分别对应的程序代码块发布到Spark集群或其他分布式集群并执行以实现构建机器学习工作流。
上述技术方案中,构建机器学习工作流时,需要结合实际业务场景的需求,针对机器学习工作流中每一个业务环节分别开发程序代码块,需要消耗较长的时间才能完成对各个业务环节所分别对应的程序代码块进行开发,即需要消耗较长的时间才能实现构建机器学习工作流。
发明内容
本发明实施例提供了一种基于Spark的机器学习工作流构建方法及装置,可更为快速的实现构建机器学习工作流。
第一方面,本发明提供了一种基于Spark的机器学习工作流构建方法,包括:
预先定义至少两个工作流节点,并设置每一个所述工作流节点所分别对应的程序代码块;
还包括:
向用户展示各个所述工作流节点,并根据用户对展示的各个所述工作流节点的触发形成包括有至少两个目标工作流节点的有向流程图谱;
解析所述有向流程图谱,以从设置的各个所述程序代码块中确定出各个所述目标工作流节点所分别对应的目标程序代码块,以及确定出各个所述目标程序代码块之间的执行顺序;
根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块,并将选择的所述目标程序代码块发送至Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,直至每一个所述目标程序代码块均被所述Spark接收并成功执行。
优选地,
所述解析所述有向流程图谱,以从设置的各个所述程序代码块中确定出各个所述目标工作流节点所分别对应的目标程序代码块,以及确定出各个所述目标程序代码块之间的执行顺序,包括:
解析所述有向流程图谱以形成与所述有向流程图谱所对应的描述文件;
解析所述描述文件以确定所述有向流程图谱中包括的至少一个目标工作流节点,以及确定各个所述目标工作流节点之间的顺序关系;
从设置的各个所述程序代码中确定出各个所述目标工作流节点所分别对应的目标程序代码块,并根据各个所述目标工作流节点之间的顺序关系确定各个所述目标程序代码块之间的执行顺序。
优选地,
在所述从设置的各个所述程序代码中确定出各个所述目标工作流节点所分别对应的目标程序代码块之后,在所述根据各个所述目标工作流节点之间的顺序关系确定各个所述目标程序代码块之间的执行顺序之前,进一步包括:
接收外部输入的自定义配置服务请求,解析所述自定义配置服务请求以从各个所述目标程序代码块中确定出需要进行自定义配置的当前目标程序代码块;
接收外部输入的对应于所述当前目标程序代码块的自定义配置指令,并根据所述自定义配置指令对所述当前目标程序代码块进行更新处理;
则,所述根据各个所述目标工作流节点之间的顺序关系确定各个所述目标程序代码块之间的执行顺序,包括:根据各个所述目标工作流节点之间的顺序关系确定各个未进行更新处理的所述目标程序代码块以及进行更新处理后的各个所述目标程序代码块之间的执行顺序。
优选地,
所述根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块,并将选择的所述目标程序代码块发送至Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,直至每一个所述目标程序代码块均被所述Spark接收并成功执行,包括:
A1:根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块;
A2:将选择的所述目标程序代码块发送至所述Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,并反馈执行结果;
A3:解析所述Spark集群反馈的所述执行结果以确定选择的所述目标程序代码块是否被所述Spark集群成功执行,若是,则执行A4;否则,执行A5;
A4:检测是否存在未被选择的所述目标程序代码块,若是,则执行A1;
A5:生成对应于选择的所述目标程序代码块的异常信息,提供所述异常信息,并结束当前流程。
优选地,
所述至少两个工作流节点,包括:数据读取节点、数据拆分节点、分类节点、模型预测节点及模型评估节点中的任意一个或多个。
第二方面,本发明实施例提供了一种基于Spark的机器学习工作流构建装置,包括:
预处理模块,用于预先定义至少两个工作流节点,并设置每一个所述工作流节点所分别对应的程序代码块;
流程图处理模块,用于向用户展示各个所述工作流节点,并根据用户对展示的各个所述工作流节点的触发形成包括有至少两个目标工作流节点的有向流程图谱;
业务处理模块,用于解析所述有向流程图谱,以从设置的各个所述程序代码块中确定出各个所述目标工作流节点所分别对应的目标程序代码块,以及确定出各个所述目标程序代码块之间的执行顺序;
程序处理模块,用于根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块,并将选择的所述目标程序代码块发送至Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,直至每一个所述目标程序代码块均被所述Spark接收并成功执行。
优选地,
所述业务处理模块,包括:转换处理单元、解析单元及确定单元;其中,
所述转换处理单元,用于解析所述有向流程图谱以形成与所述有向流程图谱所对应的描述文件;
解析单元,用于解析所述描述文件以确定所述有向流程图谱中包括的至少一个目标工作流节点,以及确定各个所述目标工作流节点之间的顺序关系;
确定单元,用于从设置的各个所述程序代码中确定出各个所述目标工作流节点所分别对应的目标程序代码块,并根据各个所述目标工作流节点之间的顺序关系确定各个所述目标程序代码块之间的执行顺序。
优选地,
所述业务处理模块,进一步包括:服务响应单元及更新处理单元;其中,
所述服务响应单元,用于接收外部输入的自定义配置服务请求,解析所述自定义配置服务请求以从各个所述目标程序代码块中确定出需要进行自定义配置的当前目标程序代码块;
所述更新处理单元,用于接收外部输入的对应于所述当前目标程序代码块的自定义配置指令,并根据所述自定义配置指令对所述当前目标程序代码块进行更新处理;
则,所述确定单元,用于根据各个所述目标工作流节点之间的顺序关系确定各个未进行更新处理的所述目标程序代码块以及进行更新处理后的各个所述目标程序代码块之间的执行顺序。
优选地,
所述程序处理模块,用于执行:
A1:根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块;
A2:将选择的所述目标程序代码块发送至所述Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,并反馈执行结果;
A3:解析所述Spark集群反馈的所述执行结果以确定选择的所述目标程序代码块是否被所述Spark集群成功执行,若是,则执行A4;否则,执行A5;
A4:检测是否存在未被选择的所述目标程序代码块,若是,则执行A1;
A5:生成对应于选择的所述目标程序代码块的异常信息,提供所述异常信息,并结束当前流程。
优选地,
所述至少两个工作流节点,包括:数据读取节点、数据拆分节点、分类节点、模型预测节点及模型评估节点中的任意一个或多个。
本发明实施例提供了一种基于Spark的机器学习工作流构建方法及装置,该方法通过预先定义至少两个工作流节点,并设置每一个所述工作流节点所分别对应的程序代码块,当用户需要结合实际业务场景构建机器学习工作流时,定义的各个工作流节点可以被展示给用户,用户则可结合实际业务场景对展示的各个工作流节点中的部分目标工作流节点进行触发,以形成包括有至少两个目标工作流节点的有向流程图谱,然后对形成的有向流程图谱进行解析,则可从设置的各个程序代码块中确定出各个目标工作流节点所分别对应的目标程序代码块,以及确定出各个目标程序代码块之间的执行顺序,后续过程中,则可根据确定的执行顺序,依次选择一个未被选择的目标程序代码块,并将选择的目标程序代码块发送至Spark集群,使得Spark集群执行其接收的目标程序代码块,直至每一个目标程序代码块均被Spark接收并成功执行,从而实现根据实际业务场景构建符合用户需求的机器学习工作流。综上所述,当需要构建机器学习工作流时,预先设置的各个工作流节点以及各个工作流节点所分别对应的程序代码模块可被复用,用户无需针对多个不同机器学习工作流中每一个工作流节点(业务环节)所分别对应的程序代码块进行重复开发,可更为快速的实现构建机器学习工作流。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种基于Spark的机器学习工作流构建方法的流程图;
图2是本发明一实施例提供的另一种基于Spark的机器学习工作流构建方法的流程图;
图3是本发明一实施例中形成的有向流程图谱的示意图;
图4是本发明一实施例提供的一种基于Spark的机器学习工作流构建装置的结构示意图;
图5是本发明一实施例提供的一种基于Spark的机器学习工作流构建装置中业务处理模块的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种基于Spark的机器学习工作流构建方法,包括:
步骤101,预先定义至少两个工作流节点,并设置每一个所述工作流节点所分别对应的程序代码块;
步骤102,向用户展示各个所述工作流节点,并根据用户对展示的各个所述工作流节点的触发形成包括有至少两个目标工作流节点的有向流程图谱;
步骤103,解析所述有向流程图谱,以从设置的各个所述程序代码块中确定出各个所述目标工作流节点所分别对应的目标程序代码块,以及确定出各个所述目标程序代码块之间的执行顺序;
步骤104,根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块,并将选择的所述目标程序代码块发送至Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,直至每一个所述目标程序代码块均被所述Spark接收并成功执行。
如图1所示的实施例,通过预先定义至少两个工作流节点,并设置每一个所述工作流节点所分别对应的程序代码块,当用户需要结合实际业务场景构建机器学习工作流时,定义的各个工作流节点可以被展示给用户,用户则可结合实际业务场景对展示的各个工作流节点中的部分目标工作流节点进行触发,以形成包括有至少两个目标工作流节点的有向流程图谱,然后对形成的有向流程图谱进行解析,则可从设置的各个程序代码块中确定出各个目标工作流节点所分别对应的目标程序代码块,以及确定出各个目标程序代码块之间的执行顺序,后续过程中,则可根据确定的执行顺序,依次选择一个未被选择的目标程序代码块,并将选择的目标程序代码块发送至Spark集群,使得Spark集群执行其接收的目标程序代码块,直至每一个目标程序代码块均被Spark接收并成功执行,从而实现根据实际业务场景构建符合用户需求的机器学习工作流。综上所述,当需要构建机器学习工作流时,预先设置的各个工作流节点以及各个工作流节点所分别对应的程序代码模块可被复用,用户无需针对多个不同机器学习工作流中每一个工作流节点(业务环节)所分别对应的程序代码块进行重复开发,可更为快速的实现构建机器学习工作流。
上述实施例中,定义的至少两个工作流节点以及各个工作流节点所分别对应的程序代码块可存储在一个独立的学习库中,当然,在实际业务场景中,该学习库中也可存储一些通用的学习算法和工具比如,分类、回归、聚类、协同过滤、降维等算法模型以及接口程序。
具体地,本发明一个实施例中,所述解析所述有向流程图谱,以从设置的各个所述程序代码块中确定出各个所述目标工作流节点所分别对应的目标程序代码块,以及确定出各个所述目标程序代码块之间的执行顺序,包括:
解析所述有向流程图谱以形成与所述有向流程图谱所对应的描述文件;
解析所述描述文件以确定所述有向流程图谱中包括的至少一个目标工作流节点,以及确定各个所述目标工作流节点之间的顺序关系;
从设置的各个所述程序代码中确定出各个所述目标工作流节点所分别对应的目标程序代码块,并根据各个所述目标工作流节点之间的顺序关系确定各个所述目标程序代码块之间的执行顺序。
上述实施例中,由于用户对显示的各个工作流节点进行触发以形成包括有至少两个目标工作流节点的有向流程图谱时,有向流程图谱以图像形式存在,以图像形式存在的有向流程图谱中应当携带受到用户触发的多个目标工作流节点,且每两个相邻的目标工作流节点之间均应当携带在用户的触发下连接相邻两个目标工作流节点且具有方向性指示功能的方向性连接标识;因此,需要通过对以图像形式存在的有向流程图谱进行解析,以提取有向流程图谱中携带的各个目标工作流节点,并根据有向流程图谱中相邻两个目标工作流节点之间的方向性连接标识确定出有向流程图谱中各个目标工作流节点之间的顺序关系,后续则可从设置的各个程序代码块中确定出需要复用到本次构建的机器学习工作流中的各个目标程序代码块,并根据各个目标工作流节点之间的顺序关系确定各个目标程序代码块之间的执行顺序。
本发明一个实施例中,在所述从设置的各个所述程序代码中确定出各个所述目标工作流节点所分别对应的目标程序代码块之后,在所述根据各个所述目标工作流节点之间的顺序关系确定各个所述目标程序代码块之间的执行顺序之前,进一步包括:
接收外部输入的自定义配置服务请求,解析所述自定义配置服务请求以从各个所述目标程序代码块中确定出需要进行自定义配置的当前目标程序代码块;
接收外部输入的对应于所述当前目标程序代码块的自定义配置指令,并根据所述自定义配置指令对所述当前目标程序代码块进行更新处理;
则,所述根据各个所述目标工作流节点之间的顺序关系确定各个所述目标程序代码块之间的执行顺序,包括:根据各个所述目标工作流节点之间的顺序关系确定各个未进行更新处理的所述目标程序代码块以及进行更新处理后的各个所述目标程序代码块之间的执行顺序。
上述实施例中,用户可以根据自定义业务需求,对本次构建机器学习工作流中需要的一个或多个目标程序代码块进行一定程度的更新,比如修改或删除一个或目标程序代码块中的部分业务参数,在满足用户自定义业务需求的前提下,无需完全重新开发相应工作流节点所对应的程序代码块,用户体验较好。
本发明一个实施例中,所述根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块,并将选择的所述目标程序代码块发送至Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,直至每一个所述目标程序代码块均被所述Spark接收并成功执行,包括:
A1:根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块;
A2:将选择的所述目标程序代码块发送至所述Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,并反馈执行结果;
A3:解析所述Spark集群反馈的所述执行结果以确定选择的所述目标程序代码块是否被所述Spark集群成功执行,若是,则执行A4;否则,执行A5;
A4:检测是否存在未被选择的所述目标程序代码块,若是,则执行A1;
A5:生成对应于选择的所述目标程序代码块的异常信息,提供所述异常信息,并结束当前流程。
上述实施例中,当被发送至Spark服务集群的目标程序代码块被Spark集群执行时,可反馈相应的执行结果,若反馈的自行结果表征一个目标程序代码块未能被Spark集群成功执行时,则说明无法被执行的目标程序代码块存在异常,无法完成正常完成构建机器学习工作流,此时,可生成对应于相应目标程序代码块的异常信息,并提供给用户,以便用户对存在异常的目标程序代码块进行修复或执行其他操作。
具体地,本发明一个实施例中,所述至少两个工作流节点,包括:数据读取节点、数据拆分节点、分类节点、模型预测节点及模型评估节点中的任意一个或多个。
本发明实施例提供了另一种基于Spark的机器学习工作流构建方法,如图2所示,具体可以包括如下各个步骤:
步骤201,预先定义至少两个工作流节点,并设置各个工作流节点所分别对应的程序代码块。
步骤202,向用户展示各个工作流节点,并根据用户对展示的各个工作流节点的触发形成包括有至少两个目标工作流节点的有向流程图谱。
这里,可同时向用户展示具有方向性指示功能的方向性连接标识。用户可结合实际业务场景,从展示的各个工作流节点中选择出需要复用到本次构建的机器学习工作流的多个目标工作流节点,并根据各个目标工作流节点之间的方向性逻辑关系,对展示的方向性连接标识进行触发以连接相邻两个存在方向性逻辑关系的目标工作流节点以形成有向流程图谱。
用户可通过对展示的各个工作流节点以及方向性连接标识进行触发以形成如图3所示的有向流程图谱,该有向流程图谱中包括有“读数据”、“拆分”、“朴素贝叶斯”、“模型预测”及“模型评估”等多个目标工作流节点,相邻两个工作流节点之间通过单箭头连接,单箭头作为一个方向性连接标识,单箭头所指向的方向与流程图的逻辑方向相同。
本发明实施例的下述各个步骤中均基于如图3所示的有向流程图谱进行举例。
步骤203,解析有向流程图谱以形成与有向流程图谱所对应的描述文件。
这里,即可针对如图3所示的有向流程图谱进行解析以形成一个与如图3所示的有向流程图谱相对应的JSON描述文件。
步骤203具体可以通过如下代码实现:
步骤204,解析形成的描述文件以确定有向流程图谱中包括的至少一个目标工作流节点,以及确定各个目标工作流节点之间的顺序关系。
通过对JSON描述文件进行解析,则可提取出“读数据”、“拆分”、“朴素贝叶斯”、“模型预测”及“模型评估”等多个目标工作流节点,且确定出前述各个目标工作流节点之间的顺序关系依次为:“读数据”、“拆分”、“朴素贝叶斯”、“模型预测”及“模型评估”等多个目标工作流节点。
步骤205,从设置的各个程序代码块中确定出各个目标工作流节点所分别对应的目标程序代码块。
这里,即可从设置的各个程序代码中确定出“读数据”、“拆分”、“朴素贝叶斯”、“模型预测”及“模型评估”等目标工作流节点所分别对应的目标程序代码块。
步骤206,接收外部输入的自定义配置服务请求,解析自定义配置服务请求以从各个目标程序代码块中确定出需要进行自定义配置的当前目标程序代码块。
举例来说,当用户需要对目标工作流节点“模型预测”所对应的目标程序代码块进行自定义配置时,比如需要修改或删除目标工作流节点“模型预测”所对应的目标程序代码块中的部分业务参数时,则可输入携带“模型预测”的主键值或其他唯一标识的自定义配置服务请求。
步骤207,接收外部输入的对应于当前目标程序代码块的自定义配置指令,并根据自定义配置指令对所述当前目标程序代码块进行更新处理。
比如,根据自定义配置指令对当前目标程序代码块中的部分业务参数进行修改或删除处理。
步骤208,根据各个目标工作流节点之间的顺序关系确定各个未进行更新处理的目标程序代码块以及进行更新处理后的各个目标程序代码块之间的执行顺序。
各个未进行更新处理的目标程序代码块以及进行更新处理后的各个目标程序代码块之间的执行顺序,与其对应的各个目标工作流节点之间的顺序关系相同。
步骤209,根据执行顺序,依次选择一个未被选择的所述目标程序代码块。
步骤210,将选择的目标程序代码块发送至Spark集群,使得Spark集群执行其接收的目标程序代码块,并反馈执行结果。
步骤211,解析Spark集群反馈的执行结果以确定选择的目标程序代码块是否被Spark集群成功执行,若是,则执行211;否则,执行212。
步骤212,检测是否存在未被选择的目标程序代码块,若是,则执行208;否则,结束当前流程。
步骤212,生成对应于选择的目标程序代码块的异常信息,提供异常信息,并结束当前流程。
如图4所示,本发明实施例提供了一种基于Spark的机器学习工作流构建装置,包括:
预处理模块401,用于预先定义至少两个工作流节点,并设置每一个所述工作流节点所分别对应的程序代码块;
流程图处理模块402,用于向用户展示各个所述工作流节点,并根据用户对展示的各个所述工作流节点的触发形成包括有至少两个目标工作流节点的有向流程图谱;
业务处理模块403,用于解析所述有向流程图谱,以从设置的各个所述程序代码块中确定出各个所述目标工作流节点所分别对应的目标程序代码块,以及确定出各个所述目标程序代码块之间的执行顺序;
程序处理模块404,用于根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块,并将选择的所述目标程序代码块发送至Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,直至每一个所述目标程序代码块均被所述Spark接收并成功执行。
请参考图5,本发明一个实施例中,所述业务处理模块403,包括:转换处理单元4031、解析单元4032及确定单元4033;其中,
所述转换处理单元4031,用于解析所述有向流程图谱以形成与所述有向流程图谱所对应的描述文件;
解析单元4032,用于解析所述描述文件以确定所述有向流程图谱中包括的至少一个目标工作流节点,以及确定各个所述目标工作流节点之间的顺序关系;
确定单元4033,用于从设置的各个所述程序代码中确定出各个所述目标工作流节点所分别对应的目标程序代码块,并根据各个所述目标工作流节点之间的顺序关系确定各个所述目标程序代码块之间的执行顺序。
请参考图5,本发明一个实施例中,所述业务处理模块403,进一步包括:服务响应单元4034及更新处理单元4035;其中,
所述服务响应单元4034,用于接收外部输入的自定义配置服务请求,解析所述自定义配置服务请求以从各个所述目标程序代码块中确定出需要进行自定义配置的当前目标程序代码块;
所述更新处理单元4035,用于接收外部输入的对应于所述当前目标程序代码块的自定义配置指令,并根据所述自定义配置指令对所述当前目标程序代码块进行更新处理;
则,所述确定单元4033,用于根据各个所述目标工作流节点之间的顺序关系确定各个未进行更新处理的所述目标程序代码块以及进行更新处理后的各个所述目标程序代码块之间的执行顺序。
本发明一个实施例中,所述程序处理模块404,用于执行:
A1:根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块;
A2:将选择的所述目标程序代码块发送至所述Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,并反馈执行结果;
A3:解析所述Spark集群反馈的所述执行结果以确定选择的所述目标程序代码块是否被所述Spark集群成功执行,若是,则执行A4;否则,执行A5;
A4:检测是否存在未被选择的所述目标程序代码块,若是,则执行A1;
A5:生成对应于选择的所述目标程序代码块的异常信息,提供所述异常信息,并结束当前流程。
本发明一个实施例中,所述至少两个工作流节点,包括:数据读取节点、数据拆分节点、分类节点、模型预测节点及模型评估节点中的任意一个或多个。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明任意一个实施例中提供的的基于Spark的机器学习工作流构建方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;
所述处理器和所述存储器通过所述总线连接;
所述存储器,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行本发明任意一个实施例中提供的基于Spark的机器学习工作流构建方法。
综上所述,本发明各个实施例至少具有如下有益效果:
1、本发明一实施例中,通过预先定义至少两个工作流节点,并设置每一个所述工作流节点所分别对应的程序代码块,当用户需要结合实际业务场景构建机器学习工作流时,定义的各个工作流节点可以被展示给用户,用户则可结合实际业务场景对展示的各个工作流节点中的部分目标工作流节点进行触发,以形成包括有至少两个目标工作流节点的有向流程图谱,然后对形成的有向流程图谱进行解析,则可从设置的各个程序代码块中确定出各个目标工作流节点所分别对应的目标程序代码块,以及确定出各个目标程序代码块之间的执行顺序,后续过程中,则可根据确定的执行顺序,依次选择一个未被选择的目标程序代码块,并将选择的目标程序代码块发送至Spark集群,使得Spark集群执行其接收的目标程序代码块,直至每一个目标程序代码块均被Spark接收并成功执行,从而实现根据实际业务场景构建符合用户需求的机器学习工作流。综上所述,当需要构建机器学习工作流时,预先设置的各个工作流节点以及各个工作流节点所分别对应的程序代码模块可被复用,用户无需针对多个不同机器学习工作流中每一个工作流节点(业务环节)所分别对应的程序代码块进行重复开发,可更为快速的实现构建机器学习工作流。
2、本发明一实施例中,用户可以根据自定义业务需求,对本次构建机器学习工作流中需要的一个或多个目标程序代码块进行一定程度的更新,比如修改或删除一个或目标程序代码块中的部分业务参数,在满足用户自定义业务需求的前提下,无需完全重新开发相应工作流节点所对应的程序代码块,用户体验较好。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种基于Spark的机器学习工作流构建方法,其特征在于,包括:
预先定义至少两个工作流节点,并设置每一个所述工作流节点所分别对应的程序代码块;
还包括:
向用户展示各个所述工作流节点,并根据用户对展示的各个所述工作流节点的触发形成包括有至少两个目标工作流节点的有向流程图谱;
解析所述有向流程图谱,以从设置的各个所述程序代码块中确定出各个所述目标工作流节点所分别对应的目标程序代码块,以及确定出各个所述目标程序代码块之间的执行顺序;
根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块,并将选择的所述目标程序代码块发送至Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,直至每一个所述目标程序代码块均被所述Spark接收并成功执行。
2.根据权利要求1所述的方法,其特征在于,
所述解析所述有向流程图谱,以从设置的各个所述程序代码块中确定出各个所述目标工作流节点所分别对应的目标程序代码块,以及确定出各个所述目标程序代码块之间的执行顺序,包括:
解析所述有向流程图谱以形成与所述有向流程图谱所对应的描述文件;
解析所述描述文件以确定所述有向流程图谱中包括的至少一个目标工作流节点,以及确定各个所述目标工作流节点之间的顺序关系;
从设置的各个所述程序代码中确定出各个所述目标工作流节点所分别对应的目标程序代码块,并根据各个所述目标工作流节点之间的顺序关系确定各个所述目标程序代码块之间的执行顺序。
3.根据权利要求2所述的方法,其特征在于,
在所述从设置的各个所述程序代码中确定出各个所述目标工作流节点所分别对应的目标程序代码块之后,在所述根据各个所述目标工作流节点之间的顺序关系确定各个所述目标程序代码块之间的执行顺序之前,进一步包括:
接收外部输入的自定义配置服务请求,解析所述自定义配置服务请求以从各个所述目标程序代码块中确定出需要进行自定义配置的当前目标程序代码块;
接收外部输入的对应于所述当前目标程序代码块的自定义配置指令,并根据所述自定义配置指令对所述当前目标程序代码块进行更新处理;
则,所述根据各个所述目标工作流节点之间的顺序关系确定各个所述目标程序代码块之间的执行顺序,包括:根据各个所述目标工作流节点之间的顺序关系确定各个未进行更新处理的所述目标程序代码块以及进行更新处理后的各个所述目标程序代码块之间的执行顺序。
4.根据权利要求1所述的方法,其特征在于,
所述根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块,并将选择的所述目标程序代码块发送至Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,直至每一个所述目标程序代码块均被所述Spark接收并成功执行,包括:
A1:根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块;
A2:将选择的所述目标程序代码块发送至所述Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,并反馈执行结果;
A3:解析所述Spark集群反馈的所述执行结果以确定选择的所述目标程序代码块是否被所述Spark集群成功执行,若是,则执行A4;否则,执行A5;
A4:检测是否存在未被选择的所述目标程序代码块,若是,则执行A1;
A5:生成对应于选择的所述目标程序代码块的异常信息,提供所述异常信息,并结束当前流程。
5.根据权利要求1至4中任一所述的方法,其特征在于,
所述至少两个工作流节点,包括:数据读取节点、数据拆分节点、分类节点、模型预测节点及模型评估节点中的任意一个或多个。
6.一种基于Spark的机器学习工作流构建装置,其特征在于,包括:
预处理模块,用于预先定义至少两个工作流节点,并设置每一个所述工作流节点所分别对应的程序代码块;
流程图处理模块,用于向用户展示各个所述工作流节点,并根据用户对展示的各个所述工作流节点的触发形成包括有至少两个目标工作流节点的有向流程图谱;
业务处理模块,用于解析所述有向流程图谱,以从设置的各个所述程序代码块中确定出各个所述目标工作流节点所分别对应的目标程序代码块,以及确定出各个所述目标程序代码块之间的执行顺序;
程序处理模块,用于根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块,并将选择的所述目标程序代码块发送至Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,直至每一个所述目标程序代码块均被所述Spark接收并成功执行。
7.根据权利要求6所述的装置,其特征在于,
所述业务处理模块,包括:转换处理单元、解析单元及确定单元;其中,
所述转换处理单元,用于解析所述有向流程图谱以形成与所述有向流程图谱所对应的描述文件;
解析单元,用于解析所述描述文件以确定所述有向流程图谱中包括的至少一个目标工作流节点,以及确定各个所述目标工作流节点之间的顺序关系;
确定单元,用于从设置的各个所述程序代码中确定出各个所述目标工作流节点所分别对应的目标程序代码块,并根据各个所述目标工作流节点之间的顺序关系确定各个所述目标程序代码块之间的执行顺序。
8.根据权利要求7所述的装置,其特征在于,
所述业务处理模块,进一步包括:服务响应单元及更新处理单元;其中,
所述服务响应单元,用于接收外部输入的自定义配置服务请求,解析所述自定义配置服务请求以从各个所述目标程序代码块中确定出需要进行自定义配置的当前目标程序代码块;
所述更新处理单元,用于接收外部输入的对应于所述当前目标程序代码块的自定义配置指令,并根据所述自定义配置指令对所述当前目标程序代码块进行更新处理;
则,所述确定单元,用于根据各个所述目标工作流节点之间的顺序关系确定各个未进行更新处理的所述目标程序代码块以及进行更新处理后的各个所述目标程序代码块之间的执行顺序。
9.根据权利要求6所述的装置,其特征在于,
所述程序处理模块,用于执行:
A1:根据所述执行顺序,依次选择一个未被选择的所述目标程序代码块;
A2:将选择的所述目标程序代码块发送至所述Spark集群,使得所述Spark集群执行其接收的所述目标程序代码块,并反馈执行结果;
A3:解析所述Spark集群反馈的所述执行结果以确定选择的所述目标程序代码块是否被所述Spark集群成功执行,若是,则执行A4;否则,执行A5;
A4:检测是否存在未被选择的所述目标程序代码块,若是,则执行A1;
A5:生成对应于选择的所述目标程序代码块的异常信息,提供所述异常信息,并结束当前流程。
10.根据权利要求6至9中任一所述的装置,其特征在于,
所述至少两个工作流节点,包括:数据读取节点、数据拆分节点、分类节点、模型预测节点及模型评估节点中的任意一个或多个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810487532.0A CN108733358A (zh) | 2018-05-21 | 2018-05-21 | 一种基于Spark的机器学习工作流构建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810487532.0A CN108733358A (zh) | 2018-05-21 | 2018-05-21 | 一种基于Spark的机器学习工作流构建方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108733358A true CN108733358A (zh) | 2018-11-02 |
Family
ID=63937685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810487532.0A Pending CN108733358A (zh) | 2018-05-21 | 2018-05-21 | 一种基于Spark的机器学习工作流构建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108733358A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542505A (zh) * | 2018-12-06 | 2019-03-29 | 苏州科创风云信息技术有限公司 | 共享货架中资源的更新方法及装置 |
CN109657804A (zh) * | 2018-11-29 | 2019-04-19 | 湖南视比特机器人有限公司 | 云平台下的模型动态训练、校验、更新维护和利用方法 |
CN109766088A (zh) * | 2019-01-17 | 2019-05-17 | 宜创(北京)科技有限公司 | 程序生成方法、装置、数据处理方法及服务器 |
CN109829375A (zh) * | 2018-12-27 | 2019-05-31 | 深圳云天励飞技术有限公司 | 一种机器学习方法、装置、设备及系统 |
CN113052322A (zh) * | 2021-03-10 | 2021-06-29 | 广东博智林机器人有限公司 | 机器学习的建模方法、装置、存储介质和处理器 |
CN115098181A (zh) * | 2022-05-26 | 2022-09-23 | 浪潮软件集团有限公司 | 一种国产cpu和os的视频流组配方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202192A (zh) * | 2016-06-28 | 2016-12-07 | 浪潮软件集团有限公司 | 一种基于工作流的大数据分析方法 |
US20160358103A1 (en) * | 2015-06-05 | 2016-12-08 | Facebook, Inc. | Machine learning system flow processing |
CN107169575A (zh) * | 2017-06-27 | 2017-09-15 | 北京天机数测数据科技有限公司 | 一种可视化机器学习训练模型的建模系统和方法 |
CN107450972A (zh) * | 2017-07-04 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种调度方法、装置以及电子设备 |
CN107944565A (zh) * | 2017-11-24 | 2018-04-20 | 江苏润和软件股份有限公司 | 一种面向云计算的基于定制化组件的流式机器学习方法与软件系统 |
-
2018
- 2018-05-21 CN CN201810487532.0A patent/CN108733358A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160358103A1 (en) * | 2015-06-05 | 2016-12-08 | Facebook, Inc. | Machine learning system flow processing |
CN106202192A (zh) * | 2016-06-28 | 2016-12-07 | 浪潮软件集团有限公司 | 一种基于工作流的大数据分析方法 |
CN107169575A (zh) * | 2017-06-27 | 2017-09-15 | 北京天机数测数据科技有限公司 | 一种可视化机器学习训练模型的建模系统和方法 |
CN107450972A (zh) * | 2017-07-04 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种调度方法、装置以及电子设备 |
CN107944565A (zh) * | 2017-11-24 | 2018-04-20 | 江苏润和软件股份有限公司 | 一种面向云计算的基于定制化组件的流式机器学习方法与软件系统 |
Non-Patent Citations (1)
Title |
---|
檀照望: "一种基于Spark的大数据处理可视化工具的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109657804A (zh) * | 2018-11-29 | 2019-04-19 | 湖南视比特机器人有限公司 | 云平台下的模型动态训练、校验、更新维护和利用方法 |
CN109542505A (zh) * | 2018-12-06 | 2019-03-29 | 苏州科创风云信息技术有限公司 | 共享货架中资源的更新方法及装置 |
CN109542505B (zh) * | 2018-12-06 | 2022-03-22 | 苏州科创风云信息技术有限公司 | 共享货架中资源的更新方法及装置 |
CN109829375A (zh) * | 2018-12-27 | 2019-05-31 | 深圳云天励飞技术有限公司 | 一种机器学习方法、装置、设备及系统 |
CN109766088A (zh) * | 2019-01-17 | 2019-05-17 | 宜创(北京)科技有限公司 | 程序生成方法、装置、数据处理方法及服务器 |
CN113052322A (zh) * | 2021-03-10 | 2021-06-29 | 广东博智林机器人有限公司 | 机器学习的建模方法、装置、存储介质和处理器 |
CN115098181A (zh) * | 2022-05-26 | 2022-09-23 | 浪潮软件集团有限公司 | 一种国产cpu和os的视频流组配方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108733358A (zh) | 一种基于Spark的机器学习工作流构建方法及装置 | |
Barrios et al. | A double genetic algorithm for the MRCPSP/max | |
US10175954B2 (en) | Method of processing big data, including arranging icons in a workflow GUI by a user, checking process availability and syntax, converting the workflow into execution code, monitoring the workflow, and displaying associated information | |
CN104965999B (zh) | 一种中短基因片段测序的分析拼接方法及设备 | |
CN105760950A (zh) | 提供或获取预测结果的方法、装置以及预测系统 | |
CN113065843A (zh) | 一种模型处理方法、装置、电子设备和存储介质 | |
CN114048387A (zh) | 基于大数据和ai预测的内容推荐方法及人工智能云系统 | |
JP6500896B2 (ja) | 属性列挙システム、属性列挙方法および属性列挙プログラム | |
CN114594927A (zh) | 低代码开发方法、装置、系统、服务器及存储介质 | |
US10346450B2 (en) | Automatic datacenter state summarization | |
CN113687825B (zh) | 一种软件模块的构建方法、装置、设备及存储介质 | |
Enos et al. | Identifying and quantifying critical ilities in the acquisition of DoD systems | |
US10313457B2 (en) | Collaborative filtering in directed graph | |
Surian et al. | Predicting project outcome leveraging socio-technical network patterns | |
CN109885580A (zh) | 一种热点账户批量更新方法、装置、服务器和存储介质 | |
Zaman et al. | Scenario-based solution approach for uncertain resource constrained scheduling problems | |
KR101617704B1 (ko) | 페트리넷과 발사 추천기에 기반한 최적화 시스템 및 구현 방법 | |
Ayub et al. | A novel approach for software requirement prioritization based upon non functional requirements | |
EP4109366A1 (en) | Method and device for managing project by using data merging | |
CN111507405A (zh) | 图片标注方法、装置、电子设备及计算机可读存储介质 | |
Konstan et al. | Research resources for recommender systems | |
CN112686391A (zh) | 基于联邦学习的建模方法及装置、设备、存储介质 | |
Rahouti et al. | Incremental learning implementations and vision for cyber risk detection in iot | |
CN105740449A (zh) | 统计报告动态生成系统和方法 | |
CN113553159A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181102 |
|
RJ01 | Rejection of invention patent application after publication |