更新时间:2024-04-30 GMT+08:00

使用自定义镜像创建算法

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

创建算法入口

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

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

创建算法参数设置

表1 创建算法参数说明

参数

说明

启动方式

必选,选择“自定义”

镜像

必选。容器镜像地址。

  • 自有镜像或他人共享的镜像:单击右边的“选择”,可以从SWR服务选择用户的容器镜像,前提是要先上传镜像到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格式。
    • 数据切分。仅“图像分类”、“物体检测”、“文本分类”和“声音分类”类型数据集支持进行数据切分功能。

      可选“仅支持切分的数据集”“仅支持未切分数据集”“无限制”。数据切分详细内容可参考发布数据版本

    添加

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

  • 输出配置
    表3 输出配置

    参数

    参数说明

    参数名称

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

    例如,算法代码中使用argparse解析的train_url作为训练输出数据的参数,那么创建算法时就需要配置输出数据的参数名称为“train_url”

    描述

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

    获取方式

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

    添加

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

定义超参

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

  1. 导入超参

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

    图1 添加超参
  2. 编辑超参

    超参的参数说明参见表4

    表4 超参编辑参数

    参数

    说明

    名称

    填入超参名称。

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

    类型

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

    默认值

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

    约束

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

    必需

    选择是或否。

    • 选择否,则在使用该算法创建训练作业时,支持在创建训练作业页面删除该超参。
    • 选择是,则在使用该算法创建训练作业时,不支持在创建训练作业页面删除该超参。

    描述

    填入超参的描述说明。

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

添加训练约束

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

  • 资源类型:选择适用的资源类型,支持多选。
  • 多卡训练:选择是否支持多卡训练。
  • 分布式训练:选择是否支持分布式训练。

运行环境预览

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

后续操作

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