はじめに
X-R1は、dhcode-cppチームによってGitHubでオープンソース化された強化学習フレームワークであり、エンドツーエンドの強化学習に基づくモデルをトレーニングするための低コストで効率的なツールを開発者に提供することを目的としている。このプロジェクトは以下の支援を受けている。 ディープシーク-R1 X-R1とopen-r1にインスパイアされたX-R1は、簡単に始められ、必要なリソースが少ないトレーニング環境の構築に重点を置いている。X-R1の中核となる製品はR1-Zeroで、共分散が0.5Bのモデルであり、一般的なハードウェアで効率的にトレーニングできるとしている。複数のベースモデル(0.5B、1.5B、3B)をサポートし、強化学習によってモデルの推論とフォーマット準拠を強化する。このプロジェクトはC++で開発され、以下のものを組み合わせている。 ブイエルエルエム 推論エンジンと グルポ 数学的推論、中国語のタスク処理、その他のシナリオのためのアルゴリズム。個人の開発者であれ、研究者であれ、X-R1は試す価値のあるオープンソースの選択肢を提供する。
機能一覧
- 低コストのモデルトレーニング一般的なハードウェア(例えば、4つの3090 GPU)で0.5Bのパラメータを持つR1-Zeroモデルのトレーニングをサポート。
- 学習の最適化エンドツーエンドの強化学習(RL)により、モデルの推論能力と出力形式の精度を向上。
- マルチモデル対応0.5B、1.5B、3Bおよび他の基本的なモデルと互換性があり、異なるタスクの要件に適応する柔軟性があります。
- GPU高速サンプリング高速GRPOデータサンプリングのためのオンライン推論エンジンとしてのvLLMの統合。
- 中国の数学的推論中国語環境での数学的推論タスクをサポートし、明確な回答プロセスを生成します。
- ベンチマーク評価: モデルの精度とフォーマット出力能力を評価するためのbenchmark.pyスクリプトを提供します。
- オープンソース構成: ユーザー定義のトレーニングパラメーターのための詳細な設定ファイル(e.g. zero3.yaml)を提供する。
ヘルプの使用
X-R1はGitHubをベースとしたオープンソースプロジェクトで、インストールと使用にはプログラミングの基礎とハードウェア環境が必要です。ここでは、X-R1のインストールと使用方法について説明します。
設置プロセス
- 環境準備
- ハードウェア要件CPUはAVX/AVX2命令セットをサポート、RAMは16GB以上。
- オペレーティングシステムLinux(例:Ubuntu 20.04+)、Windows(WSL2サポートが必要)またはmacOS。
- 依存ツールGit、Python 3.8+、CUDA Toolkit(GPUに合わせて11.8など)、C++コンパイラー(g++など)をインストールしてください。
sudo apt update sudo apt install git python3 python3-pip build-essential
- GPUドライバーNVIDIAドライバがインストールされ、CUDAのバージョンと一致していることを確認してください。
nvidia-smi
チェックする。
- クローンプロジェクト
ターミナルで以下のコマンドを実行し、X-R1リポジトリをローカルにダウンロードします:git clone https://github.com/dhcode-cpp/X-R1.git cd X-R1
- 依存関係のインストール
- Pythonの依存関係をインストールします:
pip install -r requirements.txt
- Accelerateをインストールする(分散トレーニング用):
pip install accelerate
- Pythonの依存関係をインストールします:
- 設定環境
- GPUの数に応じてプロファイルを編集する(例
recipes/zero3.yaml
)、セットnum_processes
(例えば3は、4つのGPUのうち3つをトレーニングに、1つをvLLM推論に使用することを示す)。 - 設定例:
num_processes: 3 per_device_train_batch_size: 1 num_generations: 3
- GPUの数に応じてプロファイルを編集する(例
- インストールの確認
以下のコマンドを実行し、環境が正しく設定されていることを確認する:accelerate config
プロンプトに従って、ハードウェアとディストリビューションの設定を選択します。
主な機能
1.モデルトレーニング
- プライミングトレーニングGRPOアルゴリズムを使用してR1-Zeroモデルをトレーニングします。以下のコマンドを実行する:
ACCELERATE_LOG_LEVEL=info accelerate launch \ --config_file recipes/zero3.yaml \ --num_processes=3 \ src/x_r1/grpo.py \ --config recipes/X_R1_zero_0dot5B_config.yaml \ > ./output/x_r1_0dot5B_sampling.log 2>&1
- 機能説明このコマンドは0.5Bモデルのトレーニングを開始し、ログは
output
フォルダートレーニング・プロセスでは、モデルの推論能力を最適化するために強化学習を使用する。 - ほらグローバル・バッチ・サイズ(
num_processes * per_device_train_batch_size
である。num_generations
そうでなければエラーが報告される。
2.中国の数学的推論
- 数学課題の設定中国語用の設定ファイルを使用してください:
ACCELERATE_LOG_LEVEL=info accelerate launch \ --config_file recipes/zero3.yaml \ --num_processes=3 \ src/x_r1/grpo.py \ --config recipes/examples/mathcn_zero_3B_config.yaml \ > ./output/mathcn_3B_sampling.log 2>&1
- ワークフロー::
- 中国の数学問題のデータセットを用意する(JSON形式など)。
- 設定ファイルのデータセット・パスを変更する。
- 上記のコマンドを実行すると、モデルが推論プロセスを生成し、ログに出力する。
- 注目の機能中国語の詳細な解答ステップの生成をサポートし、教育シナリオに適しています。
3.ベンチマーキング
- 運用評価使用
benchmark.py
テストモデルの性能:CUDA_VISIBLE_DEVICES=0,1 python ./src/x_r1/benchmark.py \ --model_name='xiaodongguaAIGC/X-R1-0.5B' \ --dataset_name='HuggingFaceH4/MATH-500' \ --output_name='./output/result_benchmark_math500' \ --max_output_tokens=1024 \ --num_gpus=2
- 結果の解釈このスクリプトはaccuracy-metricとformat-metricを出力し、結果をJSONファイルとして保存する。
- 使用シナリオ数学的課題におけるモデルの性能を検証し、訓練パラメータを最適化する。
操作技術
- ログビュー: トレーニングやテストが終了したら、ログファイル(例えば
x_r1_0dot5B_sampling.log
)をデバッグする。 - マルチGPUの最適化より多くのGPUが利用可能な場合は、次のように調整できます。
num_processes
歌で応えるnum_gpus
パラメータで並列効率を向上させる。 - エラー検出バッチサイズエラーが発生した場合は、バッチサイズを調整してください。
per_device_train_batch_size
歌で応えるnum_generations
それを一致させる。
使用上の推奨事項
- 最初の使用では、小さなスケールのモデル(例えば0.5B)から始め、プロセスに慣れてきたら3Bモデルに拡大することをお勧めします。
- GitHubのリポジトリを定期的にチェックして、アップデートや新機能、修正を確認しましょう。
- サポートについては、開発者のdhcode95@gmail.com。
以上の手順で、X-R1環境を簡単にセットアップし、モデルのトレーニングやテストを開始することができます。研究であれ開発であれ、このフレームワークは効率的なサポートを提供します。