ThinkingBox-Training: データベース状態の報酬を用いたQwen3.8-27BのRLファインチューニング

TL;DR

ThinkingBox-Training(GitHubで公開)は、タスクの最終的なデータベース状態に対する実行可能なチェックをバイナリのRL報酬に変換し、それを使ってQwen3.8-27Bをファインチューニングします。これにより、全20回の試行で成功するベンチマークタスクの割合が7.5%から21.1%に向上し、信頼できるタスクあたりの推定コストが8.00ドルに削減されます。


ThinkingBox-Trainingの概要

ThinkingBoxは、エージェントを最終的なデータベース状態と期待される結果を比較して評価するために構築されました。著者らは、同じ実行可能なチェックが、元のThinkingBox-Benchベンチマークの外部にあるタスクに対する強化学習(RL)トレーニングの報酬シグナルとして機能できることに気づきました。

  • 報酬はバイナリです:最終的なデータベース状態が決定的チェックを満たす場合は1、それ以外は0です。
  • 一部のタスクでは、狭いルーブリックの質問にLLMジャッジを使用しますが、大半は決定的チェックに依存しています。
  • トレーニングループは、難易度がポリシー相対的であるタスクの厳選されたプールに対して、全パラメータRLファインチューニング(GRPO)を実行します。つまり、ベースモデルが成功したり失敗したりするタスクです。

オフラインポリシー相対難易度選択

混合の報酬結果を生成できるタスクだけがGRPOに有用です。そこで著者らは以下の手順を実行します:

  1. 各候補タスクをベースポリシー(未チューニングのQwen3.8-27B)でn回プローブします。
  2. 成功確率をJeffreys事前分布を持つBeta分布Beta(k+0.5, n-k+0.5)でモデル化します。ここでkは成功数です。
  3. 事後確率の質量を5つの区間(0-0.08、0.08-0.40、0.40-0.60、0.60-0.90、0.90-1)にバケットします。
  4. 中間の3つのバケット(困難、中間、頻繁に解決)にあるタスクを保持し、ほぼ常に解決またはほぼ常に失敗するタスクは破棄します。
  5. 結果として得られた固定プールには、報告された実行では187タスクが含まれていました。

「難易度はポリシー相対的です。タスクは、現在のモデルが学習するまでそのモデルにとって難しいだけです。」

トレーニングループとインフラストラクチャ

スタックは24台のH100 GPU(3ノード×8 GPU)で実行され、6つのステージ(投稿の図5)で構成されています:

  1. 候補タスクの取り込み。
  2. オフラインプロービングと難易度フィルタリング。
  3. ロールアウト生成(グループあたり8エピソード)。
  4. 最終状態の採点。
  5. GRPO報酬計算(各グループ内でセンタリング)。
  6. パラメータ更新。

主要な実装の詳細:

  • GRPOは、学習率1e-6、重み減衰ゼロでトークン平均アドバンテージを使用します。
  • ゼロ分散グループは、DAPOスタイルのオーバーサンプリング戦略を使用して置き換えられます。
  • すべての解析(ツール呼び出し、引数、推論抽出)は、trainer/core/tb_interpret.pyを介してトレーニングと評価の間で共有され、報酬と評価のパリティを保証します。

Qwen3.8-27Bへの定量的影響

モデルは分布外のThinkingBox-Bench(507タスク、各20回の繰り返し)で評価されました。投稿の表1は次のことを報告しています:

指標 ベースモデル RLファインチューニング Δ
観測された20/20(すべての試行で成功するタスク) 38 (7.50%) 107 (21.10%) +69
pass@1(平均成功率) 5,242 (51.70%) 6,163 (60.78%) +9.08ポイント
pass@20(少なくとも1回のカバレッジ) 453 (89.35%) 446 (87.97%) -7

RLファインチューニングにより信頼性が向上しました:再現可能な成功は急増し、少なくとも1回のカバレッジはわずかに低下しました。

ドメインレベルの効果

Pass@1と観測された20/20は、5つのベンチマークドメインすべて(小売、自動車保険、旅行、ネオバンク、コンサルティング)で向上しました。Pass@20はネオバンクとコンサルティングで増加しましたが、小売、旅行、自動車保険では減少しました。小売では、観測された20/20の最大の増加(+24.5ポイント)が見られました。

コスト効率

最初の投稿と同じトークン使用量の見積もりを使用して、ファインチューニングされたチェックポイントは評価コストとタスクあたりのコストを削減しました:

指標 ベース RLファインチューニング Δ
キャンペーンコスト(507×20回の実行) $925.80 $855.58 -7.6%
成功した試行あたりのコスト $0.177 $0.139 -21.4%
20/20で成功するタスク 38 107 2.8倍
信頼できるタスクあたりのコスト $24.36 $8.00 -67.2%

信頼できるタスクあたり8.00ドルで、ファインチューニングされたモデルはGPT-5.4、GPT-6 Astra、Claude Opus 5.5のコスト効率に近づきます。

スタックを自分で実行する

ThinkingBox-Trainingはgithub.com/microsoft/thinkingbox-trainingでオープンソース化されています。リポジトリには以下が含まれます:

  • データ準備 (docs/data-preparation.md) – タスクのハイドレーション、ポリシープロービング、難易度フィルタリング、ベンチマーク除外。
  • 参照トレーニング構成 (docs/reference-q38-run.md) – 全パラメータQwen3.8-27Bのための検証済み24 GPU実行。
  • 評価ガイド (docs/evaluation.md) – チェックポイントのマージ、vLLMでのサービング、OpenEnvを介したフル507×20ベンチマークの実行。

投稿では、ステップバイステップのLinux/WSLセットアップ(Python 3.12、uv、NVIDIA CUDA/NCCL)、環境作成、パッケージインストール、Rayベースの分散トレーニングの起動スクリプトを提供しています。

実践者向けのポイント

  1. トレーニング前にプローブする。 タスクプールのポリシー相対難易度分布を推定し、混合成功を生むタスクのみを保持します。
  2. トレーニングと評価のパーサー間のパリティを維持する。 ツール呼び出し抽出の不一致は、誤った動作に報酬を与えることになります。
  3. カバレッジと再現性の両方を報告する。 Pass@1だけでは信頼性が隠れてしまいます。観測された20/20(または類似の指標)を含めて、信頼できるパフォーマンスを伝えてください。

著者らは、中核的な貢献はトレーニングループとデータキュレーションであり、単一のチェックポイントではないと強調しています。このアプローチは、永続状態(データベース、ファイルシステムなど)を操作するあらゆるエージェントに一般化されるはずです。


参考文献とリソース


コードはMITライセンスです。ベンチマークデータはCDLA-Permissive-2.0です。

Sources