一种人工智能工作流多轮执行方法和系统与流程
未命名
10-09
阅读:119
评论:0
1.本技术涉及人工智能和数据库技术领域,更具体地,涉及一种人工智能工作流多轮执行方法和系统。
背景技术:
2.用户基于人工智能搭建平台进行训练数据预处理、人工智能模型搭建时,搭建人工智能模型本身需要庞大计算资源提供算力,加上数据时代剧增的数据,在进行预处理的训练数据时再次增加大量的计算资源消耗,导致有限的计算资源难以满足大数据量的预处理和模型搭建需求,产生算力不足的问题。
3.同时,在处理人工智能工作流中各个节点的任务的场景中,每次接收到工作流的执行指令后,都需要根据执行指令执行一次,伴随工作流的持续增加和多个工作流任务并行执行,所需要的计算资源也持续飙升,使得本已算力不足的人工智能搭建平台的算力严重不足,且人工智能模型搭建、训练和执行的整体性能也大幅下降。
4.因此,有必要提供一种新的方法和系统,该方法和系统能够依据人工智能工作流中各个节点的任务处理状态和缓存的各个节点处理结果对整个工作流任务的处理进行优化,进而减轻人工智能搭建平台在执行工作流任务的计算压力,并提升人工智能模型搭建、训练和执行的整体性能。
技术实现要素:
5.针对上面提到的技术问题,本发明提供一种人工智能工作流多轮执行方法和系统,通过根据执行状态库中的执行状态表对工作流的任务序列进行执行优化,实现了依据人工智能工作流中各个节点的任务处理状态和缓存的各个节点处理结果对整个工作流任务的处理进行优化,进而减轻了人工智能搭建平台在执行工作流任务的计算压力,提升了人工智能模型搭建、训练和执行的整体性能。
6.本发明提供一种人工智能工作流多轮执行方法,所述方法包括:
7.s101,根据工作流属性结构,创建执行状态库,并对所述执行状态库进行初始化;s102,接收到工作流执行指令,对所述工作流执行指令进行解析,并根据解析结果和工作流属性结构,获取工作流的任务序列;s103,在所述执行状态库中搜索与所述工作流的任务序列对应的执行状态表,并根据搜索结果和所述执行状态表执行所述工作流的任务序列;
8.其中,在执行所述工作流的任务序列的过程中,根据所述工作流的任务序列中各个节点的执行状态更新所述执行状态表,并将所述执行状态表同步更新到所述执行状态库中,所述执行状态表记录所述工作流的任务序列中各个节点的执行状态;所述工作流属性结构包括5个字段,分别为工作流标识、任务标识、执行状态、执行函数和用户设置参数;所述执行状态包括4个字段,分别为执行中、待执行、执行成功和执行异常。
9.如上所述,所述s101,根据工作流属性结构,创建执行状态库,并对所述执行状态库进行初始化的步骤为:根据所述工作流标识、所述任务标识、所述执行状态、所述执行函
数和所述用户设置参数,创建执行状态表,将所述执行状态表保存至所述执行状态库中;将所述工作流标识、所述任务标识、所述执行状态、所述执行函数和所述用户设置参数的初始值均设置为空。
10.如上所述,所述s102,接收到工作流执行指令,对所述工作流执行指令进行解析,并根据解析结果和工作流属性结构,获取工作流的任务序列的步骤包括:接收所述工作流执行指令,对所述工作流执行指令进行解析,获得所述解析结果,所述解析结果包括所述工作流标识、所述任务标识、所述执行函数和所述用户设置参数;根据所述解析结果和所述工作流属性结构,生成所述工作流的任务序列;其中,所述工作流的任务序列由两个以上的任务节点构成,每个任务节点对应一个所述任务标识、所述执行函数和所述用户设置参数,每个任务节点的执行状态根据所述任务节点的任务执行情况进行动态标记。
11.如上所述,所述s103,在所述执行状态库中搜索与所述工作流的任务序列对应的执行状态表,并根据搜索结果和所述执行状态表执行所述工作流的任务序列的步骤包括:如果所述执行状态库中不存在与所述工作流的任务序列对应的执行状态表,则根据所述工作流属性结构,获取所述工作流的工作流标识,以及所述工作流的任务序列中所有任务节点的任务标识和用户设置参数;根据所述工作流标识,以及所述工作流的任务序列中所有任务节点的任务标识,创建新的执行状态表,并将所述工作流的任务序列中首个任务节点的所述执行状态标记为执行中,将所述工作流的任务序列中其它全部任务节点的所述执行状态标记为待执行;根据所述新的执行状态表和所述用户设置参数执行所述工作流的任务序列。
12.如上所述,所述根据所述新的执行状态表和所述用户设置参数执行所述工作流的任务序列的步骤为:s5-1,根据所述工作流的任务序列中执行状态为执行中的任务节点的任务标识,确定所述任务节点的物理执行端,从所述物理执行端中加载所述任务节点的执行函数,并根据所述任务节点的执行函数和用户设置参数执行所述任务节点的任务,执行结束后,将所述任务节点的执行状态标记为执行成功,输出第一执行结果,并将第一执行结果和所述任务节点的执行状态保存至所述新的执行状态表中;s5-2,根据所述新的执行状态表和所述工作流的任务序列,确定所述任务节点对应的执行状态为待执行的下一个节点,以及所述下一个节点的任务标识,根据所述下一个节点的任务标识确定,确定所述下一个节点的物理执行端,并加载所述任务节点的执行函数,根据所述下一个节点的执行函数、用户设置参数和所述第一执行结果执行所述下一个节点的任务,并根据执行情况,对所述下一个节点的执行状态进行重新标记,输出第二执行结果,并将所述第二执行结果和所述下一个节点的执行状态保存至所述新的执行状态表中;s5-3,重复步骤s5-2,直到所述工作流的任务序列中所有的任务节点均执行完成,更新所述新的执行状态表,并将更新后的所述新的执行状态表同步更新至执行状态库中。
13.如上所述,所述步骤s5-2,根据所述新的执行状态表和所述工作流的任务序列,确定所述任务节点对应的执行状态为待执行的下一个节点,以及所述下一个节点的任务标识,根据所述下一个节点的任务标识确定,确定所述下一个节点的物理执行端,并加载所述任务节点的执行函数,根据所述下一个节点的执行函数、用户设置参数和所述第一执行结果执行所述下一个节点的任务,并根据执行情况,对所述任务节点的执行状态进行重新标记,输出第二执行结果,并将所述第二执行结果和所述下一个节点的执行状态保存至所述
新的执行状态表中的步骤还包括:s6-1,若所述下一个节点的任务执行失败,则将所述任务节点的执行状态标记为执行异常,所述第二执行结果为空集;若所述下一个节点的任务执行成功,则将所述任务节点的执行状态标记为执行成功,所述第二执行结果为实际执行结果;s6-2,输出第二执行结果,并将所述第二执行结果和所述下一个节点的执行状态保存至所述新的执行状态表中。
14.如上所述,所述s103,在所述执行状态库中搜索与所述工作流的任务序列对应的执行状态表,并根据搜索结果和所述执行状态表执行所述工作流的任务序列的步骤还包括:如果所述执行状态库中存在与所述工作流的任务序列对应的执行状态表,则s7-1,根据所述工作流属性结构和所述工作流的任务序列对应的执行状态表,获取所述工作流的工作流标识,并确定所述工作流的任务序列中所有执行状态为执行异常的任务节点的任务标识、用户设置参数和执行函数;s7-2,根据所述执行状态为执行异常的任务节点的任务标识和所述工作流的任务序列对应的执行状态表,确定执行状态为执行异常的任务节点对应的执行状态为执行成功的上一个节点,并获取所述上一个节点的任务标识和执行结果;s7-3,根据所述执行状态为执行异常的任务节点的执行函数、用户设置参数和所述上一个节点的执行结果执行所述执行状态为执行异常的任务节点的任务;s7-4,根据所述执行状态为执行异常的任务节点的任务的执行情况,对所述执行状态为执行异常的任务节点的执行状态进行重新标记,输出第三执行结果,并更新所述执行状态为执行异常的任务节点在所述执行状态表中的执行结果和执行状态;s7-5,重复步骤s7-2、步骤s7-3和步骤s7-4,直到所述工作流的任务序列中所有执行状态为执行异常的任务节点的任务都执行完成。
15.如上所述,所述s7-4,根据所述执行状态为执行异常的任务节点的任务的执行情况,对所述执行状态为执行异常的任务节点的执行状态进行重新标记,输出第三执行结果,并更新所述执行状态为执行异常的任务节点在所述执行状态表中的执行结果和执行状态的步骤为:
16.s8-1,若所述执行状态为执行异常的任务节点的任务执行成功,则将所述执行状态为执行异常的任务节点的执行状态标记为执行成功,并将所述第三执行结果与所述执行状态表中记录的所述执行状态为执行异常的任务节点的执行结果进行对比,得到对比结果;如果所述对比结果大于预设对比数值,使用所述第三执行结果覆盖所述执行状态表中记录的所述执行状态为执行异常的任务节点的执行结果,并将所述执行状态表中记录的所述执行状态为执行异常的任务节点的执行状态更新为执行成功;如果所述对比结果小于或等于预设对比数值,保留所述执行状态表中记录的所述执行状态为执行异常的任务节点的执行结果,并将所述执行状态表中记录的所述执行状态为执行异常的任务节点的执行状态更新为执行成功。
17.s8-2,若所述执行状态为执行异常的任务节点的任务执行成功,则执行所述执行状态为执行异常的下一个任务节点的任务;其中,所述预设对比数值根据模型训练的要求进行预先设置。
18.相应的,本发明还提供了一种人工智能工作流多轮执行系统,所述系统包括执行状态库创建模块、任务序列生成模块和任务节点执行模块;所述执行状态库创建模块,用于根据工作流属性结构,创建执行状态库,并对所述执行状态库进行初始化;所述任务序列生成模块,用于接收到工作流执行指令,对所述工作流执行指令进行解析,并根据解析结果和
工作流属性结构,获取工作流的任务序列;所述任务节点执行模块,用于在所述执行状态库中搜索与所述工作流的任务序列对应的执行状态表,并根据搜索结果和所述执行状态表执行所述工作流的任务序列;其中,在执行所述工作流的任务序列的过程中,根据所述工作流的任务序列中各个节点的执行状态更新所述执行状态表,并将所述执行状态表同步更新到所述执行状态库中,所述执行状态表记录所述工作流的任务序列中各个节点的执行状态。
19.本发明通过应用以上技术方案,实现了通过根据执行状态库中的执行状态表记录的工作流的任务序列中各个任务节点的执行状态,并依据人工智能工作流中各个节点的执行状态和缓存的各个节点处理结果对整个工作流任务的处理进行优化,从而减轻了人工智能搭建平台在执行工作流任务的计算压力,提升了人工智能模型搭建、训练和执行的整体性能。
附图说明
20.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1示出了本发明实施例提出的一种人工智能工作流多轮执行方法的流程示意图;
22.图2示出了本发明实施例提出的一种人工智能工作流多轮执行方法的执行过程示意图;
23.图3示出了本发明实施例提出的一种人工智能工作流多轮执行系统的结构示意图。
具体实施方式
24.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
25.本发明提供了一种人工智能工作流多轮执行方法,如图1所示,所述方法包括以下步骤:
26.s101,根据工作流属性结构,创建执行状态库,并对所述执行状态库进行初始化。
27.其中,所述工作流属性结构包括5个字段,分别为工作流标识、任务标识、执行状态、执行函数和用户设置参数。
28.本实施例中,所述s101,根据工作流属性结构,创建执行状态库,并对所述执行状态库进行初始化的步骤为:
29.根据所述工作流标识、所述任务标识、所述执行状态、所述执行函数和所述用户设置参数,创建执行状态表,将所述执行状态表保存至所述执行状态库中;
30.将所述工作流标识、所述任务标识、所述执行状态、所述执行函数和所述用户设置参数的初始值均设置为空。
31.s102,接收到工作流执行指令,对所述工作流执行指令进行解析,并根据解析结果和工作流属性结构,获取工作流的任务序列。
32.本实施例中,所述s102,接收到工作流执行指令,对所述工作流执行指令进行解析,并根据解析结果和工作流属性结构,获取工作流的任务序列的步骤包括:
33.接收所述工作流执行指令,对所述工作流执行指令进行解析,获得所述解析结果,所述解析结果包括所述工作流标识、所述任务标识、所述执行函数和所述用户设置参数;
34.根据所述解析结果和所述工作流属性结构,生成所述工作流的任务序列;
35.其中,所述工作流的任务序列由两个以上的任务节点构成,每个任务节点对应一个所述任务标识、所述执行函数和所述用户设置参数,每个任务节点的执行状态根据所述任务节点的任务执行情况进行动态标记。
36.s103,在所述执行状态库中搜索与所述工作流的任务序列对应的执行状态表,并根据搜索结果和所述执行状态表执行所述工作流的任务序列。
37.其中,在执行所述工作流的任务序列的过程中,根据所述工作流的任务序列中各个节点的执行状态更新所述执行状态表,并将所述执行状态表同步更新到所述执行状态库中,所述执行状态表记录所述工作流的任务序列中各个节点的执行状态;所述执行状态包括4个字段,分别为执行中、待执行、执行成功和执行异常。
38.本实施中,所述s103,在所述执行状态库中搜索与所述工作流的任务序列对应的执行状态表,并根据搜索结果和所述执行状态表执行所述工作流的任务序列的步骤包括:
39.如果所述执行状态库中不存在与所述工作流的任务序列对应的执行状态表,则根据所述工作流属性结构,获取所述工作流的工作流标识,以及所述工作流的任务序列中所有任务节点的任务标识和用户设置参数;根据所述工作流标识,以及所述工作流的任务序列中所有任务节点的任务标识,创建新的执行状态表,并将所述工作流的任务序列中首个任务节点的所述执行状态标记为执行中,将所述工作流的任务序列中其它全部任务节点的所述执行状态标记为待执行;根据所述新的执行状态表和所述用户设置参数执行所述工作流的任务序列。
40.为了更好地根据执行状态表和用户设置参数执行工作流的任务序列,本实施例中,所述根据所述新的执行状态表和所述用户设置参数执行所述工作流的任务序列的步骤为:
41.s5-1,根据所述工作流的任务序列中执行状态为执行中的任务节点的任务标识,确定所述任务节点的物理执行端,从所述物理执行端中加载所述任务节点的执行函数,并根据所述任务节点的执行函数和用户设置参数执行所述任务节点的任务,执行结束后,将所述任务节点的执行状态标记为执行成功,输出第一执行结果,并将第一执行结果和所述任务节点的执行状态保存至所述新的执行状态表中;
42.s5-2,根据所述新的执行状态表和所述工作流的任务序列,确定所述任务节点对应的执行状态为待执行的下一个节点,以及所述下一个节点的任务标识,根据所述下一个节点的任务标识确定,确定所述下一个节点的物理执行端,并加载所述任务节点的执行函数,根据所述下一个节点的执行函数、用户设置参数和所述第一执行结果执行所述下一个节点的任务,并根据执行情况,对所述下一个节点的执行状态进行重新标记,输出第二执行结果,并将所述第二执行结果和所述下一个节点的执行状态保存至所述新的执行状态表
中;
43.s5-3,重复步骤s5-2,直到所述工作流的任务序列中所有的任务节点均执行完成,更新所述新的执行状态表,并将更新后的所述新的执行状态表同步更新至执行状态库中。
44.为了进一步完成任务节点的任务处理和执行状态的同步更新,在一些具体实施例中,所述步骤s5-2,根据所述新的执行状态表和所述工作流的任务序列,确定所述任务节点对应的执行状态为待执行的下一个节点,以及所述下一个节点的任务标识,根据所述下一个节点的任务标识确定,确定所述下一个节点的物理执行端,并加载所述任务节点的执行函数,根据所述下一个节点的执行函数、用户设置参数和所述第一执行结果执行所述下一个节点的任务,并根据执行情况,对所述任务节点的执行状态进行重新标记,输出第二执行结果,并将所述第二执行结果和所述下一个节点的执行状态保存至所述新的执行状态表中的步骤还包括:
45.s6-1,若所述下一个节点的任务执行失败,则将所述任务节点的执行状态标记为执行异常,所述第二执行结果为空集;若所述下一个节点的任务执行成功,则将所述任务节点的执行状态标记为执行成功,所述第二执行结果为实际执行结果;
46.s6-2,输出第二执行结果,并将所述第二执行结果和所述下一个节点的执行状态保存至所述新的执行状态表中。
47.本实施例中,所述s103,在所述执行状态库中搜索与所述工作流的任务序列对应的执行状态表,并根据搜索结果和所述执行状态表执行所述工作流的任务序列的步骤还包括:
48.如果所述执行状态库中存在与所述工作流的任务序列对应的执行状态表,则
49.s7-1,根据所述工作流属性结构和所述工作流的任务序列对应的执行状态表,获取所述工作流的工作流标识,并确定所述工作流的任务序列中所有执行状态为执行异常的任务节点的任务标识、用户设置参数和执行函数;
50.s7-2,根据所述执行状态为执行异常的任务节点的任务标识和所述工作流的任务序列对应的执行状态表,确定执行状态为执行异常的任务节点对应的执行状态为执行成功的上一个节点,并获取所述上一个节点的任务标识和执行结果;
51.s7-3,根据所述执行状态为执行异常的任务节点的执行函数、用户设置参数和所述上一个节点的执行结果执行所述执行状态为执行异常的任务节点的任务;
52.s7-4,根据所述执行状态为执行异常的任务节点的任务的执行情况,对所述执行状态为执行异常的任务节点的执行状态进行重新标记,输出第三执行结果,并更新所述执行状态为执行异常的任务节点在所述执行状态表中的执行结果和执行状态;
53.s7-5,重复步骤s7-2、步骤s7-3和步骤s7-4,直到所述工作流的任务序列中所有执行状态为执行异常的任务节点的任务都执行完成。
54.本实施例中,所述s7-4,根据所述执行状态为执行异常的任务节点的任务的执行情况,对所述执行状态为执行异常的任务节点的执行状态进行重新标记,输出第三执行结果,并更新所述执行状态为执行异常的任务节点在所述执行状态表中的执行结果和执行状态的步骤为:
55.s8-1,若所述执行状态为执行异常的任务节点的任务执行成功,则将所述执行状态为执行异常的任务节点的执行状态标记为执行成功,并将所述第三执行结果与所述执行
状态表中记录的所述执行状态为执行异常的任务节点的执行结果进行对比,得到对比结果;
56.如果所述对比结果大于预设对比数值,使用所述第三执行结果覆盖所述执行状态表中记录的所述执行状态为执行异常的任务节点的执行结果,并将所述执行状态表中记录的所述执行状态为执行异常的任务节点的执行状态更新为执行成功;
57.如果所述对比结果小于或等于预设对比数值,保留所述执行状态表中记录的所述执行状态为执行异常的任务节点的执行结果,并将所述执行状态表中记录的所述执行状态为执行异常的任务节点的执行状态更新为执行成功。
58.s8-2,若所述执行状态为执行异常的任务节点的任务执行成功,则执行所述执行状态为执行异常的下一个任务节点的任务;
59.其中,所述预设对比数值根据模型训练的要求进行预先设置。
60.为了方便本领域技术人员更好地理解本发明提供的技术方案,现举例对本发明提供的技术方案进行进一步补充说明。
61.如图2所示,根据工作流属性结构,创建执行状态库,并对所述执行状态库进行初始化;其中,所述工作流属性结构包括5个字段,分别为工作流标识、任务标识、执行状态、执行函数和用户设置参数。
62.所述根据工作流属性结构,创建执行状态库,并对所述执行状态库进行初始化的步骤为:
63.根据所述工作流标识、所述任务标识、所述执行状态、所述执行函数和所述用户设置参数,创建执行状态表,将所述执行状态表保存至所述执行状态库中;
64.将所述工作流标识、所述任务标识、所述执行状态、所述执行函数和所述用户设置参数的初始值均设置为空。
65.其中,创建的执行状态表和初始化信息如表1所示。
66.表1
67.任务标识执行状态status执行结果out任务1执行中输出1:空值;任务2待执行输出2:空值;任务3待执行输出3-1:空值;输出3-2:空值;任务4待执行输出4:空值;任务5待执行输出5:空值;任务6待执行输出6:空值;任务7待执行输出7:空值;
68.接收到工作流执行指令,对所述工作流执行指令进行解析,并根据解析结果和工作流属性结构,获取工作流的任务序列,所述工作流的任务序列如下所示,
69.result
70.{
71.任务1:{
72.执行状态status:执行中
73.执行结果out:[输出1]
[0074]
}
[0075]
任务2:{
[0076]
执行状态status:待执行
[0077]
执行结果out:[输出1]
[0078]
}
[0079]
任务3:{
[0080]
执行状态status:待执行
[0081]
执行结果out:[输出3-1,输出3-2]
[0082]
}
[0083]
任务4:{
[0084]
执行状态status:待执行
[0085]
执行结果out:[输出4]
[0086]
}
[0087]
任务5:{
[0088]
执行状态status:待执行
[0089]
执行结果out:[输出5]
[0090]
}
[0091]
任务6:{
[0092]
执行状态status:待执行
[0093]
执行结果out:[输出6]
[0094]
}
[0095]
任务7:{
[0096]
执行状态status:待执行
[0097]
执行结果out:[输出7]
[0098]
}
[0099]
}
[0100]
根据所述执行状态表所述执行状态表执行所述工作流的任务序列。
[0101]
其中,在执行所述工作流的任务序列的过程中,根据所述工作流的任务序列中各个节点的执行状态更新所述执行状态表,并将所述执行状态表同步更新到所述执行状态库中,所述执行状态表记录所述工作流的任务序列中各个节点的执行状态;所述执行状态包括4个字段,分别为执行中、待执行、执行成功和执行异常。
[0102]
当执行到任务4,所述任务4的执行状态被标记为执行中,所述工作流的执行状态表也同步更新,所述工作流的执行状态表具体更新如表2所示。
[0103]
表2
[0104]
任务标识执行状态status执行结果out任务1执行成功输出1:a;任务2执行成功输出2:b;任务3执行成功输出3-1:c;输出3-2:d;任务4执行中输出4:空值;
任务5待执行输出5:空值;任务6待执行输出6:空值;任务7待执行输出7:空值;
[0105]
值得说明的是,因为任务4和任务5均是任务3的分支任务节点,在任务3的任务执行完成,并输出输出3-1:c和输出3-2:d的结果后,任务4和任务5会以并行执行的方式进行执行,任务4和任务5中任一节点的任务执行出现异常,则将其对应的任务节点的执行状态标记为执行异常,并将该任务节点的执行结果设置为空值,继续向下执行。例如,任务5执行异常,则将任务5执行状态标记为执行异常,将任务5的执行结果输出5设置为空值,在任务4和任务6执行成功后,将执行结果输出5:空值和任务6:g的执行结果输出6一起发送至任务7执行,并执行结果输出7:h。此种情况下,所述工作流的执行状态表具体更新如表3所示。此时,所述执行状态表的内容也会同步更新为表3的内容,并更新至所述执行状态库中。
[0106]
表3
[0107]
任务标识执行状态status执行结果out任务1执行成功输出1:a;任务2执行成功输出2:b;任务3执行成功输出3-1:c;输出3-2:d;任务4执行成功输出4:e;任务5执行异常输出5:空值;任务6执行成功输出6:g;任务7执行成功输出7:h;
[0108]
当再次接收到工作流执行指令时,会从所述执行状态库中直接读取内容为表3的执行状态表,并根据内容为表3的执行状态表确定执行状态为执行异常的任务节点,执行所述工作流的任务序列。此时,所述工作流的任务序列中仅任务5的执行状态为执行异常,所以再次接收到工作流执行指令时,只需要执行任务5即可。执行完成后,如表4所示,任务5的执行状态为执行成功,其执行结果为输出5:f,执行结果输出5:f和任务6:g的执行结果输出6一起发送至任务7执行,得到执行结果输出7:h’。
[0109]
表4
[0110]
任务标识执行状态status执行结果out任务1执行成功输出1:a;任务2执行成功输出2:b;任务3执行成功输出3-1:c;输出3-2:d;任务4执行成功输出4:e;任务5执行成功输出5:f;任务6执行成功输出6:g;任务7执行成功输出7:h’;
[0111]
此时,需要根据预设对比数值,对执行结果输出7:h和执行结果输出7:h’进行比较,得到比较结果;若比较结果大于所述预设对比数值,则使用执行结果输出7:h’覆盖执行结果输出7:h,将内容为表3的执行状态表同步更新为表4的内容,并更新至所述执行状态库中;若比较结果小于或等于所述预设对比数值,则保留执行结果输出7:h,在内容为表3的执
行状态表中将任务5的执行状态设置为执行成功,执行结果为输出5:f,并更新至所述执行状态库中。
[0112]
通过应用以上技术方案,根据工作流属性结构,创建执行状态库,并对所述执行状态库进行初始化;接收到工作流执行指令,对所述工作流执行指令进行解析,并根据解析结果和工作流属性结构,获取工作流的任务序列;在所述执行状态库中搜索与所述工作流的任务序列对应的执行状态表,并根据搜索结果和所述执行状态表执行所述工作流的任务序列;实现了通过根据执行状态库中的执行状态表记录的工作流的任务序列中各个任务节点的执行状态,并依据人工智能工作流中各个节点的执行状态和缓存的各个节点处理结果对整个工作流任务的处理进行优化,从而减轻了人工智能搭建平台在执行工作流任务的计算压力,提升了人工智能模型搭建、训练和执行的整体性能。
[0113]
与本发明实施例中的一种所述人工智能工作流多轮执行方法相对应,本发明还公开了一种人工智能工作流多轮执行系统,如图3所示,所述系统包括执行状态库创建模块、任务序列生成模块和任务节点执行模块。
[0114]
所述执行状态库创建模块,用于根据工作流属性结构,创建执行状态库,并对所述执行状态库进行初始化;所述任务序列生成模块,用于接收到工作流执行指令,对所述工作流执行指令进行解析,并根据解析结果和工作流属性结构,获取工作流的任务序列;所述任务节点执行模块,用于在所述执行状态库中搜索与所述工作流的任务序列对应的执行状态表,并根据搜索结果和所述执行状态表执行所述工作流的任务序列;
[0115]
其中,在执行所述工作流的任务序列的过程中,根据所述工作流的任务序列中各个节点的执行状态更新所述执行状态表,并将所述执行状态表同步更新到所述执行状态库中,所述执行状态表记录所述工作流的任务序列中各个节点的执行状态。
[0116]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
[0117]
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
技术特征:
1.一种人工智能工作流多轮执行方法,其特征在于,所述方法包括:s101,根据工作流属性结构,创建执行状态库,并对所述执行状态库进行初始化;s102,接收到工作流执行指令,对所述工作流执行指令进行解析,并根据解析结果和工作流属性结构,获取工作流的任务序列;s103,在所述执行状态库中搜索与所述工作流的任务序列对应的执行状态表,并根据搜索结果和所述执行状态表执行所述工作流的任务序列;其中,在执行所述工作流的任务序列的过程中,根据所述工作流的任务序列中各个节点的执行状态更新所述执行状态表,并将所述执行状态表同步更新到所述执行状态库中,所述执行状态表记录所述工作流的任务序列中各个节点的执行状态;所述工作流属性结构包括5个字段,分别为工作流标识、任务标识、执行状态、执行函数和用户设置参数;所述执行状态包括4个字段,分别为执行中、待执行、执行成功和执行异常。2.如权利要求1所述的方法,其特征在于,所述s101,根据工作流属性结构,创建执行状态库,并对所述执行状态库进行初始化的步骤为:根据所述工作流标识、所述任务标识、所述执行状态、所述执行函数和所述用户设置参数,创建执行状态表,将所述执行状态表保存至所述执行状态库中;将所述工作流标识、所述任务标识、所述执行状态、所述执行函数和所述用户设置参数的初始值均设置为空。3.如权利要求1所述的方法,其特征在于,所述s102,接收到工作流执行指令,对所述工作流执行指令进行解析,并根据解析结果和工作流属性结构,获取工作流的任务序列的步骤包括:接收所述工作流执行指令,对所述工作流执行指令进行解析,获得所述解析结果,所述解析结果包括所述工作流标识、所述任务标识、所述执行函数和所述用户设置参数;根据所述解析结果和所述工作流属性结构,生成所述工作流的任务序列;其中,所述工作流的任务序列由两个以上的任务节点构成,每个任务节点对应一个所述任务标识、所述执行函数和所述用户设置参数,每个任务节点的执行状态根据所述任务节点的任务执行情况进行动态标记。4.如权利要求1所述的方法,其特征在于,所述s103,在所述执行状态库中搜索与所述工作流的任务序列对应的执行状态表,并根据搜索结果和所述执行状态表执行所述工作流的任务序列的步骤包括:如果所述执行状态库中不存在与所述工作流的任务序列对应的执行状态表,则根据所述工作流属性结构,获取所述工作流的工作流标识,以及所述工作流的任务序列中所有任务节点的任务标识和用户设置参数;根据所述工作流标识,以及所述工作流的任务序列中所有任务节点的任务标识,创建新的执行状态表,并将所述工作流的任务序列中首个任务节点的所述执行状态标记为执行中,将所述工作流的任务序列中其它全部任务节点的所述执行状态标记为待执行;根据所述新的执行状态表和所述用户设置参数执行所述工作流的任务序列。5.如权利要求4所述的方法,其特征在于,所述根据所述新的执行状态表和所述用户设
置参数执行所述工作流的任务序列的步骤为:s5-1,根据所述工作流的任务序列中执行状态为执行中的任务节点的任务标识,确定所述任务节点的物理执行端,从所述物理执行端中加载所述任务节点的执行函数,并根据所述任务节点的执行函数和用户设置参数执行所述任务节点的任务,执行结束后,将所述任务节点的执行状态标记为执行成功,输出第一执行结果,并将第一执行结果和所述任务节点的执行状态保存至所述新的执行状态表中;s5-2,根据所述新的执行状态表和所述工作流的任务序列,确定所述任务节点对应的执行状态为待执行的下一个节点,以及所述下一个节点的任务标识,根据所述下一个节点的任务标识确定,确定所述下一个节点的物理执行端,并加载所述任务节点的执行函数,根据所述下一个节点的执行函数、用户设置参数和所述第一执行结果执行所述下一个节点的任务,并根据执行情况,对所述下一个节点的执行状态进行重新标记,输出第二执行结果,并将所述第二执行结果和所述下一个节点的执行状态保存至所述新的执行状态表中;s5-3,重复步骤s5-2,直到所述工作流的任务序列中所有的任务节点均执行完成,更新所述新的执行状态表,并将更新后的所述新的执行状态表同步更新至执行状态库中。6.如权利要求5所述的方法,其特征在于,所述步骤s5-2,根据所述新的执行状态表和所述工作流的任务序列,确定所述任务节点对应的执行状态为待执行的下一个节点,以及所述下一个节点的任务标识,根据所述下一个节点的任务标识确定,确定所述下一个节点的物理执行端,并加载所述任务节点的执行函数,根据所述下一个节点的执行函数、用户设置参数和所述第一执行结果执行所述下一个节点的任务,并根据执行情况,对所述任务节点的执行状态进行重新标记,输出第二执行结果,并将所述第二执行结果和所述下一个节点的执行状态保存至所述新的执行状态表中的步骤还包括:s6-1,若所述下一个节点的任务执行失败,则将所述任务节点的执行状态标记为执行异常,所述第二执行结果为空集;若所述下一个节点的任务执行成功,则将所述任务节点的执行状态标记为执行成功,所述第二执行结果为实际执行结果;s6-2,输出第二执行结果,并将所述第二执行结果和所述下一个节点的执行状态保存至所述新的执行状态表中。7.如权利要求1所述的方法,其特征在于,所述s103,在所述执行状态库中搜索与所述工作流的任务序列对应的执行状态表,并根据搜索结果和所述执行状态表执行所述工作流的任务序列的步骤还包括:如果所述执行状态库中存在与所述工作流的任务序列对应的执行状态表,则s7-1,根据所述工作流属性结构和所述工作流的任务序列对应的执行状态表,获取所述工作流的工作流标识,并确定所述工作流的任务序列中所有执行状态为执行异常的任务节点的任务标识、用户设置参数和执行函数;s7-2,根据所述执行状态为执行异常的任务节点的任务标识和所述工作流的任务序列对应的执行状态表,确定执行状态为执行异常的任务节点对应的执行状态为执行成功的上一个节点,并获取所述上一个节点的任务标识和执行结果;s7-3,根据所述执行状态为执行异常的任务节点的执行函数、用户设置参数和所述上一个节点的执行结果执行所述执行状态为执行异常的任务节点的任务;s7-4,根据所述执行状态为执行异常的任务节点的任务的执行情况,对所述执行状态
为执行异常的任务节点的执行状态进行重新标记,输出第三执行结果,并更新所述执行状态为执行异常的任务节点在所述执行状态表中的执行结果和执行状态;s7-5,重复步骤s7-2、步骤s7-3和步骤s7-4,直到所述工作流的任务序列中所有执行状态为执行异常的任务节点的任务都执行完成。8.如权利要求7所述的方法,其特征在于,所述s7-4,根据所述执行状态为执行异常的任务节点的任务的执行情况,对所述执行状态为执行异常的任务节点的执行状态进行重新标记,输出第三执行结果,并更新所述执行状态为执行异常的任务节点在所述执行状态表中的执行结果和执行状态的步骤为:s8-1,若所述执行状态为执行异常的任务节点的任务执行成功,则将所述执行状态为执行异常的任务节点的执行状态标记为执行成功,并将所述第三执行结果与所述执行状态表中记录的所述执行状态为执行异常的任务节点的执行结果进行对比,得到对比结果;如果所述对比结果大于预设对比数值,使用所述第三执行结果覆盖所述执行状态表中记录的所述执行状态为执行异常的任务节点的执行结果,并将所述执行状态表中记录的所述执行状态为执行异常的任务节点的执行状态更新为执行成功;如果所述对比结果小于或等于预设对比数值,保留所述执行状态表中记录的所述执行状态为执行异常的任务节点的执行结果,并将所述执行状态表中记录的所述执行状态为执行异常的任务节点的执行状态更新为执行成功。s8-2,若所述执行状态为执行异常的任务节点的任务执行成功,则执行所述执行状态为执行异常的下一个任务节点的任务;其中,所述预设对比数值根据模型训练的要求进行预先设置。9.一种实施权利要求1所述人工智能工作流多轮执行方法的系统,其特征在于,所述系统包括执行状态库创建模块、任务序列生成模块和任务节点执行模块;所述执行状态库创建模块,用于根据工作流属性结构,创建执行状态库,并对所述执行状态库进行初始化;所述任务序列生成模块,用于接收到工作流执行指令,对所述工作流执行指令进行解析,并根据解析结果和工作流属性结构,获取工作流的任务序列;所述任务节点执行模块,用于在所述执行状态库中搜索与所述工作流的任务序列对应的执行状态表,并根据搜索结果和所述执行状态表执行所述工作流的任务序列;其中,在执行所述工作流的任务序列的过程中,根据所述工作流的任务序列中各个节点的执行状态更新所述执行状态表,并将所述执行状态表同步更新到所述执行状态库中,所述执行状态表记录所述工作流的任务序列中各个节点的执行状态。
技术总结
本发明公开了一种人工智能工作流多轮执行方法和系统,该方法包括:根据工作流属性结构,创建执行状态库,并对所述执行状态库进行初始化;接收到工作流执行指令,对所述工作流执行指令进行解析,并根据解析结果和工作流属性结构,获取工作流的任务序列;在所述执行状态库中搜索与所述工作流的任务序列对应的执行状态表,并根据搜索结果和所述执行状态表执行所述工作流的任务序列,其中,所述执行状态表记录所述工作流的任务序列中各个节点的执行状态,在执行所述工作流的任务序列的过程中,根据所述工作流的任务序列中各个节点的执行状态更新所述执行状态表,从而减轻了工作流任务执行的计算压力。任务执行的计算压力。任务执行的计算压力。
技术研发人员:丁若冰 陶杨 刘睿民
受保护的技术使用者:北京柏睿数据技术股份有限公司
技术研发日:2023.06.25
技术公布日:2023/10/8
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
