Verifiersは、強化学習(RL)環境を構築し、大規模言語モデリング(LLM)エージェントを訓練するためのモジュラーコンポーネントのライブラリである。 このプロジェクトの目標は、開発者がLLMエージェントを簡単に構築、訓練、評価できる信頼性の高いツール群を提供することである。 Verifiersには transformers
非同期GRPO(Generalised Reinforcement Learning with Policy Optimization)トレーナーの実装を行い、以下の結果を得た。 prime-rl
プロジェクトの大規模FSDP(Fully Sharded Data Parallel)トレーニングをサポートします。 強化学習トレーニングに加えて、VerifiersはLLM評価の構築、合成データパイプラインの作成、エージェント制御手順の実装にも直接使用することができる。 このプロジェクトは、強化学習インフラのエコシステムで一般的な「フォークされたコードベースの拡散」問題を最小限に抑え、開発者に安定した開発基盤を提供する信頼性の高いツールキットを目指しています。
機能一覧
- モジュラー環境コンポーネント強化学習環境を構築するためのモジュール式コンポーネントを提供し、環境の作成とカスタマイズを容易にする。
- 複数の環境タイプをサポート:
SingleTurnEnv
1つの手がかりにつき、モデルからの応答が1回だけ必要なタスクの場合。ToolEnv
:: モデルのネイティブツールや関数呼び出し機能を使ったエージェントループの構築をサポート。MultiTurnEnv
:: マルチラウンドダイアログや対話タスクのためのカスタム環境対話プロトコルを記述するためのインターフェイスを提供する。
- ビルトイントレーナーを含む。
GRPOTrainer
を使用している。vLLM
推論、Accelerate/DeepSpeed経由での実行のサポート グルポ スタイルの集中学習トレーニング。 - コマンドラインツール:: ワークフローを効率化する実用的なコマンドラインツールを提供:
vf-init
新しい環境モジュールのテンプレートを初期化する。vf-install
環境モジュールを現在のプロジェクトにインストールします。vf-eval
APIモデルを使用して環境を迅速に評価します。
- 統合と互換性OpenAIと互換性のある推論クライアントをサポートする強化学習フレームワークであれば、どのようなものにも簡単に統合することができます。
prime-rl
より効率的で大規模なトレーニングのために協力し合う。 - 柔軟なインセンティブ:: 採用
Rubric
1つ以上の報酬関数をカプセル化したクラスは、モデルが生成したコンプリートの複雑な評価基準を定義することができます。
ヘルプの使用
Verifiers ライブラリは、次のような作業を提案する。 uv
パッケージ・マネージャーをプロジェクトに組み込んでください。
1.インストール
まず、新しい仮想環境を作成し、それをアクティブにする必要があります。
# 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 初始化一个新项目
uv init
# 激活虚拟环境
source .venv/bin/activate
次に、必要に応じてベリファイアをインストールする:
- 地域開発と評価(CPU)APIモデルを開発や評価に使うだけなら、コア・ライブラリをインストールするだけで十分です。
# 安装核心库 uv add verifiers # 如果需要 Jupyter 和测试支持 uv add 'verifiers[dev]'
- GPUトレーニングを使用する場合
vf.GRPOTrainer
GPU上でモデルをトレーニングするには、すべての依存関係を含むバージョンをインストールし、さらにflash-attn
.uv add 'verifiers[all]' && uv pip install flash-attn --no-build-isolation
- 最新の開発バージョンを使用するまた
main
ブランチの取り付け。uv add verifiers @ git+https://github.com/willccbb/verifiers.git
- ソースからのインストール(コアライブラリ開発)Verifiersのコア・ライブラリを変更する必要がある場合は、ソースからインストールしてください。
git clone https://github.com/willccbb/verifiers.git cd verifiers uv sync --all-extras && uv pip install flash-attn --no-build-isolation uv run pre-commit install
2.環境の創造と管理
Verifiersは、各強化学習環境をインストール可能なPythonモジュールとして扱う。
- 新しい環境の初期化使用
vf-init
コマンドは新しい環境テンプレートを作成する。# 创建一个名为 my-new-env 的环境 vf-init my-new-env
このコマンドは
environments/my-new-env
ディレクトリにpyproject.toml
と環境テンプレートの基本構造。 - インストール環境作成したら
vf-install
Python環境にインストールして、インポートして使えるようにする。# 安装本地环境 vf-install my-new-env # 你也可以直接从 verifiers 官方仓库安装示例环境 vf-install vf-math-python --from-repo
3.使用環境
環境をインストールしたら vf.load_environment
関数はそれをロードし、評価または訓練する。
- ロード環境:
import verifiers as vf # 加载已安装的环境,并传入必要的参数 vf_env = vf.load_environment("my-new-env", **env_args)
- 環境の迅速な評価使用
vf-eval
コマンドを使えば、環境を素早くテストできる。デフォルトではgpt-4.1-mini
5つのキューごとに3つのロールアウトがあるモデル。# 对名为 my-new-env 的环境进行评估 vf-eval my-new-env
4.環境の核心要素
ベリファイアの環境は、以下の主要コンポーネントで構成される:
- データセットハグする顔のデータセットには、以下のものが含まれていなければならない。
prompt
列を入力とする。 - ロールアウト・ロジックモデルが環境と相互作用する方法。
MultiTurnEnv
で定義されている。env_response
歌で応えるis_completed
方法。 - 評価基準(ルーブリック)モデルの出力を得点化する1つ以上の報酬関数をカプセル化するために使用される。
- パーサー再利用可能な解析ロジックをカプセル化するオプションのコンポーネント。
5.トレーニングモデル
Verifiersは主に2種類のトレーニングを提供しています:
- 内蔵の
GRPOTrainer
:
このトレーナーは、2-16 GPUで効率的に高密度のトレーニングを行うのに適しています。 変圧器 モデル# 步骤1: 启动 vLLM 推理服务器 (shell 0) # 假设使用7个GPU进行数据并行 CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6 vf-vllm --model your-model-name \ --data-parallel-size 7 --enforce-eager --disable-log-requests # 步骤2: 启动训练脚本 (shell 1) # 使用剩余的GPU进行训练 CUDA_VISIBLE_DEVICES=7 accelerate launch --num-processes 1 \ --config-file configs/zero3.yaml examples/grpo/train_script.py --size 1.7B
- 利用する
prime-rl
(おすすめ):
prime-rl
は、Verifiersで作成された環境をネイティブにサポートする外部プロジェクトであり、FSDPを通じてより優れたパフォーマンスとスケーラビリティを提供する。 より成熟した設定とユーザーエクスペリエンスを持っています。# 在 prime-rl 的配置文件中指定环境 # orch.toml [environment] id = "your-env-name" # 启动 prime-rl 训练 uv run rl \ --trainer @ configs/your_exp/train.toml \ --orchestrator @ configs/your_exp/orch.toml \ --inference @ configs/your_exp/infer.toml
アプリケーションシナリオ
- 課題別知能のトレーニング
用いるToolEnv
もしかしたらMultiTurnEnv
開発者は、複雑な対話型環境を作成し、LLM知能に、外部ツール(電卓、検索エンジンなど)の使い方を学習させたり、特定のタスク(航空券の予約、カスタマーサポートなど)をこなすよう、複数ラウンドの対話で訓練させることができる。 - 自動化された評価プロセスの構築
SingleTurnEnv
を使用して、自動化された評価プロセスを構築することができます。標準解答と評価基準 (Rubric
)環境では、異なるモデルの性能を定量的に比較することができる。例えば、コード生成タスクの正しさを評価したり、テキスト要約の品質を評価したりすることができる。 - 高品質の合成データを生成する
環境との相互作用(ロールアウト)プロセスを通じて、モデルと環境の相互作用に関する大量のデータを生成することができる。このデータはHugging Faceデータセットとして保存することができ、その後の教師ありファインチューニング(SFT)や他のモデルトレーニング、合成データ生成のための効率的なパイプラインに使用することができます。 - 学術研究とアルゴリズム検証
Verifiersは、強化学習研究者にモジュール式の再現可能な実験プラットフォームを提供します。研究者は、新しいインタラクション・プロトコル、報酬関数、トレーニング・アルゴリズムを簡単に実装し、標準化された環境でその有効性を検証することができます。
品質保証
- Verifiersライブラリとprime-rlとの関係は?
prime-rl
は、Verifiersを使用して作成された環境をネイティブにサポートするスタンドアロンのトレーニングフレームワークである。 Verifiersは、RL環境を構築するためのコンポーネントを提供することに重点を置いています。prime-rl
その代わりに、より強力で、より高性能で、よりスケーリングに優れたFSDP(Fully Sliced Data Parallelism)トレーニング・ソリューションを提供することに重点を置いている。大規模トレーニングの場合、公式の推奨はprime-rl
. - 自分の環境にボーナス関数を定義するには?
を設定する必要がある。vf.Rubric
オブジェクトに1つ以上の報酬関数を定義する。各関数はprompt
そしてcompletion
などのパラメータを設定し、報酬値として浮動小数点数を返します。報酬関数ごとに異なる重みを設定することもできます。 - モデルのインタラクション・ロジックを自分で実装する必要がありますか?
そうとは限りません。一発勝負のクイズや標準的なツールコールのシナリオではSingleTurnEnv
歌で応えるToolEnv
. 継承が必要なのは、アプリケーションが非常にユニークで標準的でないインタラクションフローを必要とする場合だけです。MultiTurnEnv
同時書き換えis_completed
歌で応えるenv_response
方法。 - トレーニング中にNCCL関連のエラーが発生した場合はどうすればよいですか?
公式ドキュメントによると、vLLMはウェイトの同期時にGPU間通信のハングが発生する可能性があります。その場合はNCCL_P2P_DISABLE=1
をクリックして問題を解決してください。問題が解決しない場合はNCCL_CUMEM_ENABLE=1
またはプロジェクトに問題を提起する。