全部產品
Search
文件中心

Platform For AI:提交命令

更新時間:Jul 13, 2024

您可以通過用戶端工具提交多種類型的訓練任務。本文介紹提交任務相關的命令詳情,包括調用格式、參數解釋和使用樣本。

提交任務的通用參數

使用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

任務可訪問的Virtual Private Cloud的ID,預設為空白。

STRING

switch_id

否(若存在vpc_id則為必選)

任務訪問的Virtual Private Cloud中的交換器ID,預設為空白。

STRING

security_group_id

否(若存在vpc_id則為必選)

任務訪問的Virtual Private Cloud中的安全性群組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 |
    +----------------------------------+--------------------------------------+

相關文檔

  • 任務提交成功後,您可以通過用戶端工具管理工作。具體操作,請參見停止命令查詢命令

  • 您也可以通過控制台管理已提交的任務。具體操作,請參見管理訓練任務