主题
在单个 GPU 节点上运行 RLinf
本页主要适用于仿真、数学推理以及其他只需要一个 GPU 节点的 RLinf 工作负载。你可以用一个 RLark 角色创建一个 Worker;这个 Worker 会启动本次 Job 的 Ray 节点,RLinf 再按照原有的 component_placement 在其中运行 Actor、Rollout、Env 等组件。
接下来,你将使用现有 RLinf 工作负载的镜像、配置和启动命令完成一次单节点提交,并通过日志中的训练进展或持久化输出确认任务已经开始工作。
确认任务适合单节点运行
满足以下条件时,可以按照本页操作:
- RLinf 最终生效的
cluster.num_nodes为1; - 任务所需的 GPU、数据和存储都能由同一台计算节点提供;
- 所有组件可以使用同一份镜像、挂载和启动环境。
需要多个 Worker 或额外资源字段时,请改用其他流程
如果 cluster.num_nodes 大于 1、配置包含多个 node_groups、不同 Worker 需要不同镜像或设备,或者任务必须声明当前创建页面无法填写的 CPU、内存或 /dev/shm,请改用规划多节点和异构 Worker,不要继续套用本页的单 Worker 配置。
真机任务需要先完成设备和安全确认
只有平台已经确认机器人、相机和所需驱动可以由这台计算节点上的同一个 Worker 使用,RLinf 配置仍为 cluster.num_nodes: 1,而且现场安全条件已经确认时,才可按照本页创建单节点真机任务。其他真机训练、评测或数据采集任务应先查看使用真实设备前的安全要求。
准备 RLinf 运行信息
先从现有 RLinf 配置或运行记录中确认:
- RLinf 镜像地址和明确版本,例如
registry.example.com/rlinf:v0.3.0-cuda12.4; - 这个 Worker 需要申请的 GPU 数量;
- RLinf 启动命令,以及可选的环境准备命令;
- 数据、模型、checkpoint 和训练输出在容器内使用的路径;
- 判断任务正常运行的首个业务信号和预期输出位置。
这里只需要准备 RLinf 工作负载本身的信息。任务名称可以在页面中填写;任务使用哪组计算资源,将在 Step 3 根据控制台显示的选项确定。
Step 1 保留原有 RLinf 配置
确认本次实际加载的 RLinf 配置使用 cluster.num_nodes: 1,并沿用该工作负载已经验证的以下设置:
component_placement;- Actor、Rollout、Env 等组件的 world size;
- offload 设置;
pipeline_stage_num;- 算法、模型、数据和 checkpoint 配置。
这些设置决定 RLinf 如何使用 Worker 中的 GPU。在控制台中,只需为该 Worker 配置正确的节点、GPU、镜像和挂载。
Step 2 添加 worker 角色
在左侧导航中选择任务,然后选择创建任务。
填写便于识别的任务名称,并按页面提示调整名称格式。
在任务类型中选择自定义任务。这个选项只决定初始角色列表,不会改变 RLinf 的算法或执行模式。
在角色列表中选择添加角色,把角色名称改为
worker。worker只是这组 RLark Worker 的名称,不对应 RLinf 的 Actor、Rollout 或 Env 组件。component_placement中出现这些组件,也不表示需要在 RLark 中创建同名角色;对于单节点任务,它们仍可在同一个 Worker 中使用不同或重叠的 GPU。选择
worker这一行,确认它显示为 Header。
Step 3 配置一个 Worker
进入 Worker 配置后,填写 worker 角色:
选择当前环境为这次任务提供的目标集群。
集群是 RLark 中已经接入的一组计算资源。可以先浏览集群,确认当前环境有哪些集群;再查看节点资源,了解节点的在线状态、可调度状态、GPU 和标签。
在节点选择中使用当前环境确认过的条件,并检查已选节点数是否为
1。Header 角色只能创建 1 个 Worker
已选节点数不是
1时,不要继续。否则多个 Worker 会分别启动 Ray Head,并执行同一运行脚本。如果无法确定集群或节点条件,请在这一步向平台管理员说明任务需要 1 个 Worker、多少张 GPU,以及存储需求。在 GPU 中填写该 Worker 实际需要的 GPU 数量。
例如,仅使用 GPU 的配置使用资源编号
0-7时,通常需要申请8张 GPU;仍应以已经验证的 RLinf 配置和目标节点容量为准。填写团队提供、目标集群可以拉取的镜像地址和版本。
优先使用带版本号的 tag,不要使用
latest;团队提供 digest 时可以直接填写。两种写法的区别见选择镜像版本和执行入口。如果镜像启动前需要激活环境、切换目录或准备文件,把这些命令写入准备脚本。
RLark 会替换镜像 ENTRYPOINT
不要依赖镜像
ENTRYPOINT完成环境激活、目录切换或文件准备;这些动作需要写入准备脚本,否则运行环境可能没有按预期就绪。按需填写非敏感环境变量。
如需读取数据或保存结果,添加主机目录或对象存储挂载,并填写训练程序实际使用的容器路径。
训练程序必须使用容器内挂载路径
添加挂载不会自动改变 RLinf 的输入或输出位置。请让配置或运行命令从容器内挂载路径读取数据,并把 checkpoint 和训练结果写入该路径;写在挂载外的文件可能在 Pod 重建后丢失。不清楚主机目录、对象存储和容器路径之间的关系时,请先阅读在训练任务中使用存储。
完整字段说明见创建训练任务。
Step 4 填写运行命令
进入公共配置后:
在选择 Head 节点中确认
worker是 Header 角色。如果页面提供跨集群网络域(可选)下拉框,单集群任务保持默认的不使用跨集群网络。
只有确实需要远程访问时才选择 SSH 公钥。
在运行脚本中填写已经验证的 RLinf 启动命令。命令依赖工作目录时,请明确执行
cd。运行脚本会在 Ray 启动后,由 Header 角色创建的唯一 Worker 执行。
使用 TensorBoard 时,填写训练程序写入 event 文件的容器路径。
Step 5 核对 YAML 并提交
进入 YAML 预览后,确认最终配置满足以下结果:
| 检查项 | 预期结果 |
|---|---|
| RLark 角色数 | 1,名称为 worker |
| Worker 数 | 1 |
| Ray 节点数 | 1,与 cluster.num_nodes 一致 |
| Header | worker,副本数为 1 |
| GPU | 与 RLinf 配置和目标节点容量一致 |
| 镜像、命令和挂载 | 与本次准备的值一致 |
同时确认节点选择只命中预期 Node。
保护敏感信息
环境变量、准备脚本、运行脚本和 YAML 中不得包含密码、私钥、访问令牌或对象存储密钥。发现敏感信息时,先从任务配置中移除,并改用当前环境允许的凭据注入方式,再继续提交。
保存本次 Job YAML 后,选择提交任务。
Step 6 确认任务开始运行
提交后按下面的顺序快速确认:
任务列表中出现本次 Job。
提交后继续检查 RLinf 运行结果
任务出现在列表中或显示运行中后,请继续检查实际 Pod、Ray 节点、RLinf 业务信号和持久输出。
Job 详情中出现一个 Worker 对应的实际 Pod,并位于预期 Node。
日志显示 Ray Head 已启动,并开始执行运行脚本。
RLinf 日志出现预先确定的训练、评测或数据处理进展。
checkpoint 或其他输出写入预期的持久化位置,并且可以重新读取。
需要逐项记录运行结果时,请继续阅读确认 RLinf 任务是否正常运行;任何一步没有出现预期结果时,请按首次运行问题排查从最早出现问题的位置开始检查。