使用自定义镜像创建算法
针对您在本地或使用其他工具开发的算法,支持上传至ModelArts中统一管理。
创建算法入口
在ModelArts上基于自定义镜像创建算法有2个入口:
- 入口1:在ModelArts控制台 入口,此处创建的算法可以在创建训练作业时直接使用,并且可以发布算法到AI Gallery。
- 入口2:在ModelArts控制台 使用自定义镜像创建训练作业(CPU/GPU)。 时,直接创建自定义算法,并提交训练作业。具体参见
创建算法参数设置

参数 |
说明 |
---|---|
启动方式 |
必选,选择“自定义”。 |
镜像地址 |
必选。容器镜像地址。
|
代码目录 |
可选,训练代码存储的OBS路径。 以选择了OBS路径“obs://obs-bucket/training-test/demo-code”作为代码目录为例,OBS路径下的内容会被自动下载至训练容器的“${MA_JOB_DIR}/demo-code”目录中,demo-code为OBS存放代码路径的最后一级目录,用户可以根据实际修改。 |
启动命令 |
必选,镜像的启动命令。在代码目录下载完成后,启动命令会被自动执行。
启动命令可支持使用";"和"&&"拼接多条命令,但暂不支持换行拼接。命令中的demo-code为OBS存放代码路径的最后一级目录,用户可以根据实际修改。 |
输入输出管道设置
训练过程中,基于预置框架的算法需要从OBS桶或者数据集中获取数据进行模型训练,训练产生的输出结果也需要存储至OBS桶中。用户的算法代码中需解析输入输出参数实现ModelArts后台与OBS的数据交互,用户可以参考开发自定义脚本完成适配ModelArts训练的代码开发。
创建基于预置框架的算法时,用户需要配置算法代码中定义的输入输出参数。
- 输入配置
表2 输入配置 参数
参数说明
参数名称
如果您的算法代码中使用argparse解析data_url为输入数据参数,则在创建的算法需要配置输入数据代码参数为“data_url”。根据实际代码中的输入数据参数定义此处的名称。
此处设置的代码路径参数必须与算法代码中解析的输入数据参数保持一致,否则您的算法代码无法获取正确的输入数据。
描述
输入参数的说明,用户可以自定义描述。
获取方式
输入参数的获取方式,默认使用“超参”,也可以选择“环境变量”。
输入约束
开启后,用户可以根据实际情况限制数据输入来源。输入来源可以选择“数据存储位置”或者“ModelArts数据集”。
如果用户选择数据来源为ModelArts数据集,还可以约束以下三种:
添加
用户可以根据实际算法添加多个输入数据来源。
图2 输入配置 - 输出配置
表3 输出配置 参数
参数说明
参数名称
如果您的算法代码中使用argparse解析train_url为训练输出参数,则在创建的算法需要配置输出数据参数为“train_url”。根据实际代码中的训练输出参数定义此处的名称。
此处设置的代码路径参数必须与算法代码中解析的训练输出参数保持一致,否则您的算法代码无法获取正确的输出路径。
描述
输出参数的说明,用户可以自定义描述。
获取方式
输出参数的获取方式,默认使用“超参”,也可以选择“环境变量”。
添加
用户可以根据实际算法添加多个输出数据路径。
图3 输出配置
定义超参
使用预置框架创建算法时,ModelArts支持用户自定义超参,方便用户查阅或修改。定义超参后会体现在启动命令中,以命令行参数的形式传入您的启动文件中。
- 导入超参
图4 添加超参
- 编辑超参。超参参数说明参见表4。
添加训练约束
用户可以根据实际情况定义此算法的训练约束。
- 资源类型:可选“CPU”、“GPU”、“Ascend”,支持多选。
- 多卡训练:可选“支持”和“不支持”。
- 分布式训练:可选“支持”和“不支持”。
图5 算法训练约束
运行环境预览
创建训练作业时,可以打开创建页面右下方的运行环境预览窗口,辅助您了解代码目录、启动文件、输入输出等数据配置在训练容器中的路径。
