更新时间:2023-01-29 GMT+08:00
分享

使用自定义镜像创建算法

针对您在本地或使用其他工具开发的算法,支持上传至ModelArts中统一管理。

创建算法入口

在ModelArts上基于自定义镜像创建算法有2个入口:

  • 入口1:在ModelArts控制台算法管理 >我的算法入口,此处创建的算法可以在创建训练作业时直接使用,并且可以发布算法到AI Gallery。
  • 入口2:在ModelArts控制台 训练管理 > 训练作业 > 创建训练作业时,直接创建自定义算法,并提交训练作业。具体参见使用自定义镜像创建训练作业(CPU/GPU)

创建算法参数设置

图1 使用自定义镜像创建算法
表1 创建算法参数说明

参数

说明

启动方式

必选,选择“自定义”

镜像地址

必选。容器镜像地址。

  • 自有镜像或他人共享的镜像:单击右边的“选择”,可以从SWR服务选择用户的容器镜像,前提是要先上传镜像到SWR中。
  • 公开镜像:支持手动输入SWR上的公开镜像地址(<用户镜像所属组织>/<镜像名称>),地址上不需要带域名信息(swr.<region>.xxx.com),系统会自动拼接域名地址。例如:
    modelarts-job-dev-image/pytorch_1_8:train-pytorch_1.8.0-cuda_10.2-py_3.7-euleros_2.10.1-x86_64-8.1.1

代码目录

可选,训练代码存储的OBS路径。

以选择了OBS路径“obs://obs-bucket/training-test/demo-code”作为代码目录为例,OBS路径下的内容会被自动下载至训练容器的“${MA_JOB_DIR}/demo-code”目录中,demo-code为OBS存放代码路径的最后一级目录,用户可以根据实际修改。

启动命令

必选,镜像的启动命令。在代码目录下载完成后,启动命令会被自动执行。

  • 如果训练启动脚本用的是py文件,例如train.py,启动命令可以写为python ${MA_JOB_DIR}/demo-code/train.py
  • 如果训练启动脚本用的是sh文件,例如main.sh,启动命令可以写为bash ${MA_JOB_DIR}/demo-code/main.sh

启动命令可支持使用";"和"&&"拼接多条命令,但暂不支持换行拼接。命令中的demo-code为OBS存放代码路径的最后一级目录,用户可以根据实际修改。

输入输出管道设置

训练过程中,基于预置框架的算法需要从OBS桶或者数据集中获取数据进行模型训练,训练产生的输出结果也需要存储至OBS桶中。用户的算法代码中需解析输入输出参数实现ModelArts后台与OBS的数据交互,用户可以参考开发自定义脚本完成适配ModelArts训练的代码开发。

创建基于预置框架的算法时,用户需要配置算法代码中定义的输入输出参数。

  • 输入配置
    表2 输入配置

    参数

    参数说明

    参数名称

    如果您的算法代码中使用argparse解析data_url为输入数据参数,则在创建的算法需要配置输入数据代码参数为“data_url”。根据实际代码中的输入数据参数定义此处的名称。

    此处设置的代码路径参数必须与算法代码中解析的输入数据参数保持一致,否则您的算法代码无法获取正确的输入数据。

    描述

    输入参数的说明,用户可以自定义描述。

    获取方式

    输入参数的获取方式,默认使用“超参”,也可以选择“环境变量”

    输入约束

    开启后,用户可以根据实际情况限制数据输入来源。输入来源可以选择“数据存储位置”或者“ModelArts数据集”

    如果用户选择数据来源为ModelArts数据集,还可以约束以下三种:

    • 标注类型。数据类型请参考标注数据
    • 数据格式。可选“Default”“CarbonData”,支持多选。其中“Default”代表Manifest格式。
    • 数据切分。可选“仅支持切分的数据集”“仅支持未切分数据集”“无限制”。仅“图像分类”、“物体检测”、“文本分类”和“声音分类”类型数据集支持进行数据切分功能。数据切分详细内容可参考发布数据版本

    添加

    用户可以根据实际算法添加多个输入数据来源。

    图2 输入配置
  • 输出配置
    表3 输出配置

    参数

    参数说明

    参数名称

    如果您的算法代码中使用argparse解析train_url为训练输出参数,则在创建的算法需要配置输出数据参数为“train_url”。根据实际代码中的训练输出参数定义此处的名称。

    此处设置的代码路径参数必须与算法代码中解析的训练输出参数保持一致,否则您的算法代码无法获取正确的输出路径。

    描述

    输出参数的说明,用户可以自定义描述。

    获取方式

    输出参数的获取方式,默认使用“超参”,也可以选择“环境变量”

    添加

    用户可以根据实际算法添加多个输出数据路径。

    图3 输出配置

定义超参

使用预置框架创建算法时,ModelArts支持用户自定义超参,方便用户查阅或修改。定义超参后会体现在启动命令中,以命令行参数的形式传入您的启动文件中。

  1. 导入超参

    您可以单击“增加超参”手动添加超参。

    图4 添加超参

  2. 编辑超参。超参参数说明参见表4
    表4 超参编辑参数

    参数

    说明

    名称

    填入超参名称。

    超参名称支持64个以内字符,仅支持大小写字母、数字、下划线和中划线。

    类型

    填入超参的数据类型。支持String、Integer、Float和Boolean。

    默认值

    填入超参的默认值。创建训练作业时,默认使用该值进行训练。

    约束

    单击约束。在弹出对话框中,支持用户设置默认值的取值范围或者枚举值范围。

    必需

    可选是或者否。如果您选择否,在使用该算法创建训练作业时,支持在创建训练作业页面删除该超参。如果您选择是,则不支持删除操作。

    描述

    填入超参的描述说明。

    超参描述支持大小写字母、中文、数字、空格、中划线、下划线、逗号和句号。

添加训练约束

用户可以根据实际情况定义此算法的训练约束。

  • 资源类型:可选“CPU”“GPU”“Ascend”,支持多选。
  • 多卡训练:可选“支持”“不支持”
  • 分布式训练:可选“支持”“不支持”
    图5 算法训练约束

运行环境预览

创建训练作业时,可以打开创建页面右下方的运行环境预览窗口,辅助您了解代码目录、启动文件、输入输出等数据配置在训练容器中的路径。

图6 运行环境预览

后续操作

创建算法完成后,可以使用算法快速创建训练作业,详细操作请参见使用自定义镜像创建训练作业(CPU/GPU)

也可以将新创建的算法发布到AI Gallery,分享给其他用户使用。

分享:

    相关文档

    相关产品