跳转到正文

提交训练任务前检查

在提交前检查配置、镜像、任务放置和存储,可以避免任务占用资源后才暴露问题。RLark 创建器只校验表单结构,不会执行 RLinf/Hydra 配置检查或完整的调度预演。

本文使用 Header 角色表示控制台选择的角色;提交后,该角色对应 head: trueHead Task。它不是一个具体 Node,也不会自动只使用第一个 Worker。

确认创建器已经检查的内容

创建器在进入下一步和提交时检查:

  • 任务名称格式;
  • 至少一个名称不重复的角色,以及一个 Header 角色;
  • 每个角色已选择集群、填写镜像,并在所选集群内匹配至少一个节点;
  • 当界面计算出 GPU 上限时,请求没有超过该上限;
  • 每个挂载具有目标路径,主机目录具有源路径,对象存储挂载选择了 StorageClass;
  • 公共运行脚本非空。

这些检查只说明表单可以生成 Job YAML,不说明任务能够运行。

补充创建器不会执行的检查

检查项创建器行为提交前操作
RLinf 版本、fork 或补丁兼容性不检查记录确认使用的代码 ref、镜像 digest 和兼容性检查结果。
Hydra 组合、插值和 validate_cfg不执行使用该工作负载版本自己的受支持验证流程,保存脱敏的最终配置。
RLinf placement 与 RLark 角色的一致性不检查对齐 Node Group、component placement、进程数、rank 和路径。
镜像能否拉取不预拉取确认目标集群的仓库网络和拉取凭据。
镜像内 bashraypython 和业务入口不检查使用不可变镜像,在等价环境中检查命令和解释器。
节点选择器的全局唯一性只计算所选集群请平台管理员在全局 Node 清单中记录所有匹配项。
CPU、内存与共享内存不能配置 CPU、内存,也不配置 /dev/shm任务需要这些资源时,向平台管理员确认可用的配置方式。
设备数量和拓扑只列出部分上报资源核对每个实际落点的容量、型号、驱动和占用。
hostPath 内容与权限不检查在每个匹配节点检查相同路径、内容、权限和清理范围。
PVC 挂载与对象一致性提交前不创建 PVC先验证 StorageClass,并确认并发和持久化语义。
Ray 全部 Worker 就绪启动后检查,且 Head Task 的集群检查失败仍继续在业务命令前检查关键依赖;未就绪时不要启动训练,并输出可定位的错误。
网络域、NCCL 和应用网卡不执行端到端预演使用管理员确认的路由、端口和网卡信息,逐项核对工作负载的通信配置与版本兼容性。
机器人连接与安全不检查没有独立安全审批和现场验证时不得提交真机任务。

不要直接运行训练入口来测试配置

RLinf 训练入口通常在 Hydra 组合后调用 validate_cfg,而通用校验过程会构造 Cluster。直接运行训练入口可能初始化运行时或访问硬件。请使用与目标版本匹配、且确认不会初始化运行时或访问硬件的配置检查方式;没有不占用资源的检查命令时,先检查配置文件,不要在生产节点上试运行。

固定工作负载输入

先填写启动清单,再取得平台管理员确认的部署参数。两份记录必须相互引用,并明确本次运行使用的版本。

启动清单应包含:

  • RLinf 代码 ref,以及 fork、补丁或适配层来源;
  • 每个角色的镜像引用和实际 digest;
  • 原始 Hydra 配置、命令行 override 和脱敏最终配置;
  • 数据集、模型、checkpoint 和输出的版本或完整对象路径;
  • 预期角色、进程数、GPU/设备、rank 和网络拓扑;
  • 正常启动、正常运行和失败时,日志或输出中分别会出现什么。

部署参数还应给出每个角色的目标集群、完整单值选择器、全局匹配 Node 与命名空间、可用资源数量、StorageClass 和可选 Domain。RLark 没有保存启动清单或部署参数的专用字段;请在团队运行记录中把两者与 Job 名称、Job YAML 关联,不要用环境变量或脚本保存记录链接。

如果任一输入的来源、版本或验证状态不明确,请停止提交。

检查镜像和入口

在管理员指定的等价环境中确认:

  1. bash、Ray CLI 和 Head 包装脚本检查使用的 python 位于准备脚本完成后的 PATH
  2. 镜像不依赖被 RLark 覆盖的 ENTRYPOINT 执行必要初始化。
  3. 多角色镜像的 Ray、Python、CUDA/驱动和业务协议兼容。
  4. 准备脚本可重复执行,运行脚本使用明确工作目录。

WebTerminal 中临时安装的依赖不会写回镜像。需要补充依赖时,请重新构建并固定镜像。

对齐 RLinf 与 RLark 的任务放置

使用任务创建字段逐项对照 RLinf node_groupscomponent_placementenv_configs 和 hardware rank。然后让管理员:

  1. 对完整的单值 nodeSelector 执行全局匹配。
  2. 记录所有 Node 及命名空间,确认它们只属于预期集群。
  3. 确认 Header 角色只匹配 1 个 Node,YAML 副本数也为 1。
  4. 核对节点在线、可调度、资源充分,并能访问镜像、存储和网络依赖。

检查存储与输出

  • 对象存储:从目标集群检查列表和低风险读写,并确认多 Worker 挂载语义。
  • hostPath:在每个可能落点检查路径,不能用一个节点的结果代表全部节点。
  • 输出:确认 checkpoint、TensorBoard 和最终结果写入持久挂载内部,而不是容器文件系统。
  • 挂载目标:确认不会遮蔽镜像中仍需使用的代码或配置。

检查 Job YAML

提交前保存 YAML,并确认:

  • 只有一个 head: true,且该 Task 副本数为 1;
  • 每个 Task 的名称、底层角色、单值 nodeSelector 和副本符合启动清单与部署参数;
  • 镜像 digest、GPU/设备、变量和挂载符合记录;
  • 没有 Secret 或未说明的默认值;
  • runScript 指向已经确认的配置和持久输出路径;
  • 需要明确 CPU、内存或 /dev/shm 配置时,不再使用创建弹窗提交。

提交成功只表示 API 接受 Job。启动后仍要分别验证 Pod 落点、Ray 成员、RLinf 最终配置、首个训练信号和持久输出。

首次运行前,请记录本次启动清单与部署参数版本、最终 Job YAML、各层状态与查看时间、Head Task 和首个异常 Worker 的脱敏日志,以及第一个预期业务信号和持久对象前缀。运行未达到预期时,按首次运行问题排查逐项检查;达到预期时,继续按检查 RLinf 任务是否正常运行完成验收。