最近更新时间:2026-04-29 10:47:35
本文主要介绍如何创建训练任务。
登录星流平台,在顶部导航栏,选择训推与仿真 > 训练任务。
在训练任务列表页面,点击+新建。
根据如下下要求配置各项参数,点击确定,等待训练任务状态转为运行中或成功。
参数 | 是否必须 | 说明 | |
|---|---|---|---|
基本信息 | 任务名称 | 是 |
|
任务优先级 | 是 |
| |
任务描述 | 否 |
| |
环境配置 | 镜像类型 | 是 |
|
镜像 | 是 | 当前训练任务所用的具体镜像。 | |
启动命令 | 是 |
| |
环境变量 | 否 |
key1=value1 key2=value2 ...... | |
资源配置 | 资源组 | 是 | 选择当前训练任务所需的资源组。 |
队列 | 是 | 根据所选资源组,选择适合当前训练任务所需的队列。 | |
训练架构 | 是 | 选择训练任务所使用的训练框架,支持Pytorch与TensorFlow开源训练框架或自定义架构。
| |
任务资源 | 是 |
| |
最长运行时长 | 否 |
| |
实例保留时长 | 否 | 实例成功或失败后环境可保留的时长,默认为 注意:设置该值,实例保留过程中将持续占用资源。 | |
挂载配置 | 存储配置 | 否 |
|
实验记录 | 否 |
| |
故障处理配置 | 故障自愈 | 否 |
|
权限配置 | 队列内共享 | 否 | 默认仅创建者个人私有,开启队列内共享后全队列可见可操作 。 |
平台为训练任务注入了以下可能需要用到的环境变量,用户可按需配置:
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
纯净模式
