REFT(Reinforced Fine-Tuning)(レフト キョウカファインチューニング)
Reinforced Fine-Tuning(強化ファインチューニング)の略。Dongら(2024)が提案した手法で、数学問題に対して複数の思考過程を生成し正解に至った軌跡のみでオンライン強化学習を行いCoT品質を段階的に向上させる。SFT単体より少ないデータで高い精度を実現する。
REFT とは
REFT(Reinforced Fine-Tuning)は、Chinese University of Hong KongとShanghaiAI Labが2024年に発表した数学推論特化の強化ファインチューニング手法。Chen Dongらの論文「REFT: Reasoning with Reinforced Fine-Tuning」(2024年1月)で提案され、大規模数学ベンチマークで従来のSFTベースラインを上回る結果を示した。
SFT vs REFT の比較
従来のSupervised Fine-Tuning(SFT):
- 各問題に対して1つの正解CoT軌跡のみを学習データとして使用
- 特定の解き方のみを学習。同じ答えに至る別の正しい方法を学べない
- データ数が学習品質の上限になる
REFT(強化ファインチューニング):
- Warm-up SFT: まず少量の正解軌跡でモデルを初期化
- オンラインサンプリング: 問題に対してモデルが複数の解答を生成(N=8等)
- 報酬計算: 最終答えが正しいサンプルのみを高報酬と判定
- PPO/GRPO更新: 高報酬サンプルの確率を高め低報酬を下げる
- 反復: 更新済みモデルで再サンプリング→更新を繰り返す
# REFTの疑似実装
for epoch in range(num_epochs):
for problem, answer in dataset:
completions = model.generate(problem, n=8)
rewards = [1.0 if extract_answer(c) == answer else 0.0
for c in completions]
ppo_update(model, completions, rewards)
なぜ強化学習が有効か
探索の多様性
REFTはモデルが自分で試行錯誤して多様な解法(直接計算・逆算・代入法等)を発見できる。どれで解いても正解なら全て学習シグナルになる。
自己改善ループ
モデルが学習するにつれてより良い解法をサンプリングする確率が上がり、学習データの品質も向上する正のフィードバックループが生まれる。
性能比較
| 手法 | GSM8K(7B) | MATH(7B) | データ量 |
|---|---|---|---|
| SFT (CoT) | 68.5% | 12.3% | 7,500問 |
| REFT | 76.9% | 16.1% | 同等 |
| SFT (4× data) | 73.2% | 14.8% | 30,000問 |
REFTは同量データで4倍SFTデータと同等の性能を達成する場合がある。
GRPOとの関係
DeepSeek-R1のGRPO(Group Relative Policy Optimization)はREFTと同じ原理:
- グループ内サンプルの相対的品質で報酬を計算
- REFTはGRPOの先駆的実装と見なせる
REFTの発展版
| 派生手法 | 差別化 |
|---|---|
| REFT+PRM | ステップレベル報酬でより細かい学習シグナル |
| Eurus-2-PRIME | Implicit PRMでステップ品質を自動推定 |
| DAPO(DeepSeek) | クリッピングなし+トークンレベル損失で安定化 |
| GRPO(DeepSeek-R1) | グループ内正規化で報酬の分散を低減 |
FAQ
Q: REFTにはどのベースモデルが必要か? A: 論文ではLlama-2-7B・13B、CodeLlama-7Bで実験。現在はQwen2.5-Math・Llama-3.1ベースでの再実装が多い。
Q: REFT学習の計算コストは? A: 7Bモデルの場合、A100 80GB × 4〜8枚で数日。PPOのオーバーヘッドがあるためSFTより3〜5倍コストがかかる。
Q: REFTはコーディングにも使えるか? A: はい。コードの正誤はコンパイル・テスト実行で自動判定できるため、強化学習のフィードバックループが非常に相性が良い。2025年のAlphaCode 2等も同様のアプローチを採用。