一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

实现机器学习自动调参的方法、装置及设备与流程

2022-05-11 16:22:32 来源:中国专利 TAG:


1.本发明涉及人工智能领域,更具体地,涉及一种实现机器学习自动调参的方法、一种实现机器学习自动调参的装置、一种包括至少一个计算装置和至少一个存储装置的设备及一种计算机可读存储介质。


背景技术:

2.在现有机器学习平台上,自动调参任务的运行流程可以是:先由用户发起自动调参任务的创建请求,指定要使用的超参数调参算法与超参数范围,自动调参装置根据用户的请求,生成若干组超参数,之后启动每组超参数对应的机器学习训练子任务。然而该种方法不仅对整个调参任务的生命周期管理功能较弱,同时,对机器学习训练子任务的管理功能也较弱,缺少生命周期管理、状态实时追踪等功能,不仅影响用户的使用体验,还造成计算资源与存储资源的浪费。


技术实现要素:

3.本公开实施例的一个目的是提供一种实现机器学习自动调参的新的技术方案。
4.根据本公开的第一方面,提供了一种实现机器学习自动调参的方法,其包括:
5.接收用户发起的调参任务创建请求;
6.基于所述调参任务创建请求,确定用于执行调参任务的主任务所需的调参数据信息和第一运行配置信息;
7.根据所述调参数据信息和所述第一运行配置信息启动所述主任务,以使所述主任务根据所述调参数据信息发起创建用于执行所述调参任务的至少一个子任务的请求;
8.根据所述主任务发起的创建至少一个子任务的请求,确定对应所述至少一个子任务执行所述调参任务所需的第二运行配置信息,并启动所述至少一个子任务,以使所述至少一个子任务执行所述调参任务;
9.配置所述主任务获取各个所述子任务的任务运行结果信息,并根据所述任务运行结果信息确定停止各个所述子任务的运行,或者,发起创建用于执行所述调参任务的新的至少一个子任务的请求。
10.可选地,所述调参数据信息包括用于所述调参任务的机器学习算法及其对应的数据源、评估指标及调参算法;
11.所述第一运行配置信息包括所述主任务对应的运行资源及第一数据产出目录;
12.所述第二运行配置信息包括所述子任务对应的运行资源及第二数据产出目录。
13.可选地,所述方法还包括:
14.获取所述主任务及/或所述至少一个子任务在执行所述调参任务的过程中对应产生的任务信息;以及,
15.配置所述主任务将执行所述调参任务的过程中对应产生的任务信息存储在所述第一数据产出目录下,所述第一数据产出目录存储的任务信息包括所述主任务的运行状
态、关键日志;
16.配置所述子任务将执行所述调参任务的过程中对应产生的任务信息存储在所述第二数据产出目录下,所述第二数据产出目录存储的任务信息包括所述子任务的运行状态、关键日志和任务运行结果信息。
17.可选地,所述配置所述主任务获取各个所述子任务的任务运行结果信息,并根据所述任务运行结果信息确定停止各个所述子任务的运行,或者,发起创建用于执行所述调参任务的新的至少一个子任务的请求,包括:
18.配置所述主任务与所述子任务共享所述第二数据产出目录,以使所述主任务获取所述第二数据产出目录中存储的各个所述子任务的任务运行结果信息,并根据所述任务运行结果信息确定停止各个所述子任务的运行,或者,根据所述调参算法生成其他超参数,以根据所述其他超参数发起创建用于执行所述调参任务的新的至少一个子任务的请求。
19.可选地,所述第一数据产出目录存储的任务信息还包括所述调参任务对应的最终调参报告,所述方法还包括:
20.在根据所述任务运行结果信息确定停止各个所述子任务的运行时,生成所述最终调参报告。
21.可选地,所述方法还包括:
22.在根据所述任务运行结果信息确定停止各个所述子任务的运行时,选取任务运行结果最好的一个子任务;
23.将所述子任务所对应的一组超参数作为最优超参数输出和/或保存。
24.可选地,所述调参算法为所述用户提供的自定义调参算法,所述基于所述调参任务请求,确定用于执行调参任务的主任务所需的调参数据信息还包括:
25.根据所述调参任务请求从预定存储空间中获取所述自定义调参算法的文件;
26.确定所述自定义调参算法为所述调参数据信息对应的调参算法。
27.可选地,所述自定义调参算法的文件为基于编程语言编写的自定义调参算法打包成的代码文件,所述代码文件通过所述用户上传至所述存储空间。
28.可选地,所述代码文件为python脚本、javajar文件包或shell脚本。
29.可选地,所述方法还包括:
30.提供第一应用程序接口,以使所述主任务通过所述第一应用程序接口实时获取所述第二数据产出目录中存储的任务信息。
31.可选地,所述获取所述主任务及/或所述子任务在执行所述调参任务的过程中对应产生的任务信息包括:
32.通过主动查询,实时获取所述主任务及/或所述子任务在执行所述调参任务的过程中对应产生任务信息;
33.或者,
34.通过接收所述主任务及/或所述子任务定时回报的在执行所述调参任务的过程中对应产生的任务信息,获取所述任务信息。
35.可选地,所述方法还包括:
36.提供第二应用程序接口;
37.接收所述用户通过所述第二应用程序接口发送的任务信息查询请求;
38.根据所述查询请求读取对应的所述第一数据产出目录及/或所述第二数据产出目录中存储的任务信息;
39.响应所述查询请求发送所述任务信息给所述用户,以使所述用户通过接收的所述任务信息确定是否停止所述调参任务。
40.可选地,所述主任务根据所述调参数据信息发起创建用于执行所述调参任务的至少一个子任务的请求包括:
41.根据所述调参算法生成至少一组超参数;
42.根据所述至少一组超参数确定用于对应执行所述调参任务的至少一组子任务;
43.根据所述机器学习算法及其对应的数据源、评估指标发起创建所述至少一组子任务的请求。
44.可选地,所述子任务执行所述调参任务包括:
45.根据所述超参数、所述机器学习算法及所述评估指标在所述数据源上进行机器学习训练,以得到对应的训练结果。
46.可选地,所述方法还包括:
47.根据所述主任务、所述子任务执行所述调参任务分别对应所需的运行资源,将所述主任务、所述子任务运行在本地或外部的计算集群中。
48.根据本公开的第二方面,还提供一种实现机器学习自动调参的装置,其包括:
49.接收模块,用于接收用户发起的调参任务创建请求;
50.确定模块,用于基于所述调参任务创建请求,确定用于执行调参任务的主任务所需的调参数据信息和第一运行配置信息;
51.第一启动模块,用于根据所述调参数据信息和所述第一运行配置信息启动所述主任务,以使所述主任务根据所述调参数据信息发起创建用于执行所述调参任务的至少一个子任务的请求;
52.第二启动模块,用于根据所述主任务发起的创建至少一个子任务的请求,确定对应所述至少一个子任务执行所述调参任务所需的第二运行配置信息,并启动所述至少一个子任务,以使所述至少一个子任务执行所述调参任务;
53.配置模块,用于配置所述主任务获取各个所述子任务的任务运行结果信息,并根据所述任务运行结果信息确定停止各个所述子任务的运行,或者,发起创建用于执行所述调参任务的新的至少一个子任务的请求。
54.可选地,所述调参数据信息包括用于所述调参任务的机器学习算法及其对应的数据源、评估指标及调参算法;
55.所述第一运行配置信息包括所述主任务对应的运行资源及第一数据产出目录;
56.所述第二运行配置信息包括所述子任务对应的运行资源及第二数据产出目录。
57.可选地,所述配置模块,还用于获取所述主任务及/或所述至少一个子任务在执行所述调参任务的过程中对应产生的任务信息;以及,配置所述主任务将执行所述调参任务的过程中对应产生的任务信息存储在所述第一数据产出目录下,所述第一数据产出目录存储的任务信息包括所述主任务的运行状态、关键日志;配置所述子任务将执行所述调参任务的过程中对应产生的任务信息存储在所述第二数据产出目录下,所述第二数据产出目录存储的任务信息包括所述子任务的运行状态、关键日志和任务运行结果信息。
58.可选地,所述配置模块,还用于配置所述主任务与所述子任务共享所述第二数据产出目录,以使所述主任务获取所述第二数据产出目录中存储的各个所述子任务的任务运行结果信息,并根据所述任务运行结果信息确定停止各个所述子任务的运行,或者,根据所述调参算法生成其他超参数,以根据所述其他超参数发起创建用于执行所述调参任务的新的至少一个子任务的请求。
59.可选地,所述第一数据产出目录存储的任务信息还包括所述调参任务对应的最终调参报告,
60.所述配置模块,还用于在根据所述任务运行结果信息确定停止各个所述子任务的运行时,生成所述最终调参报告。
61.可选地,所述配置模块,还用于在根据所述任务运行结果信息确定停止各个所述子任务的运行时,选取任务运行结果最好的一个子任务;将所述子任务所对应的一组超参数作为最优超参数输出和/或保存。
62.可选地,所述调参算法为所述用户提供的自定义调参算法,
63.所述确定模块,还用于根据所述调参任务请求从预定存储空间中获取所述自定义调参算法的文件;确定所述自定义调参算法为所述调参数据信息对应的调参算法。
64.可选地,所述自定义调参算法的文件为基于编程语言编写的自定义调参算法打包成的代码文件,所述代码文件通过所述用户上传至所述存储空间。
65.可选地,所述代码文件为python脚本、javajar文件包或shell脚本。
66.可选地,所述装置还包括第一提供模块,
67.所述第一提供模块,用于提供第一应用程序接口,以使所述主任务通过所述第一应用程序接口实时获取所述第二数据产出目录中存储的任务信息。
68.可选地,所述配置模块,还用于通过主动查询,实时获取所述主任务及/或所述子任务在执行所述调参任务的过程中对应产生任务信息;或者,通过接收所述主任务及/或所述子任务定时回报的在执行所述调参任务的过程中对应产生的任务信息,获取所述任务信息。
69.可选地,所述装置还包括第二提供模块,
70.所述第二提供模块,用于提供第二应用程序接口;接收所述用户通过所述第二应用程序接口发送的任务信息查询请求;根据所述查询请求读取对应的所述第一数据产出目录及/或所述第二数据产出目录中存储的任务信息;响应所述查询请求发送所述任务信息给所述用户,以使所述用户通过接收的所述任务信息确定是否停止所述调参任务。
71.可选地,所述第一启动模块,还用于根据所述调参算法生成至少一组超参数;根据所述至少一组超参数确定用于对应执行所述调参任务的至少一组子任务;根据所述机器学习算法及其对应的数据源、评估指标发起创建所述至少一组子任务的请求。
72.可选地,所述第二启动模块,还用于根据所述超参数、所述机器学习算法及所述评估指标在所述数据源上进行机器学习训练,以得到对应的训练结果。
73.可选地,所述装置还包括运行模块,
74.所述运行模块,用于根据所述主任务、所述子任务执行所述调参任务分别对应所需的运行资源,将所述主任务、所述子任务运行在本地或外部的计算集群中。
75.根据本公开的第三方面,还提供一种包括至少一个计算装置和至少一个存储装置
的设备,其中,所述至少一个存储装置用于存储指令,所述指令用于控制所述至少一个计算装置执行根据以上第一方面所述的方法。
76.根据本公开的第四方面,还提供一种计算机可读存储介质,其中,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如以上第一方面所述的方法。
77.根据本公开实施例的方法,其可以运行、管理自动调参主任务及其产生的机器学习训练子任务,而且,由于其能够实时获取调参主任务和子任务在运行过程中的任务信息,从而方便用户查看整个机器学习自动调参任务的运行过程,提高用户的使用效率和体验,而且,必要时还可以提前终止子任务,节省计算资源与存储资源。
附图说明
78.通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
79.图1是显示可用于实现本公开实施例的电子设备的硬件配置的例子的框图;
80.图2示出了本公开实施例的实现机器学习自动调参的方法的流程图;
81.图3示出了本公开实施例的实现机器学习自动调参的装置的原理框图;
82.图4示出了本公开一个例子的实现机器学习自动调参的方法的流程图;
83.图5示出了本公开另外一个例子的实现机器学习自动调参的方法的流程图。
具体实施方式
84.现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
85.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
86.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
87.在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
88.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
89.下面,参照附图描述根据本发明实施例的各个实施例和例子。
90.《硬件配置》
91.本公开实施例的方法可以由至少一台电子设备实施。图1示出了任意电子设备的硬件结构。图1所示的电子设备可以是便携式电脑、台式计算机、工作站、服务器等,也可以是任意的具有处理器等计算装置和存储器等存储装置的其他设备,在此不做限定。
92.如图1所示,该电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100用于执行计算机程序。该计算机程序可以采用比如x86、arm、risc、mips、sse等架构的指令集编写。存储器1200例如包括rom(只读存储器)、ram(随机存取存储器)、诸如硬盘的非
易失性存储器等。接口装置1300例如包括usb接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括wifi通信、蓝牙通信、2g/3g/4g/5g通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。电子设备1000可以通过扬声器1700输出语音信息,及可以通过麦克风1800采集语音信息等。
93.图1所示的电子设备仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本公开的实施例中,电子设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本公开实施例的实现机器学习自动调参的方法。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
94.在另外的实施例中,该电子设备1000也可以包括根据本发明任意实施例的实现机器学习自动调参的装置,其中,该装置被设置为执行根据本发明任意实施例的实现机器学习自动调参的方法。
95.在一个实施例中,提供了一种包括至少一个计算装置和至少一个存储装置的设备,该至少一个存储装置用于存储指令,该指令用于控制该至少一个计算装置执行根据本公开任意实施例的方法。
96.该设备可以包括至少一台图1所示的电子设备1000,以提供至少一个例如是处理器的计算装置和至少一个例如是存储器的存储装置,在此不做限定。
97.《方法实施例》
98.在本实施例中,提供一种实现机器学习自动调参的方法,该方法可以由如图1所示的电子设备1000实施,例如可以由电子设备1000的实现机器学习自动调参的装置实施。
99.根据图2所示,本实施例的实现机器学习自动调参的方法可以包括如下步骤s2100~s2500:
100.步骤s2100,接收用户发起的调参任务创建请求。
101.本实施例中,例如可以是提供图形配置界面,并在图形配置界面中提供用于选择执行调参任务的主任务所需的调参数据信息和运行配置信息的选择框,这里,为将该调参任务的主任务的运行配置信息和后续调参任务的子任务的运行配置信息进行区别,在此,将该调参任务的主任务的运行配置信息称之为第一运行配置信息。
102.步骤s2200,基于调参任务创建请求,确定用于执行调参任务的主任务所需的调参数据信息和第一运行配置信息。
103.调参任务的主任务所需的调参数据信息可以包括用于调参任务的机器学习算法及其对应的数据源、评估指标及调参算法。
104.以上用于调参任务的机器学习算法用于训练机器学习模型,机器学习算法的算法参数对训练出的机器学习模型的好坏具有显著影响。该机器学习算法可以是逻辑回归(logistic regression,lr)算法、梯度提升回归树(gradient boostregression tree,gbrt)算法、支持向量机(support vector machine,svm)算法、he-treenet(高维离散嵌入式的树网络)算法、梯度提升决策树(gradient boosting decision tree,gbdt)算法以及随机森林算法等,也可以是用于训练机器学习模型的其他机器学习算法,本实施例在此不做限定。
105.以上对应的数据源分为训练数据集和验证数据集,其中,训练数据集用于进行机器学习模型的训练,验证数据集用于对训练好的机器学习模型的效果进行验证,进而可以是选取效果最好的机器学习模型作为最终产出的机器学习模型,并将该机器学习模型的超参数作为最优超参数。
106.以上评估指标是用于衡量机器学习算法的好坏的指标。该评估指标可以是均方误差(mean squared error,mse)、平均绝对误差(mean absolute error,mae)、平均绝对百分比误差(mean absolute percentage error,mape)、r2、auc(area under the curve)、召回率recall、准确率precision、精确率accuracy、f1、logloss之中的至少一项。
107.在一个例子中,可以为每一类机器学习问题设置各自对应的评估指标,对应不同类型的机器学习问题的评估指标可以相同,也可以不同,同一类机器学习问题可以包括至少一个评估指标。
108.例如,对于不同机器学习问题提供不同的评估指标,机器学习问题例如但不限于包括二分类问题、回归问题以及多分类问题。例如对于回归问题,可选mse、mae、mape、r2等,对于二分类问题,可选auc、recall、precision、accuracy、f1、logloss等。
109.在一个例子中,还可以是由用户根据实际应用场景和实际需要设置对应机器学习问题的评估指标。
110.以上调参算法是用于对机器学习算法对应的参数进行优化的算法。该调参算法可以是随机搜索、网格搜索、贝叶斯优化等,也可以是用户提供的自定义调参算法,本实施在此不做限定。本实施例中,在该调参算法为用户提供的自定义调参算法时,本步骤s2200中基于调参任务请求,确定用于执行调参任务的主任务所需的调参数据信息可以进一步包括:根据调参任务请求从预定存储空间中获取自定义调参算法的文件;确定自定义调参算法为调参数据信息对应的调参算法。
111.该自定义调参算法的文件为基于编程语言编写的自定义调参算法打包成的代码文件,代码文件通过用户上传至存储空间。
112.该代码文件可以为python脚本、javajar文件包或shell脚本。
113.该例子中,支持用户通过编程语言编写自定义调参策略,相当于扩展了调参算法,进一步提高用户体验。
114.以上第一运行配置信息可以包括主任务对应的运行资源及第一数据产出目录。该第一数据产出目录存储的任务信息例如可以包括主任务的运行状态、关键日志,该第一数据产出目录存储的任务信息又例如也可以包括调参任务对应的最终调参报告。
115.步骤s2300,根据调参数据信息和第一运行配置信息启动主任务,以使主任务根据调参数据信息发起创建用于执行调参任务的至少一个子任务的请求。
116.本实施例中,根据以上步骤s2200确定调参任务的主任务所需的机器学习算法及其对应的数据源、评估指标及调参算法,以及,对应的运行资源及第一数据产出目录之后,便可结合本步骤s2200根据主任务所需机器学习算法及其对应的数据源、评估指标及调参算法、以及,对应的运行资源及第一数据产出目录启动主任务,并根据该主任务执行调参任务对应所需的运行资源运行主任务。
117.例如,在主任务执行调参任务对应所需的运行资源较少时,可以直接将该主任务提交至实现机器学习自动调参的装置本地运行,以减少中间步骤,进而提高运行效率。
118.又例如,在主任务执行调参任务对应所需的运行资源较大时,如涉及大量cpu计算时,则可以将该主任务运行在外部的计算集群中,该外部的计算集群例如但不限于包括yarn、kubernetes、mesos等计算平台。
119.本实施例中,本步骤s2300中主任务根据调参数据信息发起创建用于执行调参任务的子任务的请求可以进一步包括如下步骤s2310~s2330:
120.步骤s2310,根据调参算法生成至少一组超参数。
121.超参数可以包括模型超参数和训练超参数,该模型超参数是用于定义模型的超参数,例如但不限于是激活函数(例如恒等函数、s型函数以及截断斜波函数等)、隐含层节点数量、卷积层通道数量以及全连接层节点数量等。该训练超参数是用于定义模型训练过程的超参数,例如但不限于是学习率、批尺寸以及迭代次数等。
122.步骤s2320,根据至少一组超参数确定用于对应执行调参任务的至少一组子任务。
123.本步骤s2320,一组超参数对应一个子任务。
124.步骤s2330,根据机器学习算法及其对应的数据源、评估指标发起创建至少一组子任务的请求。
125.本实施例中,根据以上步骤s2310~s2330中创建用于执行调参任务的至少一个子任务的请求后,便可根据以下步骤s2400启动至少一个子任务,以使至少一个子任务执行调参任务。
126.步骤s2400,根据主任务发起的创建至少一个子任务的请求,确定对应至少一个子任务执行调参任务所需的第二运行配置信息,并启动至少一个子任务,以使至少一个子任务执行调参任务。
127.第二运行配置信息可以包括子任务对应的运行资源及第二数据产出目录。
128.该第二数据产出目录存储的任务信息例如可以包括子任务的运行状态、关键日志和任务运行结果信息,该任务运行结果可以为调参训练结果。
129.本实施例中,确定调参任务的至少一个子任务所需对应的运行资源及第二数据产出目录之后,便可启动子任务,并根据该子任务执行调参任务对应所需的运行资源执行子任务,具体的,可以是子任务根据超参数、机器学习算法及评估指标在数据源上进行机器学习训练,以得到对应的训练结果。
130.例如,在子任务执行调参任务对应所需的运行资源较少时,可以直接将该子任务提交至实现机器学习自动调参的装置本地运行,以减少中间步骤,进而提高运行效率。
131.又例如,在子任务执行调参任务对应所需的运行资源较大时,如涉及大量cpu计算时,则可以将该子任务运行在外部的计算集群中,该外部的计算集群例如但不限于包括yarn、kubernetes、mesos等计算平台。
132.步骤s2500,配置主任务获取各个子任务的任务运行结果信息,并根据任务运行结果信息确定停止各个子任务的运行,或者,发起创建用于执行调参任务的新的至少一个子任务的请求。
133.本实施例中,实现机器学习自动调参的装置可以在主任务及/或至少一个子任务执行调参任务的过程中,实时获取主任务及/或至少一个子任务在执行调参任务的过程中对应产生的任务信息,并配置主任务将执行调参任务的过程中对应产生的任务信息存储在第一数据产出目录下,该第一数据产出目录存储的任务信息例如可以包括主任务的运行状
态、关键日志;以及,配置子任务将执行调参任务的过程中对应产生的任务信息存储在第二数据产出目录下,该第二数据产出目录存储的任务信息例如可以包括子任务的运行状态、关键日志和任务运行结果信息。
134.在一个例子中,该获取主任务及/或至少一个子任务在执行调参任务的过程中对应产生的任务信息可以进一步包括:通过主动查询,实时获取主任务及/或子任务在执行调参任务的过程中对应产生任务信息。
135.该例子中,可以是由用户通过本装置提供的api中实时获取主任务及/或子任务在执行调参任务的过程中对应产生的任务信息,由此可以方便地查看整个机器学习自动调参任务的运行过程。
136.在一个例子中,该获取主任务及/或至少一个子任务在执行调参任务的过程中对应产生的任务信息还可以进一步包括:通过接收主任务及/或子任务定时回报的在执行调参任务的过程中对应产生的任务信息,获取任务信息。
137.在本实施例中,该步骤s2500中配置主任务获取各个子任务的任务运行结果信息,并根据任务运行结果信息确定停止各个子任务的运行,或者,发起创建用于执行调参任务的新的至少一个子任务的请求可以进一步包括:
138.配置主任务与子任务共享第二数据产出目录,以使主任务获取第二数据产出目录中存储的各个子任务的任务运行结果信息,并根据任务运行结果信息确定停止各个子任务的运行,或者,根据调参算法生成其他超参数,以根据其他超参数发起创建用于执行调参任务的新的至少一个子任务的请求。
139.可以理解的是,在第一数据产出目录存储的任务信息还包括调参任务对应的最终调参报告的情况下,该实现机器学习自动调参的方法还可以进一步包括:在根据任务运行结果信息确定停止各个子任务的运行时,生成最终调参报告。
140.例如可以是在训练结果的效果达到预期值时,确定停止子任务的情况下,根据子任务对应的任务信息生成最终调参报告。
141.又例如还可以是在训练时间达到了时间限制时,确定停止子任务的情况下,根据子任务对应的任务信息生成最终调参报告。
142.可以理解的是,该实现机器学习自动调参的方法还可以进一步包括:在根据任务运行结果信息确定停止各个子任务的运行时,选取任务运行结果最好的一个子任务;将子任务所对应的一组超参数作为最优超参数输出和/或保存。
143.根据本公开实施例的方法,其可以运行、管理自动调参主任务及其产生的机器学习训练子任务,而且,由于其能够实时获取调参主任务和子任务在运行过程中的任务信息,从而方便用户查看整个机器学习自动调参任务的运行过程,提高用户的使用效率和体验;其次,其提供了调参算法扩展功能,可以运行用户编写的自定义调参策略,提高用户体验。
144.而且,其对于机器学习训练子任务,提供了完善的生命周期管理、运行资源配置、状态追踪、产出管理等功能,自动调参主任务可以实时地通过此装置获取子任务的状态,必要时可以提前终止子任务。
145.在一个实施例中,该实现机器学习自动调参的方法还可以进一步包括:提供第一应用程序接口,以使主任务通过第一应用程序接口实时获取第二数据产出目录中存储的任务信息。
146.本实施例中,其对调参主任务提供方便易用的api,供调参主任务创建、查询、提前终止机器学习训练子任务。
147.在一个实施例中,该实现机器学习自动调参的方法还可以进一步包括:提供第二应用程序接口;接收用户通过第二应用程序接口发送的任务信息查询请求;根据查询请求读取对应的第一数据产出目录及/或第二数据产出目录中存储的任务信息;响应查询请求发送任务信息给用户,以使用户通过接收的任务信息确定是否停止调参任务。
148.本实施例中,用户可以通过本装置的api,提前终止自动调参任务,此时,本装置会立即停止主任务以及其提交的仍在运行的子任务,并进行必要的清理操作,保证了计算资源和存储资源的及时释放,提高资源利用率,调参任务提前终止时,已运行的子任务及相关报告不会被清理,仍然是可用状态,以供用户查询、使用。
149.本实施例中,其对用户提供方便易用的api,供用户创建、查询、提前终止整个自动调参任务,提高用户体验。
150.《装置实施例》
151.在本实施例中,提供一种机器学习模型的调参装置3000,如图3所示,包括接收模块3100、确定模块3200、第一启动模块3300、第二启动模块3400以及配置模块3500。
152.接收模块3100,用于接收用户发起的调参任务创建请求。
153.确定模块3200,用于基于所述调参任务创建请求,确定用于执行调参任务的主任务所需的调参数据信息和第一运行配置信息。
154.第一启动模块3300,用于根据所述调参数据信息和所述第一运行配置信息启动所述主任务,以使所述主任务根据所述调参数据信息发起创建用于执行所述调参任务的至少一个子任务的请求。
155.第二启动模块3400,用于根据所述主任务发起的创建至少一个子任务的请求,确定对应所述至少一个子任务执行所述调参任务所需的第二运行配置信息,并启动所述至少一个子任务,以使所述至少一个子任务执行所述调参任务。
156.配置模块3500,用于配置所述主任务获取各个所述子任务的任务运行结果信息,并根据所述任务运行结果信息确定停止各个所述子任务的运行,或者,发起创建用于执行所述调参任务的新的至少一个子任务的请求。
157.在一个实施例中,所述调参数据信息包括用于所述调参任务的机器学习算法及其对应的数据源、评估指标及调参算法;
158.所述第一运行配置信息包括所述主任务对应的运行资源及第一数据产出目录;
159.所述第二运行配置信息包括所述子任务对应的运行资源及第二数据产出目录。
160.在一个实施例中,该配置模块3500,还用于获取所述主任务及/或所述至少一个子任务在执行所述调参任务的过程中对应产生的任务信息;以及,配置所述主任务将执行所述调参任务的过程中对应产生的任务信息存储在所述第一数据产出目录下,所述第一数据产出目录存储的任务信息包括所述主任务的运行状态、关键日志;配置所述子任务将执行所述调参任务的过程中对应产生的任务信息存储在所述第二数据产出目录下,所述第二数据产出目录存储的任务信息包括所述子任务的运行状态、关键日志和任务运行结果信息。
161.在一个实施例中,该配置模块3500,还用于配置所述主任务与所述子任务共享所述第二数据产出目录,以使所述主任务获取所述第二数据产出目录中存储的各个所述子任
务的任务运行结果信息,并根据所述任务运行结果信息确定停止各个所述子任务的运行,或者,根据所述调参算法生成其他超参数,以根据所述其他超参数发起创建用于执行所述调参任务的新的至少一个子任务的请求。
162.在一个实施例中,所述第一数据产出目录存储的任务信息还包括所述调参任务对应的最终调参报告。
163.该配置模块3500,还用于在根据所述任务运行结果信息确定停止各个所述子任务的运行时,生成所述最终调参报告。
164.在一个实施例中,该配置模块3500,还用于在根据所述任务运行结果信息确定停止各个所述子任务的运行时,选取任务运行结果最好的一个子任务;将所述子任务所对应的一组超参数作为最优超参数输出和/或保存。
165.在一个实施例中,所述调参算法为所述用户提供的自定义调参算法。
166.该确定模块3200,还用于根据所述调参任务请求从预定存储空间中获取所述自定义调参算法的文件;确定所述自定义调参算法为所述调参数据信息对应的调参算法。
167.在一个实施例中,所述自定义调参算法的文件为基于编程语言编写的自定义调参算法打包成的代码文件,所述代码文件通过所述用户上传至所述存储空间。
168.在一个实施例中,所述代码文件为python脚本、javajar文件包或shell脚本。
169.在一个实施例中,装置3000还包括第一提供模块(图中未示出)。
170.该第一提供模块,用于提供第一应用程序接口,以使所述主任务通过所述第一应用程序接口实时获取所述第二数据产出目录中存储的任务信息。
171.在一个实施例中,该配置模块3500,还用于通过主动查询,实时获取所述主任务及/或所述子任务在执行所述调参任务的过程中对应产生任务信息;或者,通过接收所述主任务及/或所述子任务定时回报的在执行所述调参任务的过程中对应产生的任务信息,获取所述任务信息。
172.在一个实施例中,装置3000还包括第二提供模块(图中未示出)。
173.该第二提供模块,还用于提供第二应用程序接口;接收所述用户通过所述第二应用程序接口发送的任务信息查询请求;根据所述查询请求读取对应的所述第一数据产出目录及/或所述第二数据产出目录中存储的任务信息;响应所述查询请求发送所述任务信息给所述用户,以使所述用户通过接收的所述任务信息确定是否停止所述调参任务。
174.在一个实施例中,该第一启动模块3300,还用于根据所述调参算法生成至少一组超参数;根据所述至少一组超参数确定用于对应执行所述调参任务的至少一组子任务;根据所述机器学习算法及其对应的数据源、评估指标发起创建所述至少一组子任务的请求。
175.在一个实施例中,该第二启动模块3400,还用于根据所述超参数、所述机器学习算法及所述评估指标在所述数据源上进行机器学习训练,以得到对应的训练结果。
176.在一个实施例中,所述装置3000还包括运行模块(图中未示出)。
177.该运行模块,用于根据所述主任务、所述子任务执行所述调参任务分别对应所需的运行资源,将所述主任务、所述子任务运行在本地或外部的计算集群中。
178.《例子》
179.以下将结合图4和图5说明本实施例中提供的实现机器学习自动调参的方法。
180.步骤s4010,装置3000接收用户发起的调参任务创建请求。
181.步骤s4020,装置3000基于调参任务创建请求,将用于执行调参任务的主任务提交至装置3000本地或外部的计算集群,并在装置3000本地或外部的计算集群中运行主任务。
182.本步骤s4020中,装置3000可以基于调参任务创建请求,获取主任务所需的调参数据信息和第一运行配置信息,并根据调参数据信息和第一运行配置信息启动主任务。该调参数据信息例如可以包括调参任务的机器学习算法及其对应的数据源、评估指标及调参算法,该第一运行配置信息例如可以包括图5所示的主任务对应的运行资源及数据产出目录。
183.本步骤s4020中,在主任务执行调参任务对应所需的运行资源较大时,可以将该主任务提交在外部的计算集群中,例如提交至图5右边所示的计算集群中。
184.本步骤s4020中,在主任务执行调参任务对应所需的运行资源较少时,可以直接将该主任务提交至装置3000本地运行,例如提交至图5左边所示装置3000本地的自动调参任务运行管理装置。
185.步骤s4030,主任务根据调参算法生成一批训练任务的超参数,并根据该超参数生成对应执行调参任务的一批子任务,并批量提交子任务。
186.本步骤s4040中,主任务在启动后便可根据调参算法生成一批训练任务的超参数,并根据该超参数确定用于执行调参任务的一批子任务,以及,根据机器学习算法及其对应的数据源、评估指标发起创建一批子任务的请求,装置3000接收到该请求后,便可配置子任务执行调参任务所需的运行配置信息,例如图5所示的运行资源及数据产出目录等,进而将该一批子任务提交至如图5右边所示的装置3000本地或如图5左边所示的外部的计算集群,以在装置3000本地或外部的计算集群中运行子任务。以上子任务可以是如图5左边所示的机器学习训练子任务1和机器学习训练子任务2,其中,机器学习训练子任务1和机器学习训练子任务2均运行具体的训练算法。
187.步骤s4040,主任务轮询子任务对应的训练结果。
188.步骤s4050,主任务对子任务对应的训练结果进行判断,得到判断结果,在判断结果表示不需要尝试其他超参数的情况下,执行步骤s4060,反之,执行步骤s4030。
189.步骤s4060,主任务根据训练结果确定不需要尝试其他超参数的情况下,停止各个子任务的运行,生成调参报告,以及,选取任务运行结果最好的一个子任务所对应的一组超参数作为最优超参数并输出,调参任务结束。
190.《存储介质实施例》
191.本实施例提供了一种计算机可读存储介质,其中,其上存储有计算机程序,所述计算机程序在被处理器执行时实现根据上述方法实施例中任一项所述的方法。
192.本发明可以是设备、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
193.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算
机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
194.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
195.用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
196.这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
197.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
198.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
199.附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也
可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
200.以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献