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 形式に変換するユーティリティを備えています。 |
一般的なワークフロー
- データ準備 – 提供されたスクリプトを使用して、データセット (例:
openai/gsm8k) をリポジトリの Parquet 形式に変換します。 - ロールアウト –
Strategyがロールアウト・エンジン (SGLang または vLLM) を起動し、プロンプトごとに複数のレスポンスを生成します。 - 報酬計算 – ルールベースのラベルまたはトレーニング済みの報酬モデルを介して報酬を計算します。
- アドバンテージ推定 | 報酬をトークンレベルのアドバンテージに変換するために、推定器 (
group_norm,reinforce++,cpgd, 等) を選択します。 | - ポリシー・オプティマイゼーション | 選択したオプティマイザー (GRPO, DAPO, PPO/GAE, 等) を Actor モデル上で実行します。必要に応じて OPD 用に教師モデルのロジットを混合します。 |
- 同期 & チェックポインティング | 重みは分散プロセス間で同期され、保存されます。
はじめに
# 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 とドキュメントから直接引用されています。外部の仮定は追加されていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト