跳转到主要内容
OpenRLHF,catalog 版本 0.11.0(默认)与 0.11.2。方法有 openrlhf/sft、dpo、rm、 grpo、ppo、reinforce-baseline。配置走 CLI 参数而不是 Hydra,适配器以 Python 模块方式启动它。
0.11.2 换掉了 off-policy 校正的开关。is_correction 与 is_correction_type 只存在于 0.11.0;0.11.2 改成 is_correction_level、is_correction_mode、is_correction_gating, 把原来三个方案拆成了它们本来的三个维度(tis = token + clip,icepop = token + mask, seq-mask-tis = seq + mask)。所选版本没有的参数会在校验阶段被拒绝,而不是等到容器启动。
上游的 Dockerfile 装了依赖栈,但没有装 openrlhf 包本身,也没有发布可直接用的训练镜像。 在任何人能提交之前,管理员必须从 deploy/docker/Dockerfile.openrlhf 自建一个,并设 TUNEPLANE_IMAGE_OPENRLHF,或注册 openrlhf-0.11.0(或 openrlhf-0.11.2)这个 runtime id。Ray 版本由那个镜像钉住。0.11.0 上游钉的是 ray==2.55.0,所以不要照抄另一个框架的版本 —— 不匹配的表现是”集群起来了但 worker 从未注册”。

参数绑到哪些字段

所有角色共用这些卡

GRPO recipe 钉住 algo.advantage.estimator=group_norm 和 train.colocate_all=true,加上 vLLM 与 DeepSpeed 的 sleep 开关。actor、critic、reference 和 reward 通过混合引擎坐在同一批卡上,拓扑展开成 各角色的 num_nodes 和 num_gpus_per_node。

挑一个 estimator

no_std_norm 只按均值中心化 advantage,不除标准差。那是 Dr.GRPO 的口径,可以避免难度偏置。 openrlhf/reinforce-baseline 是 REINFORCE++-baseline:在组均值之上做全局 batch 归一化。 verl/reinforce-baseline 是同一个 estimator,所以一次运行在两个栈之间迁移不用改。 奖励从哪来是二选一:用奖励模型就填 reward_pretrain,用外部打分器就填 remote_reward_url。

确认成功

tp job logs 会显示 vLLM 引擎唤醒,然后是第一批 rollout。Charts 标签页会填入 reward 和 loss 曲线。 如果日志在 Ray head 启动后就停住、没有 worker 加入,那是镜像里的 Ray 版本和 recipe 预期的不一致。

下一步

方法目录 · 自定义镜像讲部署方怎么发布一个 · 流水线