阿里云PAI-DLC PyTorchJob任务参数配置详解
PAI-DLC PyTorchJob 参数深度解析与实战调优
执行 dlc submit pytorchjob 命令提交分布式训练任务时,参数体系分为两大层级:DLC 平台级控制参数,用于定义任务的基本属性与资源配额;以及 Command 执行指令,即容器内运行的 Shell 脚本,承载具体的训练逻辑。下面逐一梳理每个参数的核心作用与典型用法。
1. DLC 平台基础参数
这些参数位于命令最外层,直接告诉 PAI 平台任务的元信息和资源需求。简单来说,它们是任务的“身份标识”和“资源申请单”。
| 参数 | 说明 | 示例/备注 |
|---|---|---|
--name |
任务名称,用于控制台检索与日志追踪。建议采用项目名_日期_用途_版本的命名规范,便于团队协作与问题回溯。 | my_project_train_v1 |
--data_sources |
数据源挂载 ID,指定任务运行时挂载的云存储(OSS/NAS)实例。容器内默认挂载点为 /mnt/data/,路径与训练代码中的读取路径必须一致。 |
d-xxxxxxxxxxxx |
--workspace_id |
工作空间 ID,用于资源隔离与权限管控,不同团队或项目应分配独立的工作空间。 | 123456 |
--priority |
任务优先级,数值越高越优先获取 GPU 资源。在集群资源争抢场景下,合理设置优先级可缩短排队时间。 | 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:当前节点的 Rank 编号(从 0 开始),PAI 自动为每个容器分配唯一 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:指定最终模型文件(如 SavedModel、TorchScript)的输出目录。
关键提示
- 换行符
\:Shell 脚本中\表示换行续写。复制命令时务必确保\后无多余空格,且紧跟回车。 - 环境变量:
$MASTER_ADDR、$WORLD_SIZE、$RANK等由 PAI-DLC 平台在任务启动时自动注入容器,切勿硬编码 IP 或数字,否则多机环境下无法正确组网。 - 路径一致性:
--data_sources挂载的存储路径必须与--command中引用的文件路径(如/mnt/data/deploy/...)完全匹配,否则会报 “File not found” 错误。
