AutoML是PAI提供的机器学习增强型服务,集成了多种算法和分布式计算资源,无需编写代码,通过创建实验即可实现模型超参数调优,提高机器学习效率和性能。本文为您介绍如何新建实验。
背景信息
AutoML的工作机制:
实验会根据算法配置自动生成超参数组合。针对每组超参数组合,该实验会创建一个Trial。同时,每个Trial可能会对应一个DLC任务,也可能对应1个或多个MaxCompute任务。任务的类型取决于实验的执行配置。后续将通过配置的任务来执行Trial。实验通过调度运行多个Trial,并比较这些Trial的结果,以找到较优的超参数组合。更详细的原理介绍,请参见AutoML工作原理。
前提条件
首次使用AutoML功能时,需要完成AutoML相关权限授权。具体操作,请参见云产品依赖与授权:AutoML。
已创建工作空间,具体操作,请参见创建工作空间。
如果创建DLC任务,需要完成以下准备工作:
已完成DLC相关权限授权,授权方法详情请参见云产品依赖与授权:DLC。
已准备资源组。准备通用计算资源公共资源组和专有资源组,请参见新建资源组并购买通用计算资源。准备灵骏智算资源专有资源组,请参见灵骏智算资源配额。
如果创建MaxCompute任务,则需要准备MaxCompute资源,并关联到了工作空间。具体操作,请参见MaxCompute资源配额。
操作步骤
进入自动机器学习(AutoML)页面。
登录PAI控制台。
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
在左侧导航栏,选择
。
在实验列表页面,单击新建实验。
在新建实验页面,配置如下参数。
基本信息配置。
参数
描述
名称
参考界面提示信息配置实验名称。
描述
对创建的实验进行简单描述,以区分不同的实验。
可见范围
实验的可见性,支持以下取值:
仅自己可见:在工作空间中,仅对您和管理员可见。
工作空间内公开可见:在工作空间中,对所有人可见。
执行配置。
任务类型:是Trial的执行环境,支持选择DLC和MaxCompute。
DLC:表示通过运行分布式训练(DLC)任务,进行超参数调优。更多关于DLC任务的介绍,请参见创建训练任务。
MaxCompute:表示在MaxCompute计算资源上,运行SQL命令或Designer算法组件的PAI命令,进行超参数调优。更多关于Designer算法组件以及每个组件支持的PAI命令的详细信息,请参见组件参考:所有组件汇总。
DLC
任务类型选择DLC时,参数配置如下表所示:
参数
描述
框架
支持选择以下两种框架类型:
Tensorflow
PyTorch
数据集
此处需配置为已准备好的数据集,数据集配置方式请参见创建及管理数据集。
代码源
指定任务代码文件的存储位置(代码仓库信息)。此处需配置为已准备好的代码配置,配置方式请参见代码配置。
说明由于DLC会将代码下载至指定工作路径,所以您需要有代码仓库的访问权限。
资源组
选择公共资源组或已购买的专有资源组。如何准备资源组,请参见新建资源组并购买通用计算资源和灵骏智算资源配额。
机器规格
选择任务运行所需的实例规格。不同规格的实例价格有所不同,关于各个规格的计费详情,请参见DLC计费说明。
节点镜像
工作节点的镜像。当前支持选择使用不同类型的镜像:
节点数量
在DLC任务中所使用的计算节点的数量。
重要如果选择配置多个节点,则每个节点都会独立收取费用,而不是共享同一个机器规格。因此,在节点选择过程中,您需要明确每个节点的费用,并综合考虑成本和性能之间的平衡。
CPU(核数)
当资源组选择已购买的专有资源组时,您可以根据购买的资源规格来配置这些参数。
内存(GB)
共享内存(GB)
GPU(卡数)
高级配置
支持通过高级配置提高训练灵活性,或满足一些特定的训练场景。当框架选择Pytorch时,您可以配置高级参数。支持的高级参数列表及取值说明,请参见附录1:高级参数列表。
节点启动命令
各个节点的启动命令。您需要在命令中配置超参数变量
${自定义超参数变量}
,例如:python /mnt/data/examples/search/dlc_mnist/mnist.py --data_dir=/mnt/data/examples/search/data --save_model=/mnt/data/exmaples/search/model/model_${exp_id}_${trial_id} --batch_size=${batch_size} --lr=${lr} --metric_filepath=/mnt/data/examples/search/metric/metric_${exp_id}_${trial_id}
其中:
${batch_size}
和${lr}
为定义的超参数变量。超参数
根据启动命令中配置的超参数变量,自动加载超参数列表。您需要为每个超参数配置约束类型和搜索空间:
约束类型:为超参数添加的限制条件。您可以将鼠标悬停在约束类型后的图标上,以查看支持选择的约束类型及相关说明。
搜索空间:用于指定超参数的取值范围。每种约束类型对应的搜索空间的配置方式不同,您可以单击图标并根据界面提示进行添加。
MaxCompute
任务类型选择MaxCompute时,参数配置如下表所示:
参数
描述
命令
配置为SQL命令或运行Designer算法组件的PAI命令。您需要在命令中配置超参数变量
${自定义超参数变量}
,例如:pai -name kmeans -project algo_public -DinputTableName=pai_kmeans_test_input -DselectedColNames=f0,f1 -DappendColNames=f0,f1 -DcenterCount=${centerCount} -Dloop=10 -Daccuracy=0.01 -DdistanceType=${distanceType} -DinitCenterMethod=random -Dseed=1 -DmodelName=pai_kmeans_test_output_model_${exp_id}_${trial_id} -DidxTableName=pai_kmeans_test_output_idx_${exp_id}_${trial_id} -DclusterCountTableName=pai_kmeans_test_output_couter_${exp_id}_${trial_id} -DcenterTableName=pai_kmeans_test_output_center_${exp_id}_${trial_id};
其中:
${centerCount}
和${distanceType}
为定义的超参数变量。更多配置示例,请参见附录:参考说明。
超参数
根据命令中配置的超参数变量,自动加载超参数列表。您需要为每个超参数配置约束类型和搜索空间:
约束类型:为超参数添加的限制条件。您可以将鼠标悬停在约束类型后的图标上,以查看支持选择的约束类型及相关说明。
搜索空间:用于指定超参数的取值范围。每种约束类型对应的搜索空间的配置方式不同,您可以单击图标并根据界面提示进行添加。
Trial配置。
使用某组超参来运行任务,参数配置如下:
参数
描述
指标类型
用来评估Trial的指标类型,取值如下:
summary:最终指标需要从来自OSS的Tensorflow summary文件中提取。
table:最终指标需要从MaxCompute表格中提取。
stdout:最终指标需要从运行过程中的stdout中提取。
json:最终指标以JSON格式的文件存储在OSS中。
计算方式
在任务运行过程中,会逐步输出多个中间指标,需要通过计算方式来确定最终指标。取值如下:
final:以最后一个指标作为整个Trial的最终指标。
best:以在任务运行过程中得到的最优指标作为整个Trial的最终指标。
avg:以在任务运行过程中得到的全部中间指标的均值作为Trial的最终指标。
指标权重
当需要同时考虑多个指标时,您可以通过配置指标名称和对应权重的方式来实现,系统将使用加权求和值作为最终评估指标来比较优劣。
key:为指标名称,支持正则表达式。
value:为对应的权重。
说明权重可以为负值,且权重之和可以不为1,支持自定义。
指标来源
指标的来源:
当指标类型选择summary或json时,需要配置一个文件路径。例如
oss://examplebucket/examples/search/pai/model/model_${exp_id}_${trial_id}
。当指标类型选择table时,需要配置一个能够获取具体结果的SQL语句。例如
select GET_JSON_OBJECT(summary, '$.calinhara') as vrc from pai_ft_cluster_evaluation_out_${exp_id}_${trial_id}
。当指标类型选择stdout时,需要配置一个命令关键字。仅支持配置为
cmdx
或cmdx;xxx,such as cmd1;worker
。
优化方向
用于评估Trial结果的优化方向,取值如下:
越大越好
越小越好
模型存储路径
存储模型的路径。该路径必须包含
${exp_id}_${trial_id}
,用来区分不同超参数组合下生成的模型。例如oss://examplebucket/examples/search/pai/model/model_${exp_id}_${trial_id}
。搜索配置。
参数
描述
搜索算法
是一种自动化机器学习算法,它根据超参数搜索空间以及先前Trial的结果和性能指标,寻找更优的超参数组合,以供下一个Trial运行使用。支持选择的算法类型如下:
TPE
Random
GridSearch
Evolution
GP
PBT
算法详情说明,请参见支持的搜索算法。
最大搜索次数
该实验允许运行的最多Trial个数。
最大并发量
该实验允许并行运行的最多Trial个数。
单击提交。
您可以在实验列表中查看已创建的实验。
后续操作
附录:参考说明
在使用MaxCompute类型的任务进行超参数调优时,提供了如下配置示例供您参考:
命令配置如下,其中cmd1和cmd2分别对应两个组件的命令,按照顺序依次排列。具体使用流程,请参见MaxCompute K均值聚类最佳实践。
cmd1
pai -name kmeans -project algo_public -DinputTableName=pai_kmeans_test_input -DselectedColNames=f0,f1 -DappendColNames=f0,f1 -DcenterCount=${centerCount} -Dloop=10 -Daccuracy=0.01 -DdistanceType=${distanceType} -DinitCenterMethod=random -Dseed=1 -DmodelName=pai_kmeans_test_output_model_${exp_id}_${trial_id} -DidxTableName=pai_kmeans_test_output_idx_${exp_id}_${trial_id} -DclusterCountTableName=pai_kmeans_test_output_couter_${exp_id}_${trial_id} -DcenterTableName=pai_kmeans_test_output_center_${exp_id}_${trial_id};
cmd2
PAI -name cluster_evaluation -project algo_public -DinputTableName=pai_cluster_evaluation_test_input -DselectedColNames=f0,f1 -DmodelName=pai_kmeans_test_output_model_${exp_id}_${trial_id} -DoutputTableName=pai_ft_cluster_evaluation_out_${exp_id}_${trial_id};