文档

提交命令

更新时间:

您可以通过客户端工具提交多种类型的训练任务。本文介绍提交任务相关的命令详情,包括调用格式、参数解释和使用示例。

提交任务的通用参数

使用DLC命令行提交TensorFlow(tfjob),PyTorch(pytorchjob),XGBoost(xgboostjob)任务时,存在通用的参数。通用参数列表如下

表 1. 提交任务的通用参数

参数

是否必选

描述

类型

任务参数描述文件中是否支持该参数

name

任务的名称,多个任务名称可以相同。

STRING

command

各个节点的启动命令。

STRING

data_sources

绑定的数据集ID,您可以前往数据集管理页面查看,详情请参见创建及管理数据集。如存在多个,则以半角逗号(,)分隔,默认为空。

STRING

code_source

代码集ID,您可以前往代码集页面查看,详情请参见代码配置。只传入单个,默认为空。

STRING

code_branch

指定代码仓库的分支,与参数code_source配合使用。

STRING

code_commit

指定代码仓库的CommitId,与参数code_source配合使用。

STRING

thirdparty_libs

Python三方库;若存在多个,则以半角逗号(,)分隔,默认为空。

STRING

thirdparty_lib_dir

Python三方库安装使用的requirements.txt文件所在文件夹,默认为空。

STRING

vpc_id

任务可访问的专有网络VPC的ID,默认为空。

STRING

switch_id

否(若存在vpc_id则为必选)

任务访问的专有网络VPC中的交换器ID,默认为空。

STRING

security_group_id

否(若存在vpc_id则为必选)

任务访问的专有网络VPC中的安全组ID,默认为空。

STRING

job_file

任务参数描述文件;如果传入,会优先使用job_file中参数,格式为key=value的格式,key名称与命令行参数名称保持一致。

STRING

interactive

是否以交互模式启动任务。

BOOL

job_max_running_time_minutes

任务的最大运行时长。默认值为0,表示不设置最大运行时长。

INT64

success_policy

目前仅支持TFJob,取值如下:

  • ChiefWorker:只要Chief节点的Pod成功结束,则整个任务就会成功结束。

  • AllWorkers:只有所有的节点都成功结束,才会认为任务成功结束。

默认为空表示AllWorkers。

STRING

envs

配置Worker的环境变量,环境变量之间通过半角逗号(,)分隔,环境变量的Key与Value之间通过等号分隔。格式为key1=value1,key2=value2

StringToString

tags

配置作业的标签,标签之间通过半角逗号(,)分隔,标签的Key与Value之间通过等号分隔。格式为:key1=value1,key2=value2

StringToString

oversold_type

配置作业闲时资源的使用方式,取值如下:

  • AcceptQuotaOverSold(可接受):作业可以接受使用闲时计算资源。

  • ForceQuotaOverSold(只接受):作业仅接受闲时计算资源。

  • ForbiddenQuotaOverSold(不接受):作业仅接受已关联Quota内的资源,而不会使用闲时计算资源。

STRING

driver

配置作业使用的GPU驱动版本。

STRING

default_route

当选择VPC时,配置访问公网的方式,取值如下:

  • eth0(默认值):使用公有网关访问公网。

  • eth1:使用专有网关,通过选择的VPC访问公网。

STRING

priority

配置作业的优先级,默认值为1,参数值的范围是1~9。其中:

  • 1为最低优先级。

  • 9为最高优先级。

INT32

exit_code_on_stopped

以交互模式运行任务时,当任务被停止时指定命令行工具的退出码,默认值是0。

INT32

job_reserved_minutes

设置任务结束时的保留时长,单位是分钟,默认值是0。

INT32

job_reserved_policy

设置任务保留的策略,可选值:

  • Always(默认值):任务运行成功或失败均保留。

  • OnFailure:当任务运行失败时保留。

  • OnSucceed:当任务运行成功时保留。

STRING

提交TensorFlow训练任务(submit tfjob)

  • 功能

    用于提交TensorFlow训练任务。

  • 格式

    系统支持通过命令行参数或任务参数描述文件的方式提交TensorFlow任务。

    ./dlc submit tfjob [flags]
  • 参数

    如果通过命令行参数的方式提交TensorFlow任务,则需要将命令中的如下参数替换为实际值。如果通过任务参数描述文件的方式提交TensorFlow任务,则将任务参数描述文件中支持的参数以<parameterName>=<parameterValue>的形式写入文件中。提交TensorFlow任务的通用参数如文章开头的列表所示,以下为TensorFlow的任务特有参数:

    表 2. 提交TensorFlow任务的特有参数

    参数

    是否必选

    描述

    类型

    任务参数描述文件中是否支持该参数

    workspace_id

    工作空间的ID,(即作业提交DLC公共的工作空间)默认为空。如何创建工作空间可以参考创建工作空间

    STRING

    chief

    是否启用TensorFlow Chief节点,该参数取值包括:

    • false:默认值,表示关闭TensorFlow Chief节点。

    • true:表示开启TensorFlow Chief节点。

    BOOL

    chief_image

    TensorFlow Chief节点的镜像,默认值为空。

    STRING

    chief_spec

    TensorFlow Chief节点使用的服务器型号,默认值为空。

    STRING

    master_image

    TensorFlow Master节点的镜像,默认值为空。

    STRING

    master_spec

    TensorFlow Master节点使用的服务器型号。

    STRING

    masters

    TensorFlow Master节点的数量,默认值为0。

    INT

    ps

    TensorFlow Parameter Server节点的数量,默认值为0。

    INT

    ps_image

    TensorFlow Parameter Server节点的镜像,默认值为空。

    STRING

    ps_spec

    TensorFlow Parameter Server节点使用的服务器型号,默认值为空。

    STRING

    worker_image

    TensorFlow Worker节点的镜像,默认值为空。

    STRING

    worker_spec

    TensorFlow Worker节点使用的服务器型号,默认值为空。

    STRING

    workers

    TensorFlow Worker节点的数量,默认值为0。

    INT

    evaluator_image

    TensorFlow Evaluators节点的镜像,默认值为空。

    STRING

    evaluator_spec

    TensorFlow Evaluators节点使用的服务器型号,默认值为空。

    STRING

    evaluators

    TensorFlow Evaluators节点的数量,默认值为0。

    INT

    graphlearn_image

    TensorFlow GraphLearn节点的镜像,默认值为空。

    STRING

    graphlearn_spec

    TensorFlow GraphLearn节点使用的服务器型号,默认值为空。

    STRING

    graphlearns

    TensorFlow GraphLearn节点的数量,默认值为0。

    INT

    表 3. 提交TensorFlow任务至专有资源组的特有参数

    参数

    是否必选

    描述

    类型

    任务参数描述文件中是否支持该参数

    resource_id

    否(若要提交任务至专有资源组则为必选)

    专有资源配额的ID,默认为空。如何创建专有资源配额可以参考通用计算资源配额

    STRING

    priority

    任务优先级,默认为1。

    INT

    chief_cpu

    TensorFlow Chief节点使用CPU的个数,默认为空。

    STRING

    chief_gpu

    TensorFlow Chief节点使用GPU的个数,默认为空。

    STRING

    chief_gpu_type

    TensorFlow Chief节点使用GPU的类型,默认为空。示例值:GU50。

    STRING

    chief_memory

    TensorFlow Chief节点使用内存资源,默认为空。示例值:500 Mi,1 Gi。

    STRING

    chief_shared_memory

    TensorFlow Chief节点用于共享的内存资源,默认为空。示例值:500 Mi,1 Gi。

    STRING

    master_cpu

    TensorFlow Master节点使用CPU的个数,默认为空。

    STRING

    master_gpu

    TensorFlow Master节点使用GPU的个数,默认为空。

    STRING

    master_gpu_type

    TensorFlow Master节点使用GPU的类型,默认为空。示例值:GU50。

    STRING

    master_memory

    TensorFlow Master节点使用内存资源,默认为空。示例值:500 Mi,1 Gi。

    STRING

    master_shared_memory

    TensorFlow Master节点用于共享的内存资源,默认为空。示例值:500 Mi,1 Gi。

    STRING

    *_cpu

    TensorFlow *节点使用CPU的个数,默认为空。*可替换为(ps,worker,evaluator,graphlearn)。

    STRING

    *_gpu

    TensorFlow *节点使用GPU的个数,默认为空。*可替换为(ps,worker,evaluator,graphlearn)。

    STRING

    *_gpu_type

    TensorFlow *节点使用GPU的类型,默认为空。示例值:GU50。*可替换为(ps,worker,evaluator,graphlearn)。

    STRING

    *_memory

    TensorFlow *节点使用的内存资源,默认为空。示例值:500 Mi,1 Gi。*可替换为(ps,worker,evaluator,graphlearn)。

    STRING

    *_shared_memory

    TensorFlow *节点用于共享内存资源,默认为空。示例值:500 Mi,1 Gi。*可替换为(ps,worker,evaluator,graphlearn)。

    STRING

  • 示例

    • 通过命令行参数提交一个2 Worker+ 1 PS的分布式作业,示例如下。

      ./dlc submit tfjob --name=test_2021 --ps=1 \
        --ps_spec=ecs.g6.8xlarge \
        --ps_image=registry-vpc.cn-beijing.aliyuncs.com/pai-dlc/tensorflow-training:1.12.2PAI-cpu-py27-ubuntu16.04 \
        --workers=2 \
        --worker_spec=ecs.g6.4xlarge \
        --worker_image=registry-vpc.cn-beijing.aliyuncs.com/pai-dlc/tensorflow-training:1.12.2PAI-cpu-py27-ubuntu16.04 \
        --command="python /root/data/dist_mnist/code/dist-main.py --max_steps=10000 --data_dir=/root/data/dist_mnist/data/" \
        --workspace_id=***** \
        --data_sources=data-2021xxxxxxxxxx-xxxxxxxxxxxx

      系统返回如下类似结果。

      +----------------------------------+--------------------------------------+
      |              JobId               |              RequestId               |
      +----------------------------------+--------------------------------------+
      | dlcmp6vwljkz****                 | xxxxxxxx-79AF-4EFC-9CE9-xxxxxxxxxxxx |
      +----------------------------------+--------------------------------------+
    • 通过任务参数描述文件提交一个2 Worker+ 1 PS的分布式作业,示例如下。

      ./dlc submit tfjob --job_file=job_file.dist_mnist.1ps2w

      其中job_file.dist_mnist.1ps2w为任务参数描述文件,采用<parameterName>=<parameterValue>的格式填写参数。job_file.dist_mnist.1ps2w的内容如下所示。

      name=test_2021
      workers=2
      worker_spec=ecs.g6.4xlarge
      worker_image=registry-vpc.cn-beijing.aliyuncs.com/pai-dlc/tensorflow-training:1.12.2PAI-cpu-py27-ubuntu16.04
      ps=1
      ps_spec=ecs.g6.8xlarge
      ps_image=registry-vpc.cn-beijing.aliyuncs.com/pai-dlc/tensorflow-training:1.12.2PAI-cpu-py27-ubuntu16.04
      command=python /root/data/dist_mnist/code/dist-main.py --max_steps=10000 --data_dir=/root/data/dist_mnist/data/
      workspace_id=*****
      data_sources=data-2021xxxxxxxxxx-xxxxxxxxxxxx

提交PyTorch训练任务(submit pytorchjob)

  • 功能

    用于提交PyTorch训练任务。

  • 格式

    系统支持通过命令行参数或任务参数描述文件的方式提交PyTorch任务。

    ./dlc submit pytorchjob [flags]
  • 参数

    如果通过命令行参数的方式提交PyTorch任务,则需要将命令中的如下参数替换为实际值。如果通过任务参数描述文件的方式提交PyTorch任务,则将任务参数描述文件中支持的参数以<parameterName>=<parameterValue>的形式写入文件中。提交PyTorch任务的通用参数如文章开头的列表所示,以下为PyTorch任务的特有参数:

    表 4. 提交PyTorch任务的特有参数

    参数名称

    是否必选

    描述

    类型

    任务参数描述文件中是否支持该参数

    workspace_id

    工作空间的ID,(即作业提交DLC公共的工作空间)默认为空。如何创建工作空间可以参考创建工作空间

    STRING

    master_image

    PyTorch Master节点的镜像,默认值为空。

    STRING

    master_spec

    PyTorch Master节点使用的服务器型号,默认值为空。

    STRING

    masters

    PyTorch Master节点的数量,默认值为0。

    INT

    worker_image

    PyTorch Worker节点的镜像,默认值为空。

    STRING

    worker_spec

    PyTorch Worker节点使用的服务器型号,默认值为空。

    STRING

    workers

    PyTorch Worker节点的数量,默认值为0。

    INT

    表 5. 提交PyTorch任务至专有资源组的特有参数

    参数

    是否必选

    描述

    类型

    任务参数描述文件中是否支持该参数

    resource_id

    否(若要提交任务至专有资源组则为必选)

    专有资源配额的ID,默认为空。如何创建专有资源配额可以参考通用计算资源配额

    STRING

    priority

    任务优先级。默认为1。

    INT

    master_cpu

    PyTorch Master节点使用CPU的个数,默认为空。

    STRING

    master_gpu

    PyTorch Master节点使用GPU的个数,默认为空。

    STRING

    master_gpu_type

    PyTorch Master节点使用GPU的类型,默认为空。示例值:GU50。

    STRING

    master_memory

    PyTorch Master节点使用内存资源,默认为空。示例值:500 Mi,1 Gi。

    STRING

    master_shared_memory

    PyTorch Master节点用于共享的内存资源,默认为空。示例值:500 Mi,1 Gi。

    STRING

    worker_cpu

    PyTorch Worker节点使用CPU的个数,默认为空。

    STRING

    worker_gpu

    PyTorch Worker节点使用GPU的个数,默认为空。

    STRING

    worker_gpu_type

    PyTorch Worker节点使用GPU的类型,默认为空。示例值:GU50。

    STRING

    worker_memory

    PyTorch Worker节点使用内存资源,默认为空。示例值:500 Mi,1 Gi。

    STRING

    worker_shared_memory

    PyTorch Worker节点用于共享的内存资源,默认为空。示例值:500 Mi,1 Gi。

    STRING

  • 示例

    通过命令行参数提交一个GPU的模型训练任务,示例如下。

    ./dlc submit pytorchjob --name=test_pt_face \
      --workers=1 \
      --worker_spec=ecs.gn6e-c12g1.3xlarge \
      --worker_image=registry-vpc.cn-beijing.aliyuncs.com/pai-dlc/pytorch-training:1.7.1-gpu-py37-cu110-ubuntu18.04 \
      --command="apt-get update; apt-get -y --allow-downgrades install libpcre3=2:8.38-3.1 libpcre3-dev libgl1-mesa-glx libglib2.0-dev; cd /root/data/face; python train.py --num_workers 0 --save_folder outputs" \
      --data_sources=data-20210410224621-gml01wz02m3k \
      --workspace_id=*****

    系统返回如下类似结果。

    +----------------------------------+--------------------------------------+
    |              JobId               |              RequestId               |
    +----------------------------------+--------------------------------------+
    | dlcu704xxuxk****                 | xxxxxxxx-79AF-4EFC-9CE9-xxxxxxxxxxxx |
    +----------------------------------+--------------------------------------+

提交XGBoost训练任务(submit xgboostjob)

  • 功能

    用于提交XGBoost训练任务。

  • 格式

    系统支持通过命令行参数或任务参数描述文件的方式提交XGBoost任务。

    ./dlc submit xgboostjob [flags]
  • 参数

    如果通过命令行参数的方式提交XGBoost任务,则需要将命令中的如下参数替换为实际值。如果通过任务参数描述文件的方式提交XGBoost任务,则将任务参数描述文件中支持的参数以<parameterName>=<parameterValue>的形式写入文件中。提交XGBoost任务的通用参数如文章开头的列表所示,以下为XGBoost任务的特有参数:

    表 6. 提交XGBoost任务的特有参数

    参数名称

    是否必选

    描述

    类型

    任务参数描述文件中是否支持该参数

    workspace_id

    工作空间的ID,(即作业提交DLC公共的工作空间)默认为空。如何创建工作空间可以参考创建工作空间

    STRING

    master_image

    XGBoost Master节点的镜像,默认值为空。

    STRING

    master_spec

    XGBoost Master节点使用的服务器型号,默认值为空。

    STRING

    masters

    XGBoost Master节点的数量,默认值为0。

    INT

    worker_image

    XGBoost Worker节点的镜像,默认值为空。

    STRING

    worker_spec

    XGBoost Worker节点使用的服务器型号,默认值为空。

    STRING

    workers

    XGBoost Worker节点的数量,默认值为0。

    INT

    表 7. 提交XGBoost任务至专有资源组的特有参数

    参数

    是否必选

    描述

    类型

    任务参数描述文件中是否支持该参数

    resource_id

    否(若要提交任务至专有资源组则为必选)

    专有资源配额的ID,默认为空。如何创建专有资源配额可以参考通用计算资源配额

    STRING

    priority

    任务优先级。默认为1。

    INT

    master_cpu

    XGBoost Master节点使用CPU的个数,默认为空。

    STRING

    master_gpu

    XGBoost Master节点使用GPU的个数,默认为空。

    STRING

    master_gpu_type

    XGBoost Master节点使用GPU的类型,默认为空。示例值:GU50。

    STRING

    master_memory

    XGBoost Master节点使用内存资源,默认为空。示例值:500 Mi,1 Gi。

    STRING

    master_shared_memory

    XGBoost Master节点用于共享的内存资源,默认为空。示例值:500 Mi,1 Gi。

    STRING

    worker_cpu

    XGBoost Worker节点使用CPU的个数,默认为空。

    STRING

    worker_gpu

    XGBoost Worker节点使用GPU的个数,默认为空。

    STRING

    worker_gpu_type

    XGBoost Worker节点使用GPU的类型,默认为空。示例值:GU50。

    STRING

    worker_memory

    XGBoost Worker节点使用内存资源,默认为空。示例值:500 Mi,1 Gi。

    STRING

    worker_shared_memory

    XGBoost Worker节点用于共享的内存资源,默认为空。示例值:500 Mi,1 Gi。

    STRING

  • 示例

    通过命令行参数提交一个XGBoost任务,示例如下。

    ./dlc submit xgboostjob --name=test_xgboost \
      --workers=1 \
      --worker_spec=ecs.gn6e-c12g1.3xlarge \
      --worker_image=xgboost-training:1.6.0-cpu-py36-ubuntu18.04 \
      --command="python /root/code/horovod/xgboost/main.py --job_type=Train --xgboost_parameter=objective:multi:softprob,num_class:3 --n_estimators=50 --model_path=autoAI/xgb-opt/2" \
      --workspace_id=*****

    系统返回如下类似结果。

    +----------------------------------+--------------------------------------+
    |              JobId               |              RequestId               |
    +----------------------------------+--------------------------------------+
    | dlc1nvu3gli0****                 | xxxxxxxx-79AF-4EFC-9CE9-xxxxxxxxxxxx |
    +----------------------------------+--------------------------------------+

相关文档

  • 任务提交成功后,您可以通过客户端工具管理任务。具体操作,请参见停止命令查询命令

  • 您也可以通过控制台管理已提交的任务。具体操作,请参见管理训练任务