大模型算力管理平台 自动调参介绍
在构建机器学习模型的过程中需要很多的超参数,超参数的选择极大的影响了最终获取的模型的效果,自动调参是指通过系统自动获取最优超参数集合的方法。
自动调参目前支持通过界面和命令和进行创建,如需通过命令行创建,请先安装 bayes 命令行工具,并了解其基本的使用方法。
为了使用自动调参需要做以下的工作:
- 完成自动调参的配置,主要包含两个部分:
- 确定需要自动调节的超参数,依据自动调参的配置文档为系统指定哪些超参数需要调节以及调节的范围
- 确定所需要获取的关键指标,并在模型训练时 通过 openbayestool 提交到 大模型算力管理平台 系统中
- 修改已有的代码,支持对自动调参系统所生成的超参数的读取
快速尝试
openbayes-hypertuning-example 是一个样例代码库,目前仓库中分别包含 TensorFlow 和 PyTorch 版本的样例,请分别在 /tensorflow 和 /pytorch 目录查看。每个目录都包含了完成的 openbayes.yaml
以及相应的支持代码,按照其中的步骤可以运行一个自动调参的样例。
修改自身代码以支持自动调参
获取自动调参服务生成的参数
自动调参启动的任务可以通过两种方式获取其提供的参数:
-
读取
openbayes_params.json
:如上的parameter_specs
会生成四 个参数,那么在容器的工作目录下会出现包含这些内容的openbayes_params.json
:openbayes_params.json{
"regularization": 6.933098216541059,
"latent_factors": 29,
"unobs_weight": 3.439490399012204,
"feature_wt_factor": 102.9461653166788
}在代码执行之前通过读取该文件内的参数并使用即可
-
读取命令行参数:通过自动调参创建的任务其参数会以如下形式被添加到执行命令上:
python main.py \
--regularization=6.933 \
--latent_factors=29 \
--unobs_weight=3.439 \
--feature_wt_factor=102.9采用 argparse 可以解析并使用这些参数。
上报关键指标
在 系统指标与自定义指标 章节介绍了 openbayestool
工具有 log_metric
方法可以上报自定义的指标,自动调参同样采用这个工具实现指标的上报。在程序结束时通过以下代码即可实现上报:
import openbayestool
openbayestool.log_metric("precision", 0.809)
注意这里具体上报的指标名称应当和 openbayes.yaml
中配置的 hyperparameter_metric
一致。
创建自动调参
通过界面创建
登录控制台之后,可以从侧边栏的「自动调参」进行创建,或者从列表右上角的「创建自动调参」进行创建。
目前我们支持两种方式配置自动调参参数,可视化编辑器和 YAML 编辑器。在任意编辑器中进行编辑会同步进行更新。也就是说当用户在可视化编辑器中更新了参数后,切换到 YAML 编辑器后,配置会同步更新,反过来也相同。
通过命令行工具创建
通过命令行工具创建自动调参时,需要对 bayes
命令行工具有所了解,可以参考 bayes 命令行工具入门,同时还需要了解 openbayes 配置文件。
在准备好自动调参配置文件之后,通过命令 bayes gear run hypertuning
创建自动调参任务:
查看自动调参
如上所示,自动调参页面会通过「图表」「平行坐标」等方式展示当前执行的状况,用户可以通过结果选择最好的一次执行作为结果或者依据目前的结果更新自动调参参数范围后继续新的自动调参任务。其中「平行坐标」是一个非常适合对自动调参结果进行筛选的视图,通过在界面上划定参数范围可以控制展示的参数组合。