首页 / 专利库 / 企业组织 / 流程图 / 数据处理方法、装置及系统

数据处理方法、装置及系统

阅读:353发布:2020-05-12

专利汇可以提供数据处理方法、装置及系统专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种 数据处理 方法、装置和系统,该方法包括:显示用于创建数据处理 流程图 的界面,其中,界面包括画布区域,画布区域用于基于 节点 来构建数据处理流程图;响应于当前用户选择节点的操作,将选择的节点展示在画布区域;将画布区域中的节点进行连接,以构建数据处理流程图;根据数据处理流程图中各个节点的配置信息,运行与各个节点相应的代码。,下面是数据处理方法、装置及系统专利的具体信息内容。

1.一种数据处理方法,包括:
显示用于创建数据处理流程图的界面,其中,所述界面包括画布区域,画布区域用于基于节点来构建数据处理流程图;
响应于当前用户选择节点的操作,将选择的节点展示在画布区域;
将画布区域中的节点进行连接,以构建数据处理流程图;
根据所述数据处理流程图中各个节点的配置信息,运行与各个节点相应的代码。
2.根据权利要求1所述的方法,其中,所述数据处理流程图为有向无环图。
3.根据权利要求2所述的方法,其中,所述节点包括用于执行数据处理的算子。
4.根据权利要求3所述的方法,其中,所述界面还包括算子配置区域,用于展示算子的配置卡片,以基于所述当前用户对配置卡片的配置操作来得到算子的配置信息。
5.根据权利要求4所述的方法,其中,所述界面还包括算子列表区域,用于展示能够构建有向无环图的算子的图标。
6.根据权利要求4所述的方法,还包括:
响应于所述当前用户针对所述画布区域中的多个算子的组合操作,将所述当前用户所选择的多个算子进行组合,得到算子组合。
7.根据权利要求6所述的方法,还包括:
响应于查看所述算子组合的操作,在所述画布区域提供所述算子组合的展示窗口;其中,所述算子组合的展示窗口中展示所述算子组合所包含的算子;
响应于查看所述算子组合的展示窗口中任一算子的操作,在所述算子配置区域展示所述任一算子的配置卡片。
8.一种数据处理装置,包括:
界面显示模,用于显示用于创建数据处理流程图的界面,其中,所述界面包括画布区域,画布区域用于基于节点来构建数据处理流程图;
节点展示模块,用于响应于当前用户选择节点的操作,将选择的节点展示在画布区域;
节点连接模块,用于将画布区域中的节点进行连接,以构建数据处理流程图;
节点运行模块,用于根据所述数据处理流程图中各个节点的配置信息,运行与各个节点相应的代码。
9.一种包括至少一个计算装置和至少一个存储装置的系统,其中,所述至少一个存储装置用于存储指令,所述指令用于控制所述至少一个计算装置执行根据权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如权利要求1至7中任一项所述的方法。

说明书全文

数据处理方法、装置及系统

技术领域

[0001] 本发明涉及数据处理技术领域,更具体地,涉及一种数据处理方法、一种数据处理装置、一种包括至少一个计算装置和至少一个存储装置的系统、及一种计算机可读存储介质。

背景技术

[0002] 随着大数据的发展,已经开发出各种工具类软件来帮助用户完成较为复杂的数据处理流程,例如,数据分析、机器学习建模等。
[0003] 然而,在这样的工具软件中,具有较高的使用槛,导致用户无法高效地完成相关工作。

发明内容

[0004] 通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
[0005] 根据本发明的第一方面,提供了一种数据处理方法,包括:
[0006] 显示用于创建数据处理流程图的界面,其中,所述界面包括画布区域,画布区域用于基于节点来构建数据处理流程图;
[0007] 响应于当前用户选择节点的操作,将选择的节点展示在画布区域;
[0008] 将画布区域中的节点进行连接,以构建数据处理流程图;
[0009] 根据所述数据处理流程图中各个节点的配置信息,运行与各个节点相应的代码。
[0010] 可选的,所述数据处理流程图为有向无环图。
[0011] 可选的,所述节点包括用于执行数据处理的算子。
[0012] 可选的,所述界面还包括算子配置区域,用于展示算子的配置卡片,以基于所述当前用户对配置卡片的配置操作来得到算子的配置信息。
[0013] 可选的,所述界面还包括算子列表区域,用于展示能够构建有向无环图的算子的图标。
[0014] 可选的,还包括:
[0015] 响应于所述当前用户针对所述画布区域中的多个算子的组合操作,将所述当前用户所选择的多个算子进行组合,得到算子组合。
[0016] 可选的,还包括:
[0017] 响应于查看所述算子组合的操作,在所述画布区域提供所述算子组合的展示窗口;其中,所述算子组合的展示窗口中展示所述算子组合所包含的算子;
[0018] 响应于查看所述算子组合的展示窗口中任一算子的操作,在所述算子配置区域展示所述任一算子的配置卡片。
[0019] 可选的,还包括:
[0020] 获取各个算子被指定用户使用的历史记录,其中,所述指定用户至少包括所述当前用户;
[0021] 根据所述历史记录获取所述指定用户经常使用的算子,并将获取的经常使用的算子列在算子列表区域中的常用算子类别下;和/或,根据所述历史记录获取所述指定用户经常使用的算子组合,并将获取的经常使用的算子组合列在算子列表区域中的常用算子组合类别下。
[0022] 可选的,还包括:
[0023] 响应于在常用算子类别中添加算子的操作,获取所述当前用户选中的算子,并将所述选中的算子列在算子列表区域中的常用算子类别下;和/或,
[0024] 响应于在常用算子组合类别中添加算子组合的操作,获取所述当前用户选中的算子组合,并将所述选中的算子组合列在算子列表区域中的常用算子组合类别下。
[0025] 可选的,还包括:
[0026] 响应于调整排序的操作,调整所述算子列表区域中的算子和/或算子组合的排列顺序。
[0027] 可选的,还包括:
[0028] 响应于创建自定义算子的操作,提供算子代码编辑界面,以供所述当前用户输入算子代码;
[0029] 获取所述当前用户针对自定义算子的可视化效果进行的算子视觉设置;
[0030] 根据获取的算子视觉设置和所述算子代码,得到自定义算子;
[0031] 在所述算子列表区域中展示所述自定义算子的图标。
[0032] 可选的,所述算子视觉设置涉及自定义算子的图标和/或配置卡片。
[0033] 可选的,所述算子视觉设置包括基本设置,所述获取所述当前用户针对自定义算子的可视化效果进行的算子视觉设置包括:
[0034] 向当前用户提供用于进行算子视觉设置中的基本设置的设置控件,并接收当前用户利用所述设置控件进行的基本设置,其中,所述基本设置涉及所述自定义算子的图标在算子列表区域中归属的算子分类、所述图标在画布区域中展示的输出端数量、所述图标的输出端是否可扩展、可扩展的最大数量、默认输出类型、是否涉及结构(schema)推断之中的至少一项;和/或
[0035] 所述算子视觉设置包括参数设置,所述获取所述当前用户针对自定义算子的可视化效果进行的算子视觉设置包括:
[0036] 向当前用户提供用于进行算子视觉设置中的参数设置的设置控件,并接收当前用户利用所述设置控件进行的参数设置,其中,所述参数设置涉及自定义算子的算子代码中的可配置参数在配置卡片中的展示名称、说明文档和默认值之中的至少一项;和/或[0037] 所述算子视觉设置包括布局设置,所述获取所述当前用户针对自定义算子的可视化效果进行的算子视觉设置包括:
[0038] 获取可配置参数的配置控件,基于参数设置及配置控件生成配置卡片的预览图,并接收当前用户对所述预览图进行的布局调整,以将调整后的配置卡片布局作为算子视觉设置中的所述布局设置。
[0039] 可选的,所述算子视觉设置包括布局设置,所述获取可配置参数的配置控件包括:
[0040] 解析算子代码以获取可配置参数的特性,基于预先设置的可配置参数的特性与配置控件之间的匹配关系,获取匹配的配置控件,其中,可配置参数的特性包括所述可配置参数的类型、是否有取值范围、取值范围是否可枚举之中的至少一项。
[0041] 可选的,还包括:
[0042] 提供至少一个程序代码
[0043] 其中,所述算子代码中包含对所述程序代码块的调用信息;所述根据获取的算子视觉设置和所述算子代码,得到自定义算子包括:
[0044] 根据所述获取的算子视觉设置、所述算子代码和所述调用信息所涉及的程序代码块,得到所述自定义算子。
[0045] 可选的,所述程序代码块的形式可以是如下中的任一种:jar包;docker镜像;脚本文件。
[0046] 可选的,还包括:
[0047] 提供程序代码块接口
[0048] 通过所述程序代码块接口获取用户自定义编辑的程序代码块,和/或,通过所述程序代码块接口接收用户上传第三方的程序代码块。
[0049] 可选的,还包括:
[0050] 获取用于调试的模拟数据;
[0051] 根据所述模拟数据对所述算子代码进行调试,在调试通过的情况下,根据所述获取的算子视觉设置、所述算子代码和所述调用信息所涉及的程序代码块,得到所述自定义算子。
[0052] 可选的,所述获取用于调试的模拟数据包括:
[0053] 获取用户输入的所述模拟数据格式信息;
[0054] 根据所述格式信息获取所述模拟数据。
[0055] 可选的,所述根据所述格式信息获取所述模拟数据包括:
[0056] 获取用户输入的所述目标算子的应用场景;
[0057] 根据所述应用场景获取符合所述格式信息的数据,作为所述模拟数据。
[0058] 可选的,所述根据所述应用场景获取符合所述格式信息的数据,作为所述模拟数据包括:
[0059] 获取与所述应用场景匹配的历史数据;
[0060] 根据所述历史数据确定数据限定条件;
[0061] 根据所述数据限定条件生成符合所述格式信息的所述模拟数据。
[0062] 可选的,所述根据所述应用场景获取符合所述格式信息的数据,作为所述模拟数据包括:
[0063] 从预存的数据中选取适用于所述应用场景、且符合所述格式信息的数据,作为所述模拟数据。
[0064] 可选的,所述算子列表区域包括用于创建自定义算子的入口;
[0065] 所述响应于创建自定义算子的操作,提供算子代码编辑界面,以供所述当前用户输入算子代码包括:
[0066] 响应于所述当前用户选择用于创建自定义算子的入口的操作,提供所述算子代码编辑界面,以供所述当前用户输入算子代码。
[0067] 可选的,所述在所述算子列表区域中展示所述自定义算子的图标包括:
[0068] 在基本设置所涉及的所述算子列表区域的算子分类下展示所述自定义算子的图标。
[0069] 可选的,还包括:
[0070] 响应于所述当前用户编辑算子列表区域的操作,展示用于编辑算子列表区域的界面;
[0071] 响应于所述当前用户在所述用于编辑算子列表区域的界面上执行的操作,对所述算子列表区域中所展示算子进行筛选和/或分类。
[0072] 可选的,所述将画布区域中的节点进行连接包括:
[0073] 响应于所述当前用户对画布区域中展示的两个节点之间的连线操作,将所述两个节点进行连接。
[0074] 可选的,所述将画布区域中的节点进行连接包括:
[0075] 针对最新选择并在画布区域中展示的目标算子,确定与所述目标算子对应的关联算子,并自动连接所述目标算子与对应的关联算子。
[0076] 可选的,所述确定与所述目标算子对应的关联算子包括:
[0077] 随着所述当前用户在画布区域中拖动目标算子的操作,确定与所述目标算子的类型匹配的最靠近算子,作为所述关联算子。
[0078] 可选的,所述确定与所述目标算子的类型匹配的最靠近算子,包括:
[0079] 在预设距离范围内确定与所述目标算子的类型匹配的最靠近算子。
[0080] 可选的,还包括:
[0081] 随着所述当前用户在画布区域中拖动所述目标算子的操作,自动将所述目标算子插入与所述目标算子的类型匹配的已经连接的两个算子之间。
[0082] 可选的,还包括:
[0083] 获取最新选择并在画布区域中展示的目标算子的历史连接记录;
[0084] 根据所述历史连接记录,确定所述目标算子的下级算子、及所述目标算子与每个所述下级算子之间的连接概率;
[0085] 根据所述连接概率展示所述下级算子,以供所述当前用户选择。
[0086] 可选的,所述根据所述连接概率展示所述下级算子包括:
[0087] 根据所述连接概率对所述下级算子进行降序排序,并根据排序顺序展示所有下级算子;或者,
[0088] 根据所述连接概率对所有所述下级算子进行降序排序,并获取每个下级算子的排序值;选取排序值在预设的排序范围内的下级算子进行展示。
[0089] 可选的,还包括:
[0090] 展示所述下级算子的连接概率。
[0091] 可选的,还包括:
[0092] 响应于对展示在所述画布区域中的任一算子的脚本编辑操作,展示所述任一算子的脚本编辑界面,以供所述当前用户对所述任一算子的脚本进行编辑。
[0093] 可选的,所述对所述任一算子的脚本编辑操作包括双击所述任一算子的操作和点击所述算子配置区域中脚本编辑按钮的操作中的任一项;
[0094] 所述方法还包括:
[0095] 响应于双击所述任一算子的操作,突出展示所述脚本编辑按钮。
[0096] 可选的,还包括:
[0097] 在运行与各个节点相应的代码的过程中,展示所述画布区域中的每个节点的运行进度。
[0098] 可选的,还包括:
[0099] 在运行与各个节点相应的代码的过程中,响应于选中所述画布区域中任一节点的操作,将其对应配置卡片的内容自动切换为所述任一节点的运行状态信息和/或运行日志。
[0100] 可选的,还包括:
[0101] 在与各个节点相应的代码运行结束后,提供用于展示每个节点的数据处理过程的过程视图;并响应于查看所述过程视图中任一节点的处理过程的操作,提供所述任一节点本次运行的输出结果和历史输出结果;
[0102] 和/或,
[0103] 在与各个节点相应的代码运行结束后,提供用于展示每个节点的处理结果的结果视图;响应于查看所述结果视图中任一节点的处理结果的操作,提供所述任一节点本次运行的输出结果和历史输出结果。
[0104] 可选的,算子配置区域还用于显示对应节点的处理结果在不同运行时间的不同版本,
[0105] 所述方法还包括:
[0106] 响应于针对任意版本执行追溯操作,展示该版本的数据处理流程图、对应节点的配置信息和该版本的处理结果与其他对象之间的关联关系之中的至少一项;
[0107] 其中,所述其他对象包括以下任意一项或多项:数据、模型、工程,所述关联关系为一级或多级关联关系。
[0108] 可选的,还包括:
[0109] 在运行与各个节点相应的代码的过程中,响应于所述当前用户选择新的节点的操作,将所述新的节点展示在画布区域,并与所述数据处理流程图连接;
[0110] 在所述新的节点的上级节点运行结束、且所述新的节点配置完成的情况下,自动运行所述新的节点。
[0111] 可选的,还包括:
[0112] 响应于所述当前用户编辑所述数据处理流程图的操作,对其他用户定所述数据处理流程图,以限制所述其他用户对所述数据处理流程图进行编辑;和/或,[0113] 响应于所述当前用户退出编辑所述数据处理流程图的操作,对所述其他用户恢复开放所述数据处理流程图,以使所述其他用户对所述数据处理流程图进行编辑;并对所述当前用户锁定所述数据处理流程图,以限制所述当前用户对所述数据处理流程图进行编辑。
[0114] 可选的,还包括:
[0115] 响应于对比多个版本的数据处理流程图的操作,在所述画布区域中提供对应每个版本的数据处理流程图的展示窗口,在每个窗口中展示对应版本的数据处理流程图。
[0116] 可选的,还包括:
[0117] 响应于调整任一展示窗口的操作,调整所述任一展示窗口的尺寸。
[0118] 可选的,所述根据数据处理流程图中各个节点的配置信息,运行与各个节点相应的代码包括:
[0119] 根据数据处理流程图中各个节点的配置信息,分析各个节点的连接关系,针对并行连接的节点,以分布式集群来运行与所述节点相应的代码,针对串行连接的节点,以单机方式来运行与所述节点相应的代码。
[0120] 根据本发明的第二方面,提供了一种数据处理装置,包括:
[0121] 界面显示模块,用于显示用于创建数据处理流程图的界面,其中,所述界面包括画布区域,画布区域用于基于节点来构建数据处理流程图;
[0122] 节点展示模块,用于响应于当前用户选择节点的操作,将选择的节点展示在画布区域;
[0123] 节点连接模块,用于将画布区域中的节点进行连接,以构建数据处理流程图;
[0124] 节点运行模块,用于根据所述数据处理流程图中各个节点的配置信息,运行与各个节点相应的代码。
[0125] 根据本发明的第三方面,提供了一种包括至少一个计算装置和至少一个存储装置的系统,其中,所述至少一个存储装置用于存储指令,所述指令用于控制所述至少一个计算装置执行根据本发明的第一方面所述的方法。
[0126] 根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现根据本发明的第一方面所述的方法。
[0127] 在本发明的实施例中,通过连接用户选择的节点构建数据处理流程图,再根据数据处理流程图中各个节点的配置信息,运行与各个节点相应的代码,从而使得大数据处理过程的构建和编辑更为容易上手,降低了机器学习技术的门槛,进而可以提升用户体验。
[0128] 通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

[0129] 被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
[0130] 图1是显示可用于实现本发明的实施例的电子设备的硬件配置的例子的框图
[0131] 图2示出了本发明的第一个实施例的数据处理方法的流程图;
[0132] 图3~图28示出了本发明的界面效果示意图;
[0133] 图29示出了本发明第二个实施例的数据处理方法的流程图;
[0134] 图30示出了本发明的第一个实施例的数据处理装置的框图;
[0135] 图31示出了本发明的第二个实施例的数据处理装置的框图;
[0136] 图32示出了本发明的实施例的系统的框图。

具体实施方式

[0137] 现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
[0138] 以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
[0139] 对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
[0140] 在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
[0141] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0142] 下面,参照附图描述根据本发明实施例的各个实施例和例子。
[0143] <硬件配置>
[0144] 图1是示出可以实现本发明的实施例的电子设备1000的硬件配置的框图。
[0145] 电子设备1000可以是便携式电脑、台式计算机、手机、平板电脑等。如图1所示,电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克1800等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘非易失性存储器等。接口装置1300例如包括USB接口、机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括Wifi通信、蓝牙通信、2G/3G/4G/5G通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏键盘、体感输入等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
[0146] 图1所示的电子设备仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本发明的实施例中,电子设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本发明实施例提供的任意一项数据处理方法。本领域技术人员应当理解,尽管在图1中对电子设备1000示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,电子设备1000只涉及处理器1100和存储装置1200。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
[0147] <方法实施例>
[0148] 在本实施例中,提供一种数据处理方法。该数据处理方法可以是由电子设备实施。在一个例子中,该电子设备可以是如图1所示的电子设备1000。
[0149] 如图2所示,该数据处理方法包括:
[0150] 步骤S2100,显示用于创建数据处理流程图的界面,其中,该界面包括画布区域,画布区域用于基于节点来构建数据处理流程图。
[0151] 步骤S2200,响应于当前用户选择节点的操作,将选择的节点展示在画布区域。
[0152] 在本发明的一个实施例中,该界面中还可以包括节点列表区域,用于展示能够用于构建数据处理流程图的节点的图标和/或名称,以供当前用户选择。
[0153] 在本发明的一个实施例中,数据处理流程涉及机器学习的模型训练/应用过程中的至少一部分。相应地,该节点可以是用于执行数据处理的算子,也可以是用于被处理的数据、样本或模型等。
[0154] 本实施例中的算子可是用于进行数据处理的算子(例如可以是数据清洗算子、数据拆分算子、数据表统计算子等)、用于进行特征处理的算子(例如可以是数据抽取算子、特征重要性算子、自动特征组合算子等)、用于进行模型训练的算子(例如可以是二分类算法算子、多分类算法算子、聚类分析算子等)、用于进行模型预测的算子、用于进行模型评估的算子、TensorFlow算子等。
[0155] 数据拆分算子:数据拆分是指将一份数据集拆成两份数据的计算单元。可以是将其中的一份数据作为用于训练模型的数据,另一份则用于模型评估,即验证模型。
[0156] 通过数据拆分算子的配置卡片对数据拆分算子的配置信息进行配置。数据拆分有一个输入连接点,两个输出连接点,左输出点的输出结果记做“数据集1”,右输出点记为“数据集2”。拆分后的两份数据表可连接多个下游操作,还可对数据表进行多次连续拆分以得到更多份数据表。数据拆分算子的配置界面中提供的数据拆分方法包括按比例拆分、按规则拆分和先排序后拆分中的一种或多种。
[0157] 当选择按比例拆分时可进一步选择按比例顺序拆分、按比例随机拆分和按比例分层拆分。当选择随机拆分时进一步在配置卡片上提供设置随机种子参数的输入区域,随机种子参数取值范围为0-999999999之间的任意整数,系统将根据给出的随机种子生成随机数,设定随机种子的目的是在必要情况下重现随机拆分的结果。当选择分层拆分时进一步在配置界面上提供设置分层依据的字段的输入区域,分层拆分是指根据指定字段把数据集切分成若干“层”之后再进行拆分。可自定义是否开启分层拆分,选择分层拆分则需要指定一个分层依据字段。使用分层拆分的原因是有些数据集受某个字段控制分布不均匀,避免这种分布不均匀对建模效果产生不好的影响。假设,做一个总统选举的投票预测,数据集和该国家的人口分布高度相关,因此,可以按人口分层拆分比较符合实际问题。示例:如果按照某数据表中的性别字段来分层,假设该字段只有0和1两个值,如果此时拆分占比设置的是0.5,则会从值为0的样本中采样50%,然后在值为1的样本中采样50%,将这两部分采样内容作为数据集1,剩余作为数据集2。
[0158] 当选择按规则拆分时提供用于输入拆分规则的输入区域;拆分规则表达式可以使用SQL语法来编写,符合规则的数据被输出到数据集1,不符合规则以及返回值为NULL的被输出到数据集2。
[0159] 当选择先排序后拆分时进一步在配置界面上提供拆分比例选择项、用于设置排序字段的输入区域、以及排序方向选择项。先排序后拆分是指先对数据表中某个字段排序后按比例拆分,排序方式可选择升序或降序。一般当建模场景需要通过历史数据预测未来数据时,应该对样本按时间排序后再进行拆分,以避免“时间穿越”。
[0160] 数据清洗算子:使用数据清洗可以对每列的数据进行处理,通过对数据表中某一列定义配置函数,可以对该列数据进行清洗。数据清洗输入的是一份数据表,经配置函数处理后输出的仍然是一份数据表,在清洗之后被清洗的原始数据列将会被处理后输出的列替代。
[0161] 数据表统计算子:使用数据表统计算子可对数据表内的字段信息开展数据统计,统计的项目有NULL数量、平均值、方差、中位数、众数等。对数据表的数据分布及统计信息的查看,可方便后续的特征处理及建模工作。
[0162] 特征抽取算子:特征抽取算子的配置界面中提供添加输入源的接口和脚本编辑入口,还提供样本随机排序选项、特征精确统计选项、输出样本是否压缩的选项、输出明文选项、标签类型选项和输出结果存储类型选项中的至少一个。其中通过脚本编辑入口可以输入特征抽取的脚本,或者,可以自动展示数据源数据,并响应于生成配置的按钮被触发的操作,展示快速配置脚本框,用户只需要输入目标值即可快速生成脚本配置,进一步响应于触发异常验证按钮的操作,对编辑框内的脚本内容进行校验,进行错误提示。并非所有算法都需要在特征抽取后打乱特征顺序,并且shuffle本身有资源消耗,所以我们能够使用“样本随机排序”开关来控制每次特征抽取后是否要进行随机打乱,该开关是默认开启的,如不需要可选择关闭它。在特征抽取过程中,系统将自动对特征维度进行统计,进而展示产出样本数据中特征的概貌。但是由于特征维度统计需要对全体特征进行去重计数,在大规模数据场景下存在较大的性能折损。因此这里平台将默认对特征维度作近似估计,并且保证统计结果的相对误差小于0.01。如果需要进行精确的严格统计,则打开特征精确统计开关即可实现。样本表示平台文件中占用空间资源较大的一种文件,因此建议对输出的文本文件进行压缩,以提升空间利用率。特征抽取过程中会对所处理特征进行编码变换,此时特征对应的原文信息将会丢失,为了方便后续模型的深度处理(如模型debug),这里通过“是否输出明文”开关可以控制是否在产出样本的同时产出相关的明文信息,打开的情况下将会把明文信息存储在一个系统路径中,因此将带来一定的存储开销。特征抽取支持三种场景的目标值标记:二分类、多分类、回归,分别对应binary_label、multiclass_label和regression_label三种标签方法,需要提前选择后进行脚本编辑。
[0163] 特征重要性分析算子:特征重要性分析算子的输入是带有目标值的样本表,输出为特征重要性评价报告,报告中包含各个特征的重要性系数,报告中还包含特征数、样本数和各个特征的基本统计信息中的一个或多个。特征重要性分析是指分析样本表中每个特征和目标值之间的重要性关系(与模型无关),该关系可通过重要性系数来表示,以此分析特征的异常现象,从而对模型特征进行调整优化。
[0164] 自动特征组合算子:自动特征组合算子的配置界面中提供特征选择项、评分指标选择项、学习率设置项和终止条件选择项中的至少一个,其中,特征选择项用于确定进行特征组合的各个特征,终止条件选择项中包括最多运行特征池个数和最多输出特征数。特征组合是一种加强特征描述的能,提升个性化预测效果的方法。自动特征组合算子可以对一份样本表做各种特征组合分析,主要用于生成基于组合方法产生的特征,并评估重要性。
[0165] 自动调参算子:自动调参算子用于根据调参算法从给定的参数范围中搜索出合适的参数,用搜索出的参数训练模型并进行模型评估;自动调参算子的配置界面中提供特征选择设置项、调参方法选项和调参次数设置项中的至少一个,其中,特征选择设置项中可以选择全部特征或自定义特征选择,调参方法选项中可选择随机搜索或网格搜索。
[0166] TensorFlow算子:TensorFlow算子用于运行用户写好的TensorFlow代码,TensorFlow算子的配置界面中提供输入源设置项和TensorFlow代码文件路径设置项。TensorFlow算子给用户提供了充分的灵活性,由此也要求用户对Tensorflow十分熟悉才能自己书写TensorFlow代码。如果想使用分布式的TensorFlow需要自己书写TensorFlow的分布式代码。
[0167] 步骤S2300,将画布区域中的节点进行连接,以构建数据处理流程图。
[0168] 该数据处理流程图可以用于表示各个节点执行数据处理的流程。
[0169] 在本发明的一个实施例中,节点可以是用于执行数据处理的算子,数据处理流程可以是机器学习建模流程。
[0170] 在本发明的一个实施例中,数据处理流程图为有向无环图。有向无环图简称DAG图,指的是一个无回路的有向图
[0171] 在本发明的一个实施例中,将画布区域中的节点进行连接可以包括:
[0172] 响应于当前用户对画布区域中展示的两个节点之间的连线操作,将两个节点进行连接。
[0173] 每个节点至少可以具有一个上游连接点和一个下游连接点,分别用于表示数据的输入和输出。当前用户可以是通过点击第一个节点的上游连接点和第二个节点的下游连接点,触发连接将第二个节点的下游连接点与第一个节点的下游连接点之间的连线操作,电子设备响应于该操作,将第一个节点和第二个节点进行连接。
[0174] 在本发明的一个实施例中,将画布区域中的节点进行连接还可以包括:
[0175] 针对最新选择并在画布区域中展示的目标算子,确定与目标算子对应的关联算子,并自动连接目标算子与对应的关联算子。
[0176] 具体的,可以是确定画布区域中的输出类型与目标算子的输入类型相同的算子、或者是输入类型与目标算子的输出类型相同的算子,作为与目标算子对应的关联算子。
[0177] 本实施例中的输入类型和输出类型可以为输入或输出的数据的类型。
[0178] 在如图9和图10所示的例子中,逻辑回归-二分类算子为用户最新选择的目标算子,与其对应的匹配算子可以是特征抽取算子。在当前用户在画布区域中拖动目标算子时,可以将目标算子与关联算子通过虚线连接,以使当前用户可以根据虚线将目标算子放至合适的位置上,并选择连接关系正确的关联算子。
[0179] 在当前用户在画布区域释放该目标算子后,目标算子与关联算子之间的虚线可以替换为实线。
[0180] 在本发明的一个实施例中,确定与目标算子对应的关联算子包括:
[0181] 随着当前用户在画布区域中拖动目标算子的操作,确定与目标算子的类型匹配的最靠近算子,作为关联算子。
[0182] 具体的,最靠近算子可以是在画布区域与目标算子之间的距离最近的算子。
[0183] 在如图9和图10所示的例子中,逻辑回归-二分类算子为用户最新选择的目标算子,与其类型匹配的算子为特征抽取算子。在逻辑回归-二分类算子位于如图9所示的位置上时,左侧的特征抽取算子与其距离最近,因此,左侧的特征抽取算子为最靠近算子,作为关联算子。在逻辑回归-二分类算子位于如图10所示的位置上时,右侧的特征抽取算子与其距离最近,因此,右侧的特征抽取算子为最靠近算子,作为关联算子。
[0184] 在本发明的一个实施例中,确定与目标算子的类型匹配的最靠近算子,包括:在预设距离范围内确定与目标算子的类型匹配的最靠近算子。
[0185] 其中,该预设距离范围可以是预先根据应用场景或具体需求设定好的。
[0186] 在本发明的一个实施例中,该方法还可以包括:
[0187] 随着当前用户在画布区域中拖动目标算子的操作,自动将目标算子插入与目标算子的类型匹配的已经连接的两个算子之间。
[0188] 例如,如图11所示,当前用户在画布区域中拖动目标算子——SQL算子,并将SQL算子放至已经连接的SQL算子和数据拆分算子之间,如果SQL算子的输入类型与输出类型相同,且与数据拆分算子的输入类型相同,那么,目标算子将插入SQL算子和数据拆分算子之间,即目标算子的上游连接点与SQL的下游连接点连接,目标算子的下游连接点与数据拆分算子的上游连接点连接,如图12所示。
[0189] 步骤S2400,根据数据处理流程图中各个节点的配置信息,运行与各个节点相应的代码。
[0190] 在本发明的一个实施例中,可以根据数据处理流程图中各个节点的配置信息,分析各个节点的连接关系,针对并行连接的节点,可以是以分布式集群来运行与所述节点相应的代码;针对串行连接的节点,可以是以单机方式来运行与所述节点相应的代码。
[0191] 在节点是用于执行数据处理的算子的实施例中,根据数据处理流程图中各个节点的配置信息,运行与各个节点相应的代码具体可以是:根据各个算子的配置信息,按照连接顺序,执行各个算子的代码。
[0192] 在本发明的一个实施例中,可以是在界面中提供用于运行数据处理流程图的图形控件,响应于触发该图形控件的操作,根据数据处理流程图中的各节点以及各节点之间的连线关系,执行数据处理流程图对应的数据处理流程。例如,可以在合适的位置显示一个“运行”控件,用于启动数据处理流程图的运行。
[0193] 在本发明的一个实施例中,该方法还可以包括:在界面上提供一个计时器,用于对执行数据处理流程图对应的数据处理流程的用时进行实时计时。例如,可以在画布区域显示一个计时器以供用户查看数据处理流程图的运行用时。
[0194] 在本发明的一个实施例中,如图3所示,界面中还包括节点的配置区域,用于展示画布区域中所选中的节点的配置卡片,以基于当前用户对配置卡片的配置操作来得到该节点的配置信息。
[0195] 例如,参见图3,画布区域中的“特征抽取”算子被选中,配置区域显示“特征抽取”算子的配置卡片,可以在该配置卡片对“特征抽取”算子进行配置。
[0196] 当节点未进行必要的配置时,或者所配置的参数不符合预定要求时,在画布区域中的相应节点处显示提示标识。例如,可以在画布区域中的未进行必要配置或配置错误的节点上显示感叹号以提示用户。
[0197] 在一个例子中,算子的配置信息可以包括对应算子所属的类型、输出结果存储类型、输入源等信息。
[0198] 本发明的实施例中,通过连接用户选择的节点构建数据处理流程图,再根据数据处理流程图中各个节点的配置信息,运行与各个节点相应的代码,从而使得大数据处理过程的构建和编辑更为容易上手,降低了机器学习技术的门槛,进而可以提升用户体验。
[0199] 在本发明的一个实施例中,该界面还可以包括算子列表区域,该算子列表区域用于展示能够构建有向无环图的算子的图标和/或名称。例如,可展示算子的分类以及各个类型对应的图标。
[0200] 在本发明的一个实施例中,该方法还可以包括:响应于当前用户针对画布区域中的多个算子的组合操作,将当前用户所选择的多个算子进行组合,得到算子组合。
[0201] 如图4所示,可以是同时选中画布区域中的多个算子,右击鼠标触发展示相应的操作列表,该操作列表中包括编组选项,点击该编组选项,可以跳转至如图5所示的界面,为被选择的多个算子对应的算子组合创建名称,点击完成按钮,将被选择的多个算子的进行组合,得到算子组合。例如,算子组合的名称为数据拆分+特征抽取+算法,那么该算子组合在有向无环图中的效果可以是如图6所示。
[0202] 进一步地,该方法还可以包括:
[0203] 响应于查看算子组合的操作,在画布区域提供算子组合的展示窗口;其中,算子组合的展示窗口中展示算子组合所包含的算子;响应于查看算子组合的展示窗口中任一算子的操作,在算子配置区域展示任一算子的配置卡片。
[0204] 例如,可以是双击如图6所示算子组合,打开算子组合,查看其内部结构,具体可以是如图7所示。
[0205] 本发明的实施例中通过当前用户所选择的多个算子进行组合,得到算子组合,可以使得DAG图的结构更加简洁,减少每次选择或移动算子的操作次数。
[0206] 在本发明的一个实施例中,该方法还可以包括:
[0207] 获取各个算子被指定用户使用的历史记录;根据历史记录获取指定用户经常使用的算子,并将获取的经常使用的算子列在算子列表区域中的常用算子类别下;和/或,根据历史记录获取指定用户经常使用的算子组合,并将获取的经常使用的算子组合列在算子列表区域中的常用算子组合类别下。
[0208] 其中,指定用户至少包括当前用户。具体的,指定用户可以是包括当前用户在内的所有用户,可以是当前用户所属分组内的所有用户,还可以是仅为当前用户。
[0209] 经常使用的算子可以是指定用户的使用次数高于预设的第一次数阈值的算子,和/或,在设定周期内使用频率高于预设的第一频率阈值的算子。经常使用的算子组合可以是指定用户的使用次数高于第二次数阈值的算子组合,和/或,在设定周期内使用频率高于预设的第二频率的算子组合。
[0210] 例如,指定用户经常使用的算子可以包括数据拆分算子、特征抽取算子、模型预测算子、模型评估算子,如图8所示,可以是将这些经常使用的算子列在算子列表区域中的常用算子这一类别下。
[0211] 再例如,指定用户经常使用的算子组合可以包括模型预测+评估算子组合、数据拆分+特征提取算子组合,如图8所示,可以是将这两个经常使用的算子组合列在算子列表区域中的常用算子组合这一类别下。
[0212] 在本发明的一个实施例中,该方法还可以包括:
[0213] 响应于在常用算子类别中添加算子的操作,获取当前用户选中的算子,并将选中的算子列在算子列表区域中的常用算子类别下。
[0214] 在一个例子中,可以是在算子列表区域中提供添加常用算子的按钮,当前用户点击该按钮,触发在常用算子类别中添加算子的操作。执行本实施例的电子设备可以是响应于该操作,提供算子选择窗口,其中包括可以添加至常用算子类别中的算子,当前用户可以通过点击来选中对应的算子,该电子设备可以将当前用户所选中的算子列在常用算子类别下。
[0215] 在另一个例子中,可以是在当前用户右击算子列表中的任一算子(其中,该算子未列在常用算子类别下)时,该电子设备将提供将在常用算子类别下添加算子的按钮,当前用户通过点击该按钮,触发在常用算子类别中添加算子的操作,该电子设备将该算子列在常用算子类别下。
[0216] 在本发明的一个实施例中,该方法还可以包括:
[0217] 响应于在常用算子组合类别中添加算子组合的操作,获取当前用户选中的算子组合,并将选中的算子组合列在算子列表区域中的常用算子组合类别下。
[0218] 在一个例子中,可以是在算子列表区域中提供添加常用算子组合的按钮,当前用户点击该按钮,触发在常用算子组合类别中添加算子组合的操作。执行本实施例的电子设备可以是响应于该操作,提供算子组合选择窗口,其中包括可以添加至常用算子组合类别中的算子组合,当前用户可以通过点击来选中对应的算子组合,该电子设备可以将当前用户所选中的算子组合列在常用算子组合类别下。
[0219] 在另一个例子中,可以是在当前用户右击算子列表中的任一算子组合(其中,该算子组合未列在常用算子类别下)时,该电子设备将提供将在常用算子组合类别下添加算子组合的按钮,当前用户通过点击该按钮,触发在常用算子组合类别中添加算子组合的操作,该电子设备将该算子组合列在常用算子组合类别下。
[0220] 在本发明的一个实施例中,该方法还可以包括:
[0221] 响应于调整排序的操作,调整算子列表区域中的算子和/或算子组合的排列顺序。
[0222] 在一个例子中,可以是在算子列表区域中提供排序按钮,当前用户可以是点击该按钮,触发电子设备将算子列表区域设置为可调整模式,在可调整模式下,用户可以是通过拖动任一算子或者是算子组合来触发调整排序的操作,电子设备响应于该操作,将用户所拖动的算子或者算子组合移动至相应的位置上,实现该算子或者算子组合的排序顺序的调整。
[0223] 在本发明的一个实施例中,该方法还可以包括:
[0224] 响应于当前用户编辑算子列表区域的操作,展示用于编辑算子列表区域的界面;响应于当前用户在用于编辑算子列表区域的界面上执行的操作,对算子列表区域中所展示算子进行筛选和/或分类。
[0225] 在本发明的一个实施例中,该方法还可以包括:
[0226] 获取最新选择并在画布区域中展示的目标算子的历史连接记录;根据历史连接记录,确定目标算子的下级算子、及目标算子与每个下级算子之间的连接概率;根据连接概率展示下级算子,以供当前用户选择。
[0227] 具体的,下级算子可以是上游连接点与目标算子的下游连接点连接的算子。
[0228] 该历史连接记录可以是指定用户的历史连接记录。其中,指定用户可以是包括当前用户在内的所有用户,可以是当前用户所属分组的所有所用,也可以仅是当前用户。
[0229] 对于每一下级算子,连接概率可以是该下级算子与目标算子之间的连接次数、与所有下级算子与目标算子之间的连接次数的比值。
[0230] 在本发明的一个实施例中,可以是响应于当前用户点击目标算子的下游连接点的操作,展示下级算子的推荐菜单。
[0231] 在本发明的一个实施例中,根据连接概率展示下级算子,可以是展示连接概率超过预设的概率阈值的下级算子;也可以是展示全部下级算子。其中,该概率阈值可以是预先根据应用场景或具体需求设定。
[0232] 进一步地,该方法还可以包括:展示下级算子的连接概率。
[0233] 在本发明的一个实施例中,根据连接概率展示下级算子包括:
[0234] 根据连接概率对下级算子进行降序排序,并根据排序顺序展示所有下级算子;或者,
[0235] 根据连接概率对所有下级算子进行降序排序,并获取每个下级算子的排序值;选取排序值在预设的排序范围内的下级算子进行展示。
[0236] 进一步地,该方法还可以包括展示下级算子的连接概率。
[0237] 再进一步地,可以是按照对连接概率降序排序的顺序展示下级算子。
[0238] 例如,在如图13所示的例子中,当前用户最新选择并拖放至画布区域中进行展示的目标算子为数据拆分算子,可以是在当前用户点击目标算子的下游连接点的情况下,通过指定用户的历史连接记录,确定其下级算子包括特征抽取算子、数据表统计算子、SQL算子、FeQL算子、Kmeans算子,对于全部用户来说,这些算子的连接概率分别为46%、38%、10%、5%、1%;对于当前用户来说,这些算子的连接概率分别为40%、45%、15%、0%、0%。
进一步地,可以是按照指定用户的连接概率由大到小的顺序展示这些算子。
[0239] 在本发明的一个实施例中,该方法还可以包括:
[0240] 响应于对展示在画布区域中的任一算子的脚本编辑操作,展示该算子的脚本编辑界面,以供当前用户对该算子的脚本进行编辑。
[0241] 具体的,可以是在当前用户点击画布区域中的任一算子时,在算子配置区域展示该算子的配置卡片,该配置卡片中提供有脚本编辑的按钮,例如可以是如图14所示,当前用户通过点击该按钮触发对该算子的脚本编辑操作,电子设备响应于该操作,展示该算子的脚本编辑界面,例如可以是如图15所示。在该脚本编辑界面中,当前用户可以对该算子的脚本进行编辑。
[0242] 在本发明的一个实施例中,对任一算子的脚本编辑操作包括双击任一算子的操作和点击算子配置区域中脚本编辑按钮的操作中的任一项;那么,该方法还可以包括:
[0243] 响应于双击该算子的操作,突出展示脚本编辑按钮。例如,脚本编辑按钮可在算子被双击的同时,呈现闪烁的联动效果,以提示用户接下来的操作。
[0244] 这样,可以暗示当前用户所触发的是哪个操作,减少当前用户移动鼠标的路径,使得当前用户的操作更加连贯,提高工作效率。
[0245] 在本发明的一个实施例中,该方法还可以包括:
[0246] 在运行与各个节点相应的代码的过程中,展示画布区域中的每个节点的运行进度。
[0247] 具体的,该运行进度可以是在画布区域对应算子的图标中展示。
[0248] 在本发明的一个实施例中,该方法还可以包括:
[0249] 在运行与各个节点相应的代码的过程中,响应于选中画布区域中任一节点的操作,将其对应配置卡片的内容自动切换为任一节点的运行状态信息和/或运行日志,或者,是在算子配置区域提供用于显示运行状态信息和/或运行日志的窗口,例如可以是如图16所示。
[0250] 运行状态信息可以包括样本数、运行时长、抽取特征数、样本数量上界、当前完成任务数、当前失败任务数、当前完成阶段、当前失败阶段、当前完成工作数、当前失败工作数、并发计算总时间、任务GC总时间中的至少一项,例如可以是如图17所示。
[0251] 在本发明的一个实施例中,该方法还可以包括:
[0252] 在与各个节点相应的代码运行结束后,提供用于展示每个节点的数据处理过程的过程视图;并响应于查看过程视图中任一节点的处理过程的操作,提供任一节点本次运行的输出结果和历史输出结果,例如可以是如图18所示。这里,可按照与原始的数据处理流程图类似的方式来展示所述过程视图。
[0253] 在本发明的一个实施例中,该方法还可以包括:
[0254] 在与各个节点相应的代码运行结束后,提供用于展示每个节点的处理结果的结果视图;响应于查看结果视图中任一节点的处理结果的操作,提供任一节点本次运行的输出结果和历史输出结果,例如可以是如图19所示。这里,在结果视图中,在各阶段得到的中间/最终处理结果可被显示为单独的一个节点,一方面可总览地查看整个数据处理过程中涉及的各种数据,另一方面,通过点击相应的节点,能够快速地接入该节点对应的具体内容,例如,数据表、样本表等。
[0255] 在本发明的一个实施例中,算子配置区域还用于显示对应节点的处理结果在不同运行时间的不同版本,该方法还可以包括:
[0256] 响应于针对任意版本执行追溯操作,展示该版本的数据处理流程图、对应节点的配置信息和该版本的处理结果与其他对象之间的关联关系之中的至少一项;
[0257] 其中,其他对象包括以下任意一项或多项:数据、模型、工程,关联关系为一级或多级关联关系。
[0258] 具体的,可以是在算子配置区域提供每一版本的追溯按钮,如图20所示。当前用户通过点击任一版本的追溯按钮,触发对应版本的追溯操作,电子设备响应于该操作,展示该版本的数据处理流程图、对应节点的配置信息和该版本的处理结果与其他对象之间的关联关系之中的至少一项,例如可以是如图21和图22所示。
[0259] 具体的,可以是在如图21所示的一级关联关系中点击加号图标,展开如图22所示的二级关联关系。
[0260] 在本发明的一个实施例中,该方法还可以包括:
[0261] 在运行与各个节点相应的代码的过程中,响应于当前用户选择新的节点的操作,将新的节点展示在画布区域,并与数据处理流程图连接;在新的节点的上级节点运行结束、且新的节点配置完成的情况下,自动运行新的节点。
[0262] 在本发明的一个实施例中,画布区域中的节点可以支持以下操作中的一个或多个:复制、删除、预览、运行当前节点、从当前节点开始运行、运行到当前节点、查看日志、查看任务详情。例如,鼠标选中一个节点后点击右键,可以查看节点支持的操作。其中,复制是将已配置/未配置参数的节点复制后粘贴至任意画布中重复使用;删除是将已经拖入画布的节点进行删除;重命名是对节点重新命名以便于标记和识别;运行当前节点,是指若上游接入的数据已满足条件,则可选择运行当前节点;从当前节点开始运行,是指从当前选中的节点开始运行至最后;运行到当前节点,是指从开始单元一直运行到当前选中节点后结束运行;预览是对节点的运行结果进行预览查看;查看日志,用于定位节点运行失败时更加详细的错误信息定位,节点运行结束后可查看;任务详情,可跳转至Yarn集群任务链接/PWS Console界面。
[0263] 对于画布区域中的运行完成的数据处理流程图,响应于点击其中一个节点的操作,显示与该节点输出的产物的类型分别对应的产物类型标志,响应于点击产物类型标志的操作,展示产物相关信息界面,该产物信息相关界面包括:预览产物的控件、导出产物的控件、将产物导入元素列表的控件、产物的基本信息和保存产物的路径信息;其中节点输出的产物类型包括:数据、样本、模型和报告。
[0264] 在本发明的一个实施例中,该方法还可以包括:
[0265] 响应于当前用户编辑该数据处理流程图的操作,对其他用户锁定该数据处理流程图,以限制其他用户对该数据处理流程图进行编辑。
[0266] 具体的,如图23所示,可以是在界面中提供进入编辑的按钮,当前用户可以通过点击该按钮,触发编辑数据处理流程图的操作。电子设备响应于该操作,可以对其他用户——除当前用户以外的用户锁定该数据处理流程图,限制其他用户对该数据处理流程图进行编辑。
[0267] 这样,对于任一数据处理流程图,可以保证同一时刻只能有一个用户对其进行编辑,防止数据流程图发生错乱。
[0268] 在本发明的一个实施例中,该方法还可以包括:
[0269] 响应于当前用户退出编辑数据处理流程图的操作,对其他用户恢复开放数据处理流程图,以使其他用户对数据处理流程图进行编辑;并对当前用户锁定数据处理流程图,以限制当前用户对数据处理流程图进行编辑。
[0270] 具体的,可以是在当前用户编辑该数据处理流程图中,在界面中提供退出编辑的按钮,如图24所示,当前用户可以通过点击该按钮,触发退出编辑数据处理流程图的操作。电子设备响应于该操作,可以对其他用户恢复开放数据处理流程图,其他用户可以通过执行上述编辑该数据处理流程图的操作,来对该数据处理流程图进行编辑。同时,该电子设备还可以锁定该数据处理流程图,限制当前用户对该数据处理流程图进行编辑。
[0271] 在本发明的一个实施例中,该方法还可以包括:响应于对比多个版本的数据处理流程图的操作,在画布区域中提供对应每个版本的数据处理流程图的展示窗口,在每个窗口中展示对应版本的数据处理流程图。
[0272] 在本实施例中,同时在画布区域中展示的多个版本的数据流程图,可以是名称相同、版本不同的DAG文件,也可以是不同名称的DAG文件。
[0273] 在画布区域中的多个展示窗口展示不同版本的数据处理流程图的效果,可以是如图25所示。
[0274] 在本发明的一个实施例中,该方法还可以包括:响应于调整任一展示窗口的操作,调整任一展示窗口的尺寸。
[0275] 具体的,可以是通过拖动任一展示窗口的边或脚,来调整该展示窗口的尺寸;也可以是通过拖动相邻展示窗口的公用边,来调整相邻展示窗口的尺寸。
[0276] 在本发明的一个实施例中,该方法还可以包括如图29所示的步骤S3100~S3400:
[0277] 步骤S3100,响应于创建自定义算子的操作,提供算子代码编辑界面,以供当前用户输入算子代码。
[0278] 在本发明的一个实施例中,可以是算子列表区域包括用于创建自定义算子的入口,例如可以是如图26所示。那么创建自定义算子的操作可以为:当前用户选择用于创建自定义算子的入口的操作。
[0279] 电子设备响应于创建自定义算子的操作,提供的算子代码编辑界面可以是如图27所示,当前用户可以通过该算子代码编辑界面输入算子代码。
[0280] 步骤S3200,获取当前用户针对自定义算子的可视化效果进行的算子视觉设置。
[0281] 在本发明的一个实施例中,该算子视觉设置涉及自定义算子的图标和/或配置卡片。
[0282] 算子视觉设置包括基本设置,获取当前用户针对自定义算子的可视化效果进行的算子视觉设置包括:
[0283] 向当前用户提供用于进行算子视觉设置中的基本设置的设置控件,并接收当前用户利用设置控件进行的基本设置,其中,基本设置涉及自定义算子的图标在算子列表区域中归属的算子分类、图标在画布区域中展示的输出端数量、图标的输出端是否可扩展、可扩展的最大数量、默认输出类型、是否涉及结构(schema)推断之中的至少一项;和/或[0284] 算子视觉设置包括参数设置,获取当前用户针对自定义算子的可视化效果进行的算子视觉设置包括:
[0285] 向当前用户提供用于进行算子视觉设置中的参数设置的设置控件,并接收当前用户利用设置控件进行的参数设置,其中,参数设置涉及自定义算子的算子代码中的可配置参数在配置卡片中的展示名称、说明文档和默认值之中的至少一项;和/或
[0286] 算子视觉设置包括布局设置,获取当前用户针对自定义算子的可视化效果进行的算子视觉设置包括:
[0287] 获取可配置参数的配置控件,基于参数设置及配置控件生成配置卡片的预览图,并接收当前用户对预览图进行的布局调整,以将调整后的配置卡片布局作为算子视觉设置中的布局设置。
[0288] 在本发明的一个实施例中,算子视觉设置包括布局设置,获取可配置参数的配置控件包括:
[0289] 解析算子代码以获取可配置参数的特性,基于预先设置的可配置参数的特性与配置控件之间的匹配关系,获取匹配的配置控件,其中,可配置参数的特性包括可配置参数的类型、是否有取值范围、取值范围是否可枚举之中的至少一项。
[0290] 例如,算子视觉设置的界面可以是如图28所示。
[0291] 步骤S3300,根据获取的算子视觉设置和算子代码,得到自定义算子。
[0292] 在本发明的一个实施例中,该方法还可以包括:提供至少一个程序代码块,其中,算子代码中包含对程序代码块的调用信息。
[0293] 那么,根据获取的算子视觉设置和算子代码,得到自定义算子可以包括:根据获取的算子视觉设置、算子代码和调用信息所涉及的程序代码块,得到自定义算子。
[0294] 在本发明的一个实施例中,该方法还可以包括:提供程序代码块接口;通过该程序代码块接口获取用户自定义编辑的程序代码块,和/或,通过该程序代码块接口接收用户上传的第三方程序代码块。
[0295] 这样,用户就可以根据应用场景或自身具体需求,通过程序代码块接口将自身常用的程序代码块上传至辅助算子开发的系统2000中,以在算子开发过程中实现这些程序代码块的调用。
[0296] 在本发明的一个实施例中,所提供的至少一个程序代码块可以包括以下任意一个或多个:
[0297] 用于实时监控算子运行状态的程序代码块;
[0298] 用于将算子运行信息对外暴露的程序代码块;
[0299] 用于进行日志收集的程序代码块;
[0300] 用于执行数据过期策略的程序代码块;
[0301] 用于对代码细节进行封装的程序代码块;
[0302] 用于进行辅助资源推荐的程序代码块;
[0303] 用于进行算法参数推荐的程序代码块。
[0304] 在所提供的至少一个程序代码块中包括用于实时监控算子运行状态的程序代码块的实施例中,用于实时监控算子运行状态的程序代码块具体可以用于:在调用该程序代码块的算子运行时,对算子的运行状态进行实时监控。
[0305] 在所提供的至少一个程序代码块中包括用于将算子运行信息对外暴露的程序代码块的实施例中,在调用该程序代码块的算子运行时,获取算子的运行信息,并将该运行信息对外暴露,以用于交互。
[0306] 在所提供的至少一个程序代码块中包括用于进行日志收集的程序代码块的实施例中,用于进行日志收集的程序代码块具体可以用于:在调用该程序代码块的算子运行时,收集算子运行过程中的日志数据。
[0307] 在所提供的至少一个程序代码块中包括用于执行数据过期策略的程序代码块的实施例中,用于执行数据过期策略的程序代码块具体可以用于:按一定的策略自动清理该调用该程序代码块的算子产生的、过期的数据。
[0308] 在所提供的至少一个程序代码块中包括用于对代码细节进行封装的程序代码块的实施例中,用于对代码细节进行封装的程序代码块具体可以用于:对调用该程序代码块的算子的代码细节进行封装。
[0309] 在所提供的至少一个程序代码块中包括用于进行辅助资源推荐的程序代码块的实施例中,用于进行辅助资源推荐的程序代码块具体可以用于:在调用该程序代码块的算子运行时,根据算子对一定量数据进行处理时的资源消耗,推断算子对全量数据进行处理时的资源消耗,并根据推断结果调度对应量的资源。
[0310] 在所提供的至少一个程序代码块中包括用于进行算法参数推荐的程序代码块的实施例中,用于进行算法参数推荐的程序代码块具体可以用于:在被执行机器学习算法的算子引用时,根据算法和参数的对应列表和/或算法参数搜索方法为相应机器学习算法确定参数。
[0311] 在本发明的一个实施例中,自定义算子的形式可以包括如下任意一种:jar包;docker镜像;脚本文件。
[0312] 在自定义算子的形式为jar包的实施例中,jar包中封装了具体的算子代码。可以预先提供用于获取jar包的第一接口,以供用户通过该第一接口输入形式为jar包的自定义算子。
[0313] 在自定义算子的形式为docker镜像的实施例中,docker镜像中封装了具体的算子代码。可以预先提供用于获取docker镜像的第二接口,以供用户通过该第二接口输入形式为docker镜像的自定义算子。
[0314] 在自定义算子的形式为脚本文件的实施例中,可以预先提供脚本编辑界面,以供用户输入算子代码,得到脚本文件。
[0315] 在本发明的一个实施例中,每个程序代码块具有对应的版本号,同一功能的程序代码块具有至少一个版本。
[0316] 在一个例子中,程序代码块的版本号可以采取一种规范化的版本命名机制,形式可以是如MAJOR.MINOR.PATCH(比如1.0.0、1.0.2-alpha.1、1.0.3-beta、1.0.4-rc.1等等)。有不兼容的改动时,可以升级MAJOR字段的版本;新增向前兼容的功能时,可以升级MINOR字段的版本;进行向前兼容的漏洞修复(bugfix)时,可以升级PATCH字段的版本。
[0317] 通过本实施例的方法,将用户输入的算子代码、及算子代码中程序代码块调用信息所涉及的程序代码块一起进行封装,得到自定义算子,可以简化算子开发流程,提高算子的开发效率,还可以大幅降低算子开发的门槛和成本。
[0318] 在本发明的一个实施例中,在执行步骤S4300之前,该方法还可以包括如图5所示的步骤S5110~S5130:
[0319] 步骤S5110,获取用户配置的关于自定义算子的配置文件,该配置文件中声明了算子代码中程序代码块调用信息所涉及的程序代码块。
[0320] 具体的,在配置文件中声明了程序代码块调用信息所涉及的程序代码块及其版本。
[0321] 步骤S5120,检测配置文件中声明的程序代码块的版本与自定义算子的代码的版本是否一致,如果不一致进一步判断是否兼容。
[0322] 在本发明的一个实施例中,可以是检测检测配置文件中的程序代码块的版本号,与自定义算子的代码中程序代码块调用信息所涉及的程序代码块的版本号是否完全相同,如是,则可以判定配置文件中声明的程序代码块的版本与自定义算子的代码的版本一致;如否,则可以判定配置文件中声明的程序代码块的版本与自定义算子的代码的版本不一致。
[0323] 在程序代码块的版本号的形式为MAJOR.MINOR.PATCH的实施例中,如果判定配置文件中声明的程序代码块的版本与自定义算子的代码的版本不一致,可以是检测配置文件中的程序代码块的版本号的MAJOR,与自定义算子的代码中程序代码块调用信息所涉及的程序代码块的版本号的MAJOR是否相同,如果相同,则判定配置文件中声明的程序代码块的版本与自定义算子的代码的版本兼容;如果不相同,则可以判定配置文件中声明的程序代码块的版本与自定义算子的代码的版本不兼容。
[0324] 步骤S5130,在不一致且不兼容的情况下,则根据自定义算子的代码的版本找到版本一致的程序代码块或版本不一致但兼容的程序代码块,作为替换包封装到自定义算子中。
[0325] 在本发明的一个实施例中,在配置文件中声明的程序代码块的版本与自定义算子的代码的版本不兼容的情况下,可以是以自定义算子的代码中程序代码块调用信息所涉及的程序代码块为准,即将程序代码块调用信息中所涉及的对应版本的程序代码块封装到自定义算子中。
[0326] 例如,配置文件中所声明程序代码块的版本是spark 1.6,但是,在自定义算子的代码中所涉及的程序代码块的版本是spark 2.3,那么,可以是将版本为spark 2.3的程序代码块与自定义算子的代码一起封装到自定义算子中。
[0327] 进一步地,该方法还可以包括:根据自定义算子的代码的版本替换配置文件中声明的程序代码块的版本。
[0328] 例如,配置文件中所声明程序代码块的版本是spark 1.6,但是,在自定义算子的代码中所涉及的程序代码块的版本是spark 2.3,那么,可以是将配置文件中所声明程序代码块的版本替换为spark 2.3。
[0329] 在本发明的另一个实施例中,在配置文件中声明的程序代码块的版本与自定义算子的代码的版本不兼容的情况下,还可以是以配置文件中声明的程序代码块的版本为准,即将配置文件中声明的对应版本的程序代码块封装到自定义算子中。
[0330] 例如,配置文件中所声明程序代码块的版本是spark 1.6,但是,在自定义算子的代码中所涉及的程序代码块的版本是spark 2.3,那么,可以是将版本为spark 1.6的程序代码块与自定义算子的代码一起封装到自定义算子中。
[0331] 进一步地,该方法还可以包括:根据配置文件中声明的程序代码块的版本替换自定义算子的代码的版本。
[0332] 例如,配置文件中所声明程序代码块的版本是spark 1.6,但是,在自定义算子的代码中所涉及的程序代码块的版本是spark 2.3,那么,可以是将自定义算子的代码中所涉及的程序代码块的版本替换为spark 1.6。
[0333] 本实施例通过对配置文件所所声明程序代码块和自定义算子的代码中所涉及的程序代码块预先进行容错处理,可以避免在自定义算子实际运行时发现报错,进而可以提升用户体验。
[0334] 在本发明的一个实施例中,在执行步骤S3300之前,该方法还可以包括如下所示的步骤S4100~S4300:
[0335] 步骤S4100,获取当前用户配置的关于自定义算子的配置文件,该配置文件中声明了算子代码中的程序代码块调用信息所涉及的程序代码块。
[0336] 步骤S4200,扫描算子代码,判断是否存在自定义算子的算子代码中存在程序代码块调用信息但配置文件中不存在相应声明的程序代码块。
[0337] 在一个例子中,存在程序代码块调用信息但配置文件中不存在相应声明的程序代码块,可以是程序代码块调用信息所涉及、但未在配置文件中声明相应版本的程序代码块,也可以是程序代码块调用信息所涉及、但未在配置文件中声明其任一版本的程序代码块。
[0338] 步骤S4300,如果存在,则在配置文件中补充相应的声明。
[0339] 例如,在算子代码的程序代码块调用信息涉及版本是spark 2.3的程序代码块,而在配置文件中未对该程序代码块进行声明,则可以是在配置文件中补充对版本是spark 2.3的程序代码块的声明。
[0340] 本实施例通过对配置文件所声明程序代码块和自定义算子的算子代码中所涉及的程序代码块预先进行容错处理,可以避免在自定义算子实际运行时发现报错,进而可以提升用户体验。
[0341] 在本发明的一个实施例中,该方法还可以包括:
[0342] 提供与不同底层框架分别对应的底层框架执行器,以在算子实际运行时托管底层框架的任务分发的资源调度;和/或,
[0343] 提供与不同计算框架分别对应的计算框架管理器,以在算子实际运行时托管计算框架中的通信、调度和资源相关的操作。
[0344] 其中,底层框架包括如下中的至少一种:YARN、Kubernetes。计算框架包括如下的至少一种:Spark、Tensorflow、MapReduce、Python、sh、Java。
[0345] 在一个例子中,可以是预先提供多个底层框架和计算框架,响应于用户选择底层框架的操作,提供与用户所选择的底层框架对应的底层框架执行器;响应于用户选择计算框架的操作,提供与用户所选择的计算框架对应的计算框架执行器。
[0346] 如果用户使用上述计算框架来开发算子,那么,可以直接编辑算子代码,而不需要关心框架层的通信、调度、资源相关的问题。
[0347] 下面以在YARN框架上面运行Spark任务为例进行说明。
[0348] 传统做法是,算子开发用于需要下载安装Hadoop,然后配置环境变量。有Hadoop配置文件后,由于需要执行Spark的逻辑需要依赖官方提供的jar包,可以从官网下载jar文件,下载到本地后配置环境变量后就可以正常使用Spark所有完整功能了。如果环境都准备好,本地可以通过pyspark命令来启动,这样可以直接配置yarn-client模型和其他Spark参数。客户端初始化后,可以在Hadoop的应用管理页面看到正在跑的一个Application,提交各种Spark任务时也可以看到运行在Hadoop集群上。而对于商业发行版的Hadoop,开发者还需要处理各种版本不一致带来的验证、鉴权等非业务问题。非常依赖开发者对于Hadoop生态的了解,门槛极高。
[0349] 而该电子设备将上述繁杂的过程完全自动化。算子开发用户只需要掌握开发算子所必备的开源Hadoop和Spark的知识,专注于编辑算子代码。YARN框架层面的版本问题、环境配置问题、启动、提交任务等,全部通过自动化的方式来屏蔽。具体做法可以为:本发明的电子设备可以兼容市场上常用的所有Hadoop和Spark版本,并向算子开发用户提供兼容列表。算子开发用户只需在该兼容列表下进行开发,算子平台会自动监测算子开发用户所输入的代码,匹配相应的版本进行提交和执行。
[0350] 下面以在Kubernetes框架上面运行Python任务为例进行说明。
[0351] 传统做法是,先准备基于容器化运行的容器环境。然后在算法业务逻辑之外,额外准备配置文件,声明监听容器的端口号、程序代码块、http输入输出方式等。再之后需要准备一个容器描述文件,指定基础镜像、设置工作目录、暴露监听端口等。最后通过命令行代码交互的方式,启动容器运行在Kubernetes上。
[0352] 而本发明的电子设备将上述繁杂的过程完全自动化。具体做法是:电子设备内置标准运行环境,预置人工智能应用开发所有常用程序代码块,并且自动帮助算子开发用户默认设置监听容器的端口号。当算子开发用户打包算子时,电子设备会扫描算子开发用户声明的程序代码块,自动生成容器描述文件。算子开发用户无需感知任何业务逻辑之外的事情,即可通过一行命令,直接执行任务。
[0353] 对于提交执行,传统做法是通过命令行代码交互的方式进行,不仅需要算子开发用户熟悉每一个框架的提交命令,还需要进行执行参数调试等各种工作。而本发明的电子设备的优化方式包括:将每个框架的提交命令封装成一个参数,并给每个框架的参数命名为算子开发用户习以为常的缩写,算子开发用户只需自己确定用于执行算子的框架,指定相应缩写即可;电子设备对每个框架的每个可调试参数进行大量测试,拟合方程公式(包括但不限于线性回归、非线性回归方法等),得出一个经验公式,然后将经验公式内置在电子设备中。算子开发用户指定某个框架后,后台自动收到指令,触发经验公式进行计算,实时返回当前最优的执行参数,并提交运行。
[0354] 本发明的电子设备默认帮助算子开发用户搭建了人工智能领域常用的底层资源框架(YARN、Kubernetes)等,使得算子开发用户无需关系底层任务分发和资源调度。
[0355] 本发明的电子设备还对常用的计算框架进行了抽象、封装和优化,使得使用这些计算框架的算子开发用户,能够更加低成本的完成算子开发工作。
[0356] 这些抽象、封装和优化被称为Executive,即算子在特定计算框架上提交执行、状态追踪、指标(metrics)收集的管理者和执行器,可实现多种多样的Executive来对接不同的调度集群和计算框架(例如Spark 1.6.x的Executive、Tensorflow的Executive)。
[0357] Executive在提交算子到算子集群执行时,需要构造算子的传入参数。因此,针对一类要到相同Executive上执行的算子需定义好传入参数的结构规范,使算子在集群上运行时可以正确的获取到执行的传入参数。例如,Spark算子是通过将配置写出到Json文件,然后在提交时带上该Json文件,并将该Json文件的文件名作为提交参数,来让提交到YARN上的算子同反序列化文件内容获取配置。再例如,Tensorflow算子通过构建Job的command和env参数的方式,将输入参数传入镜像entryPoint的launch.py,再通过launch.py启动用户的py将这些参数传入执行。
[0358] 对于状态追踪,传统做法是算子开发用户需要熟悉每个框架的状态定义,然后自己来实现运行过程中的状态追踪。本发明的辅助算子开发的系统2000则针对不同的框架,抽象总结出一个适配所有框架的通用状态追踪机制。即定义状态可以包括:INITIALIZED(初始化任务)、AWAITING(等待调度,分为本地组装与提交阶段和集群等待调度阶段)、RUNNING(运行)、SUCCEEDED(成功)、FAILED(失败)、TERMINATED(终止)、RESUMING(恢复)。算子开发用户不再需要关心和编辑状态追踪相关的逻辑,辅助算子开发的系统2000自动将上述状态逻辑用一个参数来替代,通过运行时下指令给辅助算子开发的系统2000来自动实现。
[0359] 对于指标收集,传统的做法是算子开发用户需要自己写代码来实现,能力强的算子开发用户可以写出效率很高的代码进行执行,而能力不强的算子开发用户写代码后,反而会增加任务的执行时间,同时还会增加算子中间数据的存储。本发明的电子设备通过自动建立服务端与客户端的连接,服务端在获取到指标数据后主动推送到客户端,客户端负责解析和记录、展示的方式,帮助算子开发用户避免了手写代码实现。并将是否选择开启指标收集,作为了一个执行可选参数,开放给算子开发用户进行自由选择。
[0360] 在本发明的一个实施例中,该方法还可以包括如图下所示的步骤S5100~S5200:
[0361] 步骤S5100,获取用于调试的模拟数据。
[0362] 该模拟数据可以用于调试自定义算子的算子代码是否可用。具体的,该模拟数据可以是自动生成的,也可以是由用户输入的。
[0363] 由于在建模过程中的数据类型会不断变换,经常会从数据表到模型再到报告或者文件,不同的算子需要处理不同类型的数据。因此,需要算子开发用户能够灵活的指定自定义算子的输入输出格式,并针对特定格式的数据开发特定的功能。
[0364] 在本发明的一个实施例中,获取模拟数据的方式可以包括:获取用户输入的模拟数据的格式信息;根据该格式信息获取模拟数据。
[0365] 该格式信息可以包括数据格式、具体数据项的类型、数量。数据格式可以为以下任意一种:数据表、数据组、模型、模型组、图片、图片集、文件。
[0366] 在本实施例的基础上,获取模拟数据的方式可以包括:获取用户输入的自定义算子的应用场景;根据应用场景获取符合该格式信息的数据,作为模拟数据。
[0367] 该应用场景例如可以包括图片识别、图片比对、打分等。
[0368] 在一个例子中,根据应用场景获取符合该格式信息的数据,作为模拟数据还可以包括:从预存的数据中选取适应于该应用场景、且符合该格式信息的数据,作为模拟数据。
[0369] 在另一个例子中,根据应用场景获取符合该格式信息的数据,作为模拟数据可以包括:获取与应用场景匹配的历史数据;根据历史数据确定数据限定条件;根据数据限定条件生成符合该格式信息的模拟数据。
[0370] 该历史数据中包括与应用场景匹配的其他算子的输入数据和对应的输出数据,根据该输入数据和输出数据,可以得到数据限定条件;基于该数据限定条件就可以生成符合用户输入的格式信息的模拟数据。
[0371] 在本实施例的基础上,获取模拟数据的方式还可以包括:获取用户输入的用于表示数据内容的数据配置信息;根据该数据配置信息生成模拟数据。
[0372] 在一个例子中,算子开发用户可以是在配置文件中指定模拟数据的格式信息。例如,算子开发用户可以通过表单式交互的方式,声明所需的模拟数据的格式信息,即可获取模拟数据供算子开发用户使用。
[0373] 具体的,可以接收用户输入的配置文件,将配置文件中配置的数据表定义,转换为模拟数据的生成任务,上传到Spark上进行数据生成。
[0374] 支持生成模拟数据的功能可以包括:
[0375] 支持在配置文件中定义待生成数据实体的schema;
[0376] 支持生成多种数据类型,包括string,short,int,long,float,double,date,time中的任意一种或多种;
[0377] 支持配置生成的某个字段的数据来自于enum list或者某个文件;
[0378] 支持配置数据字段为数据表的key,支持uniq字段;
[0379] 支持配置数据字段为其他表的key,支持配置表数据字段来自于其他表数据字段,可控制匹配度,具体包括一对一匹配、一对多匹配、多对一匹配;
[0380] 支持控制任务执行模式,spark  local,spark yarn client,spark yarn cluster;
[0381] 支持控制生成某一天,或某时间段的数据;
[0382] 支持同时生成多张表,可以配置表之间行数依赖;
[0383] 支持控制数据生成任务的并行度;
[0384] 支持控制数据生成周期,按天,按周,按月,按年;
[0385] 支持对生成的数据进行脏化处理,添加空格,字段缺失,NULL,None,缺少分隔符;
[0386] 支持配置字段分隔符,配置生成数据文件编码;
[0387] 支持对生成数据文件进行压缩存储(支持snappy、lzo、gzip、bzip2等压缩格式,依赖于hadoop集群);
[0388] 支持将字段名输出到生成数据文件中,作为表头;
[0389] 支持配置用于组成字符串的字符的来源;
[0390] 支持高斯分布、指数分布、伽分布的浮点数类型;
[0391] 支持控制数据生成位置,支持数据load hive。
[0392] 在本发明的一个实施例中,本实施例的方法还可以对人工智能建模过程中,经常遇到的数据倾斜问题进行模拟,以便于算子开发用户更好的进行生产使用。
[0393] 步骤S5200,根据该模拟数据对自定义算子的代码进行调试,在调试通过的情况下,根据获取的算子视觉设置、算子代码和调用信息所涉及的程序代码块,得到自定义算子。
[0394] 如果调试未通过,则可以向用户展示自定义算子的算子代码,以供算子开发用户对算子代码进行修改,以使得修改后的算子代码能够基于模拟数据调试通过。
[0395] 在本发明的一个实施例中,调试是指能够查看资源控制和运行状态,通过资源查看和运行状态查看,来判断自定义算子是否运行正确,符合资源消耗预期。
[0396] 具体的,可以是预先搭建人工智能领域常用的底层资源框架(YARN、Kubernetes)等,使得算子开发用户无需关系底层任务分发和资源调度。此外还提供可视化模块(例如Dashboard),并将调试结果通过该可视化模块展示给算子开发用户,以使算子开发用户可以清晰的查看资源控制和运行状态。
[0397] 在调试完成后,可以一键发布,使得自定义算子可以模拟在线上真实情况下的运行。线上模拟相当于是执行本发明实施例的电子设备模拟用户去使用自定义算子,是前后端联调及质量的测试,以保证自定义算子只要是能够通过线上模拟测试,均可正常在真实环境中运行。
[0398] 具体的,可以使用websocket协议建立服务端与客户端的连接,服务端在获取到日志数据后主动推送到客户端,客户端(前端页面)负责解析并展示数据即可。
[0399] 系统在线上真实环境(即已经投入使用的算子的运行环境),可以自动根据用于针对该自定义算子指定的输入类型,匹配一份内置数据,然后用大量预置的测试用例,对自定义算子进行测试。具体可以包括输入、输出、运行时长、资源消耗、UI交互、与其他算子的方案编排等各方面测试。
[0400] 在本发明的一个实施例中,算子视觉配置还可以包括自定义算子的版本号。
[0401] 具体的,自定义算子的版本号可以采取一种规范化的版本命名机制,形式可以是如MAJOR.MINOR.PATCH(比如1.0.0、1.0.2-alpha.1、1.0.3-beta、1.0.4-rc.1等等)。有不兼容的改动时,可以升级MAJOR字段的版本;新增向前兼容的功能时,可以升级MINOR字段的版本;进行向前兼容的漏洞修复(bugfix)时,可以升级PATCH字段的版本。
[0402] 在本实施例中,引入算子版本化,可以解决算子的开发迭代问题和多版本共存问题。
[0403] 但由于算子之间没有协议,无法保证不同的算子之间能兼容工作,当一个基于算子的方案编排中存在不兼容的算子时,需要等到运行时才能暴露问题。如果仅引入基于算子的方案编排的版本化,限制一个版本的方案里能使用的算子集合,那么算子之间的兼容性问题能够解决,但无法解决算子本身开发迭代和多版本算子共存的问题。
[0404] 因此,可以是算子和基于算子的方案编排都引入版本化机制,其中,算子的版本化用于解决算子的开发迭代问题和多版本共存问题,编排方案的版本化用于解决算子之间的兼容性问题。
[0405] 在一个例子中,可以是自定义算子的版本号可以是由算子模板提供,算子模板中新增version字段和protocol Version字段。version字段供方案编排使用。Protocol Version字段标识自定义算子所属的方案版本,为数组类型,因为一个版本的算子可以出现在多个版本的方案中,数组中的每个版本只能使用完整的版本号。
[0406] 步骤S3400,在算子列表区域中展示自定义算子的图标。
[0407] 在本发明的一个实施例中,可以是在基本设置所涉及的所述算子列表区域的算子分类下展示该自定义算子的图标。
[0408] <装置实施例>
[0409] 在本实施例中,提供一种数据处理装置,如图30所示,该数据处理装置7000可以包括界面显示模块7100、节点展示模块7200、节点连接模块7300和节点运行模块7400。该界面显示模块7100用于显示用于创建数据处理流程图的界面,其中,界面包括画布区域,画布区域用于基于节点来构建数据处理流程图;该节点展示模块7200用于响应于当前用户选择节点的操作,将选择的节点展示在画布区域;该节点连接模块7300用于将画布区域中的节点进行连接,以构建数据处理流程图;该节点运行模块7400用于根据数据处理流程图中各个节点的配置信息,运行与各个节点相应的代码。
[0410] 在本发明的一个实施例中,数据处理流程图可以为有向无环图。
[0411] 在本发明的一个实施例中,节点包括用于执行数据处理的算子。
[0412] 在本发明的一个实施例中,界面还包括算子配置区域,用于展示算子的配置卡片,以基于当前用户对配置卡片的配置操作来得到算子的配置信息。
[0413] 在本发明的一个实施例中,界面还包括算子列表区域,用于展示能够构建有向无环图的算子的图标。
[0414] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0415] 用于响应于当前用户针对画布区域中的多个算子的组合操作,将当前用户所选择的多个算子进行组合,得到算子组合的模块。
[0416] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0417] 用于响应于查看算子组合的操作,在画布区域提供算子组合的展示窗口的模块;其中,算子组合的展示窗口中展示算子组合所包含的算子;
[0418] 用于响应于查看算子组合的展示窗口中任一算子的操作,在算子配置区域展示任一算子的配置卡片的模块。
[0419] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0420] 用于获取各个算子被指定用户使用的历史记录的模块,其中,指定用户至少包括当前用户;
[0421] 用于根据历史记录获取指定用户经常使用的算子,并将获取的经常使用的算子列在算子列表区域中的常用算子类别下;和/或,根据历史记录获取指定用户经常使用的算子组合,并将获取的经常使用的算子组合列在算子列表区域中的常用算子组合类别下的模块。
[0422] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0423] 用于响应于在常用算子类别中添加算子的操作,获取当前用户选中的算子,并将选中的算子列在算子列表区域中的常用算子类别下的模块;和/或,
[0424] 用于响应于在常用算子组合类别中添加算子组合的操作,获取当前用户选中的算子组合,并将选中的算子组合列在算子列表区域中的常用算子组合类别下的模块。
[0425] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0426] 用于响应于调整排序的操作,调整算子列表区域中的算子和/或算子组合的排列顺序的模块。
[0427] 在本发明的一个实施例中,该数据处理装置7000还可以包括如图31所示的代码编辑模块8100、设置获取模块8200、自定义模块8300和图标展示模块8400。该代码编辑模块8100用于响应于创建自定义算子的操作,提供算子代码编辑界面,以供当前用户输入算子代码;该设置获取模块8200用于获取当前用户针对自定义算子的可视化效果进行的算子视觉设置;该自定义模块8300用于根据获取的算子视觉设置和算子代码,得到自定义算子;该图标展示模块8400用于在算子列表区域中展示自定义算子的图标。
[0428] 在本发明的一个实施例中,算子视觉设置涉及自定义算子的图标和/或配置卡片。
[0429] 在本发明的一个实施例中,算子视觉设置包括基本设置,设置获取模块还用于:
[0430] 向当前用户提供用于进行算子视觉设置中的基本设置的设置控件,并接收当前用户利用设置控件进行的基本设置,其中,基本设置涉及自定义算子的图标在算子列表区域中归属的算子分类、图标在画布区域中展示的输出端数量、图标的输出端是否可扩展、可扩展的最大数量、默认输出类型、是否涉及结构(schema)推断之中的至少一项;和/或[0431] 算子视觉设置包括参数设置,获取当前用户针对自定义算子的可视化效果进行的算子视觉设置包括:
[0432] 向当前用户提供用于进行算子视觉设置中的参数设置的设置控件,并接收当前用户利用设置控件进行的参数设置,其中,参数设置涉及自定义算子的算子代码中的可配置参数在配置卡片中的展示名称、说明文档和默认值之中的至少一项;和/或
[0433] 算子视觉设置包括布局设置,获取当前用户针对自定义算子的可视化效果进行的算子视觉设置包括:
[0434] 获取可配置参数的配置控件,基于参数设置及配置控件生成配置卡片的预览图,并接收当前用户对预览图进行的布局调整,以将调整后的配置卡片布局作为算子视觉设置中的布局设置。
[0435] 在本发明的一个实施例中,其中,算子视觉设置包括布局设置,获取可配置参数的配置控件包括:
[0436] 解析算子代码以获取可配置参数的特性,基于预先设置的可配置参数的特性与配置控件之间的匹配关系,获取匹配的配置控件,其中,可配置参数的特性包括可配置参数的类型、是否有取值范围、取值范围是否可枚举之中的至少一项。
[0437] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0438] 用于提供至少一个程序代码块的模块;
[0439] 其中,算子代码中包含对程序代码块的调用信息;根据获取的算子视觉设置和算子代码,得到自定义算子包括:
[0440] 用于根据获取的算子视觉设置、算子代码和调用信息所涉及的程序代码块,得到自定义算子的模块。
[0441] 在本发明的一个实施例中,其中,程序代码块的形式可以是如下中的任一种:jar包;docker镜像;脚本文件。
[0442] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0443] 用于提供程序代码块接口的模块;
[0444] 用于通过程序代码块接口获取用户自定义编辑的程序代码块,和/或,通过程序代码块接口接收用户上传第三方的程序代码块的模块。
[0445] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0446] 用于获取用于调试的模拟数据的模块;
[0447] 用于根据模拟数据对算子代码进行调试,在调试通过的情况下,根据获取的算子视觉设置、算子代码和调用信息所涉及的程序代码块,得到自定义算子的模块。
[0448] 在本发明的一个实施例中,获取用于调试的模拟数据包括:
[0449] 获取用户输入的模拟数据格式信息;
[0450] 根据格式信息获取模拟数据。
[0451] 在本发明的一个实施例中,根据格式信息获取模拟数据包括:
[0452] 获取用户输入的目标算子的应用场景;
[0453] 根据应用场景获取符合格式信息的数据,作为模拟数据。
[0454] 在本发明的一个实施例中,根据应用场景获取符合格式信息的数据,作为模拟数据包括:
[0455] 获取与应用场景匹配的历史数据;
[0456] 根据历史数据确定数据限定条件;
[0457] 根据数据限定条件生成符合格式信息的模拟数据。
[0458] 在本发明的一个实施例中,根据应用场景获取符合格式信息的数据,作为模拟数据包括:
[0459] 从预存的数据中选取适用于应用场景、且符合格式信息的数据,作为模拟数据。
[0460] 在本发明的一个实施例中,算子列表区域包括用于创建自定义算子的入口;代码编辑模块8100还可以用于:
[0461] 响应于当前用户选择用于创建自定义算子的入口的操作,提供算子代码编辑界面,以供当前用户输入算子代码。
[0462] 在本发明的一个实施例中,图标展示模块8400可以包括:
[0463] 在基本设置所涉及的算子列表区域的算子分类下展示自定义算子的图标。
[0464] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0465] 用于响应于当前用户编辑算子列表区域的操作,展示用于编辑算子列表区域的界面的模块;
[0466] 用于响应于当前用户在用于编辑算子列表区域的界面上执行的操作,对算子列表区域中所展示算子进行筛选和/或分类的模块。
[0467] 在本发明的一个实施例中,节点连接模块7300还可以用于:
[0468] 响应于当前用户对画布区域中展示的两个节点之间的连线操作,将两个节点进行连接。
[0469] 在本发明的一个实施例中,节点连接模块7300还可以用于:
[0470] 针对最新选择并在画布区域中展示的目标算子,确定与目标算子对应的关联算子,并自动连接目标算子与对应的关联算子。
[0471] 在本发明的一个实施例中,确定与目标算子对应的关联算子包括:
[0472] 随着当前用户在画布区域中拖动目标算子的操作,确定与目标算子的类型匹配的最靠近算子,作为关联算子。
[0473] 在本发明的一个实施例中,确定与目标算子的类型匹配的最靠近算子,包括:
[0474] 在预设距离范围内确定与目标算子的类型匹配的最靠近算子。
[0475] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0476] 随着当前用户在画布区域中拖动目标算子的操作,自动将目标算子插入与目标算子的类型匹配的已经连接的两个算子之间。
[0477] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0478] 用于获取最新选择并在画布区域中展示的目标算子的历史连接记录的模块;
[0479] 用于根据历史连接记录,确定目标算子的下级算子、及目标算子与每个下级算子之间的连接概率的模块;
[0480] 用于根据连接概率展示下级算子,以供当前用户选择的模块。
[0481] 在本发明的一个实施例中,根据连接概率展示下级算子包括:
[0482] 根据连接概率对下级算子进行降序排序,并根据排序顺序展示所有下级算子;或者,
[0483] 根据连接概率对所有下级算子进行降序排序,并获取每个下级算子的排序值;选取排序值在预设的排序范围内的下级算子进行展示。
[0484] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0485] 用于展示下级算子的连接概率的模块。
[0486] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0487] 用于响应于对展示在画布区域中的任一算子的脚本编辑操作,展示任一算子的脚本编辑界面,以供当前用户对任一算子的脚本进行编辑的模块。
[0488] 在本发明的一个实施例中,对任一算子的脚本编辑操作包括双击任一算子的操作和点击算子配置区域中脚本编辑按钮的操作中的任一项;
[0489] 装置还包括:
[0490] 用于响应于双击任一算子的操作,突出展示脚本编辑按钮的模块。
[0491] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0492] 用于在运行与各个节点相应的代码的过程中,展示画布区域中的每个节点的运行进度的模块。
[0493] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0494] 用于在运行与各个节点相应的代码的过程中,响应于选中画布区域中任一节点的操作,将其对应配置卡片的内容自动切换为任一节点的运行状态信息和/或运行日志的模块。
[0495] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0496] 用于在与各个节点相应的代码运行结束后,提供用于展示每个节点的数据处理过程的过程视图;并响应于查看过程视图中任一节点的处理过程的操作,提供任一节点本次运行的输出结果和历史输出结果的模块;
[0497] 和/或,
[0498] 用于在与各个节点相应的代码运行结束后,提供用于展示每个节点的处理结果的结果视图;响应于查看结果视图中任一节点的处理结果的操作,提供任一节点本次运行的输出结果和历史输出结果的模块。
[0499] 在本发明的一个实施例中,算子配置区域还用于显示对应节点的处理结果在不同运行时间的不同版本,该数据处理装置7000还可以包括:
[0500] 用于响应于针对任意版本执行追溯操作,展示该版本的数据处理流程图、对应节点的配置信息和该版本的处理结果与其他对象之间的关联关系之中的至少一项的模块;
[0501] 其中,其他对象包括以下任意一项或多项:数据、模型、工程,关联关系为一级或多级关联关系。
[0502] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0503] 用于在运行与各个节点相应的代码的过程中,响应于当前用户选择新的节点的操作,将新的节点展示在画布区域,并与数据处理流程图连接的模块;
[0504] 用于在新的节点的上级节点运行结束、且新的节点配置完成的情况下,自动运行新的节点的模块。
[0505] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0506] 用于响应于当前用户编辑数据处理流程图的操作,对其他用户锁定数据处理流程图,以限制其他用户对数据处理流程图进行编辑的模块;和/或,
[0507] 用于响应于当前用户退出编辑数据处理流程图的操作,对其他用户恢复开放数据处理流程图,以使其他用户对数据处理流程图进行编辑;并对当前用户锁定数据处理流程图,以限制当前用户对数据处理流程图进行编辑的模块。
[0508] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0509] 用于响应于对比多个版本的数据处理流程图的操作,在画布区域中提供对应每个版本的数据处理流程图的展示窗口,在每个窗口中展示对应版本的数据处理流程图的模块。
[0510] 在本发明的一个实施例中,该数据处理装置7000还可以包括:
[0511] 用于响应于调整任一展示窗口的操作,调整任一展示窗口的尺寸的模块。
[0512] 在本发明的一个实施例中,节点运行模块7400还可以用于:
[0513] 根据数据处理流程图中各个节点的配置信息,分析各个节点的连接关系,针对并行连接的节点,以分布式集群来运行与节点相应的代码,针对串行连接的节点,以单机方式来运行与节点相应的代码。
[0514] <系统实施例>
[0515] 在本实施例中,如图32所示,还提供一种至少一个计算装置9100和至少一个存储装置9200的系统9000。该至少一个存储装置9200用于存储可执行的指令;该指令用于控制至少一个计算装置9100执行根据本发明任意实施例的指标监测方法。
[0516] 在本实施例中,该系统9000可以是手机、平板电脑、掌上电脑、台式机、笔记本电脑、工作站、游戏机等设备,也可以是由多个设备构成的分布式系统。
[0517] <计算机可读存储介质实施例>
[0518] 在本实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时实现如本发明任意实施例的指标监测方法。
[0519] 本发明可以是设备、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0520] 计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号
[0521] 这里所描述的计算机可读程序指令可从计算机可读存储介质下载到各个计算/处理设备,或通过网络、如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可包括传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0522] 用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0523] 这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0524] 这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0525] 也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0526] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
[0527] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈