最近更新时间:2025-08-27 19:25:51
已创建1个及以上通用类型的资源池,资源池操作详见资源池。
资源池中已经创建1个及以上的队列。
登录算力平台控制台,点击左侧导航栏【训练与推理】中【训练任务】进入列表页面;
点击列表页面左上方的【+新建】进入训练任务创建页面;
在创建页面填写相关参数,具体参数如下:
参数名称 | 参数说明 |
|---|---|
任务名称 |
|
任务优先级 |
|
任务描述 |
|
镜像类型 |
|
启动命令 |
|
代码挂载 |
|
环境变量 |
|
TensorBoard |
|
存储配置 |
|
输出配置 |
|
资源池 |
|
队列 |
|
训练框架 |
|
实例规格 |
|
最长运行时长 |
|
资源故障自愈 |
|
权限配置 |
|
完成上述表单的配置后,点击【确定】,提交启动训练任务;
训练任务提交创建后,用户可在【训练任务】的列表页中查看与管理训练任务。
平台为训练任务注入了以下可能需要用到的环境变量,用户可按需配置:
PET_NPROC_PER_NODE
PET_NNODES
PET_NODE_RANK
PET_MASTER_ADDR
PET_MASTER_PORT
代码配置示例:
DISTRIBUTED_ARGS=(
--nproc_per_node $PET_NPROC_PER_NODE
--nnodes $PET_NNODES
--node_rank $PET_NODE_RANK
--master_addr $PET_MASTER_ADDR
--master_port $PET_MASTER_PORT
)其中,PET_NPROC_PER_NODE 每个 pod 默认传参为字符串"auto"。PyTorch 识别到nproc_per_node=="auto" 后,会根据当前 pod 的 GPU 卡数决定任务使用的 GPU 卡数。
Tensorflow 分布式任务依赖环境提供 TF_CONFIG 变量,包括集群信息,当前节点信息。任务拉起后平台会为 pod 传入 TF_CONFIG 变量,TensorFlow 分布式 api 如tf.distribute.MultiWorkerMirroredStrategy() 会自动解析该环境变量,无需修改脚本。
代码配置示例:
# TF_CONFIG示例, 平台执行任务时无需设置
"""
os.environ['TF_CONFIG'] = json.dumps({
'cluster': {
'worker': ['localhost:12345']
},
'task': {'type': 'worker', 'index': 0} # 根据机器调整
})
"""
# 可以打印平台传入的环境变量(DEBUG用)
tf_config = os.environ.get('TF_CONFIG')
if tf_config:
print("TF_CONFIG:", tf_config)
# 定义分布式策略,该函数会自动解析TF_CONFIG,无需手动指定
strategy = tf.distribute.MultiWorkerMirroredStrategy() NCCL 参数通过环境变量方式指定,常见 NCCL 参数包括:
NCCL_SOCKET_IFNAME=bond0
GLOO_SOCKET_IFNAME=bond0
UCX_NET_DEVICES=bond0
NCCL_IB_GID_INDEX=3
NCCL_DEBUG=WARN
NCCL_DEBUG_FILE=/root/metrics/nccl_debug_%h%p.log
训练时指定 --tensorboard-dir 参数,目录地址为平台挂载的 Tensorboard 目录
示例:
--tensorboard-dir /tensorboard #已完成挂载的目录若训练镜像中需要切换conda环境,则需要在启动脚本或启动指令中显式的进行切换:
source activate base
conda activate xxxx
纯净模式
