Skip to content

发起任务

在智算云平台的任务页面可发起单机或分布式训练任务。

训练数据

训练过程可能需要来自第三方的代码和数据集(如 GitHub、HuggingFace)。为了避免网络不通、下载耗时等问题造成任务失败,我们提供以下参考方案:

  • 在训练开始前进行预拉取,并在数据拉取完成后进行检查,然后再执行训练;或者在采用 MPI 方式启动训练前先拉取数据。
  • 如有非常耗时的操作,强烈建议不要跟训练任务一起进行。建议先使用开发机预先拉取代码、数据到共享文件存储,也可以先创建一个独立的任务,用于提前的数据和代码下载。

RDMA

AIStudio 平台会进行自动感知当前资源与环境,进行最优配置。在训练网为 RoCE 时,为了指定 RoCE 场景的网卡、网卡 ID、消除跨网卡通信以及设置网卡的优先级队列,平台预置了以下 NCCL 环境变量:

shell
# 在完整的 8 卡 Pod 上,此值通常是 5。在非 8 卡的场景中,平台会动态获取并配置。
NCCL_IB_GID_INDEX = 5 
# 网络所使用的交换机队列。我们约定在集群中使用固定队列,其映射的 TC 值就是 162。
NCCL_IB_TC = 162
# RDMA 通信的网卡名称。8 个网卡可用(不含管理网卡)。
NCCL_IB_HCA = mlx5_1,mlx5_2,mlx5_3,mlx5_4,mlx5_5,mlx5_6,mlx5_7,mlx5_8  
# 关闭跨 RoCE 网卡间的网络,以避免不同网卡之间无法通信的情况。
NCCL_CROSS_NIC = 0

DANGER

请勿随意调整以上环境变量。

如果任务规模非常大,可以手动设置下指定拓扑建环的策略。虽然 AIStudio 平台默认会自动选择,但有时根据任务的不同规模和通信特征,尝试手动指定 ring 或者 tree 可能会有更好的性能:

shell
# 手动指定拓扑建环的策略
export NCCL_ALGO=Ring

容错

大模型训练任务规模大、时间长,需要尽可能避免一些偶发异常导致训练业务的中断。智算云平台提供了简单、易用的自动容错的能力,保障训练任务长期稳定运行。该能力默认开启,无需额外配置。

TIP

  • 请确保您的训练代码已实现自动保存最新的 Checkpoint,并以实现从最新的 Checkpoint 恢复训练。
  • 单次任务中 Worker 最多重启 3 次,如果问题持续,任务将失败并结束。暂不支持调整最大重启次数。

发起训练任务

访问智算云平台任务列表页面,发起单机或分布式任务。

alt text

在任务列表页面,点击 创建任务。根据页面提示,填写以下信息。

  • 规格信息

    • 资源类型:商用客户购买计算资源后,可选择资源池类型,并指定运行任务的资源池。
    • Worker 规格:运行训练任务的计算资源规格。选择资源池后,平台会列出该资源池中所有可用的负载规格。
    • 共享内存:当前为固定值,每个 Worker 可使用的共享内存为 Work 规格内存的一半。
    • Worker 数量:用于在分布式任务。单机训练时建议保持为 1。

    NOTE

    • 资源类型中的 Spot 类型当前仅限公测用户使用。
    • 暂不支持直接展示资源池中的库存状态。
  • 基础配置

    • 镜像:训练任务运行的环境。支持预置镜像、自定义镜像。详见镜像中心
    • 分布式框架: 支持 Pytorch-DDP 和 MPI。如无需求,可选择单机。
    • 任务可视化: 启用 TensorBoard 可视化功能,并提供日志的访问路径。在任务运行中,AIStudio 从该路径下读取 TensorBoard 日志并进行可视化展示。建议将日志写入共享文件存储
    • 容错:如遇任务异常,会自动重启 Worker。单个任务的生命周期中 Worker 最多自动重启 3 次。如果超过 3 次,任务将失败并结束。

      NOTE

      暂不支持调整最大重启次数。目前重启策略仅支持重启所有 Worker。

    • 启动命令: 可填写任务的环境变量及入口命令等,建议将训练过程封装在 bash 脚本中。建议参考优化训练任务的启动命令
  • 挂载信息

    文件存储: 挂载租户的共享文件存储。如果需要使用共享文件存储,必须在创建任务时创建所有挂载点。详见存储

  • 基本信息

    • 名称:1~64 个字符,支持中英文数字以及- _,允许重复,名称不唯一。
    • 描述: 添加描述或者备注,长度 1~400 个字符,可留空。

完成表单配置后,点击确认创建,任务进入创建流程。创建成功后,您可以在列表中查看任务的状态。​

如果资源不足,任务会进入排队队列;资源足够时,进入部署中状态。​

查看部署进度

任务进入部署中状态后,将会执行一系列子操作。仅在所有 Worker 均完成一个子状态的情况下,任务才会进入下一个子状态。

如果任务长时间停留在部署中状态,建议在任务列表的状态栏中点击 ... 图标,在打开的弹窗中查看的详细进度。

如果在任何子状态发生错误,平台会自动重试。如果进度长时间停留在错误状态且无法恢复,建议停止任务,并重新发起。如果问题持续存在,请联系售后服务。