はじめに
ReSearchはAgent-RLチームによって開発されたオープンソースの研究ツールで、強化学習(RL)によって大規模言語モデル(LLM)の検索と推論の能力を向上させます。Deepseek-R1-ZeroとOpenAIのDeep Researchに触発され、ReSearchはQwen2.5-7Bモデルをベースにしており、GRPO(Generalised Reward Policy Optimization)を用いてゼロから訓練されています。ReSearchはHotpotQAデータセットで検証され、BamboogleやStrategyQAのようなデータセットに一般化される。ReSearchはGitHubでホストされており、完全なコードと実験的な文書があり、研究者がRLとLLMを組み合わせた探索を再現したり拡張したりするのに適している。
機能一覧
- 強化された学習トレーニング・パイプライン大規模モデルのゼロからのトレーニング、完全なパラメータ設定、報酬信号設計をサポート。
- 検索ツールの呼び出しモデルは、複雑な推論タスクの精度を向上させるために、質問に基づいて検索ツールを自動的に呼び出すことができます。
- 複数のデータセットへの適応HotpotQAでトレーニングした後、BamboogleやStrategyQAなどのデータセットに拡張できます。
- パフォーマンス評価サポートFlashRAG環境を統合することで、開発セット上でモデルのパフォーマンスを素早くテストすることができます。
- オープンソース実装研究の再現や二次開発を容易にするため、詳細なコードと実験構成を提供する。
ヘルプの使用
設置プロセス
ReSearchはGPU環境を必要とし、verlとFlashRAGフレームワークに依存しています。以下は詳細なインストール手順です:
1.環境準備
- システム要件Linux(Ubuntuなど)を推奨しますが、Windowsは互換性に問題がある場合があります。
- パイソン版Python 3.11以上が必要です。
- GPU構成NVIDIA GPU をサポートするには、CUDA 12.4 をインストールしてください(トーチのバージョンに合わせます)。
2.倉庫のクローン化
ターミナルで以下のコマンドを入力する:
git clone https://github.com/Agent-RL/ReSearch.git
cd ReSearch
3.verl環境のインストール
ReSearchは強化学習トレーニング用のverlをベースにしており、インストール手順は以下の通り:
cd verl
pip3 install -e .
cd ...
- 依存バージョン競合する場合は、手動でインストールしてください:
pip install torch==2.4.0+cu124 vllm===0.6.3 ray==2.10.0
4.FlashRAG環境のインストール
FlashRAGは評価と ラグ サービス、設置方法:
git clone https://github.com/RUC-AIBox/FlashRAG.git
cd FlashRAG
pip3 install -e .
cd .../再検索
5.訓練済みモデルのダウンロード
デフォルトではHugging FaceからダウンロードしたQwen2.5-7Bが使用されている:
git lfs install
git clone https://huggingface.co/Qwen/Qwen2.5-7B
モデルパスを記録し、後で使用できるように設定する。
使用方法
RAGサービスの開始
- インデックス済みデータのダウンロードFlashRAG文書からWikipediaのインデックス、コーパス、検索モデルを取得する。
- コンフィギュレーション・サービス:: 編集部
rag_serving/serving_config.yaml
検索モデルのGPU ID、インデックス、コーパスのパス、利用可能なGPU IDが記入される。 - 運営サービス::
conda flashragをアクティブにする python rag_serving/serving.py --config rag_serving/serving_config.yaml --num_retriever 1 --port 8000
検索サポートはサービス開始後に提供される。
トレーニングモデル
- データの準備HotpotQAデータセットをダウンロードし、前処理スクリプトを実行する:
python training/data_preprocess_hpqa.py
生成されたトレーニングデータと開発データはパーケットフォーマットで保存される。
- 設定パラメータ修正
トレーニング/run.sh
モデルパス、検索URL、データパスなどを設定することができます。 - プライミングトレーニング::
condaはverlを起動する。 bash training/run.sh --actor_model_path /path/to/Qwen2.5-7B --search_url http://localhost:8000 --train_data_path data/train.parquet --dev_data_path data/dev.parquet ---save_path runs/
- シングルノードは8GPUトレーニング、マルチノードはレイチューニングが必要。
アセスメントモデル
- モデルサービスの開始トレーニング後、SGLangを使ってモデルを配置します:
python3 -m sglang.launch_server --served-model-name research --model-path runs/trained_model --tp 2 --context-length 8192 --port 80
- 運用評価::
python evaluation/run_eval.py --config_path evaluation/eval_config.yaml --method_name research --split dev --dataset_name hotpotqa
- 結果は
評価・結果
データセットの切り替えをサポート(例:Bamboogle)。
- 結果は
注目の機能操作
- 検索ツールの呼び出し::
- 学習後、モデルは検索ツールを呼び出すかどうかを自動的に判断できる。例えば、"木星には月がいくつあるか?"と入力する:
python inference.py --model_path runs/trained_model --question "木星には月がいくつあるか?"
出力例:
木星には2025年現在、95の衛星が確認されている。
. - プロセス:モデルは質問に基づいて検索クエリを生成し、RAGサービスを呼び出して情報を取得し、答えを推論する。
- 学習後、モデルは検索ツールを呼び出すかどうかを自動的に判断できる。例えば、"木星には月がいくつあるか?"と入力する:
- データセット間の一般化::
- StrategyQAでモデルのパフォーマンスをテスト:
python evaluation/run_eval.py --config_path evaluation/eval_config.yaml --method_name research --split dev --dataset_name strategyqa
出力には推論プロセスと答えが含まれ、汎化能力が検証される。
- StrategyQAでモデルのパフォーマンスをテスト:
ほら
- ハードウェア要件トレーニング用に24GB以上、評価用に16GB以上のビデオメモリを搭載。
- ログ監視TensorBoardを使用して、トレーニングの進捗状況を確認できます:
tensorboard --logdir runs/
- 障害解決エラーが発生した場合は、依存関係のバージョンを確認するか、GitHub Issuesをチェックしてください。
そうすることで、ユーザーはReSearchの実験を完全に再現し、強化学習と大規模モデルの組み合わせを探求することができる。