EMNLP · System Demo · 論文導讀

OpenRLHF

一個建立在 Ray + vLLM + DeepSpeed 之上、好上手、可擴展且高效能的開源 RLHF / RLVR 框架——用更少的程式碼,換取 1.22×~1.68× 的訓練加速。

RLHF / RLVR Ray 分散式架構 vLLM 推論加速 DeepSpeed ZeRO Ring Attention 非同步 Dataflow

Jian Hu, Xibin Wu, Wei Shen, Jason Klein Liu, Zilin Zhu 等 · OpenRLHF Team · github.com/OpenRLHF/OpenRLHF

SECTION 01

問題定義 — 為什麼還需要一個 RLHF 框架

RLHF 與 RLVR 大幅提升了人類與 AI 的價值對齊,也推高了模型在長鏈推理(long-CoT)任務上的能力上限。但現有框架要嘛「難用」,要嘛「不夠快」,兩者難以兼得。

透過 人類回饋強化學習(RLHF)可驗證獎勵強化學習(RLVR) 微調的大型語言模型,能更貼合人類意圖與價值,同時在複雜推理上表現更佳——例如 GPT-4、DeepSeek-R1、Claude 都仰賴一步步的 Chain-of-Thought(CoT) 推理。

但問題出在效能:以 PPO 為主的 RLHF/RLVR 訓練,推論(生成)階段往往佔掉整體執行時間 90% 以上,因為每一步都得生成數千個 token。因此業界亟需能降低推論開銷、又能簡化分散式訓練流程的框架。

現有方案的兩難:像 DeepSpeed-Chat、TRL、ColossalChat 這類開源方案易上手但缺乏成熟的調度與推論優化;而 Nemo-aligner、ChatLearn、Verl 等工業級框架優化很強,卻架構高度耦合、學習曲線陡峭,對新手與學術研究者形成門檻。使用者被迫在「高效能」與「易用性」之間二選一。

OpenRLHF 的目標,就是同時兼顧 高效能、可擴展、易上手——簡單到讓初學者能入門,又能適應多變的工作負載。

SECTION 02

核心貢獻 — 四項關鍵創新

OpenRLHF 建立在 Ray、vLLM、DeepSpeed 與 HuggingFace Transformers 之上,提出四項貫穿始終的設計創新。

① 首個 Ray-based 開源架構

利用 Ray 的彈性分散式運算原語,把 RLHF/RLVR 工作流的編排與資源管理大幅簡化,提升可用性與部署彈性。

② 3D 平行(ZeRO + Ring Attention)

整合 DeepSpeed-ZeRO 的自動張量平行(AutoTP)與基於 ring attention 的序列平行,組合出張量/資料/序列三維平行,無需複雜工程配置。

③ 首個 vLLM 加速 CoT 推論

導入 vLLM 推論引擎,透過 token 級平行解碼、PagedAttention 快取與動態批次,直擊長 CoT 工作負載的推論瓶頸。

④ 非同步 Dataflow 與遠端引擎

rollout、actor、remote 引擎各自獨立、以訊息傳遞溝通,資料一就緒即可處理,降低閒置、提升管線效率,並可延伸到 agent RL 訓練。

採用情況:OpenRLHF 已被 CMU、MIT、Microsoft、HKUST 等領先機構採用,並衍生出 LMM-R1、MARTI、MM-EUREKA 等專門框架;Verl、Alibaba ROLL、SLIME、Open-Reasoner-Zero 等後續框架也在文件中致謝其架構設計。

SECTION 03

架構設計 — Ray-based RLHF

OpenRLHF 是首個以 Ray 為基礎的開源 RLHF 架構:將一批 GPU 指派到不同角色,並用 Ray 的調度能力管理角色間的資料流與工作流。

系統定義兩個主要角色:Rollout Engine(負責對提示生成回應,由 vLLM 實作,GPU 記憶體占用極低)與 ZeRO / Actor Engine(計算 logprobs、reference policy logprobs,並負責模型訓練,由 DeepSpeed 實作 3D 平行)。

User Input · Configs Rollout Engine (vLLM) AutoTP / PP / EP PagedAttention · 連續批次 低 GPU 記憶體生成回應 ZeRO / Actor Engine (DeepSpeed) ZeRO-3 / AutoTP / RingAttn Actor + Critic 模型訓練 計算 logprobs / 參數更新 Ray — 分散式調度與控制 權重切片
圖 1 · OpenRLHF 整體架構:Rollout 與 Actor 雙角色,由 Ray 調度(依論文 Figure 1 重繪)

易用性的核心:模型切片、無縫整合、彈性調度

Rollout engine 與 training engine 之間的權重交換,透過彈性切片與分割管線完成。HuggingFace Transformer 模型以 DeepSpeed ZeRO、AutoTP、Ring-Attention 進行實例化與訓練,再透過 AutoTP 與 AutoPP 動態切分成子模組,高效傳輸到 vLLM。Ray 的調度機制讓系統能在不同平行模式(hybrid engine、非同步訓練)間無縫切換。

相較主流框架:對比 DeepSpeed-Chat、TRL 等,OpenRLHF 額外支援非同步 dataflow 與遠端引擎互動,明顯提升訓練流程與 agent workflow 的整體效率。

SECTION 04

系統優化 — 三大效能支柱

分散式設計圍繞三件事:把大模型切得開(3D 平行)、把生成跑得快(vLLM)、把硬體閒不下來(非同步)。

① 3D 平行:DeepSpeed-ZeRO + Ring Attention

許多工業級架構要求使用者手動為每個 transformer 指定 injection policy(標出需要跨 data-parallel rank 通訊的線性層與 attention 輸出)。OpenRLHF 改用 DeepSpeed-ZeRO 的自動張量平行:當未啟用 kernel injection 也未提供 policy 時,DeepSpeed 在執行期自動判斷並套用必要策略,大幅簡化體驗並擴大可支援的模型範圍。

另以 ring attention 實作序列平行:採環狀通訊拓樸,把長序列的 attention 計算分散到多張 GPU,同時壓低記憶體與通訊開銷——這對涉及長 CoT 推理的現代 RLHF/RLVR 負載尤其關鍵。

② vLLM 加速 CoT 推論

對 OpenAI-o1、DeepSeek-R1 這類模型,CoT 生成可能主宰整個訓練時間。vLLM 的核心創新是用 PagedAttention 管理 attention 的 key/value 記憶體:

記憶體浪費

<4%

PagedAttention 大幅降低浪費,可批次更多序列、提升 GPU 利用率

取樣記憶體節省

↓55%

平行取樣 / beam search 的高效記憶體共享

其他優化

連續批次、CUDA Graph、FlashAttention/FlashInfer kernel、推測解碼、chunked prefill

③ 非同步 Dataflow 與遠端引擎

在 CoT 時代,推論長度與成本差異極大。同步框架下,最慢的一條 CoT 生成會卡住整條管線、浪費資源。OpenRLHF 讓每個引擎各自以自己的步調運作,即使面對長或變動的 CoT 任務也能維持硬體利用率,並可自然延伸到動態 agent RL 工作流。

一句話總結:AutoTP + 資料平行 + ring-attention 序列平行 = 可在彈性 GPU 叢集上做大規模、高效、又好用的 RLHF 訓練。

SECTION 05

PPO 訓練流程 — 四階段迭代

OpenRLHF 的 PPO 工作流由多個專用引擎協作,反覆執行四個階段直到收斂(依論文 Appendix B / Figure 3)。

Rollout Generation — 生成

從資料集取一批提示 {x₁…x_B},Rollout Engine(vLLM)用當前策略 π_θ 生成回應 {y₁…y_B},並記錄動作 log 機率與 attention mask。連續批次、KV-cache、PagedAttention 在此最大化吞吐。

Reward Computation — 獎勵計算

已訓練的 reward model R_φ 對每組 (x, y) 給出純量獎勵 rᵢ;凍結的 reference policy π_ref 計算 log π_ref(yᵢ|xᵢ) 供 KL 正則化;critic V_ψ 估計狀態值供 advantage 計算。

Advantage Estimation — 優勢估計(GAE)

先算 TD 殘差 δₜ,再用 GAE 累加成 advantage Aₜ 與折扣回報 Rₜ,並把 KL penalty 併入獎勵以防策略偏離 reference 太遠。

Policy Optimization — 策略更新

ZeRO Engine 用 PPO clipped 目標更新策略,結合 value loss 與 entropy bonus;以 DeepSpeed ZeRO 做梯度計算與參數更新。

關鍵公式

δt = rt + γVψ(st+1) − Vψ(st)  At = Σl≥0 (γλ)l δt+l  Rt = At + Vψ(st)
GAE:時序差分殘差 → 優勢 → 折扣回報
LCLIP(θ) = E[ min( rt(θ)At, clip(rt(θ), 1−ε, 1+ε) At ) ]
rt(θ) = πθ(at|st) / πθold(at|st) 為機率比
Ltotal = LCLIP + c1LV + c2S[πθ](st)
策略損失 + 價值損失 + 熵獎勵(鼓勵探索);r′t = rt − βKL[πθ‖πref]

非同步重疊:Rollout Engine 與 ZeRO Engine 可跑在各自最佳化的 GPU 叢集上(推論優化 vs 訓練優化)。Ray 自動處理資料傳輸、同步與容錯,讓計算階段彼此重疊,顯著提升整體訓練吞吐。

SECTION 06

實驗結果 — 又快又精簡

在 8× NVIDIA H200 140GB、PyTorch 2.7、ZeRO-3/FSDP 環境下,OpenRLHF 在 long-CoT、RLVR、RLHF 三類設定下全面勝出。

Long CoT:對比 Verl(SOTA)

採 DeepSeek 蒸餾 Qwen 系列、DAPO 演算法、相同超參數,量測各模型大小與生成長度下的每步平均訓練時間(秒)。加速比為各序列長度下 Verl/OpenRLHF 時間的幾何平均。

Table 1 · 每步平均訓練時間(秒)— OpenRLHF vs Verl(v0.8.5 vs v0.4.0)
模型1K O/V2K O/V4K O/V8K O/V平均加速
1.5B14.9 / 16.226.5 / 33.161.6 / 65.5113.0 / 134.81.22×
7B16.0 / 17.330.3 / 47.390.3 / 101.3226.4 / 232.41.42×
14B25.5 / 28.551.0 / 74.3136.3 / 202.8328.6 / 511.11.68×

加速優勢隨模型變大、context 變長而更明顯:14B 模型整體達 1.68× 加速;14B-8K 設定為 1.56×(328.6s vs 511.1s)。論文歸因於 DAPO 優化策略對長 context 記憶體開銷與計算瓶頸的緩解。

General RLVR(GRPO / GSM8K)與 General RLHF(PPO)

RLVR vs TRL — 單 epoch GSM8K

3.1×

OpenRLHF 1,657s vs TRL 5,189s(GRPO 演算法,相同硬體與超參數)

RLHF vs DeepSpeed-Chat — 1,024 prompts PPO

3.6×

OpenRLHF 236.8s vs DSChat 855.09s;主要得益於 vLLM 生成加速與 Ray 分散式執行

易用性:核心程式碼行數

32k 16k 0 8,523 OpenRLHF ★ 32,325 Verl 19,071 TRL 2,378 DSChat
圖 2 · 核心程式碼複雜度比較(行數,越低越精簡)(依論文 Figure 2 重繪)

OpenRLHF 僅 8,523 行,遠少於 TRL(19,071)與 Verl(32,325),卻在標準 RLHF 基準上展現明顯效能優勢。它同時支援 SFT、DPO、RM、PRM 等多種微調範式,模組化且文件完善,大幅降低研究與生產的進入門檻。

SECTION 07

限制與影響

作者明確列出框架的邊界——這些是 OpenRLHF 自己承認的弱點,不是推測。

限制 1:作為社群驅動、無專屬經濟支援的開源專案,OpenRLHF 可能無法達到擁有專職工程團隊的高度專業化工業框架的「峰值效能」,且整合前沿功能可能有延遲。

限制 2:目前主要聚焦語言模型,尚未支援 Vision-Language Models 或其他多模態架構,限制了在多模態 AI 對齊研究上的應用。

限制 3:模組化設計引入對 Ray、vLLM、DeepSpeed 等外部系統的依賴;上游更新可能需要維護工作或帶來相容性問題。

結論與廣泛影響

OpenRLHF 以 Ray 分散式運算、vLLM 推論優化、DeepSpeed ZeRO 記憶體效率、ring attention 序列平行四者整合,交付四項關鍵創新(Ray 架構、3D 平行、加速 CoT 推論、非同步 dataflow)。它已被 Google、ByteDance、Baidu、NVIDIA、Tencent、UC Berkeley Starling、HKUST 等廣泛採用,並被 CMU 2025 春季進階 NLP 課程納為教學框架,受邀於 PyTorch Expert Exchange 2025 分享,對 RLHF 研究的民主化貢獻顯著。