更新时间:2024-03-21 GMT+08:00

创建训练作业版本

创建训练作业版本的前提条件是训练作业已存在,可基于创建训练作业或者查询训练作业版本列表返回对象的job_id和version_id来创建。

示例代码

在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权

  • 示例一:使用OBS存储位置创建训练作业版本
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    from modelarts.session import Session
    from modelarts.estimator import Estimator
    session = Session()
    estimator = Estimator(
                          modelarts_session=session,
                          framework_type='PyTorch',                                     # AI引擎名称
                          framework_version='PyTorch-1.0.0-python3.6',                  # AI引擎版本
                          code_dir='/bucket/src/',                                      # 训练脚本目录
                          boot_file='/bucket/src/pytorch_sentiment.py',                 # 训练启动脚本目录 
                          log_url='/bucket/log/',                                       # 训练日志目录
                          hyperparameters=[
                                           {"label":"classes",
                                            "value": "10"},    
                                           {"label":"lr",
                                            "value": "0.001"}
                                           ],
                          output_path='/bucket/output/',                                # 训练输出目录
                          train_instance_type='modelarts.vm.gpu.p100',                  # 训练环境规格
                          train_instance_count=1)
    job_version_instance = estimator.create_job_version(job_id='182626', pre_version_id=278813, inputs='/bucket/data/train/', wait=False, job_desc='create a job version')
    
  • 示例二:使用数据集创建训练作业版本
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    from modelarts.session import Session
    from modelarts.estimator import Estimator
    session = Session()
    estimator = Estimator(
                          modelarts_session=session,
                          framework_type='PyTorch',                                     # AI引擎名称
                          framework_version='PyTorch-1.0.0-python3.6',                  # AI引擎版本
                          code_dir='/bucket/src/',                                      # 训练脚本目录
                          boot_file='/bucket/src/pytorch_sentiment.py',                 # 训练启动脚本目录 
                          log_url='/bucket/log/',                                       # 训练日志目录
                          hyperparameters=[
                                           {"label":"classes",
                                            "value": "10"},    
                                           {"label":"lr",
                                            "value": "0.001"}
                                           ],
                          output_path='/bucket/output/',                                # 训练输出目录
                          train_instance_type='modelarts.vm.gpu.p100',                  # 训练环境规格
                          train_instance_count=1,                                       # 训练节点个数
                          job_description='pytorch-sentiment with ModelArts SDK')       # 训练作业描述
    job_version_instance = estimator.create_job_version(job_id='182626', pre_version_id=278813, inputs='/bucket/data/train/', wait=False, job_desc='create a job version')
    
  • 示例三:创建自定义镜像的训练作业版本
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    from modelarts.session import Session
    from modelarts.estimator import Estimator
    session = Session()
    estimator = Estimator(
                          modelarts_session=session,
                          log_url='/bucket/log/',                                       # 训练日志目录
                          hyperparameters=[
                                           {"label":"classes",
                                            "value": "10"},    
                                           {"label":"lr",
                                            "value": "0.001"}
                                           ],
                          output_path='/bucket/output/',                                # 训练输出目录
                          train_instance_type='modelarts.vm.gpu.p100',                  # 训练环境规格
                          train_instance_count=1,                                       # 训练节点个数
                          user_command='bash -x /home/work/run_train.sh python /home/work/user-job-dir/app/mnist/mnist_softmax.py --data_url /home/work/user-job-dir/app/mnist_data',                                                            # 自定义镜像启动命令
                          user_image_url='100.125.5.235:20202/jobmng/cpu-base:1.0',     # 自定义镜像下载地址
                          job_description='pytorch-sentiment with ModelArts SDK')       # 训练作业描述
    job_version_instance = estimator.create_job_version(job_id='182626', pre_version_id=278813, inputs='/bucket/data/train/', wait=False, job_desc='create a job version')
    
  • 示例四:使用内置模型创建训练作业版本
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    from modelarts.session import Session
    from modelarts.estimator import Estimator
    session = Session()
    estimator = Estimator(
                          modelarts_session=session, 
                          model_name='Faster_RCNN_ResNet_v1_50',                        # 内置模型名称
                          log_url='/bucket/log/',                                       # 训练日志目录
                          hyperparameters=[
                                           {"label":"classes",
                                            "value": "10"},    
                                           {"label":"lr",
                                            "value": "0.001"}
                                          ],
                          output_path='/bucket/output/',                                # 训练输出目录
                          train_instance_type='modelarts.vm.gpu.p100',                  # 训练环境规格
                          train_instance_count=1,                                       # 训练节点个数
                          job_description='pytorch-sentiment with ModelArts SDK')       # 训练作业描述
    job_version_instance = estimator.create_job_version(job_id='182626', pre_version_id=278813, inputs='/bucket/data/train/', wait=False, job_desc='create a job version')
    

参数说明

表1 Estimator请求参数说明

参数

是否必选

参数类型

描述

modelarts_session

Object

会话对象,初始化方法见Session鉴权

train_instance_count

Long

训练作业worker的个数。

code_dir

String

训练作业的代码目录,如“/bucket/src/”。当填入model_name时不需要填写。

boot_file

String

训练作业的代码启动文件,需要在代码目录下,如“/bucket/src/boot.py”。当填入model_name时不需要填写。

model_name

Long

训练作业的内置算法模型名称。填入model_name后app_url与boot_file_url不需填写,framework_type和framework_version也不需要填写。“model_name”请从查询预置算法接口中获取。

output_path

String

训练作业的输出位置。

hyperparameters

JSON Array

训练作业的运行参数,为label-value格式,其中lable和value的值均为String类型;当为自定义镜像训练作业的时候,此参数为容器环境变量。

log_url

String

训练作业的日志OBS输出路径URL,默认为空。如:“/usr/log/”

train_instance_type

Long

训练作业选择的资源规格。若选择在训练平台训练,请从查询资源规格列表接口获取。

framework_type

String

训练作业选择的引擎规格。请从查询引擎规格列表接口获取引擎规格。当填入model_name时不需要填写。

framework_version

String

训练作业选择的引擎版本。请从查询引擎规格列表接口获取引擎版本。当填入model_name时不需要填写。

user_image_url

String

自定义镜像训练作业的自定义镜像的SWR-URL。如:“100.125.5.235:20202/jobmng/custom-cpu-base:1.0”

user_command

String

自定义镜像训练作业的自定义镜像的容器的启动命令。形式为:“bash /home/work/run_train.sh python /home/work/user-job-dir/app/train.py {python_file_parameter}”

表2 create_job_version请求参数说明

参数

是否必选

参数类型

描述

job_id

String

训练作业的ID。job_id可通过创建训练作业生成的训练作业对象查询,如“job_instance.job_id”。或可通过查询训练作业列表的响应获取。

pre_version_id

Long

训练作业前一版本的ID。pre_version_id可通过创建训练作业生成的训练作业对象查询,如“job_instance.version_id”。或通过查询训练作业列表的响应获取。

inputs

String

训练作业的数据存储位置。inputs和dataset_id、dataset_version_id、data_source不可同时出现,但必须有其一。本地训练只支持该参数。

dataset_id

String

训练作业的数据集ID。应与dataset_version_id同时出现,但不可与inputs同时出现。

dataset_version_id

String

训练作业的数据集版本ID。应与dataset_id同时出现,但不可与inputs同时出现。

wait

Boolean

是否等待创建训练作业版本结束,默认为“False”

job_desc

String

训练作业版本的描述。

表3 create_job_version成功响应说明

参数

类型

描述

TrainingJob

Object

训练对象。该对象包含job_id、version_id等属性,及对训练作业的查询、更新、删除等操作,如可通过job_version_instance.job_id获取训练作业ID。