跳转到正文

确认 RLinf 任务是否正常运行

任务提交后,先确认下面五个结果。需要交接、复现或比较多次运行时,再继续完成后面的详细检查。

先确认任务已经开始工作

  1. 任务列表中出现本次 Job,而且详情中的镜像、Worker 数和挂载符合提交内容。
  2. 详情页出现预期数量的实际 Pod,并且 Header 只有 1 个 Worker。
  3. 日志显示 Ray Head 和预期 Worker 已经加入本次 Ray 集群,运行脚本开始执行。
  4. RLinf 日志出现当前工作负载定义的第一条训练、评测或数据处理进展。
  5. 需要保留的 checkpoint 或输出已经写入持久存储,并且可以重新读取。

判断 RLinf 是否正常运行,请以上面五项结果为准。控制台状态、TensorBoard 链接和单条启动日志分别用于定位某一层运行情况;上面任一结果没有出现时,请按首次运行问题排查从最早出现问题的位置开始检查。

这次检查覆盖的内容

本页检查本次提交使用的代码、镜像、配置和目标环境:Job 是否创建、Pod 是否落到指定节点、Ray 和应用是否启动,以及业务进展和输出是否符合预期。检查结论只适用于这组输入和环境;跨版本或跨环境使用时需要重新确认兼容性。

需要交接或复现时保存详细记录

需要把本次结果交给其他人、比较多次运行、复现问题或提交排障信息时,再使用下面的记录模板。可以记录脱敏日志片段、对象元数据或获授权的运维检查结果;不要保存凭据、私钥、访问令牌或包含密码和密钥的完整环境变量。

展开运行检查记录模板
markdown
# 任务运行检查记录

- 运行 ID:
- 代码版本、镜像地址和版本;实际 digest(如已记录):
- Hydra 配置和命令来源:
- RLinf `cluster.num_nodes` 和执行模式:
- 目标集群、节点和资源信息:
- Job 名称:
- 提交 YAML 记录:
- 记录人:

| 检查项 | 结果(符合预期 / 未符合 / 待确认) | 检查时间 | 记录位置 | 备注/联系人 |
| --- | --- | --- | --- | --- |
| 1. Job 已创建且配置一致 |  |  |  |  |
| 2. Pod 数量和所在节点正确 |  |  |  |  |
| 3. Ray 已按预期启动 |  |  |  |  |
| 4. 应用和配置版本一致 |  |  |  |  |
| 5. 业务有进展且输出已持久化 |  |  |  |  |
| 6. 结果已保存并明确后续处理 |  |  |  |  |

详细检查中有任何一项未符合预期或仍待确认时,请把结果记录为“未符合”或“待确认”。先按照提交前确定的停止条件处理任务,再联系对应的任务负责人或平台管理员解决问题。

检查 1:Job 已创建且配置一致

  1. 提交后在任务列表找到精确的 Job 名称;列表通常每 10 秒自动刷新,也可以手动刷新。
  2. 打开详情,核对创建时间以及角色配置中的镜像、选择器、副本数、GPU/设备、挂载、环境变量、Header 和运行脚本与提交 YAML 一致。
  3. 记录 Job 当前状态,用它判断 RLark 是否正在协调这项任务;训练结果在检查 3–5 中确认。

符合预期时:Job 可以打开,页面配置与已保存的 YAML 一致,而且任务没有被意外停止。

详情页显示实际 Pod

任务列表中的 Worker 数和进度来自 Task 摘要,运行时长目前也是占位值。详情页展开 Worker 后,会显示实际 Pod 的名称、Node、IP 和阶段;显示“暂无 Pod 详情,等待任务同步”时,Pod 信息尚未同步,本项仍待确认。

检查 2:Pod 数量和所在节点正确

  1. 在详情的 Worker 标签逐行选择查看详情。Pod 子表显示名称、Node、IP 和阶段后,才能确认这一行对应实际 Pod;出现“暂无 Pod 详情,等待任务同步”时,本项检查尚未通过。
  2. 对每个子表中的实际 Pod 记录角色、Pod 名称、Node、Pod 阶段和 IP,并与创建任务前确认的节点信息比较。控制台不显示数据面命名空间,需要由获授权的管理员确认命名空间与目标环境一致。
  3. 确认每个角色的实际 Pod 数等于预期副本数,全部实际 Pod 的总数等于 RLinf cluster.num_nodes,且 Header 只有一个实际 Pod。
  4. 对照提交 YAML,确认每个 Worker 申请的 GPU 和设备数量符合资源规划。需要核对容器实际可见的设备时,查看应用输出,或请获授权的运维人员从目标数据面确认。
  5. 仍有疑问时,请获授权的运维人员检查 Pod 调度事件、容器状态和重启次数。

符合预期时:所有预期 Pod 都落在创建任务前确认的 Node 和命名空间,Pod 总数与 cluster.num_nodes 一致,每个 Worker 的资源申请符合规划,Header 实际 Pod 数为 1,且没有未解释的 Pending、失败或重启。

核对 Pod 详情时:Worker 行的创建时间可能来自 Job 创建时间,节点类型可能根据名称或角色显示,CPU、内存、延迟和 FPS 也不是实际用量指标。需要确认这些信息时,请查看检查 Worker 和 Pod,或请运维人员核对数据面。

检查 3:Ray 已按预期启动

  1. 日志标签分别选择 Header 和每个 Worker,检查准备脚本与 Ray 启动阶段。
  2. 在各 Worker 的启动日志中核对 RLINF_NODE_RANK;其范围应与 RLinf node_groups[].node_ranks 和创建任务时确定的角色顺序一致。
  3. 找到提交前确定的启动标志;对 Header 额外取得 ray status 或等价信息,确认预期节点已经加入。
  4. 检查镜像拉取、命令缺失、Python import ray、网络接口、Ray 地址和超时相关错误。

符合预期时:每个角色都有对应的启动记录,Ray 节点数量和 RLINF_NODE_RANK 与工作负载配置一致,并且日志中没有被启动脚本忽略的集群检查失败。

日志限制:日志页只读取当前 Pod 的 main 容器,每个 Pod 最多显示最后 1000 行,不包含上一个容器实例的日志。没有日志或读取失败时,日志区域也可能显示一条文本提示。时间范围不会改变查询内容;开启“实时”后,页面每 5 秒重新获取一次。需要更完整的日志时,请获授权的运维人员从目标集群补充。参见查看和导出日志

检查 4:应用和配置版本一致

运行脚本开始执行后,应用还需要在日志或运行记录中写出以下信息:

  • 本次运行 ID;
  • RLinf 仓库和完整提交 SHA;
  • 解析后的配置文件位置与校验和,包括基础配置、覆盖项和环境输入的结果;
  • 数据版本/校验和以及输出和检查点前缀;
  • 应用识别到的节点编号、资源编号、进程编号、Worker 数和关键运行时版本;
  • 最终生效的 node_groupscomponent_placement,以及共享式、分离式或混合式资源关系。

把这些值与提交前记录的信息逐项比较。提交 YAML 只保存创建任务时填写的镜像引用:填写 digest 时可以直接核对;填写版本 tag 时,不能从 YAML 得到运行时实际拉取的 digest,需要结合提交前保存的镜像仓库或构建记录,或者向镜像维护者、获授权的运维人员确认。无法确认这个 tag 在提交时对应哪份镜像时,不能把镜像内容记录为已经核对。应用还需要在日志或运行记录中输出实际代码版本和解析后的 Hydra 配置,再与提交前记录比较。

符合预期时:应用报告的运行 ID、配置哈希、数据版本、Worker 数量和组件放置都与提交前确定的内容一致,没有来源不明的默认值或环境变量覆盖。控制台中的 Actor、Rollout、Environment 角色名称不能代替这项检查。

检查 5:业务有进展且输出已持久化

  1. 等待提交前确定的最小业务进展信号,例如一次训练、采集或评测里程碑。不要用通用示例替代任务自身的判断依据。
  2. 在创建任务前确认的持久化位置检查预期文件或对象是否存在、大小是否合理并可以重新读取;在运行记录中保存校验和、对象版本或其他可复核信息。
  3. 如果这次工作负载需要生成 checkpoint,请确认 checkpoint 使用本次运行的唯一前缀,并按任务自己的安全检查方式验证可加载性。不要为了测试恢复而覆盖原 checkpoint。

符合预期时:在最大等待时间内出现预先确定的业务信号,而且至少一个需要持久化的产物可以重新读取或通过等价检查。

核对业务进展时:Job 指标页目前没有真实指标;TensorBoard 入口表示已经配置目录和访问路径。请以工作负载自己的日志、业务信号和可重新读取的持久输出作为本项检查依据。

检查 6:保存结果并明确后续处理

  1. 汇总前五项检查结果,列出仍需运维人员确认的内容、联系人和下一步。
  2. 按提交前确定的停止条件决定继续运行、由获授权人员停止,或保留任务用于排查。任务仍在生成唯一日志或输出时,不要为了演示而删除。
  3. 如果这次检查要求停止任务,先确认输出和 checkpoint 已持久化,再选择停止并确认 Pod 被缩容。当前“停止”是把任务副本缩为 0;之后“启动”会重新创建进程,不等同于从 checkpoint 恢复。
  4. 记录日志保留位置、输出和检查点的联系人、保留期限及后续问题链接。按平台流程清理秘密或临时访问授权,并记录执行结果。

符合预期时:需要保存记录时,六项检查信息完整,已经明确任务是继续运行、停止还是保留排查;另一位获授权人员可以重新读取持久化结果;尚未确认的项目没有记录为正常。

可使用下面的最终结论,不要扩大适用范围:

text
本次运行在 <time> 完成,使用代码和镜像 <version-ref>、配置 <config-ref>,并提交了 Job YAML <yaml-ref>。
本次已确认 Job 创建、Pod 位于预期节点、Ray 启动、应用与配置版本一致,并看到了任务预期的最小业务进展和可回读的持久化输出。
结果只适用于这组代码、镜像、配置和环境,不能代替 RLinf 版本兼容表、通用训练配方、性能测试或真实机器人安全批准。

出现等待超时、Pod 缺失或日志不一致时,把结果记录为未符合预期,并按首次运行问题排查找到最早出现问题的环节。需要更详细的检查方法时,参见训练任务与 Worker 故障排查