您可以通过客户端工具提交训练任务。本文介绍提交任务相关的命令详情,包括调用格式、参数解释及使用示例。
提交任务的通用参数
使用DLC命令行提交TensorFlow,PyTorch,XGBoost任务时,存在通用的参数。通用参数列表如下
参数 | 是否必选 | 描述 | 类型 | 任务参数描述文件中是否支持该参数 |
---|---|---|---|---|
name | 是 | 任务的名称,多个任务名称可以相同。 | STRING | 是 |
command | 是 | 各个节点的启动命令。 | STRING | 是 |
data_sources | 否 | 数据源。如存在多个,则以逗号分隔,默认为空。 | STRING | 是 |
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,取值如下:
|
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,默认为空。如何创建专有资源组可以参考准备及管理DLC资源组集群。 STRING 是 priority 否 任务优先级。默认为1 INT 是 chief_cpu 否 TesorFlow Chief节点使用CPU的个数,默认为空 STRING 是 chief_gpu 否 TesorFlow Chief节点使用GPU的个数,默认为空 STRING 是 chief_gpu_type 否 TesorFlow Chief节点使用GPU的类型,默认为空。示例值:A100 STRING 是 chief_memory 否 TesorFlow Chief节点使用内存资源,默认为空。示例值:500Mi,1Gi。 STRING 是 chief_shared_memory 否 TesorFlow Chief节点用于共享的内存资源,默认为空。示例值:500Mi,1Gi。 STRING 是 master_cpu 否 TesorFlow Master节点使用CPU的个数,默认为空 STRING 是 master_gpu 否 TesorFlow Master节点使用GPU的个数,默认为空 STRING 是 master_gpu_type 否 TesorFlow Master节点使用GPU的类型,默认为空。示例值:A100 STRING 是 master_memory 否 TesorFlow Master节点使用内存资源,默认为空。示例值:500Mi,1Gi。 STRING 是 master_shared_memory 否 TesorFlow Master节点用于共享的内存资源,默认为空。示例值:500Mi,1Gi。 STRING 是 *_cpu 否 TesorFlow *节点使用CPU的个数,默认为空。*可替换为(ps,worker,evaluator,graphlearn)。 STRING 是 *_gpu 否 TesorFlow *节点使用GPU的个数,默认为空。*可替换为(ps,worker,evaluator,graphlearn)。 STRING 是 *_gpu_type 否 TesorFlow *节点使用GPU的类型,默认为空。示例值:A100。*可替换为(ps,worker,evaluator,graphlearn)。 STRING 是 *_memory 否 TesorFlow *节点使用的内存资源,默认为空。示例值:500Mi,1Gi。*可替换为(ps,worker,evaluator,graphlearn)。 STRING 是 *_shared_memory 否 TesorFlow *节点用于共享内存资源,默认为空。示例值:500Mi,1Gi。*可替换为(ps,worker,evaluator,graphlearn)。 STRING 是 - 示例
- 通过命令行参数提交一个2 Worker+ 1 PS的分布式作业,示例如下。
系统返回如下类似结果。dlc submit tfjo --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 | +----------------------------------+--------------------------------------+ | dlc-2021xxxxxxxxxx-xxxxxxxxxxxxx | xxxxxxxx-79AF-4EFC-9CE9-xxxxxxxxxxxx | +----------------------------------+--------------------------------------+
- 通过任务参数描述文件提交一个2 Worker+ 1 PS的分布式作业,示例如下。
其中job_file.dist_mnist.1ps2w为任务参数描述文件,采用dlc submit tfjob --job_file=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
- 通过命令行参数提交一个2 Worker+ 1 PS的分布式作业,示例如下。
提交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,默认为空。如何创建专有资源组可以参考准备及管理DLC资源组集群。 STRING 是 priority 否 任务优先级。默认为1 INT 是 master_cpu 否 PyTorch Master节点使用CPU的个数,默认为空 STRING 是 master_gpu 否 PyTorch Master节点使用GPU的个数,默认为空 STRING 是 master_gpu_type 否 PyTorch Master节点使用GPU的类型,默认为空。示例值:A100 STRING 是 master_memory 否 PyTorch Master节点使用内存资源,默认为空。示例值:500Mi,1Gi。 STRING 是 master_shared_memory 否 PyTorch Master节点用于共享的内存资源,默认为空。示例值:500Mi,1Gi。 STRING 是 worker_cpu 否 PyTorch Worker节点使用CPU的个数,默认为空 STRING 是 worker_gpu 否 PyTorch Worker节点使用GPU的个数,默认为空 STRING 是 worker_gpu_type 否 PyTorch Worker节点使用GPU的类型,默认为空。示例值:A100 STRING 是 worker_memory 否 PyTorch Worker节点使用内存资源,默认为空。示例值:500Mi,1Gi。 STRING 是 worker_shared_memory 否 PyTorch Worker节点用于共享的内存资源,默认为空。示例值:500Mi,1Gi。 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 | +----------------------------------+--------------------------------------+ | dlc-2021xxxxxxxxxx-xxxxxxxxxxxxx | 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,默认为空。如何创建专有资源组可以参考准备及管理DLC资源组集群。 STRING 是 priority 否 任务优先级。默认为1 INT 是 master_cpu 否 XGBoost Master节点使用CPU的个数,默认为空 STRING 是 master_gpu 否 XGBoost Master节点使用GPU的个数,默认为空 STRING 是 master_gpu_type 否 XGBoost Master节点使用GPU的类型,默认为空。示例值:A100 STRING 是 master_memory 否 XGBoost Master节点使用内存资源,默认为空。示例值:500Mi,1Gi。 STRING 是 master_shared_memory 否 XGBoost Master节点用于共享的内存资源,默认为空。示例值:500Mi,1Gi。 STRING 是 worker_cpu 否 XGBoost Worker节点使用CPU的个数,默认为空 STRING 是 worker_gpu 否 XGBoost Worker节点使用GPU的个数,默认为空 STRING 是 worker_gpu_type 否 XGBoost Worker节点使用GPU的类型,默认为空。示例值:A100 STRING 是 worker_memory 否 XGBoost Worker节点使用内存资源,默认为空。示例值:500Mi,1Gi。 STRING 是 worker_shared_memory 否 XGBoost Worker节点用于共享的内存资源,默认为空。示例值:500Mi,1Gi。 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 | +----------------------------------+--------------------------------------+ | dlc-2021xxxxxxxxxx-xxxxxxxxxxxxx | xxxxxxxx-79AF-4EFC-9CE9-xxxxxxxxxxxx | +----------------------------------+--------------------------------------+