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

创建训练作业

在训练平台训练方式中,如果训练失败的话,可以到训练平台或调用查询训练作业日志查看详细的日志信息。

示例代码

在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
    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.cpu.2u',                  # 训练环境规格
                          train_instance_count=1,                                       # 训练节点个数
                          job_description='pytorch-sentiment with ModelArts SDK')       # 训练作业描述
    job_instance = estimator.fit(inputs='/bucket/data/train/', wait=False, job_name='my_training_job')
    
  • 示例二:使用数据集创建训练作业
     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.cpu.2u',                  # 训练环境规格
                          train_instance_count=1,                                       # 训练节点个数
                          job_description='pytorch-sentiment with ModelArts SDK')       # 训练作业描述
    job_instance = estimator.fit(dataset_id='4AZNvFkN7KYr5EdhFkH', dataset_version_id='UOF9BIeSGArwVt0oI6T', wait=False, job_name='my_training_job')
    
  • 示例三:创建自定义镜像的训练作业
     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.cpu.2u',                  # 训练环境规格
                          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_instance = estimator.fit(inputs='/bucket/data/train/', wait=False, job_name='my_training_job')
    
  • 示例四:向专属资源池提交训练作业
    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/',                                # 训练输出目录
    		      pool_id="your pool id",                                       # 专属资源池id
                          train_instance_type='your instance type',                     # 训练环境规格,如果为None,默认使用专属池默认规格
                          train_instance_count=1,                                       # 训练节点个数
                          job_description='pytorch-sentiment with ModelArts SDK')       # 训练作业描述
    job_instance = estimator.fit(inputs='/bucket/data/train/', wait=False, job_name='my_training_job')

参数说明

表1 Estimator请求参数说明

参数

是否必选

参数类型

描述

modelarts_session

Object

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

train_instance_count

Int

训练作业计算节点个数。

code_dir

String

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

boot_file

String

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

model_name

String

训练作业的内置算法模型名称。填入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

String

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

framework_type

String

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

framework_version

String

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

job_description

String

训练作业的描述。

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}”

pool_id

String

训练作业选择的资源池ID,可在ModelArts管理控制台,单击左侧“专属资源池”,在专属资源池列表中查看资源池ID。

表2 fit请求参数说明

参数

是否必选

参数类型

描述

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_name

String

训练作业的名称,支持[a-zA-Z0-9_-]{1,64}。若不填,则会动态生成一个job_name。

表3 训练平台训练的成功响应说明

参数

类型

描述

TrainingJob

Object

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