全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

创建训练任务

最近更新时间:2026-04-29 10:47:35

本文主要介绍如何创建训练任务。

前提条件

操作步骤

  1. 登录星流平台,在顶部导航栏,选择训推与仿真 > 训练任务

  2. 在训练任务列表页面,点击+新建。

  3. 根据如下下要求配置各项参数,点击确定,等待训练任务状态转为运行中成功

    参数

    是否必须

    说明

    基本信息

    任务名称

    • 填写训练任务的名称。

    • 支持字母、数字、中划线、下划线_、中划线-、小数点,1-64位字符。

    任务优先级

    • 选择训练任务的优先级。支持高优先级、中优先级、低优先级,默认中优先级。

    任务描述

    • 填写对训练任务的适当描述。

    • 支持200位内字符。

    环境配置

    镜像类型

    镜像

    当前训练任务所用的具体镜像。

    启动命令

    • 填写训练任务的启动命令。

    环境变量

    • 将被注入到训练容器中的环境变量。

    • 环境变量格式填写请参照,各重环境变量可参考附录

    key1=value1

    key2=value2

    ......

    资源配置

    资源组

    选择当前训练任务所需的资源组。

    队列

    根据所选资源组,选择适合当前训练任务所需的队列。

    训练架构

    选择训练任务所使用的训练框架,支持Pytorch与TensorFlow开源训练框架或自定义架构。

    • Pytorch,节点角色支持:

      • Master:PyTorch框架下固定有一个Master副本,资源配置和Worker—致

      • Worker

    • TensorFlow,节点角色支持:

      • Worker:执行训练任务,处理训练数据

      • Chief:负责协调训练过程

      • PS:参数服务器,存储和更新模型参数

      • Evaluator:评估节点,负责模型评估和验证

    • 自定义架构,节点角色支持:

      • 关键角色:任务的成功/失败由关键角色实例的成功/失败决定。若自定义没有关键角色,则由所有实例的成功/失败决定。

      • 普通角色

    任务资源

    • 根据选择的队列,填写合适实例规格。

    • 在队列资源配额内,CPU/内存可以任意填写,GPU卡数需要满足:

      • 副本总是=1时,无限制

      • 副本总数>1时,GPU卡数的填写受节点网卡配置限制,必须是最小规格的整数倍

      • 框架为PyTorch且GPU总卡数>8时,单副本GPU卡数必须为8

    • 资源配置应优先参考业务代码的计算特性(是否依赖 GPU、是否内存密集型等);

    • 创建任务时,资源配置比例可参考资源池-查看节点列表中对应资源池节点GPU/CPU/内存总量比例;

    • 任务资源可用量受队列剩余可用资源和节点剩余可用资源双重限制。一个副本只能调度到一个节点上,节点剩余可用资源必须同时满足副本的GPU、CPU、内存要求才能调度。

    最长运行时长

    • 训练任务的最长运行时间。

    • 默认30天,若任务运行时长超过设置时长会自动停止,释放资源。

    实例保留时长

    实例成功或失败后环境可保留的时长,默认为0

    注意:设置该值,实例保留过程中将持续占用资源。

    挂载配置

    存储配置

    • 挂载存储配置。

    • 支持添加20个以内的存储配置,将数据集、代码、checkpoint等数据挂载到任务上。

      • 存储类型:支持对象存储KS3与文件存储KPFS

      • 选择存储配置:选择具体的存储配置

      • 挂载路径:填写容器中的挂载路径

    实验记录

    • 选择是否开启 TensorBoard 可视化训练。

    • 开启后用户需要编写代码将TensorBoard日志写入对应存储路径,然后可在任务列表页点击TensorBoard进行训练指标可视化的查看。

      • 存储类型:支持对象存储KS3与文件存储KPFS

      • 选择存储配置:选择具体的存储配置

      • 挂载路径:填写容器中的挂载路径

    故障处理配置

    故障自愈

    • 开启训练任务故障自愈功能。

    • 开启后,任务失败将触发自动重启与资源故障检测。

    权限配置

    队列内共享

    默认仅创建者个人私有,开启队列内共享后全队列可见可操作 。

后续操作

附录:环境变量说明

PyTorch 任务

平台为训练任务注入了以下可能需要用到的环境变量,用户可按需配置:

  • 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 任务

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 参数包括:

  • 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 挂载

训练时指定 --tensorboard-dir 参数,目录地址为平台挂载的 Tensorboard 目录。

示例:

--tensorboard-dir /tensorboard #已完成挂载的目录

conda 环境切换说明

若训练镜像中需要切换 conda 环境,则需要在启动脚本或启动指令中显式的进行切换:

source activate base
conda activate xxxx

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈