Skip to content

分布式训练任务

分布式训练基于 Volcano 调度,支持 PyTorch / TensorFlow / MPI / DeepSpeed 框架,适用于多卡、多机训练场景(运行分布式训练最低需要 2 张卡)。本文给出从环境准备到任务观察的完整链路。字段级说明见 模型开发

1. 准备工作(管理员)

1.1 上传训练镜像并配置标签

bash
# 示例:deepspeed 训练镜像(仓库地址按实际替换)
docker load -i pytorch-deepspeed-demo.v1-80e2097.tar.gz
docker tag lon.io/pytorch-deepspeed-demo:v1-80e2097 harbor.rise.io/camp/pytorch-deepspeed-demo:v1-80e2097
docker push harbor.rise.io/camp/pytorch-deepspeed-demo:v1-80e2097

然后在 AI 智算管理 > AI 资产管理 > 镜像服务 中:

  1. 同步镜像,将镜像 分类 设置为 PyTorch 或 TensorFlow(必须是这两类之一,否则创建训练任务时选不到)。
  2. 进入镜像详情「修改标签」,任务场景勾选 训练任务

1.2 上传训练所需文件

  1. 在 NFS 服务端准备 cachecheckpointcode 等目录,上传训练代码与数据。
  2. 进入 AI 智算管理 > AI 资产管理 > 存储,新增静态存储,填写上面准备的 NFS 服务端地址与目录路径。

1.3 创建训练调度策略

进入 AI 智算管理 > 策略管理 > 训练调度策略,点击「创建训练调度策略」,配置队列、优先级与资源分配规则。

训练调度策略列表

1.4 训练队列关联租户

进入 AI 智算管理 > 策略管理 > 训练队列管理,编辑目标队列(如 default),关联需要使用该队列的工作空间/租户。未关联租户的队列,租户在创建任务时不可见。

训练队列管理

如果节点的显卡已分配给其他用途,需要先在节点管理中回收显卡、调整节点场景后,再纳入训练资源池。

2. 创建训练任务(开发者)

  1. 进入 AI 智算开发 > 模型开发 > 训练任务,点击「创建训练任务」。
  2. 关键配置(以 PyTorch + DeepSpeed 为例):
配置项示例值
训练框架PyTorch(可选 PyTorch / TensorFlow / MPI / DeepSpeed)
队列选择上一步关联的队列
任务镜像已勾选「训练任务」标签的 PyTorch 镜像
存储上一步创建的训练存储
规格每个 Master/Worker 容器的卡数
启动命令/bin/bash -c
启动参数见下方示例
环境变量HF_HUB_OFFLINE=1HF_HOME=/volcano-data/cache
工作目录(workingDir)/volcano-data

启动参数示例(torchrun 多机多卡):

bash
torchrun --nnodes=$WORLD_SIZE --nproc_per_node=1 \
  --node_rank=$RANK --master_addr=$MASTER_ADDR \
  --master_port=$MASTER_PORT /volcano-data/code/train_bert_ds.py \
  --checkpoint_dir /volcano-data/checkpoint
  1. 点击「创建」。配置正确且资源充足时,列表页状态会从「排队中」变为「运行中」。

创建训练任务表单

3. 观察训练过程

  • Web 终端:详情页 > 容器组 > 选择要查看的 Pod > Web 远程连接,终端内操作与命令行一致。
  • 资源监控:查看各容器组的显存、算力、CPU、内存、网络使用情况。
  • 运行日志:实时刷新容器标准输出,可切换查看不同容器组的日志。
  • TensorBoard:详情页点击 TensorBoard 图标,等待弹出新标签页(注意允许浏览器弹窗)。

训练任务详情页

4. 任务管理

列表页支持快捷 关闭(停止调度并释放资源)、重新提交(克隆原配置再跑一次)、释放(需先关闭)。详情页「概览」可回看任务规格、镜像、存储与高级配置;「调度过程」展示各节点调度评分与失败原因,是排队排错的首选入口。

常见问题

Q:任务一直排队中? A:查看详情页「调度过程」与「事件」:常见原因是队列未关联当前租户、配额不足、最小可用实例数设置过高或节点场景未配置为训练。

Q:创建任务时选不到训练镜像? A:确认镜像分类为 PyTorch/TensorFlow 且已勾选「训练任务」标签,参见 1.1。

Q:训练读不到代码或数据? A:确认存储已正确挂载且 workingDir、路径前缀与 NFS 目录结构一致;进入 Web 终端 ls 挂载目录核对。

基于 Rise 智算平台 release-2606.v2.2.x 生成