创建算法
针对您在本地或使用其他工具开发的算法,支持上传至ModelArts中统一管理。在创建自定义算法过程中,您需要关注以下内容:
前提条件
- 数据已完成准备:已在ModelArts中创建可用的数据集,或者您已将用于训练的数据集上传至OBS目录。
- 请准备好训练脚本,并上传至OBS目录。训练脚本开发指导参见开发自定义脚本。
- 已在OBS创建至少1个空的文件夹,用于存储训练输出的内容。
- 由于训练作业运行需消耗资源,确保账户未欠费。
- 确保您使用的OBS目录与ModelArts在同一区域。
设置算法启动方式
选择“预置框架”创建算法。
参数 |
说明 |
---|---|
“启动方式-预置框架” |
选择算法使用的预置框架引擎和引擎版本。勾选“显示旧版镜像”,可以选择旧版预置框架。 |
“代码目录” |
算法代码存储的OBS路径。训练代码、依赖安装包或者预生成模型等训练所需文件上传至该代码目录下。 请注意不要将训练数据放在代码目录路径下。训练数据比较大,训练代码目录在训练作业启动后会下载至后台,可能会有下载失败的风险。 训练作业创建完成后,ModelArts会将代码目录及其子目录下载至训练后台容器中。 例如:OBS路径“obs://obs-bucket/training-test/demo-code”作为代码目录,OBS路径下的内容会被自动下载至训练容器的“${MA_JOB_DIR}/demo-code”目录中,demo-code为OBS存放代码路径的最后一级目录,用户可以根据实际修改。
说明:
|
“启动文件” |
必须为“代码目录”下的文件,且以“.py”结尾,即ModelArts目前只支持使用Python语言编写的启动文件。 代码目录路径中的启动文件为训练启动的入口。 |
输入输出管道设置
训练过程中,基于预置框架的算法需要从OBS桶或者数据集中获取数据进行模型训练,训练产生的输出结果也需要存储至OBS桶中。用户的算法代码中需解析输入输出参数实现ModelArts后台与OBS的数据交互,用户可以参考开发自定义脚本完成适配ModelArts训练的代码开发。
创建基于预置框架的算法时,用户需要配置算法代码中定义的输入输出参数。
- 输入配置
表2 输入配置 参数
参数说明
参数名称
根据实际代码中的输入数据参数定义此处的名称。此处设置的代码路径参数必须与算法代码中解析的训练输入数据参数保持一致,否则您的算法代码无法获取正确的输入数据。
例如,算法代码中使用argparse解析的data_url作为输入数据的参数,那么创建算法时就需要配置输入数据的参数名称为“data_url”。
描述
输入参数的说明,用户可以自定义描述。
获取方式
输入参数的获取方式,默认使用“超参”,也可以选择“环境变量”。
输入约束
开启后,用户可以根据实际情况限制数据输入来源。输入来源可以选择“数据存储位置”或者“ModelArts数据集”。
如果用户选择数据来源为ModelArts数据集,还可以约束以下三种:
添加
用户可以根据实际算法添加多个输入数据来源。
- 输出配置
定义超参
使用预置框架创建算法时,ModelArts支持用户自定义超参,方便用户查阅或修改。定义超参后会体现在启动命令中,以命令行参数的形式传入您的启动文件中。
- 导入超参
- 编辑超参
超参的参数说明参见表4。
表4 超参编辑参数 参数
说明
名称
填入超参名称。
超参名称支持64个以内字符,仅支持大小写字母、数字、下划线和中划线。
类型
填入超参的数据类型。支持String、Integer、Float和Boolean。
默认值
填入超参的默认值。创建训练作业时,默认使用该值进行训练。
约束
单击“约束”。在弹出对话框中,支持用户设置默认值的取值范围或者枚举值范围。
必需
选择是或否。
- 选择否,则在使用该算法创建训练作业时,支持在创建训练作业页面删除该超参。
- 选择是,则在使用该算法创建训练作业时,不支持在创建训练作业页面删除该超参。
描述
填入超参的描述说明。
超参描述支持大小写字母、中文、数字、空格、中划线、下划线、中英文逗号和中英文句号。
支持的策略
ModelArts支持用户使用自动化搜索功能。自动化搜索功能在零代码修改的前提下,自动找到最合适的超参,有助于提高模型精度和收敛速度。详细的参数配置请参考超参搜索配置。
自动搜索目前仅支持pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64, tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64镜像。