阿里云 PAI-DLC PyTorchJob 任务提交参数的介绍
来源:互联网
时间:2026-06-20 07:51:07
PAI-DLC PyTorchJob 参数详解

在使用 dlc submit pytorchjob 命令提交深度学习任务时,参数主要分为两类:一类是DLC平台的控制参数,用来定义任务的基础属性;另一类是Command执行指令,用来定义容器内具体运行的逻辑。下面逐一拆解,看看每个参数到底该怎么用。
1. DLC 平台基础参数
这些参数写在命令的最外层,直接告诉PAI平台“这是一个什么样的任务”“需要多少资源”。简单说,它们是任务的“身份证”和“资源清单”。
| 参数 | 说明 | 示例/备注 |
|---|---|---|
--name |
任务名称 |
my_project_train_v1 |
--data_sources |
数据源挂载 ID/mnt/data/ 下。 |
d-xxxxxxxxxxxx |
--workspace_id |
工作空间 ID |
123456 |
--priority |
任务优先级 |
1 (普通), 10 (高) |
--job_max_running_time_minutes |
最大运行时长 |
43200 (即30天) |
2. Command 执行指令 (--command)
这是任务的核心——一个Shell脚本,定义了容器启动后具体做什么。通常分三步走:环境准备、模型训练、模型导出。
A. 环境与依赖安装
先看看这段脚本的写法:
pip install
export ODPS_ENDPOINT=
pip install ...——安装自定义的Python依赖包。DLC提供的镜像不一定包含你需要的业务库,比如推荐算法库tzrec,这时候就得通过URL手动装上。
export ODPS_ENDPOINT=...——设置环境变量。如果你的训练数据存储在MaxCompute (ODPS)中,必须配置这个Endpoint,项目代码才能连上数据服务。
B. 分布式训练启动 (torchrun)
这是启动PyTorch分布式训练的标准姿势。来看具体写法:
torchrun
--master_addr=$MASTER_ADDR
--master_port=$MASTER_PORT
--nnodes=$WORLD_SIZE
--nproc_per_node=$NPROC_PER_NODE
--node_rank=$RANK
-m
[业务参数...]
几个关键变量说明:
$MASTER_ADDR/$MASTER_PORT:PAI自动注入的主节点IP和通信端口,不需要手动修改。--nnodes=$WORLD_SIZE:节点数量,由DLC平台的资源配置决定。比如你申请了4台机器,这里就是4。--nproc_per_node=$NPROC_PER_NODE:单机上的进程数,通常等于该机器配置的GPU数量(例如每台8卡,这里就是8)。--node_rank=$RANK:当前节点编号(从0开始),PAI会自动为每个容器分配唯一的Rank ID。-m:指定要运行的Python模块名,相当于python -m xxx。- 业务参数(如
--pipeline_config_path、--train_input_path)是传递给Python脚本的具体参数,通常包括配置文件路径(指向挂载目录下的模型配置)、输入数据路径(本地路径/mnt/data/...或ODPS表路径)、模型输出路径(Checkpoint保存位置)。
C. 模型导出/评估(可选)
训练结束后,一般还会跟着执行导出或评估脚本:
INPUT_TILE=2
ODPS_ENDPOINT=
torchrun
... (同上分布式参数) ...
-m
--pipeline_config_path
--export_dir
逻辑复用:导出阶段通常也需要分布式环境(尤其是大模型),所以再次调用torchrun并传入相同的分布式环境变量。
--export_dir:指定最终模型文件(如Sa vedModel、TorchScript)的输出目录。
关键提示
- :Shell脚本中
换行符
表示换行续写。复制命令时注意后面不要有空格,且紧跟回车。 - :
环境变量
$MASTER_ADDR、$WORLD_SIZE、$RANK等变量由PAI-DLC平台在任务启动时自动注入到容器中,千万不要硬编码写死具体的IP或数字,否则多机环境下无法正确组网。 - :
路径一致性
--data_sources挂载的路径必须与--command中引用的文件路径(如/mnt/data/deploy/...)保持一致,否则会报“File not found”错误。