超参数优化
ClearML HPO 应用程序可在 ClearML Pro 计划下使用。
超参数优化应用程序找到一组参数值,这些值可以优化您模型的特定指标。
它接收一个ClearML实验及其需要优化的参数。参数搜索空间可以通过特定的(离散)值和/或值范围(均匀参数)来指定。
优化应用程序启动原始实验的多个副本,每次采样不同的参数集,应用用户选择的优化策略(随机搜索、贝叶斯等)。
使用高级配置选项控制优化过程,包括时间、迭代和实验限制。
HPO实例配置
-
导入配置 - 导入一个应用实例配置文件。这将用文件中的值填充实例启动表单,可以在启动应用实例之前进行修改。
-
初始任务优化 - 要优化的ClearML任务的ID。此任务将被克隆,每个克隆将采样一组不同的超参数值
-
优化方法 - 采用的优化策略(例如:随机、网格、超带)
-
目标 - 设置优化目标,以最小化或最大化指定指标的值
- 优化目标指标的标题 - 要优化的指标的标题
- 优化目标指标的系列 - 要优化的指标系列(变体)
- 优化目标趋势 - 选择优化目标,是最大化还是最小化上述指定的指标值
- + 添加项目 - 添加一个目标
-
执行队列 - ClearML 队列,优化任务将被加入该队列(确保有代理被分配到该队列)
-
需要优化的参数 - 构成优化空间的参数
- Type
- Uniform Parameters - A value range to sample
- Minimum Value
- Maximum Value
- Step Size - Step size between samples
- Discrete Parameters - A set of values to sample
- Values - Comma separated list of values to sample
- Uniform Parameters - A value range to sample
- Name - The original task's configuration parameter name (including section name e.g.
Args/lr
)
Hydra Parameters对于使用Hydra的实验,输入参数来自OmegaConf,格式如下:
Hydra/
。使用点符号指定。例如,如果你的OmegaConf看起来像这样:
dataset:
user: root
main:
number: 80使用
Hydra/dataset.main.number
指定number
参数。此外,请确保初始实验的
_allow_omegaconf_edit_
参数设置为False
(在实验的配置 > 超参数 > Hydra中)。 - Type
-
优化作业标题(可选)- HPO实例的名称。这将出现在实例列表中
-
优化实验目标项目(可选)- 优化任务将保存到的项目。 留空以使用与初始任务相同的项目。
-
最大并发任务数 - 同时运行的优化实验的最大数量
-
高级配置 (可选)
- 限制总HPO实验次数 - 优化实验的最大总数
- 保存的顶级实验数量 - 保存的最佳实验数量(其余实验将被归档)
- 限制单个实验运行时间(分钟) - 每个优化实验的时间限制。实验将在指定时间后停止
- 单个实验的最小迭代次数 - 一些搜索方法,如Optuna,会修剪表现不佳的实验。这是在实验停止之前的最小迭代次数。迭代基于实验自身的报告(例如,如果实验每轮报告一次,则迭代次数=轮次)
- 单个实验的最大迭代次数 - 每个实验的最大迭代次数,超过此次数后实验将停止。迭代基于实验自身的报告(例如,如果实验每轮报告一次,则迭代次数=轮次)
- 限制总优化实例时间(分钟) - 整个优化过程的时间限制(以分钟为单位)
-
导出配置 - 将应用程序实例配置导出为JSON文件,稍后可以导入以创建具有相同配置的新实例
仪表盘
一旦HPO实例启动,仪表板将显示优化过程的摘要。
HPO仪表板显示:
- 优化指标 - 目标指标随时间变化的最后报告值和最大/最小值
- 优化目标 - 每个实验的目标指标值
- 平行坐标 - 参数值对优化目标影响的可视化
- 摘要 - 实验摘要表:实验执行信息、目标指标和参数值。
- 预算 - 可用的迭代和任务预算(百分比,基于HPO实例高级配置中定义的值)
- 资源 - 服务于HPO执行队列的工作者数量,以及当前正在运行的优化任务数量
您可以将应用程序实例仪表板中的图表嵌入到ClearML 报告中。这些可视化内容会随着应用程序实例的更新而实时更新。企业计划和托管服务支持将资源嵌入到外部工具中(例如 Notion)。将鼠标悬停在图表上并点击以复制嵌入代码,然后导航到报告并粘贴嵌入代码。