OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  OpenRLHF Trainer — 面向对齐训练的高效 RLHF 工具链

OpenRLHF Trainer — 面向对齐训练的高效 RLHF 工具链

 
  network ·  2026-09-02 11:00:16 · 27 次点击  · 0 条评论  
OpenRLHF logo

GitHub Contributors Issues Issues GitHub pull requests GitHub stars Ask DeepWiki
开源 / 全面 / 轻量 / 易用


[ English | 中文 | 日本語 ]

OpenRLHF 是首个高性能、生产就绪的开源 RLHF 框架,它将 Ray + vLLM 分布式架构统一的智能体(Agent)设计范式相结合,为可扩展、可扩展的基于人类反馈的强化学习(RLHF)提供了强大支持。

📚 了解更多文档 | 幻灯片 | 技术报告 | 视频

🔥 新后端: Molt 为 OpenRLHF 带来了基于 Automodel 的后端,其功能比 DeepSpeed 更强大——可将RL训练扩展到数千亿参数,同时保持熟悉、优雅的 OpenRLHF 工作流程。

📖 目录


新闻

查看新闻 - [2026/4] OpenRLHF 0.10 新增 **多轮 VLM RL** — 支持在提示(Prompt)和环境反馈(如屏幕截图)中进行多步骤图像交互。示例:[vlm_multiturn_agent.py](./examples/python/vlm_multiturn_agent.py) - [2026/4] OpenRLHF 0.10 新增 **VLM(视觉-语言模型)RLHF 支持** — 支持端到端训练带有图像输入的 VLM(如 Qwen3.5)。训练脚本:[train_vlm_math_hybrid_engine.sh](./examples/scripts/train_vlm_math_hybrid_engine.sh) - [2026/2] [ProRL V2](https://developer.nvidia.com/blog/scaling-llm-reinforcement-learning-with-prolonged-training-using-prorl-v2/) 使用 REINFORCE++-baseline 通过长期 RL 训练了一个最先进的 1.5B 推理模型。训练脚本:[train_prorlv2_math_hybrid_engine.sh](./examples/scripts/train_prorlv2_math_hybrid_engine.sh) - [2025/10] [ScaleRL](https://arxiv.org/abs/2510.13786) 验证了 REINFORCE++-baseline 在大规模训练场景中的有效性。发布了 [REINFORCE++ 幻灯片](https://docs.google.com/presentation/d/1stieP_3PM1z4Hq1YWR3GywFkxcHEAlstXMaS23KlGN4) - [2025/6] [Magistral](https://mistral.ai/static/research/magistral.pdf) 使用与 REINFORCE++-baseline 非常相似的方法来训练推理模型。 - [2025/5] [MARTI](https://github.com/TsinghuaC3I/MARTI) 作为 OpenRLHF 的分支发布。它旨在使用 RL 训练基于 LLM 的多智能体系统,通过将集中式多智能体交互与分布式策略训练相结合来实现。 - [2025/5] OpenRLHF 0.8.0 通过 `--train.async_enable` 支持异步 RLHF 训练,并通过 `--train.agent_func_path` 支持异步智能体 RLHF。参见 [train_reinforce_baseline_ray_agent_async.sh](./examples/scripts/train_reinforce_baseline_ray_agent_async.sh) 获取可运行示例。 - [2025/4] 发布博客 [Accelerating RLHF with vLLM, Best Practice from OpenRLHF](https://blog.vllm.ai/2025/04/23/openrlhf-vllm.html) - [2025/4] 重构 OpenRLHF:基于单控制器(Single Controller)和统一打包样本(Unified Packing Samples)重构了源代码。 - [2025/3] CMU [高级自然语言处理 2025 春季课程](https://cmu-l3.github.io/anlp-spring2025/)使用 OpenRLHF 作为 RLHF 框架教学案例。 - [2025/2] [Logic-RL](https://arxiv.org/abs/2502.14768) 和 [PRIME](https://arxiv.org/abs/2502.01456) 证明 REINFORCE++ 在训练中比 GRPO 更稳定,且比 PPO 更快。 - [2025/2] [LMM-R1](https://github.com/TideDra/lmm-r1) 是 OpenRLHF 的分支,旨在为在多模态任务上复现 DeepSeek-R1 提供高性能 RL 基础设施。 - [2025/2] MIT 和微软提出了 [关于 LLM 中思维涌现 I:寻找正确直觉](https://arxiv.org/pdf/2502.06773),使用了 OpenRLHF。 - [2025/1] 香港科技大学使用 OpenRLHF 在小模型上复现了 [DeepSeek-R1-Zero 和 DeepSeek-R1 训练](https://github.com/hkust-nlp/simpleRL-reason)。 - [2024/12] 我们“提出”了 😊 [REINFORCE++: 一种简单高效的 LLM 对齐方法](https://www.researchgate.net/publication/387487679_REINFORCE_An_Efficient_RLHF_Algorithm_with_Robustnessto_Both_Prompt_and_Reward_Models)。 - [2024/12] 我们在 [Notion 博客](https://hijkzzz.notion.site/unraveling-rlhf-and-its-variants-engineering-insights#147d9a33ecc9806090f3d5c749d31f05) 中分析了 PPO、REINFORCE++、GRPO 和 RLOO。 - [2023/8] OpenRLHF 开源。

🏗️ 架构基础: Ray + vLLM 分布式架构

OpenRLHF 是首个基于 Ray + vLLM 分布式架构的 RLHF 框架,可跨 GPU 高效编排多个组件:

OpenRLHF Architecture (Ray + vLLM)

核心基础设施组件

Ray - 分布式调度器与控制器
OpenRLHF 利用 Ray 实现高效的分布式调度。它将 Actor、Reward、Reference 和 Critic 模型分别部署在不同的 GPU 上,支持高达 700 亿+参数模型的可扩展训练。

混合引擎调度:所有模型和 vLLM 引擎可以共享 GPU 资源—最大限度地减少空闲时间并最大化 GPU 利用率。这使得在有限的硬件资源上运行完整的 RLHF 流水线成为可能。

vLLM - 高性能推理引擎
RLHF 训练80% 的时间用于生成本文。借助 vLLM 及其自动张量并行(AutoTP)和流水线并行(PP)特性,OpenRLHF 能够提供高吞吐、内存高效的生成。

DeepSpeed - 内存高效训练
基于 DeepSpeed ZeRO-3、deepcompileAutoTP 和 RingAttention。无需重型框架即可实现大模型训练,并可直接使用 HuggingFace 模型。

Transformers - 模型接口
原生集成 HuggingFace Transformers,实现预训练模型的无缝加载、状态管理和微调。

NCCL / CUDA IPC - 高速通信
为分布式训练和推理提供高效的 GPU 间通信。


🎯 设计范式: 基于智能体的执行

在 Ray 分布式架构之上,OpenRLHF 是首个实现统一智能体范式的 RLHF 框架。无论训练是标准 PPO 还是复杂的多轮推理,都遵循一致的智能体执行流水线。

为什么采用智能体范式?

OpenRLHF 通过“令牌进-令牌出”(Token-in-Token-out)的智能体执行方式统一生成与训练,确保完美的一致性、轻松的单/多轮扩展,并消除文本级别的错位。

智能体架构

                 ┌─────────────────────────────┐
                 │    AgentExecutorBase        │
                 │  (Token-in-Token-out 核心) │
                 └─────────────────────────────┘
                              │
                 ┌────────────┴────────────┐
                 ↓                         ↓
         SingleTurnExecutor        MultiTurnExecutor
                 │                         │
      ┌──────────┴──────────┐   ┌─────────┴──────────┐
      ↓                     ↓   ↓                    ↓
  标准RLHF           自定义奖励       多步推理         外部环境
  (单次生成)          函数                           (OpenAI Agent Server)
      ↓                     ↓           ↓                ↓
      └─────────────────────┴───────────┴────────────────┘
                              │
                    一致的 Token 轨迹
                              │
                    ┌─────────┴─────────┐
                    │   RL 算法(解耦)   │
                    │                   │
                    │  PPO, REINFORCE++ │
                    │  GRPO, RLOO, etc. │
                    └───────────────────┘

核心设计原则

查看核心设计原则 | 原则 | 描述 | 优点 | |-----------|-------------|---------| | **令牌进-令牌出** | 所有采样过程都生成token级别的轨迹 | 无文本级别错位 | | **统一接口** | 所有模式共用相同的 `AgentExecutorBase` API | 通过一个标志切换模式 | | **算法无关** | RL 算法(PPO、REINFORCE++ 等)与智能体执行器解耦 | 任何算法适用于任何模式 | | **可扩展** | 轻松集成自定义奖励/环境 | 快速实验与迭代 | | **生产就绪** | 支持同步/异步/混合引擎 | 从研究到部署的无缝过渡 |

两种执行模式 (与 RL 算法正交)

智能体执行模式与您选择的 RL 算法无关。您可以将任何算法(PPO、REINFORCE++、GRPO 等)与任何执行模式结合使用:

模式 使用场景 接口 复杂度
单轮 标准 RLHF、自定义奖励函数 可选 reward_func() ⭐ 默认(覆盖 99% 用例)
多轮 多步推理、交互式环境 reset()step() ⭐⭐ 高级用法

🚀 最前沿的 RL 算法

OpenRLHF 实现了 PPO、REINFORCE++、REINFORCE++-baseline、GRPO、RLOO,并参考实践指南和社区最佳实践集成了高级优化技巧。

关键设计:RL 算法与执行模式完全解耦。所有算法均可无缝应用于单轮和多轮智能体执行器,并通过统一的令牌进-令牌出流水线运行,以保证行为一致性。

查看算法对比表 | 算法 | `--algo.advantage.estimator` | 关键特性 | 最佳用例 | |-----------|------------------------|-------------|---------------| | **PPO** | (默认) | 完整 Critic 网络 | 训练稳定、结果可靠 | | **REINFORCE++** | `reinforce` | 无需 Critic 的 PPO 技巧 | 高效训练、显存占用低 | | **REINFORCE++-baseline** | `reinforce_baseline` | 平均奖励基线 | 推理任务 (RLVR)、对奖励尺度鲁棒 | | **RLOO** | `rloo` | 逐token KL + PPO-clip | 多样本训练 | | **GRPO** | `group_norm` | 组归一化 | 批量训练 | | **Dr. GRPO** | `dr_grpo` | 简化的 GRPO | 移除局部 `/std` 归一化 |

参考资料: 知乎文章 | Notion 最佳实践


📋 功能概览

OpenRLHF 提供了完整的 RLHF 流水线,并具备基于智能体的灵活性:

🎯 基于智能体的 RL 训练(核心创新)

查看基于智能体的 RL 训练详情 **单轮模式**(默认 - 覆盖 99% 的用例) - 每个提示(Prompt)单次生成 - 支持所有 RL 算法: [PPO](./examples/scripts/train_ppo_ray_hybrid_engine.sh), [REINFORCE++/baseline/GRPO/RLOO](./examples/scripts/train_reinforce_baseline_hybrid_engine.sh) - [自定义奖励函数](./examples/scripts/train_ppo_with_reward_fn.sh) (`--reward.remote_url`) - [混合引擎](./examples/scripts/train_ppo_ray_hybrid_engine.sh) 实现 GPU 利用率最大化 **多轮模式**(高级用法 - 交互式任务) - 与环境反馈的多步交互 - 支持所有 RL 算法 - [自定义智能体函数](./examples/scripts/train_reinforce_baseline_ray_agent_async.sh) (`--train.agent_func_path`) - OpenAI 兼容服务端:参考 `examples/python/agent_func_openai_server_executor.py`,了解如何将 vLLM 封装为本地 OpenAI Agent Server 的执行器 - 异步流水线 (`--train.async_enable`) 以实现更高吞吐量: [train_reinforce_baseline_ray_agent_async.sh](./examples/scripts/train_reinforce_baseline_ray_agent_async.sh)

🎓 监督训练与偏好学习

查看监督训练与偏好学习表格 | 方法 | 脚本 | 描述 | |--------|--------|-------------| | **SFT** | [train_sft.sh](./examples/scripts/train_sft.sh) | 使用包(Packing)技术的监督微调 | | **DPO/IPO/cDPO** | [train_dpo_llama.sh](./examples/scripts/train_dpo_llama.sh) | 直接偏好优化 | | **奖励模型** | [train_rm.sh](./examples/scripts/train_rm.sh) | 训练奖励模型 |

⚡ 高级能力

查看高级能力 **效率优化** - 所有训练模式支持样本打包 (`--ds.packing_samples`) - vLLM 加速 (`--vllm.num_engines`) 用于快速生成 - DAPO [动态过滤](./examples/scripts/train_dapo_ray_hybrid_engine.sh) (`--algo.dynamic_filtering_enable`) - 🎲 动态采样:对每个提示词,生成多个回复,并根据您的奖励/智能体的 **0–1 `scores`** 信号进行**过滤** - 启用:`--algo.dynamic_filtering_enable` - 分数范围:`--algo.dynamic_filtering_range 0.0 1.0` - 要求:`--rollout.n_samples_per_prompt > 1` 并且指定 `--reward.remote_url` 或 `--train.agent_func_path` - 示例:`./examples/scripts/train_dapo_ray_hybrid_engine.sh` **可扩展性** - DeepSpeed AutoTP 张量并行(参见训练脚本中的 `--ds.tensor_parallel_size`) - 用于长上下文的 [RingAttention](./examples/test_scripts/train_dpo_ring_llama.sh) (`--ds.ring_attn_size`) - 支持 [SLURM](./examples/scripts/train_ppo_ray_slurm.sh) 多节点训练 **模型支持** - [VLM 视觉-语言模型](./examples/scripts/train_vlm_math_hybrid_engine.sh) — 支持单轮及[带图像反馈的多轮交互](./examples/python/vlm_multiturn_agent.py) (`--data.image_key`, `--data.max_images_per_prompt`) - [LoRA/QLoRA](./examples/scripts/train_sft_mixtral_lora.sh) (`--ds.lora.rank`, `--ds.load_in_4bit`) - [专家混合模型 (MoE)](./examples/test_scripts/train_sft_moe.sh) (`--actor.aux_loss_coef`) - FlashAttention (`--ds.attn_implementation`) - HuggingFace 聊天模板 (`--data.apply_chat_template`) **优化器** - AdamW (默认): `--{actor,critic}.optim adam --{actor,critic}.adam.lr 2e-6` - [Muon](https://kellerjordan.github.io/posts/muon/) (需 DeepSpeed ≥ 0.18.2,仅支持 2D 权重;嵌入/头/1D 参数使用辅助 AdamW): `--{actor,critic}.optim muon --{actor,critic}.muon.lr 1e-4 --{actor,critic}.muon.momentum 0.95`。Newton-Schulz 迭代产生尺度不变更新,因此使用 `--{actor,critic}.max_norm 0` 禁用全局梯度裁剪(Adam 的默认值 `1.0` 会裁剪掉 Muon 的更新)。 **奖励塑形** - DAPO 式过长惩罚以控制长度 (`--reward.overlong_buffer_len`, `--reward.overlong_penalty_factor`) — 对超过 `max_new_tokens - overlong_buffer_len` 的回复进行软惩罚 - ProRL 式截断惩罚 (`--reward.stop_properly_penalty_coef`) — 对于 `finish_reason='length'` 的样本:`coef ∈ [0, 1]` 将奖励乘以该系数;`coef < 0` 则将奖励设置为该固定值(例如 `-0.5`) **生产特性** - Wandb (`--logger.wandb.key`) 和 TensorBoard (`--logger.tensorboard_dir`) 日志记录 - 检查点恢复 (`--ckpt.load_enable`, `--ckpt.save_steps`) - 根据评估指标保存最佳检查点 (`--ckpt.best_metric_key`) - 评估数据集 (`--eval.dataset`, `--eval.temperature`, `--eval.n_samples_per_prompt`) — 支持异步训练 - 多进程数据加载 (`--data.dataloader_num_workers`, 适用于 PPO/SFT/RM/DPO) - PPO 可观测性: actor/critic 梯度范数及各阶段耗时 (`timing/make_experience`, `timing/ppo_train`, `timing/broadcast`, `timing/generation`, `timing/step_total`)

🎬 快速开始

安装

推荐方式:使用 Docker 进行无痛安装

# 1. 启动 Docker 容器
docker run --runtime=nvidia -it --rm --shm-size="10g" --cap-add=SYS_ADMIN \
  -v $PWD:/openrlhf nvcr.io/nvidia/pytorch:26.03-py3 bash

# 2. 清理冲突的包
sudo pip uninstall xgboost transformer_engine flash_attn pynvml -y

# 3. 安装 OpenRLHF (选择其一)
pip install openrlhf                    # 基础版
pip install openrlhf[vllm]              # + vLLM 0.27.1 (推荐)
pip install openrlhf[vllm_latest]       # + 最新版 vLLM
pip install openrlhf[vllm,ring,liger]   # + 所有优化项

备选方案:源代码安装

git clone https://github.com/OpenRLHF/OpenRLHF.git
cd OpenRLHF
pip install -e .

[!TIP]
我们推荐使用 vLLM 0.27.1+ 以获得最佳性能。请参阅 DockerfilesNvidia-Docker 安装脚本

准备数据集

OpenRLHF 提供了灵活的数据处理方法:

关键参数
- --data.input_key: 指定输入数据的 JSON 键名
- --data.apply_chat_template: 使用 HuggingFace 分词器的 聊天模板
- --data.input_template: 自定义模板字符串(聊天模板的替代方案)
- --data.prompt_probs / --data.dataset_probs: 混合多个数据集(例如:0.1,0.4,0.5
- --eval.dataset: 指定评估数据集路径

聊天模板示例

dataset = [{"input_key": [
  {"role": "user", "content": "Hello, how are you?"},
  {"role": "assistant", "content": "I'm doing great. How can I help you today?"},
  {"role": "user", "content": "I'd like to show off how chat templating works!"},
]}]

tokenizer.apply_chat_template(dataset[0]["input_key"], tokenize=False)
# 输出: "<s>[INST] Hello, how are you? [/INST]I'm doing great...</s> [INST] I'd like to show off... [/INST]"

[!NOTE]
JSON 键名选项因数据集类型而异。请参阅 奖励数据集SFT 数据集提示数据集

监督微调

OpenRLHF 的模型检查点与 HuggingFace 模型完全兼容。您可以使用 --actor.model_name_or_path {name or path}--reward.model_name_or_path {name or path}--critic.model_name_or_path {name or path} 参数来指定模型名称或路径。我们在 HuggingFace OpenRLHF 上提供了一些预训练检查点和数据集。

然后,您可以使用我们提供的 examples/scripts 目录下的启动脚本,或通过以下命令开始训练。

SFT 命令
deepspeed --module openrlhf.cli.train_sft \
   --data.max_len 4096 \
   --data.dataset Open-Orca/OpenOrca \
   --data.input_key question \
   --data.output_key response \
   --data.input_template $'User: {}\nAssistant: ' \
   --train.batch_size 256 \
   --train.micro_batch_size 2 \
   --data.max_samples 500000 \
   --actor.model_name_or_path meta-llama/Meta-Llama-3-8B \
   --ckpt.output_dir ./checkpoint/llama3-8b-sft \
   --ckpt.save_steps -1 \
   --logger.logging_steps 1 \
   --eval.steps -1 \
   --ds.zero_stage 2 \
   --train.max_epochs 1 \
   --ds.packing_samples \
   --ds.param_dtype bf16 \
   --adam.lr 5e-6 \
   --actor.gradient_checkpointing_enable \
   --logger.wandb.key {wandb_token}

# 其他选项:
# --data.apply_chat_template                # 使用 HF tokenizer 对话模板
# --ds.ring_attn_size 2                      # 启用 RingAttention (需先安装 ring_flash_attn)
# --data.multiturn                          # 多轮微调损失
# --actor.pretrain_mode_enable                      # 持续预训练模式

奖励模型训练

奖励模型训练命令
deepspeed --module openrlhf.cli.train_rm \
   --ckpt.output_dir ./checkpoint/llama3-8b-rm \
   --ckpt.save_steps -1 \
   --logger.logging_steps 1 \
   --eval.steps -1 \
   --train.batch_size 256 \
   --train.micro_batch_size 1 \
   --actor.model_name_or_path OpenRLHF/Llama-3-8b-sft-mixture \
   --ds.param_dtype bf16 \
   --train.max_epochs 1 \
   --data.max_len 8192 \
   --ds.zero_stage 3 \
   --adam.lr 9e-6 \
   --data.dataset OpenRLHF/preference_dataset_mixture2_and_safe_pku \
   --data.apply_chat_template \
   --chosen_key chosen \
   --rejected_key rejected \
   --ds.packing_samples \
   --actor.gradient_checkpointing_enable \
   --logger.wandb.key {wandb_token}

建议将奖励模型的 --value_prefix_head 选项设置为 score,这样我们就可以使用 AutoModelForSequenceClassification 加载模型:

reward_model = AutoModelForSequenceClassification.from_pretrained(
              reward_model_path,
              num_labels=1,
              torch_dtype=torch.bfloat16,
              attn_implementation="flash_attention_2",
              use_cache=False,
          )
inputs = xxxx (向左填充输入令牌)
reward = reward_model.model(*inputs).last_hidden_state
reward = reward_model.score(reward)[:, -1]

RL 训练: 使用 Ray 和 vLLM 的 PPO/REINFORCE++

OpenRLHF 中的所有 RL 训练均通过智能体执行流水线运行。以下示例展示了单轮智能体执行(默认模式)与混合引擎结合以实现最佳性能:

# 在容器中启动 ray 主节点
ray start --head --node-ip-address 0.0.0.0 --num-gpus 8

# 如果想在更多节点上启动 ray,请使用
ray start --address {MASTER-NODE-ADDRESS}:6379  --num-gpus 8

ray job submit --address="http://127.0.0.1:8265" \
   --runtime-env-json='{"working_dir": "/openrlhf"}' \
   -- python3 -m openrlhf.cli.train_ppo_ray \
   --ref.num_nodes 1 \
   --ref.num_gpus_per_node 8 \
   --reward.num_nodes 1 \
   --reward.num_gpus_per_node 8 \
   --critic.num_nodes 1 \
   --critic.num_gpus_per_node 8 \
   --actor.num_nodes 1 \
   --actor.num_gpus_per_node 8 \
   --vllm.num_engines 4 \
   --vllm.tensor_parallel_size 2 \
   --train.colocate_all \
   --vllm.gpu_memory_utilization 0.5 \
   --actor.model_name_or_path OpenRLHF/Llama-3-8b-sft-mixture \
   --reward.model_name_or_path OpenRLHF/Llama-3-8b-rm-700k \
   --ckpt.output_dir /openrlhf/examples/test_scripts/final/llama3-8b-rlhf \
   --ckpt.path /openrlhf/examples/test_scripts/ckpt/llama3-8b-rlhf \
   --ckpt.save_hf \
   --train.batch_size 128 \
   --rollout.batch_size 1024 \
   --train.dynamic_batch_enable \
   --rollout.n_samples_per_prompt 1 \
   --train.max_epochs 1 \
   --prompt_max_len 1024 \
   --data.max_samples 100000 \
   --generate_max_len 1024 \
   --ds.zero_stage 3 \
   --ds.param_dtype bf16 \
   --actor.adam.lr 5e-7 \
   --critic.adam.lr 9e-6 \
   --algo.kl.init_coef 0.01 \
   --data.prompt_dataset OpenRLHF/prompt-collection-v0.1 \
   --data.input_key context_messages \
   --data.apply_chat_template \
   --reward.normalize_enable \
   --actor.gradient_checkpointing_enable \
   --ds.packing_samples \
   --vllm.sync_backend nccl \
   --vllm.enforce_eager \
   --vllm.enable_sleep \
   --ds.enable_sleep \
   --logger.wandb.key {wandb_token}

# 算法变体 (均使用单轮智能体执行):
# --algo.advantage.estimator reinforce        # REINFORCE++
# --algo.advantage.estimator rloo             # RLOO
# --algo.advantage.estimator reinforce_baseline  # REINFORCE++-baseline (最适合 RLVR)
# --algo.advantage.estimator group_norm       # GRPO
# --algo.advantage.estimator dr_grpo          # Dr. GRPO

# 高级选项:
# --algo.kl.init_coef 0                                    # 不使用参考模型
# --reward.remote_url http://host:5000/get_reward          # HTTP 奖励模型
# --rollout.n_samples_per_prompt 4                         # 每个 prompt 的多个样本
# --rollout.vllm_generate_batch_size 2048                  # 生成时过采样 (> rollout_batch_size);需要 --train.async_enable
# --algo.advantage.is_correction_enable                    # 对离策略 (off-policy) rollout 进行 vLLM 重要性采样校正
# --algo.advantage.is_correction_type tis                  # 校正类型: tis (token clamp) | icepop (token filter) | seq-mask-tis (seq-level geom mean)
# --algo.advantage.is_correction_threshold 0.5 5.0         # IS 截断区间: [low, high]
# --ckpt.best_metric_key eval_default_pass1                # 根据 eval 指标保存最佳检查点 (为空则自动检测第一个 pass1, 'none' 为禁用)
# --actor.policy_loss_type gspo                            # 使用 GSPO 策略损失变体 (相对于默认的 'ppo')

[!TIP]
针对推理任务 (RLVR):使用 --algo.advantage.estimator reinforce_baseline 启用REINFORCE++-baseline——它对不同的奖励尺度具有鲁棒性。

[!NOTE]
Ray 环境设置:使用 --runtime-env-json='{"setup_commands": ["pip install openrlhf[vllm]"]}' 让 Ray 自动部署。

[!NOTE]
GPU 索引错误疑难解答:如果遇到 DeepSpeed GPU 设备设置问题,请设置 export RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES=1

📚 更多示例:参见 examples/scripts文档


🎯 单轮智能体: 使用自定义奖励进行强化微调

单轮智能体执行(默认模式)支持自定义奖励函数——非常适合在没有训练好的奖励模型的情况下进行强化微调。您可以提供一个 Python 函数来即时计算奖励,而无需使用预训练的奖励模型。

适用于
- 基于规则的奖励(长度、格式、代码执行、数学验证)
- 外部 API 奖励(裁判模型、编译器、测试套件)
-

27 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 24 ms
Developed with Cursor