增强机器学习流水线语料库以合成新机器学习流水线的制作方法

文档序号:33459563发布日期:2023-03-15 03:23阅读:21来源:国知局
增强机器学习流水线语料库以合成新机器学习流水线的制作方法
增强机器学习流水线语料库以合成新机器学习流水线
1.相关申请的交叉引用/引用加入
2.本技术要求于2021年9月3日提交的标题为“usingdata augmentation with learningfromhuman-written pipelines to generate high-quality mlpipelines”的美国临时专利申请序列第63/260,908号的优先权,该美国临时专利申请的全部内容在此通过引用并入本文。
技术领域
3.本公开内容中讨论的实施方式涉及增强机器学习流水线语料库以合成新机器学习流水线。


背景技术:

4.人工智能(artificial intelligence,ai)和机器学习(machine learning,ml)领域的进步已经带来ai/ml算法在各种领域中的应用。通常,ml流水线(mlpipeline)可以由数据科学家针对给定数据集手动创建。ml流水线的手动创建可能是耗时的任务,这可能需要专家用户(例如数据科学家)的大量努力。最近,已经开发了用于针对数据集的ml流水线的自动生成的某些技术。用于ml流水线的自动生成的当前技术通常遵循探索性方法,其中可以基于多个候选ml流水线的实例化和测试来迭代地搜索可能的ml流水线的巨大空间以找到针对给定数据集的最佳流水线。因此,用于ml流水线的自动生成的当前技术可能不能生成准确的ml流水线并且可能需要大量的计算时间和资源。
5.本公开内容中要求保护的主题不限于解决任何不足或仅在诸如上述那些环境的环境中操作的实施方式。确切地说,提供该背景技术仅用于示出可以实践本公开内容中描述的一些实施方式的一个示例技术领域。


技术实现要素:

6.根据实施方式的一方面,操作可以包括接收来自存储在机器学习(ml)语料数据库中的多个ml项目的ml项目。本文中,多个ml项目中的每一个ml项目可以包括数据集和适用于数据集的ml流水线集合。操作还可以包括基于预定义ml流水线集合使与所接收的ml项目相关联的第一ml流水线集合中的第一ml流水线转变(mutate),以确定第二ml流水线集合。本文中,第一ml流水线的转变可以对应于用与预定义ml流水线集合中的一个预定义ml流水线相关联的第二ml模型替换与第一ml流水线相关联的第一ml模型。操作还可以包括基于与所确定的第二ml流水线集合中的每一个第二ml流水线相关联的性能分数,从所确定的第二ml流水线集合中选择一个或更多个ml流水线。操作还可以包括增强(augment)ml语料数据库以包括所选择的一个或更多个ml流水线以及与所接收的ml项目相关联的第一ml流水线集合。
7.实施方式的目的和优点将至少通过权利要求书中特别指出的元素、特征和组合来实现和完成。
8.前面的总体描述和下面的详细描述两者均作为示例给出,并且是说明性的而不是对所要求保护的本发明的限制。
附图说明
9.将通过使用附图以附加的特性和细节来描述和说明示例实施方式,在附图中:
10.图1是表示与机器学习流水线语料库的增强相关的示例环境的图;
11.图2是用于增强机器学习流水线语料库的系统的框图;
12.图3是示出用于增强机器学习流水线语料库以合成新机器学习流水线的示例方法的流程图的图;
13.图4是示出用于使与所接收的ml项目相关联的ml流水线集合中的第一ml流水线转变以确定第二ml流水线集合的示例方法的流程图的图;
14.图5是示出用于基于预定义的机器学习流水线来增强机器学习流水线语料库的示例性场景的图;
15.图6a是示出识别与示例性第一ml流水线相关联的第一ml模型的代码片段的示例性场景的图;
16.图6b是示出用于对从与预定义ml流水线集合相关联的预定义模型集合中选择的第二ml模型进行实例化的示例性场景的图;
17.图7是示出用于对从与预定义ml流水线集合相关联的预定义模型集合中选择的第二ml模型进行实例化的示例方法的流程图的图;
18.图8是示出用于识别与第一ml模型相关联的一个或更多个语句(statements)的示例方法的流程图的图;
19.图9是示出获得模型切片以识别第一ml模型的代码片段(code snippet)的示例方法的流程图的图;
20.图10是示出用于训练元学习模型的示例方法的流程图的图;以及
21.图11示出了训练元学习模型的示例性场景;
22.所有这些附图都是根据本公开内容中描述的至少一个实施方式的。
具体实施方式
23.本公开内容中描述的一些实施方式涉及用于增强机器学习流水线语料库以合成新的机器学习流水线的方法和系统。在本公开内容中,可以从存储在机器学习(ml)语料数据库中的多个ml项目中接收ml项目。此外,与所接收的ml项目相关联的第一ml流水线集合中的第一ml流水线可以基于预定义ml流水线集合来转变以确定第二ml流水线集合。本文中,第一ml流水线的转变可以对应于用与预定义ml流水线集合中的一个预定义ml流水线相关联的第二ml模型替换与第一ml流水线相关联的第一ml模型。此后,可以基于与所确定的第二ml流水线集合中的每一个第二ml流水线相关联的性能分数从所确定的第二ml流水线集合中选择一个或更多个ml流水线。此外,可以增强ml语料数据库以包括所选择的一个或更多个ml流水线以及与所接收的ml项目相关联的第一ml流水线集合。
24.根据本公开内容的一个或更多个实施方式,人工智能(ai)/机器学习(ml)的技术领域可以通过以计算系统可能能够增强ml流水线语料库以合成新ml流水线的方式配置计
算系统来改进。计算系统可以接收来自存储在ml语料数据库中的多个ml项目的ml项目。本文中,多个ml项目中的每一个ml项目可以包括数据集和适用于该数据集的ml流水线集合。计算系统可以基于预定义ml流水线集合使与所接收的ml项目相关联的第一ml流水线集合中的第一ml流水线转变,以确定第二ml流水线集合。本文中,第一ml流水线的转变可以对应于用与预定义ml流水线集合中的一个预定义ml流水线相关联的第二ml模型来替换与第一ml流水线相关联的第一ml模型。此外,第一ml流水线集合可以对应于与所接收的ml项目相关联的每个ml流水线。可以从第一ml流水线集合中选择第一ml流水线。此后,计算系统可以基于与所确定的第二ml流水线集合中的每一个第二ml流水线相关联的性能分数从所确定的第二ml流水线集合中选择一个或更多个ml流水线。此外,计算系统可以增强ml语料数据库以包括所选择的一个或更多个ml流水线以及与所接收的ml项目相关联的第一ml流水线集合。
25.用于生成ml流水线的传统方法可能需要对可能的ml流水线的大空间的显式搜索,以针对ml项目确定最优ml流水线。因此,用于自动生成ml流水线的传统技术可能不能生成准确的ml流水线,并且可能需要大量的计算时间和资源。另一方面,所公开的技术(由计算系统执行)可以包括使与所接收的ml项目相关联的第一ml流水线集合中的第一ml流水线转变,以确定第二ml流水线集合。本文中,第一ml流水线的转变可以对应于用与预定义ml流水线集合中的一个预定义ml流水线相关联的第二ml模型替换与第一ml流水线相关联的第一ml模型。此外,所公开的技术可以包括基于与所确定的第二ml流水线集合中的每一个第二ml流水线相关联的性能分数,从所确定的第二ml流水线集合中选择一个或更多个ml流水线。可以增强ml语料数据库以包括所选择的一个或更多个ml流水线和第一ml流水线集合。因此,所公开的技术可以选择可能具有高性能分数的这样的经转变的ml流水线,从而确保增强的ml语料数据库中的最终ml流水线集合的良好准确度。
26.本公开内容的电子装置可以遵循生成方法,由此元学习模型可以从由数据科学家针对其他数据集创建的现有ml流水线的语料库中学习,并且使用它来针对新的数据集有效地且最优地合成ml流水线。本公开内容可以实质上解决基于生成性学习的自动机器学习方法的关键挑战。本公开内容的电子装置可以使用数据增强技术来增强ml语料数据库(mlcorpus database),该数据增强技术可以通过用其他可行的选择代替在语料库的现有ml流水线中使用的ml模型来系统地使给定的ml流水线转变,以创建新的ml流水线群体。新的ml流水线群体可以用于向元学习模型提供更高质量且更一致的学习特征,使得元学习模型可以从增强的ml语料数据库中学习,并且可以随后针对用户数据集来合成新的更高质量的ml流水线。转变(mutation)可以采用人类编写的流水线的新颖抽象语法树(ast)级别分析来提取必需的程序元素并且以语法上良好形成的方式使其转变,从而考虑到人类编写的程序例如ml流水线通常可能包含的所有语法及风格变化。因此,可以有效地合成新的ml流水线。
27.参照附图对本公开内容的实施方式进行说明。
28.图1是表示根据本公开内容中描述的至少一个实施方式的与机器学习流水线语料库(machine learningpipeline corpus)的增强相关的示例环境的图。参照图1,示出了环境100。环境100可以包括电子装置102、服务器104、用户端装置106、数据库108和通信网络110。电子装置102、数据库104和用户端装置106可以经由通信网络110彼此通信地耦接。电
子装置102可以包括元学习模型(meta-learningmodel)102a。在图1中,还示出了用户112,其可以与电子装置102(或用户端装置106)相关联或操作电子装置102(或用户端装置106)。数据库108可以包括多个ml项目。例如,多个ml项目可以包括“n”个ml项目,例如ml项目-1 114、ml项目-2 116
……
和ml项目-n118。多个ml项目中的每一个可以包括数据集和适用于该数据集的ml流水线集合。例如,ml项目-1 114可以包括数据集114a和ml流水线集合114b。此外,ml项目-2 116可以包括数据集116a和ml流水线集合116b。类似地,ml项目-n118可以包括数据集118a和ml流水线集合118b。
29.图1中所示的“n”个ml项目仅作为示例呈现。在不偏离本公开内容的范围的情况下,多个ml项目可以包括仅两个ml项目或多于“n”个的ml项目。为了简洁起见,在图1中仅示出了“n”个ml项目。然而,在一些实施方式中,在不限制本公开内容的范围的情况下,可以存在多于“n”个的ml项目。
30.电子装置102可以包括适当的逻辑、电路系统和接口,电子装置102可以被配置成接收来自存储在机器学习(ml)语料数据库(例如,数据库108)中的多个ml项目的ml项目(例如,ml项目-1 114)。电子装置102还可以被配置成基于预定义ml流水线集合来使与所接收的ml项目相关联的第一ml流水线集合中的第一ml流水线转变以确定第二ml流水线集合。电子装置102还可以被配置成基于与所确定的第二ml流水线集合中的每一个第二ml流水线相关联的性能分数从所确定的第二ml流水线集合中选择一个或更多个ml流水线。电子装置102还可以被配置成增强ml语料数据库以包括所选择的一个或更多个ml流水线以及与所接收的ml项目相关联的第一ml流水线集合。电子装置102的示例可以包括但不限于计算装置、智能电话、蜂窝电话、移动电话、游戏装置、大型机器、服务器、计算机工作站和/或消费电子(ce)装置。
31.元学习模型102a可以包括适当的逻辑、电路系统、接口和/或代码,元学习模型102a可以被配置成使用元学习算法来基于先前训练的模型(例如,ml流水线)和数据帧或特征来生成预测模型。元学习模型102a可以从其他学习算法的输出中学习。例如,对于预测,元学习模型102a可以基于其他学习算法的输出来学习。在另一示例中,可以向元学习模型102a馈送其他ml模型(例如,神经网络模型、多项式回归模型、随机森林分类器、逻辑回归模型或集成学习模型)的参数以及对应于每个ml算法的数据帧/特征。元学习模型102a可以基于与输入的ml模型中的每一个相关联的参数和数据帧/特征来学习元特征和元启发式。在示例中,一旦元学习模型102a被训练,元学习模型102a就可以用于基于与ml项目相关联的输入特征或数据帧来生成ml流水线。
32.服务器104可以包括适当的逻辑、电路系统和接口和/或代码,服务器104可以被配置成接收来自存储在机器学习(ml)语料数据库(例如,数据库108)中的多个ml项目的ml项目。服务器104还可以被配置成使与所接收的ml项目相关联的第一ml流水线集合中的第一ml流水线转变,以确定第二ml流水线集合。服务器104还可以被配置成基于与所确定的第二ml流水线集合中的每一个第二ml流水线相关联的性能分数,从所确定的第二ml流水线集合中选择一个或更多个ml流水线。服务器104还可以被配置成增强ml语料数据库以包括所选择的一个或更多个ml流水线以及与所接收的ml项目相关联的第一ml流水线集合。服务器104可以被实现为云服务器,并且可以通过web应用、云应用、http请求、存储库操作、文件传输等来执行操作。服务器104的其他示例实现可以包括但不限于数据库服务器、文件服务
器、web服务器、媒体服务器、应用服务器、大型机服务器或云计算服务器。
33.在至少一个实施方式中,服务器104可以通过使用本领域普通技术人员公知的若干技术被实现为多个分布式的基于云的资源。本领域普通技术人员将理解,本公开内容的范围可以不限于将服务器104和电子装置102实现为两个单独的实体。在某些实施方式中,在不脱离本公开内容的范围的情况下,服务器104的功能可以全部或至少部分地结合在电子装置102中。在某些实施方式中,服务器104可以托管数据库108。可替选地,服务器104可以与数据库108分离,并且可以通信地耦接至数据库108。
34.用户端装置106可以包括适当的逻辑、电路系统、接口和/或代码,用户端装置106可以被配置成存储实时应用,在实时应用中,可以基于ml语料库的增强来合成新的ml流水线。在一些实施方式中,用户端装置106可以从用户(例如,数据科学家例如用户112)接收第一用户输入,并且基于所接收的第一用户输入来生成预定义ml流水线集合。在另一实施方式中,用户端装置106可以从用户(例如,数据科学家例如用户112)接收一个或更多个第二用户输入,并且基于一个或更多个第二用户输入来生成与多个ml项目中的每一个相关联的ml流水线集合。另外,用户端装置106可以从各种源(例如在线数据集储存库、代码储存库和在线开源项目)接收与多个项目相关联的多个数据集。用户端装置106可以被配置成将预定义ml流水线集合以及与多个项目相关联的多个ml流水线和多个数据集上传到服务器104。上传的多个ml流水线和多个数据集可以作为多个ml项目存储在数据库108中的ml语料数据库中。上传的预定义ml流水线集合也可以与多个ml项目一起存储在数据库108中。用户端装置106的示例可以包括但不限于移动装置、台式计算机、膝上型计算机、计算机工作站、计算装置、大型机器、服务器(例如云服务器)以及服务器组。
35.数据库108可以包括适当的逻辑、接口和/或代码,数据库108可以被配置成存储多个ml项目,其中,每个ml项目可以包括数据集和适用于该数据集的ml流水线集合。数据库108还可以存储预定义ml流水线集合。数据库108可以从关系或非关系数据库中的数据或常规或大数据存储中的逗号分隔值(csv)文件集合中得出。数据库108可以存储或缓存在装置例如服务器(例如,服务器104)或电子装置102上。存储数据库108的装置可以被配置成从电子装置102接收对来自多个机器学习(ml)项目的ml项目的查询。作为响应,数据库108的装置可以被配置成基于所接收的查询来检索并向电子装置102提供所查询的机器学习ml项目,包括针对所查询的ml项目的数据集和适用于该数据集的ml流水线集合。
36.在一些实施方式中,数据库108可以被托管在存储在相同或不同位置处的多个服务器上。可以使用包括处理器、微处理器(例如,以执行或控制一个或更多个操作的执行)、现场可编程门阵列(fpga)或专用集成电路(asic)的硬件来执行数据库108的操作。在一些其他实例中,数据库108可以使用软件来实现。
37.通信网络110可以包括通信介质,电子装置102、服务器104和用户端装置106可以通过该通信介质彼此通信。通信网络110可以是有线连接或无线连接之一。通信网络110的示例可以包括但不限于因特网、云网络、蜂窝或无线移动网络(例如长期演进和5g新无线电)、无线保真(wi-fi)网络、个人区域网(pan)、局域网(lan)或城域网(man)。环境100中的各种装置可以被配置成根据各种有线和无线通信协议连接至通信网络110。这样的有线和无线通信协议的示例可以包括但不限于传输控制协议和网际协议(tcp/ip)、用户数据报协议(udp)、超文本传输协议(http)、文件传输协议(ftp)、zig bee、edge、ieee 802.11、光保
真(li-fi)、802.16、ieee 802.11s、ieee 802.11g、多跳通信、无线接入点(ap)、装置到装置通信、蜂窝通信协议和蓝牙(bt)通信协议中的至少一个。
38.在操作中,电子装置102可以接收来自存储在ml语料数据库(例如,数据库108)中的多个ml项目的ml项目(例如,ml项目-1 114)。本文中,多个ml项目中的每一个可以包括数据集和适用于该数据集的ml流水线集合。ml项目可以帮助应用执行任务例如预测任务(例如,分类或回归),而不被编程为这样做。数据集可以包括与在该数据集上定义的特定ml任务相对应的历史数据。ml流水线(mlpipeline)或脚本或程序可以是针对特定ml预测任务训练ml模型的操作序列。可以理解,数据科学家或开发人员可以生成若干ml流水线和数据集,并且将这样的ml流水线和数据集作为知识库上传到因特网上的各种在线源代码和ml储存库上。可以从因特网下载知识库并且可以将其存储在数据库108中。电子装置102可以接收来自数据库108的多个ml项目的ml项目。例如,电子装置102可以接收ml项目-1 114。本文中,电子装置102可以接收与ml项目-1 114相对应的数据集114a和ml流水线集合114b。例如,在图5中还提供了多个ml项目的细节。
39.可以注意到,可以构成基于学习的机器学习方法的训练语料库的人类编写的ml流水线可能不包含针对每个数据集的最佳代表性ml流水线解决方案。更糟糕的是,流水线可能具有变化的质量,并且因此,在什么部件可以用于什么类型的数据集方面,可能缺少任何可学习的模式。在作为ml模型的选择的ml流水线中使用ml模型情况下,这个问题可能特别严重,并且可能显著地影响ml流水线的准确度。可以以许多方式例如在交叉验证、超参数优化等下来对人类编写的ml流水线进行实例化。语法和语义上正确的人类编写的ml流水线的安全重构可能是关键且具有挑战性的。因此,人类编写的ml流水线可能需要被进行转变。
40.电子装置102可以基于预定义ml流水线集合来使与所接收的ml项目相关联的ml流水线集合中的第一ml流水线转变,以确定第二ml流水线集合。本文中,第一ml流水线的转变可以对应于用与预定义ml流水线集合中的一个预定义ml流水线相关联的第二ml模型来替换与第一ml流水线相关联的第一ml模型。可以注意到,该转变可以系统地改变原始ml流水线的ml模型,以提高该ml流水线的准确度。如所讨论的,第一ml流水线可以是人类编写的,并且由于各种原因可能不是最优的。在示例中,编写与所接收的ml项目相关联的ml流水线集合的数据科学家可能不是专家,由于这些,可能无法使用最优ml模型。在另一示例中,与所接收的ml项目相关联的ml流水线集合可能不是最优的,因为针对数据集的最优模型不可用。因此,适用于与所接收的ml项目相对应的数据集的ml流水线集合可能需要被进行转变以提高其准确度。人类编写的ml流水线可能是语法和语义上不同的。因此,可能不存在用另一ml流水线代替原始ml流水线的通用模式。本公开内容的电子装置102可以基于预定义ml流水线集合使与所接收的ml项目相关联的第一ml流水线转变,以确定第二ml流水线集合。在实施方式中,第一ml流水线可以被转变以确定第二ml流水线。在替选实施方式中,第一ml流水线可以被转变以确定第二ml流水线集合。在实施方式中,电子装置102可以使与所接收的ml项目相关联的ml流水线集合中的每个ml流水线或所选择的ml流水线的组转变。例如,图3中还提供了第一ml流水线的转变的细节。
41.电子装置102可以基于与所确定的第二ml流水线集合中的每一个第二ml流水线相关联的性能分数从所确定的第二ml流水线集合中选择一个或更多个ml流水线。可以基于与所确定的第二ml流水线集合中的每一个第二ml流水线相关联的性能分数对第二ml流水线
集合中的每一个第二ml流水线进行排序。性能分数可以是与第二ml流水线集合中的对应ml流水线相关联的f1分数、r2分数等。对于给定的数据集和原始ml流水线,电子装置102可以以类似于数据科学家在数据集上执行ml流水线的方式在训练数据集上执行每个经转变的ml流水线。由于本公开内容的目的可以是用鲁棒ml流水线来增强机器学习流水线语料库,因此仅最佳的经转变的ml流水线可以与现有ml流水线一起被保留用于元学习模型训练。从所确定的第二ml流水线集合中选择的一个或更多个ml流水线可以是最佳ml流水线,其可以被保留用于元学习模型训练。例如,在图3中还提供了选择一个或更多个ml流水线的细节。
42.电子装置102可以增强数据库108中的ml语料数据库以包括所选择的一个或更多个ml流水线以及与所接收的ml项目(例如,ml项目-1114)相关联的第一ml流水线集合。增强可以是提高ml语料数据库的质量的标准技术。系统化数据增强可以用于改进ml语料数据库。一旦可以选择到一个或更多个ml流水线,电子装置102就可以将所选择的一个或更多个ml流水线添加至数据库108,以便提高数据库108的质量。在实施方式中,电子装置102可以将所选择的一个或更多个ml流水线连同第一ml流水线集合一起添加至数据库108。在另一实施方式中,电子装置102可以在数据库108中用所选择的一个或更多个ml流水线代替第一ml流水线集合。例如,在图5中还提供了ml语料数据库的增强的细节。
43.电子装置102可以基于使用可以在给定数据集上很好地执行的良好质量ml流水线来增强ml语料数据库以帮助改进元学习模型102a的训练。元学习模型102a可以生成ml流水线的抽象版本。因此,如果元学习模型102a的准确度低于特定的质量阈值,则所生成的ml流水线可能不是最优的。另一方面,如果元学习模型102a的质量良好或高于特定的质量阈值,则所生成的ml流水线可能更好。因此,如果元学习模型102a的训练仅基于可以直接从因特网获得的原始ml流水线,则元学习模型102a的质量可能是不可接受的,尽管在原始ml流水线的下载期间采取了预防措施。
44.可以在不脱离本公开内容的范围的情况下对图1进行修改、添加或省略。例如,环境100可以包括比本公开内容中示出和描述的元素更多或更少的元素。例如,在一些实施方式中,环境100可以包括电子装置102而不包括数据库108。另外,在一些实施方式中,在不偏离本公开内容的范围的情况下,数据库108和服务器104中的每一个的功能可以并入到电子装置102中。
45.图2是根据本公开内容中描述的至少一个实施方式的用于增强机器学习流水线语料库的系统的框图。结合图1的元素来说明图2。参照图2,示出了包括电子装置102的系统202的框图200。电子装置102可以包括处理器204、存储器206、元学习模型102a、输入/输出(i/o)装置208(包括显示装置208a)和网络接口210。
46.处理器204可以包括适当的逻辑、电路系统和接口,处理器204可以被配置成执行存储在存储器206中的指令集合。处理器204可以被配置成执行与要由电子装置102执行的不同操作相关联的程序指令。例如,一些操作可以包括接收机器学习(ml)项目、使第一ml流水线转变、从所确定的第二ml流水线集合中选择一个或更多个ml流水线以及增强ml语料数据库。处理器204可以基于本领域已知的多种处理器技术来实现。处理器技术的示例可以包括但不限于中央处理单元(cpu)、基于x86的处理器、精简指令集计算(risc)处理器、专用集成电路(asic)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)和其他处理器。
47.尽管在图2中被示出为单个处理器,但是处理器204可以包括任何数量的处理器,
cdma)、长期演进(lte)、第五代(5r)新无线电(nr)、码分多址(cdma)、时分多址(tdma)、蓝牙、无线保真(wi-fi)(例如ieee 802.11a、ieee 802.11b、ieee 802.11g或ieee 802.11n)、互联网协议语音(voip)、轻保真(li-fi)、全球微波接入互操作性(wi-max)、电子邮件协议、即时消息收发和短消息服务(sms)。
52.在不脱离本公开内容的范围的情况下,可以对示例电子装置102进行修改、添加或省略。例如,在一些实施方式中,示例电子装置102可以包括出于简洁目的可能未明确示出或描述的任何数量的其他部件。
53.图3是示出根据本公开内容的实施方式的用于增强机器学习流水线语料库以合成新的机器学习流水线的示例方法的流程图的图。结合图1和图2的元素来描述图3。参照图3,示出了流程图300。流程图300中所示的方法可以在框302处开始,并且可以由任何合适的系统、设备或装置例如由图1的示例电子装置102或图2的204执行。尽管用离散的框示出,但是取决于特定的实现方式,与流程图300的一个或更多个框相关联的步骤和操作可以被划分为另外的框、被组合成更少的框或者被删除。
54.在框302处,可以接收来自存储在机器学习(ml)语料数据库(例如,数据库108)中的多个ml项目的ml项目(例如,ml项目-1 114)。本文中,多个ml项目中的每一个可以包括数据集和适用于该数据集的ml流水线集合。处理器204可以被配置成接收来自存储在ml语料数据库(例如,数据库108)中的多个ml项目的ml项目。ml项目可以帮助应用执行任务例如预测任务(例如,分类或回归),而不被编程为这样做。数据集可以包括与在该数据集上定义的特定ml任务相对应的历史数据。ml流水线可以包括可以用于针对特定ml任务训练ml模型的操作序列。可以理解,数据科学家或开发人员可以生成若干ml流水线和数据集,并且将这样的ml流水线和数据集作为知识库上传到因特网上的各种在线源代码和ml储存库上。可以从因特网下载知识库并且可以将其存储在数据库108中。电子装置102可以接收来自数据库108的多个ml项目的ml项目。例如,电子装置102可以接收ml项目-1 114。本文中,电子装置102可以接收与ml项目-1 114相对应的数据集114a和ml流水线集合114b。
55.在框304处,与所接收的ml项目相关联的第一ml流水线集合中的第一ml流水线可以基于预定义ml流水线集合来被进行转变,以确定第二ml流水线集合。本文中,第一ml流水线的转变可以对应于用与预定义ml流水线集合中的一个预定义ml流水线相关联的第二ml模型替换与第一ml流水线相关联的第一ml模型。此外,第一ml流水线集合可以对应于与所接收的ml项目相关联的每个ml流水线。可以从第一ml流水线集合中选择第一ml流水线。处理器204可以被配置成基于预定义ml流水线集合中的一个预定义ml流水线来使与所接收的ml项目相关联的第一ml流水线转变,以确定第二ml流水线集合。可以注意到,该转变可以系统地改变原始ml流水线的ml模型,以提高该ml流水线的准确度。如所讨论的,第一ml流水线可以是人类编写的,并且由于各种原因可能不是最优的。在示例中,可以编写与所接收的ml项目相关联的第一ml流水线集合的数据科学家可能不是专家,由于这些,可能无法使用最优ml模型。在另一示例中,与所接收的ml项目相关联的第一ml流水线集合可能不是最优的,因为针对数据集的最优模型不可用。因此,与所接收的ml项目相关联的第一ml流水线集合可能需要进行转变以提高其准确度。人类编写的ml流水线可能是语法和语义上不同的。因此,可能不存在可以用于由另一ml流水线代替原始ml流水线的通用模式。处理器204可以基于预定义ml流水线集合来使与所接收的ml项目相关联的第一ml流水线转变,以确定第二ml
流水线集合。在实施方式中,第一ml流水线可以被进行转变以确定一个第二ml流水线。在替选实施方式中,第一ml流水线可以被进行转变以确定包括多个第二ml流水线的第二ml流水线集合。在实施方式中,电子装置102可以逐个地使与所接收的ml项目相关联的ml流水线集合中的每个ml流水线转变。例如,在图5中还提供了第一ml流水线的转变的细节。
56.在框306处,可以基于与所确定的第二ml流水线集合中的每一个第二ml流水线相关联的性能分数来从所确定的第二ml流水线集合中选择一个或更多个ml流水线。处理器204可以被配置成基于与所确定的第二ml流水线集合中的每一个第二ml流水线相关联的性能分数,从所确定的第二ml流水线集合中选择一个或更多个ml流水线。可以基于与所确定的第二ml流水线集合中的每一个第二ml流水线相关联的性能分数对第二ml流水线集合中的每一个第二ml流水线进行排序。对于给定的数据集和原始ml流水线,电子装置102可以以类似于数据科学家在数据集上执行ml流水线的方式在训练数据集上自动执行每个经转变的ml流水线。由于本公开内容的目的可以是用鲁棒ml流水线来增强机器学习流水线语料库,因此仅最佳的ml经转变的流水线可以与现有ml流水线一起被保留。从所确定的第二ml流水线集合中选择的一个或更多个ml流水线可以是最佳ml流水线,其可以被保留用于元学习模型训练。
57.在实施方式中,与确定的第二ml流水线集合中的每一个第二ml流水线相关联的性能分数可以对应于但不限于与对应ml流水线相关联的f1分数或r2分数。在示例中,ml流水线的性能分数可以对应于ml流水线的f1分数与r2分数的比率。可以理解,f1分数可以基于给定ml模型的精度和召回率(recall)的调和平均值来确定针对给定数据集的给定ml模型的准确度。本文中,可以基于真阳性结果的数量与包括真阳性和假阳性的阳性结果的总数的比率来确定模型的精度。可以基于真阳性结果的数量与真阳性和假阴性的总数的比率来确定给定ml模型的召回率或灵敏度。f1分数可以基于等式(1)来确定,如下:
[0058][0059]
f1分数可以具有在“0”到“1”之间的范围。本文中,当给定ml模型的精度和召回率可能接近“1”时,f1分数可能接近“1”。类似地,当给定ml模型的精度或召回率可能接近“0”时,f1分数可以是“0”。在实施方式中,可以确定与所确定的第二ml流水线集合中的每一个第二ml流水线相关联的f1分数,以选择一个或更多个ml流水线。在示例中,所确定的ml流水线集合可以包括五个ml流水线,例如f1分数为“0.2”的ml流水线-1、f1分数为“0.27”的ml流水线-2、f1分数为“0.55”的ml流水线-3、f1分数为“0.65”的ml流水线-4以及f1分数为“0.72”的ml流水线-5。本文中,ml流水线-5可以是五个ml流水线中最准确的ml流水线。因此,可以选择ml流水线-5作为一个或更多个ml流水线。
[0060]
r2分数(也称为r平方分数)可以是可以指示给定ml模型可以适合于数据集的程度的系数。r2分数可以描绘自变量中的变化可以如何影响给定ml模型的因变量。可以基于回归或残差的平方和(ssr)与总平方和(tss)的比率来确定r2分数。本文中,ssr可以是预测值距所有因变量的平均值的总变化。tss可以是实际值距平均值的总变化。类似于f1分数,r2分数可以具有在“0”到“1”之间的值。当r2分数为“1”时,因变量的变化可以完全由自变量的变化来说明。即,当r2分数的值接近“1”时,给定的ml模型可以更好地适合于数据集。在实施方式中,可以确定与所确定的第二ml流水线集合中的每一个第二ml流水线相关联的r2分
数,以选择一个或更多个ml流水线。在示例中,所确定的第二ml流水线集合可以包括五个ml流水线,例如r2分数为“0.4”的ml流水线-1、r2分数为“0.5”的ml流水线-2、r2分数为“0.75”的ml流水线-3、r2分数为“0.65”的ml流水线-4以及r2分数为“0.6”的ml流水线-5。本文中,由于ml流水线-3在五个ml流水线中可以具有最高的r2分数,因此ml流水线-3在五个ml流水线中可以是最适合的。因此,可以选择ml流水线-3作为一个或更多个ml流水线。
[0061]
在实施方式中,从所确定的第二ml流水线集合中选择的一个或更多个ml流水线可以包括以下之一,但不限于:与最大性能分数相关联的ml流水线(来自所确定的第二ml流水线集合)、可以与阈值以上的性能分数相对应的第一组ml流水线(来自所确定的第二ml流水线集合)或者可以与基于性能分数的前预定义数量个ml流水线相对应的第二组ml流水线(来自所确定的第二ml流水线集合)。
[0062]
例如,所选择的一个或更多个ml流水线可以包括与最大性能分数(例如,f1分数或r2分数)相关联的ml流水线(来自所确定的第二ml流水线集合)。本文中,可以在所确定的第二ml流水线集合中选择具有最大性能分数的ml流水线作为一个或更多个ml流水线。在示例中,所确定的ml流水线集合可以包括七个ml流水线,例如r2分数为“0.4”的ml流水线-1、r2分数为“0.5”的ml流水线-2、r2分数为“0.75”的ml流水线-3、r2分数为“0.65”的ml流水线-4、r2分数为“0.6”的ml流水线-5、r2分数为“0.8”的ml流水线-6以及r2分数为“0.49”的ml流水线-7。本文中,ml流水线-6具有最高的r2分数0.8。因此,可以选择ml流水线-6作为一个或更多个ml流水线。
[0063]
在另一示例中,所选择的一个或更多个ml流水线可以包括可以与阈值以上的性能分数相对应的第一组ml流水线(来自所确定的第二ml流水线集合)。本文中,阈值可以是可以用于选择一个或更多个ml流水线的性能分数(例如,f1分数或r2分数)的值。考虑包括七个ml流水线的所确定的第二ml流水线集合的先前场景并且阈值为“0.7”。本文中,可以选择ml流水线-3(具有“0.75”的r2分数)和ml流水线-4(具有“0.8”的r2分数)作为可以具有大于阈值(例如,“0.7”)的性能分数(例如,r2分数)的一个或更多个ml流水线。
[0064]
在另一示例中,所选择的一个或更多个ml流水线可以包括可以与基于性能分数的前预定义数量个ml流水线相对应的第二组ml流水线(来自所确定的第二ml流水线集合)。处理器204可以基于所确定的第二ml流水线集合中的每一个第二ml流水线的性能来选择前k个(例如,前3个)ml流水线。考虑包括七个ml流水线的所确定的第二ml流水线集合的先前场景并且预定义数值(即,k)为三。在这样的情况下,可以选择前三个ml流水线(基于各自的性能分数)作为一个或更多个ml流水线。例如,所选择的一个或更多个ml流水线可以包括r2分数为“0.69”的ml流水线-2、r2分数为“0.75”的ml流水线-3以及r2分数为“0.8”的ml流水线-4。
[0065]
在框308处,可以增强ml语料数据库(例如,数据库108)以包括所选择的一个或更多个ml流水线以及与接收的ml项目相关联的第一ml流水线集合。处理器204可以被配置成增强ml语料数据库(即,数据库108)以包括所选择的一个或更多个ml流水线以及与所接收的ml项目相关联的第一ml流水线集合。一旦选择了一个或更多个ml流水线,电子装置102就可以将所选择的一个或更多个ml流水线添加至数据库108,以便提高存储在数据库108中的ml语料数据库的质量。在实施方式中,电子装置102可以将所选择的一个或更多个ml流水线连同第一ml流水线集合一起存储到数据库108。在另一实施方式中,电子装置102可以在数
据库108中用所选择的一个或更多个ml流水线来代替第一ml流水线集合。控制可以传递到结束。
[0066]
尽管流程图300被示出为例如302、304、306和308的离散操作。然而,在某些实施方式中,在不脱离所公开的实施方式的本质的情况下,取决于特定实现方式,这样的离散的操作还可以被划分成另外的操作、被组合成更少的操作或者被删除。
[0067]
图4是示出根据本公开内容的实施方式的用于使与所接收的ml项目相关联的ml流水线集合中的第一ml流水线转变以确定第二ml流水线集合的示例方法的流程图的图。结合图1、图2和图3的元素来描述图4。参照图4,示出了流程图400。流程图400中所示的方法可以在402处开始,并且可以由任何合适的系统、设备或装置例如由图1的示例电子装置102或图2的204执行。尽管用离散的框示出,但是取决于特定的实现方式,与流程图400的一个或更多个框相关联的步骤和操作可以被划分为另外的框、被组合成更少的框或者被删除。
[0068]
在框402处,可以识别与第一ml流水线相关联的第一ml模型的代码片段。本文中,代码片段(code snippet)可以是第一ml流水线的可以实现第一ml模型的代码部分。处理器204可以被配置成识别与第一ml流水线相关联的第一ml模型的代码片段。由于仅第一ml流水线的代码的一部分就可以实现第一ml模型,因此特定部分可以被识别并且可以被转变,以便获得第二ml模型。例如,在图9中还提供了第一ml模型的代码片段的识别的细节。
[0069]
在框404处,可以确定与所识别的代码片段相关联的一个或更多个输入参数。处理器204可以被配置成确定与所识别的代码片段相关联的一个或更多个输入参数。为了保持第二ml模型的功能与第一ml模型的功能相同,与所识别的第一ml模型的代码片段相对应的一个或更多个输入参数可以被馈送到第二ml模型。因此,所识别的代码片段的一个或更多个输入参数可以被确定,并且稍后被馈送到第二ml模型,以从第二ml模型获得等效输出,该第二ml模型可以基于第一ml模型的转变来确定。例如,在图6a中还提供了与所识别的代码片段相关联的一个或更多个输入参数的识别的细节。
[0070]
在实施方式中,所确定的与所识别的代码片段相关联的一个或更多个输入参数可以包括以下中的至少一个:与第一ml模型相关联的训练数据集、测试数据集和超参数集合。本文中,训练数据集可以用于基于与第一ml模型相关联的权重的更新来训练第一ml模型。测试数据集可以用于测试经训练的第一ml模型,以检查经训练的第一ml模型的准确度是否在允许的限度内。超参数集合可以对应于可以控制第一ml模型的学习的参数集合。例如,学习速率、神经网络层的数量、每个神经网络层中的神经元数量等可以对应于超参数集合。处理器204可以收集所识别的代码片段中的每个应用编程接口(api)中的一个或更多个输入参数中的所有读访问。
[0071]
在框406处,可以从与预定义ml流水线集合相关联的预定义模型集合中选择第二ml模型。处理器204可以被配置成从与预定义ml流水线集合相关联的预定义模型集合中选择第二ml模型。预定义模型集合可以是可能已经创建的ml模型。例如,预定义模型集合可以对应于人类编写的ml模型,其可以被创建为针对某些应用场景和数据集的模板ml模型。预定义模型集合可以存储在数据库108中。处理器204可以接收来自数据库108的与预定义ml流水线集合相关联的预定义模型集合。可替选地,预定义模型集合可以预存储在存储器206中,并且处理器204可以从存储器206中检索预定义模型集合。一旦可以接收/检索到预定义模型集合,处理器204就可以从预定义模型集合中选择第二ml模型。例如,在图5中还提供了
选择第二ml模型的细节。
[0072]
在框408处,可以基于在第一ml流水线中用所选择的第二ml模型替换第一ml模型来对所选择的第二ml模型进行实例化。处理器204可以被配置成基于在第一ml流水线中用所选择的第二ml模型替换第一ml模型来对所选择的第二ml模型进行实例化。本文中,可以用所选择的第二ml模型来代替所识别的代码片段。与所识别的代码片段相关联的一个或更多个输入参数可以被提供给所选择的第二ml模型。由于仅第一ml流水线中与第一ml模型相对应的所识别的代码片段可以被所选择的第二ml模型代替,并且一个或更多个输入参数可以是相同的,因此实例化后的第二ml模型的功能可以保持与第一ml模型的功能相同。例如,在图7中还提供了第二ml模型的实例化的细节。控制可以传递到结束。
[0073]
尽管流程图400被示出为例如402、404、406和408的离散操作。然而,在某些实施方式中,在不脱离所公开的实施方式的本质的情况下,取决于特定实现方式,这样的离散的操作还可以被划分成另外的操作、被组合成更少的操作或者被删除。
[0074]
图5是根据本公开内容中描述的至少一个实施方式的用于基于预定义的机器学习流水线来增强机器学习流水线语料库的示例性场景的图。结合来自图1、图2、图3和图4的元素来描述图5。参照图5,示出了示例性场景500。示例性场景500可以包括数据库108、第一ml流水线502、代码片段识别器504、代码片段506、输入参数查找器508、第一ml模型510、预定义模型集合512、实例化块514、第二ml流水线集合516、ml流水线评估器518、一个或更多个ml流水线520和增强块522。数据库108可以包括多个ml项目,包括“n”个ml项目,例如ml项目-1 114、ml项目-2 116
……
和ml项目-n 118。多个ml项目中的每一个可以包括数据集和适用于该数据集的ml流水线集合。ml项目-1 114可以包括数据集114a和ml流水线集合114b,以及ml项目-2 116可以包括数据集116a和ml流水线集合116b。类似地,ml项目-n118可以包括数据集118a和ml流水线集合118b。
[0075]
图5所示的“n”个ml项目仅作为示例呈现。在不偏离本公开内容的范围的情况下,多个ml项目可以仅包括两个ml项目或者多于“n”个的ml项目。为了简洁起见,图5中仅示出了“n”个ml项目。然而,在一些实施方式中,在不限制本公开内容的范围的情况下,可以存在多于“n”个的ml项目。
[0076]
处理器204可以被配置成接收来自存储在ml语料数据库(例如,数据库108)中的多个ml项目的机器学习ml项目。本文中,多个ml项目中的每一个可以包括数据集和适用于该数据集的ml流水线集合。机器学习ml项目可以帮助应用执行任务例如预测,而不被编程为这样做。数据集可以包括针对对应机器学习(ml)项目的训练数据集、验证数据集和测试数据集。训练数据集可以用于训练与机器学习(ml)项目相对应的ml模型。验证数据集可以用于验证与机器学习(ml)项目相对应的经训练的ml模型。验证数据集还可以增进训练数据集的准确度,并且可以防止给定ml模型的过拟合或欠拟合。测试数据集可以用于测试经训练的ml模型,以检查经训练的ml模型的准确度是否在允许的限度内。ml流水线可以是包括针对特定ml预测任务训练ml模型的操作序列的脚本或程序。可以理解的是,数据科学家或开发人员可以生成若干ml流水线和数据集,并且将这样的ml流水线和数据集作为知识库上传到因特网上的各种在线源代码和ml储存库。可以从因特网下载知识库并且可以将其存储在数据库108中。电子装置102可以接收来自数据库108的多个ml项目的ml项目。例如,电子装置102可以接收ml项目-1 114。本文中,电子装置102可以接收与ml项目-1 114相对应的数
据集114a和ml流水线集合114b。ml流水线集合114b中的每个ml流水线可以一个接一个地被转变。例如,可以选择第一ml流水线502以进行转变。
[0077]
处理器204可以被配置成识别与第一ml流水线502相关联的第一ml模型的代码片段506。本文中,代码片段506可以是第一ml流水线502的可以实现第一ml模型的代码部分。由于仅第一ml流水线502的代码的一部分就可以实现第一ml模型,因此该特定部分可以被转变以便获得第二ml模型。为了识别与第一ml流水线502相关联的第一ml模型的代码片段506,第一ml流水线502可以被提供给代码片段识别器504。例如,在图6a中还提供了第一ml模型的代码片段506的识别的细节。
[0078]
处理器204可以被配置成通过使用输入参数查找器508来确定与所识别的代码片段506相关联的一个或更多个输入参数。输入参数查找器508可以被馈送所识别的代码片段506,以确定与所识别的代码片段506相关联的一个或更多个输入参数。一个或更多个输入参数可以包括训练数据集、测试数据集和超参数。为了保持第二ml模型的功能与第一ml模型的功能相同,与所识别的第一ml模型的代码片段506相对应的一个或更多个输入参数也可以被馈送到第二ml模型。因此,可以确定所识别的代码片段506的一个或更多个输入参数。在图5中,具有一个或更多个输入参数的第一ml模型(即,具有输入参数的ml模型)被表示为第一ml模型510。例如,在图6a中还提供了与所识别的代码片段506相关联的一个或更多个输入参数的识别的细节。
[0079]
处理器204可以被配置成从与预定义ml流水线集合相关联的预定义模型集合512中选择第二ml模型。预定义模型集合512可以是已经创建的ml模型。与预定义ml流水线集合相关联的预定义模型集合512可以存储在数据库108中,或者可以预存储在存储器206中。因此,在预定义模型集合512存储在数据库108中的情况下,处理器204可以从数据库108接收预定义模型集合512,或者可替选地在预定义模型集合512预存储在存储器206中的情况下,处理器204可以从存储器206中检索预定义模型集合512。
[0080]
处理器204可以被配置成使用实例化块514基于在第一ml流水线502中用所选择的第二ml模型替换第一ml模型510来对所选择的第二ml模型进行实例化。可以基于在第一ml流水线502中用所选择的第二ml模型替换第一ml模型510来对所选择的第二ml模型进行实例化。本文中,可以用所选择的第二ml模型的代码片段来代替所识别的代码片段506。与所识别的代码片段506相关联的一个或更多个输入参数可以被提供给所选择的第二ml模型。由于仅第一ml流水线502中与第一ml模型510相对应的所识别的代码片段506可以被所选择的第二ml模型代替,因此第一ml流水线502在转变后的功能可以保持相同。在用第二ml模型替换第一ml模型510之后,可以确定第二ml流水线集合516。例如,参照图5,第二ml流水线集合516可以包括三个ml流水线。例如,在图9中还提供了第二ml模型的实例化的细节。
[0081]
处理器204可以被配置成基于与所确定的第二ml流水线集合516中的每一个第二ml流水线相关联的性能分数,从所确定的第二ml流水线集合516中选择一个或更多个ml流水线。ml流水线评估器518可以确定与所确定的第二ml流水线集合516中的每一个第二ml流水线相关联的性能分数。与所确定的第二ml流水线集合516中的每一个第二ml流水线相关联的性能分数可以对应于与对应的ml流水线相关联的f1分数或r2分数中的至少一个。在实施方式中,从所确定的第二ml流水线集合516中选择的一个或更多个ml流水线可以包括以下之一,但可以不限于:来自所确定的第二ml流水线集合516的与最大性能分数相关联的ml
流水线;来自所确定的第二ml流水线集合516的与阈值以上的性能分数相对应的第一组ml流水线;或者来自所确定的第二ml流水线集合516的与基于性能分数的前预定义数量个ml流水线相对应的第二组ml流水线。参照图5,所确定的第二ml流水线集合516包含三个ml流水线。所选择的一个或更多个ml流水线520可以包括基于每个ml流水线的性能分数从所确定的第二ml流水线集合516中选择的两个ml流水线(例如,前两个ml流水线)。例如,在图3中还描述了从所确定的第二ml流水线集合516中选择一个或更多个ml流水线。
[0082]
处理器204可以使用增强块522来增强数据库108,以包括所选择的一个或更多个ml流水线520以及与所接收的ml项目-1 114相关联的第一ml流水线集合502。一旦选择了一个或更多个ml流水线520,处理器204就可以将所选择的一个或更多个ml流水线520添加至数据库108,以便提高数据库108的质量。在实施方式中,电子装置102可以将所选择的一个或更多个ml流水线520连同第一ml流水线集合502一起添加到数据库108。在另一实施方式中,电子装置102可以在数据库108中用所选择的一个或更多个ml流水线520来代替第一ml流水线502。类似地,与多个ml项目(例如ml项目-1 114、ml项目-2 116和ml项目-n118)中的每一个相关联的第一ml流水线中的每一个可以被进行转变,并且它们对应的所选择的一个或更多个ml流水线可以被添加以增强数据库108。参照图5,在增强之后,与ml项目-1 114相对应的ml流水线集合114b可以被改变为ml流水线集合524,与ml项目-2 116相对应的ml流水线集合116b可以被改变为ml流水线集合526,并且与ml项目-n118相对应的ml流水线集合118b可以被改变为ml流水线集合528。然后,数据库108的增强可以用于向元学习模型102a提供更高质量和更一致的学习流水线/特征,以从语料库中学习,并且随后针对其他数据集而合成新的更高质量的ml流水线。
[0083]
应当注意,图5的场景500用于示例性目的,并且不应当解释为限制本公开内容的范围。
[0084]
图6a是示出根据本公开内容的实施方式的识别与示例性第一ml流水线相关联的第一ml模型的代码片段的示例性场景的图。结合来自图1、图2、图3、图4和图5的元素来描述图6a。参照图6a,示出了示例性场景600a。示例性场景600a可以包括第一ml流水线602。第一ml流水线602可以包括语句-1 604、语句-2 606、语句-3 608、语句-4 610、语句-5 612和语句-6 614。如本文所述,电子装置102或处理器204可以识别与第一ml流水线602相关联的第一ml模型的代码片段。
[0085]
处理器204可以确定对应于第一ml流水线602的一个或更多个输入参数。例如,参照图6a,所确定的一个或更多个输入参数可以包括“x_train”、“x_test”、“y_train”和“y_test”。所有赋值表达式可以对应于与超参数集合相关联的键值对(key-value pairs)。例如,“family=sm.families.binomial()”可以对应于可以基于二项式分布定义第一ml模型的超参数键值对。api级别信息可以用于将现有变量映射到“x_train”、“x_test”、“y_train”和“y_test”。参照图6a,第一ml流水线602可以被划分成代码片段616和代码片段618。代码片段616可以对应于与第一ml模型相关联的第一ml流水线602的不相关部分。代码片段618可以对应于与第一ml流水线602相关联的第一ml模型。处理器204可以识别对应于与第一ml流水线602相关联的第一ml模型的代码片段618,并且可以将代码片段616标识为与第一ml流水线602相关联的不相关部分。因此,处理器204可以仅提取对应于与第一ml流水线602相关联的第一ml模型的代码片段618以进行实例化。例如,参照图6a,可以基于代码
片段618中的语句-3 608和语句-4 610来识别第一ml模型。例如,在图8中还提供了第一ml模型的代码片段的识别的细节。
[0086]
图6b是示出根据本公开内容的实施方式的用于对从与预定义ml流水线集合相关联的预定义模型集合中选择的第二ml模型进行实例化的示例性场景的图。结合来自图1、图2、图3、图4、图5和图6a的元素来描述图6b。参照图6b,示出了示例性场景600b。示例性场景600b可以包括代码片段620和代码片段622。代码片段620可以包括语句-7 624和语句-8 626。代码片段620可以包括语句-9 628、语句-10 630和语句-11632。如本文所述,电子装置102或处理器204可以对从与预定义ml流水线集合相关联的预定义模型集合中选择的第二ml模型进行实例化。
[0087]
参照图6b,可以基于用所选择的第二ml模型替换第一ml模型来对所选择的第二ml模型进行实例化。代码片段620可以对应于与第一ml流水线相关联的第一ml模型。代码片段622可以对应于所选择的第二ml模型。处理器204可以基于在第一ml流水线中用代码片段622(包括语句-9 628、语句-10 630和语句-11 632)替换代码片段620(包括语句-7 624和语句-8 626)来对所选择的第二ml模型进行实例化。因此,在第一ml流水线中第一ml模型可以被第二ml模型代替以进行实例化。可以注意到,可以针对代码片段620确定的第一ml模型的一个或更多个输入参数可以作为输入参数被馈送到如由代码片段622定义的第二ml模型。例如,参照图6b,一个或更多个输入参数可以是“y_train”和“x_train_sm”。所选择的第二ml模型的实例化可以产生第二ml流水线集合的确定。例如,在图7中还提供了所选择的第二ml模型的实例化的细节。
[0088]
参照图6a和图6b,可以注意到,尽管已经通过使用基于web的计算笔记本以高级编程语言(例如,“python”编程语言)示出了示例性场景600a和600b,但本公开内容的教导可以对以不同语言和开发平台编写的其他ml流水线有效。还可以注意到,基于web的计算笔记本可以对应于尤其是在开发阶段期间可以用于开发/表示ml流水线的计算结构。例如,基于web的计算笔记本可以用于开发ml项目的脚本部分(例如,ml流水线)。
[0089]
应当注意,图6a和图6b的场景600a和600b分别用于示例性目的,并且不应当解释为限制本公开内容的范围。
[0090]
图7是示出根据本公开内容中描述的至少一个实施方式的用于对从与预定义ml流水线集合相关联的预定义模型集合中选择的第二ml模型进行实例化的示例方法的流程图。结合来自图1、图2、图3、图4、图5、图6a和图6b的元素来描述图7。参照图7,示出了流程图700。流程图700中所示的方法可以在框702处开始,并且可以由任何合适的系统、设备或装置例如由图1的示例电子装置102或图2的处理器204来执行。尽管用离散的框示出,但是取决于特定的实现方式,与流程图700的一个或更多个框相关联的步骤和操作可以被划分成另外的框、被组合成更少的框或者被删除。
[0091]
在框702处,可以选择与第二ml模型相关联的预定义模板。所选择的预定义模板可以被注释有所识别的第一ml模型的代码片段的一个或更多个输入参数。处理器204可以被配置成选择与第二ml模型相关联的预定义模板。本文中,与第二ml模型相关联的预定义模板可以不同于与第一ml模型相关联的模板。为了保持第二ml模式的功能与第一ml模型的功能相同,可以将所识别的第一ml模型的代码片段的一个或更多个输入参数馈送给与第二ml模型相关联的预定义模板。例如,参照图6b,代码片段620可以是所识别的第一ml模型的代
码片段。本文中,一个或更多个输入参数可以包括“y_train”和“x_train_sm”。代码片段620还可以包括超参数,该超参数可以定义与第一ml模型相关联的分布族(例如,二项式分布族(binomial distributionfamily)),如语句-7 624中所提供的。与第一ml模型相关联的模板可以基于二项式分布执行回归。与第二ml模型相关联的预定义模板可以包括“randomforestregressor”函数调用(按照代码片段622的语句-9 628和语句-10 630)而不是与“二项式”分布族相关联的函数调用来执行回归。此外,在语句-11 632处,输入参数“y_train”和“x_train_sm”可以作为参数被传递到与第二ml模型相关联的预定义模板,以便保持第二ml模型的功能与第一ml模型的功能相同。
[0092]
在框704处,可以基于使用所注释的一个或更多个输入参数对所选择的预定义模板中的一个或更多个函数调用进行参数化来构建第二ml模型的代码片段。处理器204可以被配置成基于使用所注释的一个或更多个输入参数对所选择的预定义模板中的一个或更多个函数调用进行参数化来构建第二ml模型的代码片段。本文中,参数化可以用于将所注释的一个或更多个输入参数的值传递给所选择的预定义模板中的一个或更多个函数调用。换句话说,指向所选择的预定义模板中的适当的洞(holes)的先前收集的变量名可以被插入以构建新的模型片段,例如第二ml模型的代码片段622。例如,参照图6b,第二ml模型的代码片段622可以包括“randomforestregressor”作为函数调用。本文中,语句-9 628可以调用“randomforestregressor”函数,该函数可以在库“sklearn.ensemble”中定义。代码片段622的语句-10 630可以将“randomforestregressor”函数赋给变量“logm3”。如语句-11 632中所示,可以将所注释的一个或更多个输入参数例如“y_train”和“x_train_sm”传递到与变量“logm3”相关联的“拟合(fit)”函数调用中,以构建第二ml模型的代码片段622。
[0093]
在框706处,可以用所构建的第二ml模型的代码片段622代替所识别的第一ml模型的代码片段620,以对第二ml模型进行实例化。处理器204可以被配置成用所构建的第二ml模型的代码片段来代替所识别的第一ml模型的代码片段620,以对第二ml模型进行实例化。第二ml模型的功能可以与第一ml模型的功能相同,因为对于第一ml模型和第二ml模型两者而言输入参数可以相同。然而,在第二ml模型中调用的一个或更多个函数可以不同于在第一ml模型中调用的对应函数。因此,第一ml模型的代码片段620可以被与第二ml模型相关联的代码片段622替换,以对第二ml模型进行实例化。控制可以传递到结束。
[0094]
虽然流程图700被示出为例如702、704和706的离散操作。然而,在某些实施方式中,在不脱离所公开的实施方式的本质的情况下,取决于特定实现方式,这样的离散的操作还可以被划分成另外的操作、被组合成更少的操作或者被删除。
[0095]
图8是根据本公开内容中所描述的至少一个实施方式的用于识别与第一ml模型相关联的一个或更多个语句的示例方法的流程图的图。结合来自图1、图2、图3、图4、图5、图6a、图6b和图7的元素来描述图8。参照图8,示出了流程图800。流程图800中所示的方法可以在802处开始,并且可以由任何合适的系统、设备或装置例如由图1的示例电子装置102或图2的处理器204来执行。尽管用离散的框示出,但是取决于特定的实现方式,与流程图800的一个或更多个框相关联的步骤和操作可以被划分成另外的框、被组合成更少的框或者被删除。
[0096]
在框802处,可以构建与第一ml流水线相关联的抽象语法树(ast)。处理器204可以被配置成构建与第一ml流水线相关联的抽象语法树(ast)。可以理解,代码的ast可以是形
式语言中编程语言代码的抽象语法框架的树表示。ast可能不包括代码或代码的语法的每个细节,而是ast可能仅包括形式语言中的抽象语法,例如“while”块、“if”语句、“条件分支”、“比较”语句、“赋值”语句、“变量名”等等。树的每个节点可以表示代码的语法结构。因此,可以基于通过树以形式语言的形式对第一ml流水线中语句的抽象语法的表示来构建与第一ml流水线相关联的ast。ast可以帮助容易地操纵和表示第一ml流水线中与第一ml模型相关联的语句。例如,参照图6a,可以构建第一ml流水线602的ast。
[0097]
在框804处,可以基于构建的ast来确定第一ml流水线中与预测函数相关联的最后一个应用编程接口(api)调用。处理器204可以被配置成基于构建的ast来确定第一ml流水线中与预测函数相关联的最后一个应用编程接口(api)调用。可以理解,api可以用于基于可以由api函数公开的api端点来检索数据。为了接收数据,请求(也称为api调用)可以被发送至与可以由api函数公开的api端点相关联的地址。预测函数可以基于给定ml模型的训练来预测值。第一ml流水线中的预测函数可以基于第一ml模型的训练来进行预测。参照图6a,第一ml流水线602中的预测函数可以在语句-6 614中使用输入参数“x_test”进行预测。处理器204可以基于构建的ast来确定第一ml流水线602中与预测函数相关联的最后一个api调用。例如,参照图6a,语句-6 614可以对应于第一ml流水线602中与预测函数(即,“predict(x_test)”)相关联的最后一个api调用。
[0098]
在框806处,可以将所确定的最后一个api调用指定为目标行。处理器204可以被配置成将所确定的最后一个api调用指定为目标行。目标行可以是第一ml流水线中的包括预测函数的行。目标行可以是基于其可以检索第一ml模型的预测输出的行。例如,参照图6a,第一ml流水线602的语句-6 614可以包括预测函数,并且因此可以被设置为目标行。
[0099]
在框808处,可以基于所指定的目标行来识别与第一ml模型相关联的一个或更多个语句。处理器204可以被配置成基于所指定的目标行来识别与第一ml模型相关联的一个或更多个语句。如所讨论的,为了对第二ml模型进行实例化,可以仅替换包括与第一ml模型相关联的语句的代码片段。因此,可能需要在第一ml流水线中识别与第一ml模型相关联的语句。例如,参照图6a,可以基于所指定的目标行(其可以是语句-6 614)将第一ml流水线602的语句-3 608、语句-4 610和语句-5 612连同语句-6614一起识别为与第一ml模型相关联的一个或更多个语句。因此,代码片段618可以包括与第一ml模型相关联的一个或更多个语句。其余语句例如语句-1 604和语句-2 606可以不与第一ml模型相关联,并且可以被组合在一起作为代码片段616。一旦识别出包括与第一ml模型相关联的一个或更多个语句的代码片段618,就可以基于使用相同输入参数用第二ml模型的等效语句替换第一ml模型的一个或更多个语句来对第二ml模型进行实例化。本文中,代码片段616的语句可以保持不变。
[0100]
在实施方式中,可以基于从指定的目标行开始应用反向程序切片(backward programslicing)直至到达与第一ml模型相关联的模型声明来识别与第一ml模型相关联的一个或更多个语句。本文中,反向程序切片可以用于基于从最后一条语句开始逐个添加相关语句来获得程序的切片。换句话说,反向程序切片可以用于基于从最后一条语句开始的反向遍历来获得程序的一部分。处理器204可以通过使用反向程序切片来识别与第一ml模型相关联的一个或更多个语句,这可能需要从目标行开始反向遍历第一ml模型的代码语句,直到可以到达第一ml模型的模型声明。例如,参照图6a,语句-6 614可以是目标行。反向
切片程序可以从语句-6614开始遍历第一ml模型的一个或更多个语句,直到到达第一ml流水线602中的第一ml模型的模型声明,以获得代码片段618。本文中,第一ml模型的模型声明可以对应于语句-3 608。例如,语句-3 608中出现的函数调用“sm.glm”可以声明第一ml模型。
[0101]
在实施方式中,处理器204还可以被配置成存储与第一ml模型相关联的一个或更多个语句中的每个语句的行号。本文中,一个或更多个语句可以对应于以下中的至少一个,但不限于:模型定义、拟合函数调用或预测函数调用。模型定义语句可以定义与第一ml流水线相关联的第一ml模型。可以理解,为了创建ml模型,可能需要首先定义ml模型。例如,参照图6a,可以在语句-3 608处定义与第一ml流水线602相关联的第一ml模型。语句-3 608中出现的函数“sm.glm”可以定义第一ml模型。拟合函数调用可以接受输入参数(例如,包括与训练数据集相关联的特征和输出或标签/分数的示例的训练数据集),并且可以基于所提供的输入参数来训练第一ml模型。参照图6a,与第一ml流水线602相关联的拟合函数调用存在于语句-4 610中。本文中,可以提供与训练数据集相对应的一个或更多个输入参数,例如“y_train”和“x_train”。预测函数调用可以基于给定ml模型的训练来进行预测。本文中,预测函数调用可以使用经训练的第一ml模型来提供预测值。参照图6a,与第一ml流水线602相关联的预测函数调用存在于语句-6 614中。本文中,与第一ml流水线602相关联的第一ml模型可以对与测试数据集相关联的输入参数(例如“x_test”)进行预测。处理器204可以存储与第一ml模型相关联的一个或更多个语句中的每个语句的行号。例如,处理器204可以存储包括模型定义调用的语句-3 608、包括拟合函数调用的语句-4 610的行号以及语句-5 612和包括第一ml流水线602的预测函数调用的语句-6614的行号。与第一ml模式相关联的一个或更多个语句中的每个语句的行号的存储可以帮助识别代码片段618以及用第二ml模型的等效代码片段替换代码片段618以对第二ml模型进行实例化。控制可以传递到结束。
[0102]
尽管流程图800被示出为例如802、804、806和808的离散操作。然而,在某些实施方式中,在不脱离所公开的实施方式的本质的情况下,取决于特定实现方式,这样的离散操作还可以被划分成另外的操作、被组合成更少的操作或者被删除。
[0103]
图9是根据本公开内容中所描述的至少一个实施方式的获取模型切片以识别第一ml模型的代码片段的示例方法的流程图的图。结合来自图1、图2、图3、图4、图5、图6a、图6b、图7和图8的元素来描述图9。参照图9,示出了流程图900。流程图900中所示的方法可以开始在框902处开始,并且可以由任何合适的系统、设备或装置例如由图1的示例电子装置102或图2的处理器204来执行。尽管用离散的框示出,但是取决于特定的实现方式,与流程图900的一个或更多个框相关联的步骤和操作可以被划分成另外的框、被组合成更少的框或者被删除。
[0104]
在框902处,可以从第一ml流水线中检索所指定的目标行。处理器204可以被配置成从第一ml流水线中检索所指定的目标行。如所讨论的,所指定的目标行可以是第一ml流水线中可以包括预测函数的行。参照图6a,第一ml流水线602的语句-6 614可以对应于所指定的目标行,因为语句-6 614可以包括预测函数。可以从第一ml流水线602中检索所指定的目标行(即,语句-6 614)。
[0105]
在框904处,可以将检索到的目标行添加到包括与第一ml流水线相关联的语句集合的队列中。本文中,与第一ml流水线相关联的语句集合可以是与第一ml模型相关联的一
个或更多个语句,所述一个或更多个语句可以基于所指定的目标行来识别。处理器204可以被配置成将检索到的目标行添加到队列中,该队列可以包括与第一ml流水线相关联的语句集合。参照图6a,代码片段618中与第一ml流水线602相关联的语句集合可以包括语句-3 608、语句-4 610、语句-5 612。队列可以包括语句集合。检索到的目标行(例如语句-6 614)可以被添加至队列。
[0106]
在框906处,可以从队列中弹出第一语句。本文中,第一语句可以是所指定的目标行。处理器204可以被配置成从队列中弹出第一语句。例如,参照图6a,语句-6 614可以是从队列中弹出的第一语句。
[0107]
在框908处,可以控制第一操作集合910的执行,以从第一ml流水线中获得与第一ml模型相关联的模型切片。处理器204可以被配置成控制第一操作集合910的执行,以从第一ml流水线中获得与第一ml模型相关联的模型切片。可以基于从第一ml流水线中检索与第一ml模型相关联的一个或更多个语句来获得模型切片。例如,参照图6a,模型切片可以包括语句-3 608、语句-4 610、语句-5 612和语句-6 614。
[0108]
第一操作集合910可以包括操作例如第一操作910a、第二操作910b、第三操作910c、第四操作910d、第五操作910e和第六操作910f。第一操作集合910可以由处理器204基于检查队列是否为空来迭代地执行。在队列被确定为空的情况下,第一操作集合910的执行可以停止,并且可以在操作912处获得模型切片。本文中描述了获得模型切片的第一操作集合910。
[0109]
在框910a(即,第一操作)处,可以从第一语句中提取一个或更多个变量和对象。处理器204可以被配置成从第一语句中提取一个或更多个变量和对象。本文中,可以从检索到的目标行中提取一个或更多个变量和对象。例如,参照图6a,语句-6 614可以是可以从队列中弹出的第一语句。从语句-6 614中提取的一个或更多个变量和对象可以包括“x_test”。
[0110]
在框910b(即,第二操作)处,可以识别在第一ml流水线中在第一语句之前出现并且包括所提取的一个或更多个变量和对象中至少之一的第二语句集合。处理器204可以被配置成识别在第一ml流水线中在第一语句之前出现并且包括所提取的一个或更多个变量和对象中至少之一的第二语句集合。本文中,在第一ml流水线中的第一语句之前的包括所提取的一个或更多个变量和对象中至少之一的所有语句可以被识别为第二语句集合。例如,参照图6a,在第一ml流水线602中,语句-5 612可以包括所提取的一个或更多个变量和对象,例如“x_test”。因此,语句-5 612可以被识别为第二语句集合。
[0111]
在框910c(即,第三操作)处,可以执行检查,以确定所识别的第二语句集合中的第三语句是否在与第一ml模型相关联的模型定义之前出现。处理器204可以被配置成确定所识别的第二语句集合的第三语句是否在与第一ml模型相关联的模型定义之前出现。本文中,所识别的第二语句集合中的语句之一可以被指定为第三语句,并且处理器204可以确定第三语句是否在与第一ml模型相关联的模型定义之前出现。如果确定所识别的第二语句集合中的第三语句在与第一ml模型相关联的模型定义之前出现,则控制可以传递到操作910d,否则处理器204可以选择另一语句作为第三语句并且重复操作910c。例如,参照图6a,语句-5 612可以被识别为第二语句集合。由于第二语句集合仅包括语句-5 612,因此语句-5 612可以被指定为第三语句。此外,在当前情况下,处理器204可以确定第一ml模型可以在第一ml流水线602中的语句-3 608处被定义。
[0112]
在框910d(即,第四操作)处,可以基于确定第三语句在模型定义之前出现而将第三语句添加至队列。处理器204可以被配置成基于确定第三语句在模型定义之前出现而将第三语句添加至队列。由于仅与第一ml模型相对应的第一ml流水线的语句可以被识别为一个或更多个语句,因此如果第三语句在模型定义之前出现,则第三语句可以与第一ml模型相关联,否则第三语句可以不与第一ml模型相关联。因此,如果第三语句在模型定义之前出现,则第三语句可以被添加至队列。例如,参照图6a,被指定为第三语句的语句-5 612在模型定义之前出现。当处理器204从目标行(即语句-6 614)开始执行代码片段618的每个语句的反向跟踪时,处理器204可以到达语句-5 612。因此,语句-5 612可以被添加至队列。可以针对第二语句集合中的每个语句而重复第三操作910c和第四操作910d。
[0113]
在框910e(即,第五操作)处,可以将第一语句添加至模型切片。处理器204可以被配置成将第一语句添加至模型切片。本文中,可以将所识别的目标语句添加至模型切片。例如,参照图6a,可以将语句-6 614添加至模型切片。
[0114]
在框910f(即,第六操作)处,基于确定队列不为空,可以从队列中弹出第四语句作为第一语句。处理器204可以被配置成基于确定队列不为空,从队列中弹出第四语句作为第一语句。一旦第一语句可以被添加至模型切片,就可以检查队列以确定队列是否包括更多语句并且不为空。在队列被确定为空的情况下,可以获得模型切片以识别第一ml模型的代码片段。此外,模型切片可以显示在显示装置208a上。然而,如果队列不为空,则第四语句可以从队列中弹出作为第一语句。
[0115]
在框912处,基于第一操作集合910的迭代执行,可以获得模型切片以识别第一ml模型的代码片段。处理器204可以被配置成基于第一操作集合910的迭代执行来获得模型切片以识别第一ml模型的代码片段(例如,图6a的代码片段618)。迭代执行可能取决于队列中语句的数量。第一操作集合910可以涉及与框910a至910f相对应的操作。在示例中,队列可以包含三条语句。本文中,可以执行第一操作集合三次以获得模型切片。模型切片可以指示第一ml模型的代码片段。控制可以传递到结束。
[0116]
尽管流程图900被示出为例如902、904、906、908、910a至910f和922的离散操作。然而,在某些实施方式中,在不脱离所公开的实施方式的本质的情况下,取决于特定实现方式,这样的离散操作还可以被划分成另外的操作、被组合成更少的操作或者被删除。
[0117]
可以注意到,自动生成ml流水线的目的可以是通过元学习模型102a来学习如何针对给定数据集编写ml流水线,这可能是完全离线的过程。在在线设置中,当用户112可以向元学习模型102a提供新的数据集时,元学习模型102a可以自动生成机器学习流水线。
[0118]
可以注意到,元学习模型102a的质量可以取决于ml语料数据库的质量,并且更具体地,取决于各个ml流水线中使用的ml模型的质量。然而,出于许多原因,例如,合适的ml模型不可用或部分数据科学家缺乏对良好ml模型的认识,可以由数据科学家编写的ml流水线可能不是最佳的或最优的ml模型。ml语料数据库中的低质量ml模型可能负面地影响元学习模型102a的训练,其中,在什么模型将用于什么类型的数据集方面,元学习模型102a可能无法识别任何可学习的模式。为了减轻上述问题,本公开内容(或所公开的电子装置102)的元学习模型102a可以在可以包括经转变的ml流水线的增强的ml语料数据库上训练,所述经转变的ml流水线可以比数据科学家手写的原始ml流水线表现得更好。
[0119]
图10是根据本公开内容中描述的至少一个实施方式的用于训练元学习模型的示
例方法的流程图的图。结合来自图1、图2、图3、图4、图5、图6a、图6b、图7、图8和图9的元素来描述图9。参照图10,示出了流程图1000。流程图1000中所示的方法可以在框1002处开始,并且可以由任何合适的系统、设备或装置例如由图1的示例电子装置102或图2的处理器204来执行。尽管用离散的框示出,但是取决于特定的实现方式,与流程图1000的一个或更多个框相关联的步骤和操作可以被划分成另外的框、被组合成更少的框或者被删除。
[0120]
在框1002处,可以从与存储在增强的ml语料数据库中的多个ml项目中的每一个相关联的数据集中提取元特征集合。处理器204可以被配置成提取从与存储在增强的ml语料数据库中的多个ml项目中的每一个相关联的数据集中提取的元特征集合。可以理解,特征可以是提供给给定ml模型的、给定ml模型可能需要学习的自变量。特征可以包括与给定ml模型相关联的表格数据集的列。元特征可以用于估计给定ml模型的性能。元特征可以是预定义的元特征,其通常可以用于学习元特征与ml分量之间的关系。可以从与存储在增强的ml语料数据库中的多个ml项目中的每一个相关联的数据集中提取元特征集合。可以基于在ml流水线中注入元特征提取器代码(例如元特征方法调用)来提取元特征集合。例如,可以将数据集传递给元特征方法,以便提取元特征集合。例如,在图11中已经提供了元特征集合的细节。
[0121]
在框1004处,可以从与存储在增强的ml语料数据库中的多个ml项目中的每一个相关联的ml流水线集合中提取ml流水线分量集合。处理器204可以被配置成从与存储在增强的ml语料数据库中的多个ml项目中的每一个相关联的数据集中提取元特征集合。可以理解,ml分量可以包括在给定ml模型的ml流水线中使用的函数。可以使用ml分量提取器来提取来自与可以存储在增强的ml语料数据库中的多个ml项目中的每一个相关联的ml流水线集合的ml分量。例如,在图11中已经提供了提取ml流水线分量集合的细节。
[0122]
在框1006处,可以基于提取的元特征集合和提取的ml流水线分量集合来训练元学习模型102a。处理器204可以被配置成基于提取的元特征集合和提取的ml流水线分量集合来训练元学习模型102a。元学习模型102a可以使用元学习算法,所述元学习算法可以基于已经训练的学习算法来训练元学习模型102a。本文中,针对给定数据集的其他学习算法的输出连同适用于数据集的学习算法可以被提供给元学习模型102a。元学习模型102a可以从其他学习算法的输出中学习。例如,元学习模型102a可以基于其他学习算法的输出作为输入来学习和预测。因此,元学习模型102a可以学习根据其他学习算法已经做出的预测进行预测。
[0123]
可以注意到,元学习模型102a内部可能不是单个ml模型,而是可以包括多个ml模型。为了简单起见,元学习模型102a可以被认为是黑盒,其可以接收数据集作为输入,并且可以生成抽象流水线作为输出。本文中,抽象流水线可以是可以被转换成代码的标签序列。可以理解的是,标签可以是赋予函数、模块或语句序列以完成特定任务的名称。可以注意到,与存储在增强的ml语料数据库中的多个ml项目中的每一个相关联的ml流水线集合中的每一个ml流水线可以包括若干分量,这些分量可以是对应ml流水线中的代码的形式,使得开发者可以不编写每个分量的功能。用户可能无法从对应的ml流水线中推断出任何东西,除非ml流水线可以被分成可以被分配有唯一标签的分量。说明增强(explanation augmentation)可以被用作提供在对应的ml流水线中使用的分量的自然语言说明的技术。
[0124]
可以基于提取的元特征集合和提取的ml流水线分量集合来训练元学习模型102a。
由于可以基于从增强的ml语料数据库中提取的元特征集合和提取的ml流水线分量集合来训练元学习模型102a,因此,元学习模型102a的质量可以直接取决于增强的ml语料数据库的质量和鲁棒性。例如,在图11中已经提供了元学习模型102a的细节。控制可以传递到结束。
[0125]
尽管流程图1000被示出为例如1002、1004和1006的离散操作。然而,在某些实施方式中,在不脱离所公开的实施方式的本质的情况下,取决于特定实现方式,这样的离散操作还可以被划分成另外的操作、被组合成更少的操作或者被删除。
[0126]
图11示出了根据本公开内容中描述的至少一个实施方式的训练元学习模型的示例性场景。结合来自图1、图2、图3、图4、图5、图6a、图6b、图7、图8、图9和图10的元素来描述图11。参照图11,示出了示例性场景1100。示例性场景1100可以包括数据库108、元特征集合1102、ml流水线分量集合1104、元学习块1106、主题数据集的元特征集合(由1108表示)、元学习模型102a和主题ml流水线的分量集合(由1110表示)。数据库108可以包括“n”个ml项目,例如ml项目-1 114、ml项目-2 116
……
和ml项目-n118。多个ml项目中的每一个可以包括数据集和适用于该数据集的ml流水线集合。例如,ml项目-1 114可以包括数据集114a和ml流水线集合114b,而ml项目-2 116可以包括数据集116a和ml流水线集合116b。类似地,ml项目-n118可以包括数据集118a和ml流水线集合118b。
[0127]
图11所示的“n”个ml项目仅作为示例呈现。在不偏离本公开内容的范围的情况下,多个ml项目可以包括仅两个ml项目或多于“n”个的ml项目。为了简洁起见,在图11中仅示出了“n”个ml项目。然而,在一些实施方式中,在不限制本公开内容的范围的情况下,可以存在多于“n”个的ml项目。
[0128]
例如,参照图11,处理器204可以从与存储在增强的ml语料数据库(其可以存储在数据库108中)中的多个ml项目中的每一个相关联的数据集中提取元特征集合1102。可以基于在对应的ml流水线代码中注入元特征提取器(例如元特征方法调用)来提取元特征集合1102。数据集可以被传递给元特征方法,以便提取元特征集合1102。在示例中,元特征集合1102可以包括行、列、缺失值以及指示文本的存在的标志。
[0129]
处理器204可以从与存储在增强的ml语料数据库(例如,数据库108)中的多个ml项目中的每一个相关联的ml流水线集合中提取ml流水线分量集合1104。例如,处理器204可以从与第一ml项目-1 114相关联的ml流水线集合524、与ml项目-2 116相关联的ml流水线集合526以及与第n个ml项目-n118相对应的ml流水线集合528中提取ml流水线分量集合1104。在示例中,ml流水线分量集合1104可以包括“fillna”、“tfidfvectorizer”和“logisticregression”。本文中,“fillna”可以是用于填充数据集的行中缺失值的函数。“tfidfvectorizer”可以是词语频率逆文档频率函数,其可以基于词语在文档中出现的次数与包括该词语的文档的数量的比较,将文本转换成有意义的数值。logisticregression(逻辑回归)可以是基于逻辑回归技术来预测值的函数。
[0130]
元学习块1106可以为元学习模型102a的训练提供所提取的元特征集合1102和所提取的ml流水线分量集合1104。由于可以从可能包括良好质量的经转变的ml流水线的增强的ml语料数据库(例如,数据库108)中提取ml流水线分量集合1104,因此元学习模型102a可以被很好地训练。
[0131]
一旦元学习模型102a可以被训练,处理器204就可以向元学习模型102a提供主题
数据集的元特征集合(由1108表示),例如行、列、缺失值以及指示文本的存在的标志。元学习模型102a可以基于主题数据集的元特征集合(由1108表示)来生成主题ml流水线分量集合(由1110表示),例如“fillna”、“tfidfvectorizer”和“logisticregression”。由于可以基于来自增强的ml语料数据库(例如,数据库108)的良好质量的经转变的ml流水线来训练元学习模型102a,因此所生成的主题ml流水线分量集合(由1110表示)也可以具有高质量。因此,所生成的主题ml流水线分量集合(由1110表示)对于与主题ml流水线相关联的主题数据集而言可以表现得很好。
[0132]
本公开内容的示例性实验设置在表1中呈现,如下:
[0133][0134]
表1:本公开内容的示例性实验设置
[0135]
应当注意,表1中提供的数据可以仅被视为实验数据,并且可以不被解释为限制本公开内容。
[0136]
关于训练数据的性能提高的验证的示例性实验数据在表2中呈现,如下:
[0137]
ml流水线的百分比性能提高的百分比17%》5%11%》3%13%》1%21%》0%38%没有提高
[0138]
表2:关于训练数据的性能提高的示例性实验数据
[0139]
从表2中,可以观察到,在总共170个ml流水线中,对于62%的ml流水线,基于所提出的转变框架,准确度增加。对于17%的ml流水线,性能提高可能超过5%,这是显著的。此外,对于13%的ml流水线,性能提高可能超过1%。
[0140]
应当注意,表2中提供的数据可以仅被视为实验数据,并且可以不被解释为限制本公开内容。
[0141]
对测试数据的影响的示例性实验数据在表3中示出,如下:
[0142]
度量值平均f1/r20.023》0.53》0.015》07
[0143]
表3:对测试数据的影响的示例性实验数据
[0144]
应当注意,表3中提供的数据可以仅被视为实验数据,并且可以不被解释为限制本公开内容。
[0145]
本公开内容的各种实施方式可以提供被配置成存储指令的一种或更多种非暂态计算机可读存储介质,所述指令响应于被执行而使得系统(例如示例电子装置102)执行操作。操作可以包括接收来自存储在机器学习(ml)语料数据库中的多个ml项目中的ml项目。本文中,多个ml项目中的每一个可以包括数据集和适用于该数据集的ml流水线集合。操作还可以包括基于预定义ml流水线集合,使与所接收的ml项目相关联的第一ml流水线集合中的第一ml流水线转变,以确定第二ml流水线集合。本文中,第一ml流水线的转变可以对应于用与预定义ml流水线集合中的一个预定义ml流水线相关联的第二ml模型替换与第一ml流水线相关联的第一ml模型。操作还可以包括基于与所确定的ml流水线集合中的每一个ml流水线相关联的性能分数,从所确定的第二ml流水线集合中选择一个或更多个ml流水线。操作还可以包括增强ml语料数据库以包括所选择的一个或更多个ml流水线以及与所接收的ml项目相关联的第一ml流水线集合。
[0146]
如在本公开内容中所使用的,术语“模块”或“分量”可以是指下述特定硬件实现方式:其被配置成执行可以存储在计算系统的通用硬件(例如,计算机可读介质、处理装置等)上和/或由该硬件执行的软件对象或软件例程和/或模块或部件的动作。在一些实施方式中,本公开内容中描述的不同分量、模块、引擎和服务可以被实现为在计算系统上执行的对象或进程(例如,作为单独的线程)。虽然本公开内容中描述的一些系统和方法通常被描述为以(存储在通用硬件上和/或由通用硬件执行的)软件实现,但特定的硬件实现方式或软件与特定的硬件实现方式的组合也是可能的并且是可预期的。在本说明书中,“计算实体”可以是如本公开内容中先前限定的任何计算系统或者在计算系统上运行的任何模块或模块的组合。
[0147]
在本公开内容中并且特别是在所附权利要求(例如,所附权利要求的主体)中使用的术语通常旨在作为“开放式”术语(例如,术语“包括”应当被解释为“包括但不限于”,术语“具有”应当被解释为“至少具有”,术语“包含”应当被解释为“包含但不限于”等)。
[0148]
另外,如果意在特定数量的引入的权利要求叙述物,则这样的意图将在权利要求中明确记载,并且在没有这样的叙述的情况下,不存在这样的意图。例如,为了有助于理解,所附权利要求书可以包含使用引入性短语“至少一个”和“一个或更多个”以引入权利要求叙述物。然而,即使当同一权利要求包括引入性短语“一个或更多个”或“至少一个”以及不定冠词如“一”或“一个”时(例如,“一”和/或“一个”应当被解释为意指“至少一个”或“一个或更多个”),对这样的短语的使用也不应当被解释为暗含由不定冠词“一”或“一个”引入的权利要求叙述物将包含这样引入的权利要求叙述物的任何特定权利要求限制为仅包含一个这样的叙述物的实施方式;这同样适用于对用于引入权利要求叙述物的定冠词的使用。
[0149]
此外,即使明确地记载了特定数量的引入的权利要求叙述物,本领域技术人员也将认识到,这样的叙述应当被解释为至少意指所记载的数量(例如,没有其他修饰语的无修饰叙述“两个叙述物”意指至少两个叙述物,或者两个或更多个叙述物)。此外,在那些使用类似于“a、b和c等中的至少一个等”或者“a、b和c等中的一个或更多个等”的惯用语的情况下,通常这样的构造旨在包括仅a、仅b、仅c、a和b一起、a和c一起、b和c一起或a、b和c一起
等。
[0150]
此外,无论是在说明书、权利要求书中还是在附图中,呈现两个或更多个替选术语的任何分隔词或短语都应被理解为考虑包括术语之一、术语中的任一个或所有术语的可能性。例如,短语“a或b”应被理解为包括“a”或“b”或“a和b”的可能性。
[0151]
本公开内容中记载的所有示例和条件语言旨在用于教导目的以帮助读者理解本公开内容和发明人为了促进本领域所贡献的构思,并且应当被解释为不限于这样的具体记载的示例和条件。尽管已经详细地描述了本公开内容的实施方式,但是在不脱离本公开内容的精神和范围的情况下可以对实施方式进行各种改变、替换和变更。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1