ReCallは、教師ありデータに依存することなく、強化学習によってツールの呼び出しと推論のための大規模言語モデル(LLM)を訓練するために設計されたオープンソースのフレームワークです。ReCallはユーザー定義のツールをサポートし、汎用知能の開発に適しています。このプロジェクトはQwen2.5モデルに基づいており、多段階タスク推論をサポートするために合成データセットSynToolとMuSiQueデータセットを提供します。ReCallはReSearchのアップグレード版であり、より包括的でマルチシナリオのツール推論開発に適している。
機能一覧
- 教師ありデータなしの強化学習による大規模モデルの学習と自律的なツール呼び出しのサポート。
- ユーザー定義の任意のツールをサポートし、さまざまなタスクシナリオに柔軟に適応。
- 多様な環境と複雑なマルチステップタスクを持つSynTool合成データセットを提供します。
- マルチホップQ&Aタスク検証のためのFlashRAG統合評価環境。
- FastAPIとSGLangに基づく効率的なサンドボックスとモデリングサービス。
- MuSiQueデータセットをサポートし、データ前処理のためのWikipedia検索ツールと組み合わせる。
- ユーザー定義のデータやモデルのトレーニングを容易にするために、詳細なスクリプトとドキュメントが提供されています。
ヘルプの使用
ReCallは、GitHubでホストされている開発者向けのオープンソースプロジェクトで、ユーザーはコードのクローン、依存関係のインストール、サンプルスクリプトの実行によってすぐに始めることができます。以下は、ReCallを一から始めるのに役立つ、インストール、主要機能、開発プロセスをカバーする詳細なガイドです。
設置プロセス
- コードベースのクローン
ターミナルを開き、以下のコマンドを実行してReCallリポジトリをクローンする:git clone https://github.com/Agent-RL/ReCall.git cd ReCall
- 依存関係のインストール
ReCallはPython環境に依存し、Python 3.8以上を推奨します。コアの依存関係をインストールします:pip3 install -e . pip3 install flash-attn --no-build-isolation
FlashRAGをベースにしたウィキペディアRAGシステムを実行する必要がある場合は、追加インストールが必要です。
faiss-gpu
::conda install -c pytorch -c nvidia faiss-gpu=1.8.0
依存関係には以下が含まれる。
transformers
そしてvllm==0.8.4
そしてsglang
などを参照のこと。setup.py
. - 前処理済みデータのダウンロード
ReCallは、トレーニングと評価のために前処理されたSynToolとMuSiQueデータセットを提供します。ユーザーはそれらを直接ダウンロードすることができます:# 访问提供的下载链接(见 GitHub README)
あるいは、ユーザーは
data/prepare_musique_recall.py
MuSiQueデータの生成をカスタマイズするスクリプトと、ウィキペディアの検索ツールの組み合わせ。 - モデルサービスの開始
ReCallはサービスのモデリングにSGLangを使用しています。サービス開始の例python3 -m sglang.launch_server \ --served-model-name {trained/model/name} \ --model-path {trained/model/path} \ --tp 2 \ --context-length 8192 \ --enable-metrics \ --dtype bfloat16 \ --host 0.0.0.0 \ --port 80 \ --trust-remote-code \ --disable-overlap \ --disable-radix-cache
ユーザーによる交換が可能
{trained/model/name}
歌で応える{trained/model/path}
を自分のモデル名とパスに置き換えてください。
主な機能
ReCallの中心的な機能は、強化学習によってツールコールを推論するための大規模なモデルを学習することである。以下に主な機能と操作の流れを示す:
- ツール起動推論
ReCallは、検索、電卓、カスタムツールなど、モデルが自律的にツールを選択し、使用することを可能にします。コアクラスReCall
モデル生成とツール実行の調整を担当。ユーザーはscripts/inference/re_call_use_case.py
タスクを完了するためにツールを呼び出す方法を確認するためのサンプルスクリプト。例- 複雑な質問(マルチホップクイズなど)を入力します。
- モデルは強化学習によって適切なツール(例えばウィキペディア検索)を選択する。
- 構造化推論の結果を返します。
ユーザは単に学習済みモデルをロードしてReCall
クラスのインターフェイスに、質問とツールの設定を渡すだけです。
- 合成データセットの生成
ReCallは、多様な環境とマルチステップタスクデータの生成をサポートするSynToolデータセットを提供します。ユーザーはdata/prepare_musique_recall.py
カスタムデータセットを生成するスクリプト。例python data/prepare_musique_recall.py
このスクリプトは、複雑な推論タスクのために、ユーザー定義のツール(例えば、ウィキペディア検索)に基づいてトレーニングデータを生成する。生成された学習データは、モデルの学習に直接使用することができます。
- マルチホップクイズの評価
ReCallはマルチホップクイズの評価環境としてFlashRAGを使用しています。ユーザーは評価データセットをダウンロードし、テストを実行することができます:# 下载 FlashRAG 评估数据(见 GitHub 说明)
評価結果は、多段階推論タスクにおけるモデルの性能を検証し、ツールの呼び出し機能をテストするのに適している。
- カスタムツール開発
ユーザーはReCallの機能を拡張するためにどんなツールでも定義できる。例えば、電卓ツールを追加する:- 入出力フォーマットを指定するために、コード内でツール・インターフェースを定義する。
- ツール設定の統合
ReCall
クラスで - 新しいツールの有効性をテストするために、トレーニングまたは推論スクリプトを実行する。
ドキュメントとサンプルコードはGitHubを参照。
注目の機能操作
ReCallの特徴は、教師ありデータを必要としない強化学習によるツールコール推論です。その機能の使い方を紹介しよう:
- 集中学習トレーニングリコール使用
verl
強化学習トレーニングのためのフレームワーク。ユーザーは訓練パラメータを設定し、訓練スクリプトを実行することができる:# 示例训练命令(具体参数见 GitHub 文档) python train.py --config {config_file}
学習プロセスでは、SynToolとMuSiQueのデータセットを利用して、モデルの工具選択と推論能力を最適化する。
- 柔軟なツールセットユーザは設定ファイルを通じて複数のツール(検索、データベースクエリなど)を定義することができ、モデルはタスクに基づいて自動的にツールを選択し、組み合わせます。操作手順
- ツール設定ファイル(YAML形式など)を編集する。
- ロード
ReCall
クラス。 - 推論スクリプトを実行し、モデルがどのようにツールを動的に起動するかを観察する。
- 効率的なモデリング・サービスSGLangベースのモデルサービスは、高度な並行推論をサポートし、プロダクション環境に適しています。ユーザはAPI経由でモデルを呼び出し、リアルタイムのタスクを処理することができます。
ほら
- ハードウェアのサポートを確保する(例えば、GPUのための
faiss-gpu
歌で応えるflash-attn
). - GitHubリポジトリのアップデートを定期的にチェックして、最新の機能や修正を入手しましょう。
- トレーニングや推論には大容量のメモリーと記憶容量が必要であり、事前の準備が推奨される。
アプリケーションシナリオ
- マルチホップクイズシステム開発
ReCallは、多段階の推論を必要とする質問と答えのシステムを開発するために使用することができます。例えば、"19世紀に歴史上の人物が生まれた国の首都は?"という質問に答える。このモデルは、ウィキペディアの検索ツールを使って、正確な答えを得るために段階的に推論することができる。教育や知識Q&Aプラットフォームの開発に適しています。 - 自動タスク処理
ReCallは様々なツール(例:計算機、データベースクエリー)と連携して複雑なタスクを自動化することができる。例えば、企業は自動的に販売データを分析し、レポートを生成するインテリジェンスを開発するためにReCallを使用することができます。 - AIの研究と実験
研究者は、ReCallの合成データセットと強化学習フレームワークを使用して、学術研究やアルゴリズム開発に適したツールの呼び出しや複雑な推論タスクにおける大規模モデルのパフォーマンスを調べることができます。
品質保証
- ReCallはどのようなツールをサポートしていますか?
ReCallは、検索、計算機、データベースクエリーなどのユーザー定義ツールをサポートしています。コンフィギュレーションファイルを使って新しいツールを追加することができる。 - ReCallを始めるには?
GitHubリポジトリをクローンし、依存関係をインストールし、前処理済みデータまたはカスタムデータをダウンロードし、サンプルスクリプトを実行します。詳細はヘルプをご覧ください。 - ReCallとReSearchの違いは何ですか?
ReCallはReSearchのアップグレード版で、より多くのツールやより複雑な推論タスクをサポートしており、ReSearchの直接の代替品として使用することができる。 - 必要な保管スペースは?
トレーニングや評価には大容量のストレージが必要で、例えばFlashRAGの評価データは数十ギガバイトにもなるため、事前にハードウェアの容量を確認することをお勧めする。