超参搜索
5.1 版本新增: 原有的“训练任务”中的超参数优化部分被拆分成了“超参搜索”。
在机器学习和深度学习的训练过程中,超参数大大影响着模型的表现。而传统的人工调整超参数非常依赖工程师的经验,并会消耗大量时间;超参数搜索算法可以自动的对超参调优,提升模型表现又大大的节约了人力。
本模块提供的超参搜索功能,可以帮助用户对某一个数据集的某一个算法执行超参数搜索调优的功能。用户只需要上传数据以及符合格式的代码,选择搜索算法和搜索设置,即可完成超参搜索任务。
创建超参搜索
左侧功能栏选择“训练管理->超参搜索”;
单击右上角“创建超参搜索”;
按照页面提示配置参数:
名称
必填项
说明
超参搜索名称
是
他人访问权限
是
具体参见 他人访问权限
优先级
是
影响任务排队时的启动顺序
数据
是
参考 数据管理
可以添加多个,并选择是否只读挂载
算法
是
可以选择是否只读挂载
保存模型地址
是
只需选择一个模型地址。
实际训练脚本无需感知,平台会根据 超参搜索目录结构 进行映射。
优化方向
是
搜索指标的优化方向
搜索指标
是
模型的优化指标名,训练日志中需要实时打印该指标名和对应的值
如希望“最大化val-acc,目标90”,则搜索指标为:val-acc,
并且日志需要包含:
val-acc=$value
优化目标
是
搜索指标的优化目标,
如希望“最大化val-acc,目标90”,则优化目标为90
搜索算法
是
详见下文 搜索算法说明
提前结束
是
详见下文 提前结束说明
超参数
是
详见下文 超参数说明
最大任务数量
是
超参搜索最多运行的子任务个数
最大并行任务
是
超参搜索任务同时最多运行的子任务个数
最大失败任务
是
当失败的子任务达到最大值,超参任务会失败
分布式模式
是
不同的模式“计算节点数量”配置不同
TensorFlow 模式需要额外指定“参数服务器数”
不同的模式的运行指令差异较大
单节点规格
是
单个计算节点的配置
- 节点名称 | 否
指定超参搜索可运行的节点,
不可与“驱动版本”、“专属资源池”同时指定
驱动版本
否
选择 MLU 或 GPU 规格时可用
专属资源池
否
指定超参搜索运行的专属资源池
镜像
是
镜像适用范围需包含“超参搜索”
镜像适用板卡类型需和单节点规格一致
节点数
是
每个任务总的资源量为
单节点规格 x 计算节点数量
参数服务器数
否
仅TensorFlow 模式需要,0 表示使用 AllReduce 模式
参数服务器的规格为
1核1G
,无法修改运行指令
是
参见下文 运行指令说明
“批量任务”需要在展开菜单中为单个任务分别指定运行命令
模型
否
可以选择多个,仅只读挂载
存储卷
否
可以选择多个,有写入权限
生命周期脚本
否
参考 生命周期脚本
排队预测;
在创建按钮的右边会显示是否需要排队的信息,参考 排队预测 。
单击“创建”。
超参搜索目录结构
和任务式训练一致,请参考 任务式训练目录结构。
节点规格说明
和任务式训练一致,请参考 节点规格说明。
运行指令说明
和任务式训练一致,请参考 运行指令说明。
搜索算法说明
支持“Grid Search”、“Random Search”、“Bayesian Optimization”、“Tree of Parzen Estimators(TPE)”、 “Multivariate TPE”和“Covariance Matrix Adaptation Evolution Strategy(CMA-ES)”。
Grid Search
网格搜索对所有可能性执行详尽的组合搜索,当所有待搜索的变量都是离散的(而不是连续的)并且可能性的数量较低时,网格搜索非常有用。
Random Search
随机搜索执行无放回的采样。当优化的离散变量较大并且每次评估的时间较长时,可以采用随机搜索。
设置名称 |
类型 |
描述 |
默认配置 |
---|---|---|---|
random state |
int |
可以通过设置random state保证可复现性 |
10 |
Bayesian Optimization
贝叶斯优化方法使用高斯过程回归对搜索空间进行建模,该方法根据已经搜索的点的函数值估计真实目标函数值的均值和方差(即波动范围),再根据均值和方差可以构造出采集函数,通过采集函数的极值求取获得下一个搜索点。该方法适用于搜索空间维数较低的情况。由于该方法同时对预期损失和不确定性进行建模,因此搜索算法较快即可收敛,所以当参数配置的评估时间较长时,它是一个不错的选择。
设置名称 |
类型或可选值 |
描述 |
默认配置 |
---|---|---|---|
base_estimator |
“GP”, “RF”, “ET”, “GBRT” |
估计真实目标函数值的方法,对应 估计真实目标函数值的方法,对应 “GaussianProcess”, “RandomForest”, “ExtraTrees”, “GradientBoosting” |
GP GP |
n_initial_points |
int |
贝叶斯优化的启动需要n_initial_points次。 对于前n_initial_points次的评估, 采用随机搜索的方式 |
10 |
acq_func |
“LCB”, “EI” “PI”, “gp_hedge” |
采集函数的形式, 对应 “lower confidence bound”, “negative expected improvement”, “negative probability of improvement”, “random search from three above functions” |
gp_hedge |
acq_optimizer |
“sampling”, “lbfgs”, “auto” |
最小化采集函数的方法,分别对应 “random sample”, “Limited-memory BFGS”, “on the basis of the base_estimator” |
auto |
random_state |
int |
可以通过设置random state保证可复现性 |
10 |
Tree of Parzen Estimators(TPE)
TPE 是一种基于树结构的优化算法,对于每个超参,TPE 为与最佳目标值相关的超参维护一个高斯混合模型 l(x), 为剩余的超参维护另一个高斯混合模型 g(x), 选择 l(x)/g(x) 最大化时的超参作为下一组搜索值。这种方式可以更灵活的对不同因素进行建模,并且可以更好地处理缺失数据和噪声。
设置名称 |
类型 |
描述 |
默认配置 |
---|---|---|---|
n_EI_candidates |
int |
每迭代计算 n_EI_candidates 次, 选择其中最大的提升作为下次的搜索值 |
25 |
random_state |
int |
可以通过设置random_state保证可复现性 |
10 |
gamma |
float |
用于区分最佳超参的高斯混合模型 和其他超参的高斯混合模型的阈值, 为 (0,1) 之间的数 |
0.25 |
prior_weight |
float |
决定了作为先验的搜索空间在历史实验配置中的权重 |
1.1 |
Multivariate TPE
Multivariate TPE 是 TPE 的改进版本,这种方法会去寻找搜索空间中的超参数之间的相关性。
设置名称 |
类型 |
描述 |
默认配置 |
---|---|---|---|
n_ei_candidates |
int |
每迭代计算 n_ei_candidates 次, 选择其中最大的提升作为下次的搜索值 |
25 |
random_state |
int |
可以通过设置 random_state 保证可复现性 |
10 |
n_startup_trials |
int |
通过随机搜索产生 n_startup_trails 个初始实验 |
5 |
Covariance Matrix Adaptation Evolution Strategy(CMA-ES)
CMA-ES 是一种用于连续搜索空间中优化问题的随机无导数数值优化算法。
设置名称 |
类型或可选值 |
描述 |
默认配置 |
---|---|---|---|
random_state |
int |
可以通过设置random_state保证可复现性 |
10 |
sigma |
float |
CMA-ES的初始标准差 |
0.001 |
restart_strategy |
“none”, “ipop”, “bipop” |
收敛到局部最优时的重启策略 |
ipop |
提前结束说明
目前只支持选择“自动”,对应的算法为“medianstop”。对于某个任务中的某次实验`x`,如果进行到第`s`步时,其最高的评价指标的值,低于之前`x-1`次实验进行到第`s`步的评价指标平均值的中位数,则停止第`x`次实验。
超参数说明
算法需要支持超参数作为入参,运行指令中需要配置超参数,如超参数为`lr`,运行指令配置:
--lr=${trialParameters.lr}
更详细的说明可见 超参搜索任务代码编写规范。
克隆超参搜索
左侧功能栏选择“训练管理->超参搜索”;
选择需要克隆的任务,单击该任务的“操作”按钮;
在下拉列表中,单击“克隆”;
按需调整配置;
单击“创建”。
搜索超参搜索
左侧功能栏选择“训练管理->超参搜索”;
单击左上角搜索框;
在下拉列表中,可基于“名称”、“状态”、“创建人”、“我的算法卷”、“算法收藏”、“算力规格”和“保存模型地址”搜索 超参搜索。
状态说明
超参搜索的状态有:“排队中”、“运行中”、“错误”、“停止”和“成功”。
查看超参搜索详情
查看超参搜索子任务详情
停止超参搜索
左侧功能栏选择“训练管理->超参搜索”;
选择需要停止的任务,单击该任务的“操作”按钮;
在下拉列表中,单击“停止”;
单击“确认停止”。
删除超参搜索
左侧功能栏选择“训练管理->超参搜索”;
单个删除:选择需要删除的任务,单击“操作”按钮,在下拉列表中,单击“删除”;
批量删除:单击表格右上角“编辑”按钮,勾选多个需要删除的任务,单击表格右上角“删除”按钮;
单击“确认删除”。
他人访问权限
创建时,可以限制同项目内其他用户的访问权限,包括:“可读写”、“只读”和“不可读写”。 应用访问权限不得高于资源访问权限。 若管理员关闭共享权限,则他人访问权限只能为“不可读写”。
不同权限支持的操作如下:
可读写 |
只读 |
不可读写 |
|
---|---|---|---|
查看详情 |
√ |
√ |
X |
克隆 |
√ |
√ |
X |
停止 |
√ |
X |
X |
删除 |
√ |
X |
X |