2. 競合するパッケージをクリーンアップ

June 8, 2026 · View on GitHub

OpenRLHF logo

GitHub Contributors Issues Issues GitHub pull requests GitHub stars Ask DeepWiki
オープンソース / 包括的 / 軽量 / 使いやすい


[ English | 中文 | 日本語 ]

OpenRLHFは、Ray + vLLM分散アーキテクチャ統一エージェントベース設計パラダイムを組み合わせた最初の高性能で本番環境対応のオープンソースRLHFフレームワークです。

📚 詳細はこちらドキュメント | スライド | 技術レポート | 動画

📖 目次


ニュース

ニュースを表示

🏗️ アーキテクチャ基盤:Ray + vLLM分散

OpenRLHFは、Ray + vLLM分散アーキテクチャをベースに構築された最初のRLHFフレームワークであり、GPU全体で複数のコンポーネントを効率的にオーケストレーションします:

OpenRLHF アーキテクチャ(Ray + vLLM)

コアインフラストラクチャコンポーネント

Ray - 分散スケジューラとコントローラ
OpenRLHFはRayを活用して効率的な分散スケジューリングを実現します。Actor、Reward、Reference、Criticモデルを異なるGPUに分散させ、最大70B+パラメータのモデルのスケーラブルな学習を可能にします。

ハイブリッドエンジンスケジューリング:すべてのモデルとvLLMエンジンがGPUリソースを共有でき、アイドル時間を最小化し、GPU使用率を最大化します。これにより、限られたハードウェアでフルRLHFパイプラインを実行できます。

vLLM - 高性能推論エンジン
RLHF学習では**時間の80%**がサンプル生成に費やされます。自動テンソル並列化(AutoTP)とパイプライン並列化(PP)を備えたvLLMにより、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)
      ↓                     ↓           ↓                ↓
      └─────────────────────┴───────────┴────────────────┘

                    一貫したトークン軌跡

                    ┌─────────┴─────────┐
                    │  RLアルゴリズム    │
                    │  (分離)           │
                    │                   │
                    │  PPO, REINFORCE++ │
                    │  GRPO, RLOO等     │
                    └───────────────────┘

コア設計原則

コア設計原則を表示
原則説明利点
Token-in-Token-outすべてのサンプリングがトークンレベルの軌跡を生成テキストレベルのミスマッチゼロ
統一インターフェースすべてのモードで同じAgentExecutorBase API1つのフラグでモード切替
アルゴリズム非依存RLアルゴリズム(PPO、REINFORCE++等)がエージェント実行器から分離任意のアルゴリズムが任意のモードで動作
拡張可能カスタム報酬/環境を簡単にプラグイン迅速な実験
本番環境対応同期/非同期/ハイブリッドエンジンサポート研究から展開まで

2つの実行モード(RLアルゴリズムと直交)

エージェント実行モードは選択したRLアルゴリズムと独立しています。任意のアルゴリズム(PPO、REINFORCE++、GRPO等)を任意の実行モードと組み合わせることができます:

モード使用ケースインターフェース複雑さ
シングルターン標準RLHF、カスタム報酬関数オプションのreward_func()⭐ デフォルト(99%のユースケース)
マルチターンマルチステップ推論、インタラクティブ環境reset() + step()⭐⭐ 高度

🚀 最先端のRLアルゴリズム

OpenRLHFは、実践ガイドとコミュニティのベストプラクティスに触発された高度な最適化トリックを用いて、PPO、REINFORCE++、REINFORCE++-baseline、GRPO、RLOOを実装しています。

重要な設計:RLアルゴリズムはエージェント実行モードから分離されています。すべてのアルゴリズムは、統一されたtoken-in-token-outパイプラインを通じて実行され、シングルターンとマルチターンの両方のエージェント実行器とシームレスに連携し、一貫した動作を保証します。

アルゴリズム比較表を表示
アルゴリズム--algo.advantage.estimator主な特徴最適なユースケース
PPO(デフォルト)完全なcriticネットワーク安定した学習、実証済みの結果
REINFORCE++reinforcecriticなしのPPOトリック効率的な学習、少ないメモリ
REINFORCE++-baselinereinforce_baseline平均報酬ベースライン推論タスク(RLVR)、報酬スケールに対してロバスト
RLOOrlooトークンごとのKL + PPO-clipマルチサンプル学習
GRPOgroup_normグループ正規化バッチベースの学習
Dr. GRPOdr_grpo簡略化されたGRPOローカル/std正規化の削除

参考:Zhihu記事 | Notionベストプラクティス

📚 詳細はこちらスライド | 技術レポート | ドキュメント


📋 包括的な機能

OpenRLHFは、エージェントベースの柔軟性を備えた完全なRLHFパイプラインを提供します:

🎯 エージェントベースのRL学習(コアイノベーション)

エージェントベースRL学習の詳細を表示

シングルターンモード(デフォルト - 99%のユースケース)

マルチターンモード(高度 - インタラクティブタスク)

  • 環境フィードバックとのマルチステップ相互作用
  • すべてのRLアルゴリズムで動作
  • カスタムエージェント関数--train.agent_func_path
  • OpenAI互換サーバー:vLLMをローカルOpenAIサーバーとしてラップするagent executorの例として examples/python/agent_func_openai_server_executor.py を参照
  • スループット向上のための非同期パイプライン--train.async_enable

🎓 教師あり学習と選好学習

教師あり学習と選好学習の表を表示
手法スクリプト説明
SFTtrain_sft.shパッキング付き教師あり微調整
DPO/IPO/cDPOtrain_dpo_llama.sh直接選好最適化
報酬モデルtrain_rm.sh報酬モデルの学習

⚡ 高度な機能

高度な機能を表示

効率の最適化

  • すべての学習モードでのサンプルパッキング(--ds.packing_samples
  • 高速生成のためのvLLM加速(--vllm.num_engines
  • TIS(vLLM 重要度サンプリング補正)/ ICEPOP:--algo.advantage.is_correction_enable--algo.advantage.is_correction_threshold 0.5 5.0--use_icepop(PPO のみ)
  • DAPO 動的フィルタリング--algo.dynamic_filtering_enable
    • 🎲 Dynamic Sampling:各プロンプトに対して複数の応答を生成し、報酬関数/エージェントが返す 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--ds.ring_attn_size
  • SLURMを使用したマルチノード学習

モデルサポート

  • LoRA/QLoRA--ds.lora.rank--ds.load_in_4bit
  • 専門家混合(MoE)--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(DeepSpeed ≥ 0.18.2 が必要、2D 重みのみ対象;embedding / head / 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 の更新が消えてしまいます)。

本番環境機能

  • Wandb(--logger.wandb.key)とTensorBoard(--logger.tensorboard_dir)ロギング
  • チェックポイント復旧(--ckpt.load_enable--ckpt.save_steps
  • 評価データセット(--eval.dataset

🎬 クイックスタート

インストール

推奨:手間のかからないセットアップのために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をインストール(1つ選択)
pip install openrlhf                    # 基本
pip install openrlhf[vllm]              # + vLLM 0.22.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.22.1+**を推奨します。DockerfilesNvidia-Dockerインストールスクリプトを参照してください。

詳細な使用方法、データセット準備、学習例については、英語版READMEの該当セクションを参照してください。


🎯 シングルターンエージェント:カスタム報酬による強化微調整

シングルターンエージェント実行(デフォルトモード)はカスタム報酬関数をサポートし、学習済み報酬モデルなしで強化微調整を行うのに最適です。

詳細な実装例と使用方法については、英語版READMEを参照してください。


🤖 マルチターンエージェント:複雑な環境相互作用

マルチステップ相互作用(推論チェーン、フィードバック付きコーディング、ゲームプレイ)が必要なタスクには、OpenRLHFがマルチターンエージェント実行モードを提供します。

詳細な実装例と使用方法については、英語版READMEを参照してください。


🔧 高度なトピック

LoRA:アダプターのマージ

LoRA/QLoRAを使用する場合、OpenRLHFはアダプターの重みのみを保存します。デプロイまたは学習を続けるには、アダプターをベースモデルとマージします:

python -m openrlhf.cli.lora_combiner \
    --model_path meta-llama/Meta-Llama-3-8B \
    --lora_path ./checkpoint/llama3-8b-rm \
    --output_path ./checkpoint/llama-3-8b-rm-combined \
    --is_rm \
    --ds.param_dtype bf16

パフォーマンスチューニングガイド

ハードウェアとワークロードに合わせてOpenRLHFを最適化するための推奨事項については、英語版READMEの詳細なガイドを参照してください。


OpenRLHFを使用している企業・組織

  • Google
  • ByteDance
  • Tencent
  • Alibaba
  • Baidu
  • China Telecom
  • Vivo
  • Allen AI
  • NexusFlow
  • Jülich Supercomputing Centre (JSC)
  • Berkeley Starling Team
  • M-A-P
  • ...

参加方法

どのように参加できますか?

  1. janhu9527@gmail.comにメールを送るか、GitHub Organizationに参加してください。以下の詳細を含めてください:
    • お名前
    • GitHubユーザー名
    • 興味のある分野
    • NLPおよび/またはAIに関連するスキルと経験
  2. 公式GitHub OpenRLHF ↗プロジェクトページから参加することもできます。貢献への興味についてissueを作成していただければ、ご連絡いたします。

何ができますか?

  1. チームに参加してOpenRLHFプロジェクトの開発に参加する。
  2. プルリクエストを提出してプロジェクトに貢献する。
  3. ドキュメントの改善、バグ修正、新機能の作成を手伝う。
  4. プロジェクトを共有してコミュニティの成長を支援する。

スポンサー

あなたのスポンサーシップはOpenRLHFの維持と改善に役立ちます。このプロジェクトが有用だと思われた場合は、スポンサーをご検討ください。Open Collective ↗でスポンサーになれます。

スターヒストリー

Star History Chart

コントリビューター

すべてのコントリビューターに感謝します!貢献したい場合は、お気軽にプルリクエストを作成するかissueを作成してください。

参考文献と謝辞

AIとNLP分野への貢献に対して、以下のプロジェクトと組織に感謝します:

私たちのプロジェクトはColossalChatDeepSpeedChatにも感謝します。プロジェクトの初期段階で、彼らのコード設計を参考にしました。ring attentionの開発のためのGPUサポートを提供してくれたNetmind.AIに感謝します。

(2024/7)私たちのGitHub organizationはOpenLLMAIからOpenRLHFに変更されました。

引用

OpenRLHF

@article{hu2024openrlhf,
  title={OpenRLHF: An Easy-to-use, Scalable and High-performance RLHF Framework},
  author={Jian Hu and Xibin Wu and Zilin Zhu and Xianyu and Weixun Wang and Dehao Zhang and Yu Cao},
  journal={arXiv preprint arXiv:2405.11143},
  year={2024}
}

REINFORCE++-baseline

@article{hu2026reinforce++,
  title{Reinforce++: A simple and efficient approach for aligning large language models},
  author={Hu, Jian},
  journal={arXiv preprint arXiv:2501.03262},
  year={2026}
}

OpenRLHF © 2026 OpenRLHF. All Rights Reserved.