跳转到正文

RLark 与 RLinf

RLinf 工作负载包含算法、Hydra 配置和训练程序。把工作负载所需的镜像、脚本、环境变量、资源和挂载填入 RLark 后,平台会创建 Job 和 Worker、启动 Ray,并提供日志、终端、存储挂载和工作流入口。

text
RLinf 代码、Hydra 配置、数据和模型
                  │ 通过镜像、挂载和运行命令接入

RLark Web 控制台 → rlinf.io/v1alpha1 Job → Task → Worker / Pod

                                                    └─ Ray 启动后执行 RLinf 命令

RLark 如何接入 RLinf

提交 RLinf 工作负载时,需要提供:

  • 包含 RLinf 代码、Python 依赖和运行环境的镜像;
  • Hydra 配置、命令行覆盖项,以及应用实际执行的启动命令;
  • Actor、Rollout 和 Environment 等角色所需的节点、资源和挂载;
  • 数据、模型、checkpoint 和输出在容器中的路径。

RLark 会把这些内容保存为 Job,并根据角色创建 Task 和 Worker。镜像内的应用解析 Hydra 配置,因此需要在运行日志或记录中输出最终配置并与启动清单核对。提交前请把所需的 RLinf 版本安装到镜像中,并把 node_groupscomponent_placement、hardware rank 或 env_configs 手动转换为 RLark 角色;Job YAML 预览只显示将提交的 RLark 资源。

迁移现有任务时,按照迁移已有 RLinf 工作负载确定角色、节点选择、命令和挂载。

确认版本兼容性

先确认当前环境是否有 RLinf 版本兼容表

如果平台管理员没有提供版本兼容表,控制台中已有的 RLinf-rlark 路径、0.2 镜像标签或历史任务只能说明这些配置曾被保存,不能说明它们与上游 RLinf 0.4.0 兼容。

当前环境没有版本兼容表时,需要为每个工作负载单独记录并验证:

  1. 使用上游 RLinf 还是 fork,以及精确 commit 和补丁来源;
  2. RLinf、Python、Ray、CUDA、驱动和设备依赖版本;
  3. 不可变镜像 digest;
  4. 原始 Hydra 配置、命令行 override 和预期的解析结果;
  5. 数据集、模型、checkpoint 和输出位置;
  6. 每个角色的放置、GPU、设备、网络和存储条件;
  7. 可以用来确认启动成功、训练有效或运行失败的日志和输出。

缺少任一项时,请先完成工作负载验证。能够打开创建弹窗或生成 YAML,只说明表单内容可以转换为 Job 配置。

准备并传入配置

下表用于确认每类配置从哪里进入任务,以及运行后到哪里核对。

配置位置包含的内容接入和验证方式
镜像RLinf 代码、Python/Ray 环境、系统和设备依赖、镜像默认值在 Job 中填写不可变镜像引用;数据面拉取镜像,应用启动后输出实际代码和运行时版本
RLinf/Hydra算法、组件放置、环境配置和业务输出约定随镜像或挂载提供,并由应用解析;把最终配置写入日志或运行记录
命令行 override运行时对 Hydra 或应用参数的覆盖写入运行脚本并在启动清单中记录;RLark 按脚本内容执行
RLark Job角色、Header、节点选择、副本、GPU/设备、镜像、脚本、变量、挂载、网络域、SSH 公钥和 TensorBoard 目录在创建器中填写并核对 YAML;RLark 据此创建 Task 和 Worker
数据与产物数据集、模型、checkpoint、日志、视频和评测结果的版本与来源通过镜像或存储挂载接入;把需要保留的输出写入持久路径,并在运行记录中保存版本和位置

最终使用哪一组算法配置,由镜像内应用、Hydra 配置和运行命令的优先级决定。RLark 不计算合并后的配置,也不会自动记录每个配置值来自哪里。

继续阅读