资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

创建自动搜索作业

创建自动搜索作业

1.前提条件
2.新建作业
3.使用自动搜索作业训练模型
3.1 基本信息
3.2 算法配置
3.3 数据集配置
3.4 自动搜索配置
3.5 资源配置
3.6 查看搜索结果及可视化
4.发布模型

前提条件

  1. 自定义作业需要依赖于BOS对象存储读取输入文件,创建自定义作业之前需要保证您已经开通了BOS对象存储的服务。
  2. 授权自定义作业读写您的BOS对象存储,以顺利进行自定义作业的配置。

image.png

  1. 在BOS中存储创建Bucket,并且存储用于训练的代码文件和数据集,创建一个空文件夹用于存储代码的输出文件。

新建作业

  1. 在导航栏选择『自定义作业-自动搜索作业』,进入自动搜索作业的列表页。
  2. 点击『新建作业』,进入配置自动搜索作业流程

image.png

使用自动搜索作业训练模型

自动搜索作业提供了多种开源框架、搜索算法以及优质的训练资源。您可以上传代码文件,数据集到BOS对象存储,通过自动搜索作业完成训练后,平台提供了每组超参数组合的参数值及其对应的模型评估指标、训练结果会输出到BOS中的指定输出目录,同时您也可以通过链接进入可视化界面查看具体搜索结果。

基本信息

填写作业名称和备注信息

2024-02-04 at 15.12.20@2x.png

算法配置

2024-02-04 at 15.12.01@2x.png

  1. 选择算法框架:选择训练代码文件使用的算法框架,目前BML支持Paddle,TensorFlow,Pytorch,Sklearn,XGBoost五种主流算法框架。
  2. 选择代码文件:从BOS对象存储中选取代码文件,完成代码录入。单击文件夹符号,从弹窗中选择bucket及文件夹。双击bucket或者单击『>』图标,即可进入下一级。

image.png

  1. 代码文件要求如下:

    • 选取对象可以是一个文件或者文件夹
    • 所选代码文件必须与所选算法框架对应,所选路径必须包含适配自动搜索作业代码编写规范的代码文件,查看代码文件编写规范(链接到代码文件编写规范)。
  2. 输入启动命令,支持python和shell两类脚本:

    • 当代码文件项选择一个单独文件时,启动命令指向该启动文件
    • 当代码文件项选择一个文件夹时,启动命令需指向该文件夹下的特定启动脚本,例如bash bml_job.sh
  3. 可选高级配置。提交训练作业时,可以通过高级配置来自定义环境变量。

    • 手动配置:通过手动填写环境变量来配置,包括配置变量名称与对应取值。

    2024-02-04 at 18.59.02@2x.png

    • YAML文件:通过上传YAML文件来配置环境变量,支持本地上传和BOS存储导入两种方式。注意:环境变量最多配置100组,平台将在解析时对超出部分做自动截断处理。

    此外,BML平台亦提供预置环境变量,由BML平台预先定义,不建议您自行覆盖修改。

预置环境变量

作业类型 变量名 变量含义 示例 默认值
Pytorch 作业 PYTHONUNBUFFERED 控制Python的标准输出和标准错误输出是否被缓冲。'1'代表输出将不会被缓冲 0 0
PET_RDZV_ENDPOINT 分布式任务同步服务的地址 job-qcu5m5-1984-master-0:23456 MASTER_ADDR:MASTER_PORT
PET_NNODES {实例数}:{实例数} ,代表训练任务的节点个数 2:2
PET_MAX_RESTARTS 训练进程的最大重启次数 100 0
PET_NPROC_PER_NODE 当前节点创建的进程数 10
MASTER_PORT 分布式任务主节点的端口 23456 23456
MASTER_ADDR 分布式任务主节点的地址 job-qcu5m5-1984-master-0 主节点名称
PaddlePaddle 作业 POD_IP 当前节点的IP 172.16.5.9
PADDLE_TRAINER_ID 当前节点的ID,从0开始编号,取值为 0,1,...,(PADDLE_TRAINERS_NUM-1) 0
TRAINING_ROLE 当前节点的角色 PSERVER或TRAINER
PADDLE_TRAINING_ROLE 当前节点的角色 PSERVER或TRAINER
PADDLE_TRAINERS_NUM 分布式训练节点的数量 2
PADDLE_TRAINERS 所有分布式训练节点的ip,使用逗号 ',' 分隔 172.16.5.9,172.16.5.1
PADDLE_TRAINER_ENDPOINTS 所有分布式训练节点的ip、端口,取值为【node1-ip:端口, node2-ip:端口】 172.16.5.9:43817,172.16.5.1:45492
MPI 作业 K_MPI_JOB_ROLE 当前节点的角色,取值为worker或者launcher worker或launcher
OMPI_MCA_orte_keep_fqdn_hostnames 是否保留FQDN hostnames(全限定域名) true true
OMPI_MCA_orte_default_hostfile mpirun命令指定hostfile,在平台中可以自动生成hostfile,无需手动修改。 /etc/mpi/hostfile /etc/mpi/hostfile
OMPI_MCA_plm_rsh_args 训练节点之间ssh连接使用的参数配置 "-o ConnectionAttempts=10" "-o ConnectionAttempts=10"
NVIDIA_VISIBLE_DEVICES 训练节点可见的gpu卡设备 void void
OMPI_MCA_plm_rsh_agent 指定远程代理命令,用于launcher节点给worker节点发送命令。在平台中可以自动生成,无需手动修改。 /etc/mpi/kubexec.sh /etc/mpi/kubexec.sh

数据集配置

自动搜索作业数据集配置方式是从BOS中选取数据集。在弹出的对话框中选择数据集对应的bucket和文件夹。注:选择的数据集路径与代码训练时传入代码的训练集、测试集路径一致。为保证训练效率,最好将数据存放在压缩包内。

image.png

自动搜索配置

image.png

  1. 配置方式:
  • 手动配置:用户需要在平台上手动选择搜索策略以及配置对应的参数。
  • yaml文件:用户可以通过yaml文件来设置自动搜索配置,文件上传方式分为本地上传与从BOS中选取两种。

image.png

  1. 搜索策略:

自动搜索作业目前提供了5种搜索算法,见搜索算法简介。

  1. 参数配置:
  • 选择搜索策略后,参数配置表格会提供对应的参数进行选择,其中关于搜索算法的参数说明见搜索算法简介。
  • 非搜索参数的说明如下:

    • 数据采样比例:超参搜索需要进行多个模型的训练,因此为了提高效率,减少总的搜索耗时,可以设置训练集的数据采样比例。
    • 评价指标:用户在代码中可以自定义评价指标的计算方式,只需要在平台参数配置表格中填写评价指标的名称、优化方向(最大值/最小值)以及早停指标即可。下图是一个填写实例,评价指标:acc,最大值优化,当搜索实验的某个训练结果,acc的数值达到100%时,终止整个自动搜索任务。 image.png
    • 搜索参数:用户需要将待搜索的超参数填入显示框内,搜索参数的名称需要与代码中的名称保持严格一致!如搜索任务中有多个参数需要搜索,点击『+添加参数』即可,如下为搜索参数的参数类型以及对应的取值范围说明:

      • 随机整数:参数范围中填写搜索参数的上下界,算法在其中随机取整。
      • 离散值:参数范围中填写搜索参数的所有可能取值,以英文逗号隔开,算法会随机从中取值。
      • 平均采样:参数范围中填写搜索参数的上下界,算法在其中随机取值,包括整数和小数。
      • 对数平均采样:参数范围中填写搜索参数的上下界,算法在其对数尺度上随机取值,该参数类型适用于学习率等参数范围有尺度差异的超参数。
        image.png

资源配置

BML提供CPU和GPU两类训练机型。

CPU机型供算法框架为sklearn,XGBoost时使用,用于机器学习训练:

机型 规格说明
CPU 4核 CPU 4核16GB内存
CPU 16核 CPU 16核64GB内存

GPU机型供算法框架为Paddle,TensorFlow,Pytorch时使用,用于深度学习训练:

机型 规格说明
GPU V100 TeslaGPU_V100_32G显存单卡_12核CPU_56G内存
GPU P4 TeslaGPU_P4_8G显存单卡_12核CPU_40G内存

查看搜索结果及可视化

查看搜索结果

自动搜索作业运行完成后,在任务列表页中点击查看进入任务详情界面(任务运行时,也可点击查看实时信息)

image.png

点击搜索结果,表格中会显示所有试验的详细信息,如评价指标的值、搜索耗时,试验状态等;点击日志,可以查看每个试验的运行日志。

image.png

点击详情可以查看每个试验的超参数取值。

image.png

查看可视化视图

可视化界面目前仅保存了所有试验中指标最好的5个结果。

  1. 点击查看可视化视图,可以进入飞桨VisualDL可视化界面。
  2. 点击标题栏的超参可视化,自动搜索作业一共提供了三种图:
  • 表格视图:搜索结果以表格的形式呈现。 image.png
  • 平行坐标图

    • 图中右方为柱状热力图,当在右上方选择一个参数时,平行坐标图便会以该参数作为基准结果,参数组合的折线颜色便会依据该组合在选择参数上的取值而改变。
    • 自动搜索作业中,选择评价指标(图中为acc)作为基准结果,然后观察各个超参数对其的影响大小。若某个超参数上相同颜色的折线较为集中,不同颜色有一定的距离,则说明该参数对于结果影响很大;而如果某个超参数上线条颜色混乱,则较大可能该参数对于结果的影响很小。 image.png
  • 散点图:呈现超参数与指标之间的分布关系。 image.png

发布模型

自动搜索作业训练完成后支持将最好的5个模型直接发布到模型仓库。

  1. 模型列表中,训练完成的模型支持『发布』操作,点击『发布』进入发布界面。 image.png
  2. 在发布界面,完成相关配置,如下所示:
  • 填写下图所示基本信息。『模型类型』和『版本』由系统自动生成,不支持修改。重新发布时,『模型名称和『模型描述』会自动填充,无需再次填写。 image.png
  • 根据算法框架的不同,您还需要在发布界面填写响应的额外配置项信息。
算法框架 额外配置项
PaddlePaddle
TensorFlow 无。说明:自动搜索作业支持发布pb格式的模型文件到模型仓库,因此代码中需要保存pb格式的模型
Pytorch 从BOS中选择源代码并输入源代码的主文件名。说明:选取的代码为启动服务的推理代码,具体说明点击这里(链接到pytorch代码示例中的推理代码部分)
Sklearn/XGBoost 模型文件格式:支持发布pickle格式或joblib格式模型到模型仓库。模型文件:选择一个搜索结果后,下方模型文件会自动填充对应试验的路径,用户只需要在对应路径下选中保存的模型即可。说明:其他框架在保存模型时,模型名称是固定的,而机器学习框架中通常是用户指定,因此在发布模型时需要手动选择
上一篇
自动搜索作业简介
下一篇
自动搜索作业代码编写规范