opendilab/LightRFT

LightRFT: Light, Efficient, Omni-modal & Reward-model Driven Reinforcement Fine-Tuning Framework

LightRFT – LLM およびマルチモーダル生成モデルのための強化学習ファインチューニング・フレームワーク

概要

  • 大規模言語モデル(LLM)や視覚言語(VLM)または音声言語モデルを、強化学習の目的関数を用いてトレーニングできるオープンソース・ライブラリです。従来のRLHFスタイルのパイプライン、報酬モデル駆動のポリシー・オプティマイゼーション、およびオンポリシー蒸留をサポートしています。

重要性

  • 強化学習によるファインチューニングは、LLMを人間の好みに合わせるための主要な手法ですが、既存のツールは特定のバックエンド(例:DeepSpeed)や特定のモダリティに依存することが多いです。LightRFTは、DeepSpeed, PyTorch FSDP v2, SGLang, および vLLM を横断してトレーニングとロールアウトを統合し、テキスト、画像、動画、音声で同じコードベースでRLを実行することを可能にします。

設計のハイライト

特徴 内容
Unified Strategy abstraction 単一のインターフェース (Strategy) が、分散トレーニング・バックエンド(DeepSpeed または FSDP)とロールアウト・バックエンド(SGLang または vLLM)を接続します。これにより、バックエンド固有のボイラープレート・コードを排除し、同じGPUプロセスでロールアウトと重みの更新を同時に扱うことができます(「Colocate Anything」モデル)。
Distributed & parameter-efficient training FSDP v2 および DeepSpeed ZeRO stages 1-3, BF16, 勾配チェックポインティング, CPU オフロード, LoRA, 視覚的プリフィックスの固定, FlashAttention 2, および融合された対数確率パスをサポートしています。
Reward-model driven optimization ルールベースの報酬、カスタム Python 関数、ローカルなニューラル報酬モデル、またはリモートの報酬サービスを受け入れます。タスクごとに複数の報酬ソースを統合できます。
Multimodal actors テキスト (ActorLanguage), 視覚言語 (ActorVL), および音声言語 (ActorAL) 用の個別の Actor クラスを提供します。例として、GSM8K (テキスト推論), Geo3K (視覚的幾何学), 動画報酬 RL, 音声 Q&A を含みます。
Algorithm matrix ポリシー・オプティマイゼーションおよびアドバンテージ推定アルゴリズムの一式を実装しています:GRPO, Dr.GRPO, REINFORCE++, DAPO, CPGD, FIRE sampling, およびオンポリシー蒸留 (OPD)。GSPO および GMPO の実験的なフックも用意されています。
Experiment tooling Weights & Biases への内蔵ログ記録、TensorBoard、軌跡保存、高エントロピー・トークン注釈、分散型チェックポインティング, およびチェックポイントを Hugging Face 形式に変換するユーティリティを備えています。

一般的なワークフロー

  1. データ準備 – 提供されたスクリプトを使用して、データセット (例:openai/gsm8k) をリポジトリの Parquet 形式に変換します。
  2. ロールアウト – Strategy がロールアウト・エンジン (SGLang または vLLM) を起動し、プロンプトごとに複数のレスポンスを生成します。
  3. 報酬計算 – ルールベースのラベルまたはトレーニング済みの報酬モデルを介して報酬を計算します。
  4. アドバンテージ推定 | 報酬をトークンレベルのアドバンテージに変換するために、推定器 (group_norm, reinforce++, cpgd, 等) を選択します。 |
  5. ポリシー・オプティマイゼーション | 選択したオプティマイザー (GRPO, DAPO, PPO/GAE, 等) を Actor モデル上で実行します。必要に応じて OPD 用に教師モデルのロジットを混合します。 |
  6. 同期 & チェックポインティング | 重みは分散プロセス間で同期され、保存されます。

はじめに

# Clone and install (editable mode)
git clone https://github.com/opendilab/LightRFT.git
cd LightRFT
pip install -e .
          # core deps (torch, deepspeed, sglang, …)
pip install -e "[vllm]"
          # optional vLLM rollout backend
  • Docker: docker pull opendilab/lightrft:v0.1.0 を実行し、--gpus all で起動します。
  • 実行例 (Qwen2.5-0.5B モデルを使用し、8 GPU で GRPO による GSM8K 実行):
ENGINE_TYPE=sglang \
  bash examples/gsm8k_geo3k/run_grpo_gsm8k_qwen2.5_0.5b.sh

必要に応じて PATH_TO_YOUR_BASE_MODEL, データセットのパス, GPU 数の設定を調整してください。

対象ユーザー

  • LLM またはマルチモーダル生成モデルの新しい RL ベースのアライメント・アルゴリズムを実験している研究者。
  • テキスト and 視覚/音声データで RL を実行するために、単一のコードベースが必要なチーム。
  • DeepSpeed と PyTorch FSDP を両方用 de 使える、プロダクション・レディな分散トレーニング・ループを求めているエンジニア。

成熟度 & コミュニティ

  • 現在の安定版: v0.1.1 (2024 年 6 月)。GSPO, GMPO 以外のすべてのアルゴリズムは動作可能です。
  • ドキュメントは非常に充実しています (Sphinx site, GSM8K/Geo3K チュートリアル, アルゴリズムガイド, トラブルシューティング FAQ)。
  • Apache 2.0 ライセンスの下でオープンソースです。通常の fork-PR ワークフローによる貢献が歓迎されています。

詳細については

  • 完全なドキュメント: docs/ (インストール, アルゴリズムガイド, ストラテジー設計, ランタイム・アーキテクチャ).

  • クイックスタート・チュートリアル: docs/source/quick_start/grpo_gsm8k_geo3k_tutorial.md.

  • Issues & roadmap: GitHub issues は README にリンクされています。


上記の情報はリポジトリの README とドキュメントから直接引用されています。外部の仮定は追加されていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト