PRMステップレベル検証器(ピーアールエムステップレベルケンショウキ)
LLMの推論過程を最終解答でなく各中間ステップ単位で正誤評価するリワードモデル。数学問題や論理推論タスクで誤推論を早期発見し、ビームサーチやBest-of-N選択の精度を向上させる。
PRMステップレベル検証器とは
Process Reward Model(PRM)のステップレベル検証器は、LLMが生成する推論チェーン(Chain-of-Thought)の各ステップを個別に評価するリワードモデルです。従来のOutcome Reward Model(ORM)が最終回答の正誤のみを判断するのに対し、PRMは中間推論の各ステップに「このステップは正しいか」というスコアを付与します。
ORMとPRMの根本的違い
ORM(Outcome Reward Model)
- 最終回答のみを評価
- 途中の誤推論を検知できない
- 訓練データは「最終解答が正解かどうか」のみ
- シンプルだが、誤りが蓄積してから初めて発覚する
PRM(Process Reward Model)
- 各推論ステップを評価
- 誤りを早期発見・枝刈りが可能
- 訓練データに各ステップのラベルが必要(高コスト)
- 精度は高いが、データ収集が困難
動作原理
ステップスコアの計算
問題「15×8÷6を計算せよ」に対し、LLMが以下のCoTを生成した場合:
Step 1: 15×8 = 130 ← 誤り(正解は120)
Step 2: 130÷6 ≈ 21.7
Step 3: 答えは21.7
ORMは最終答えが誤りと判断するだけですが、PRMはStep 1の時点で低スコア(例: 0.05)を付与し、このパスを早期に枝刈りします。
ビームサーチとの統合
PRMはビームサーチと組み合わせると特に効果的です。各ステップ後にスコアを計算し、低スコアの候補を除外して高品質なパスに計算リソースを集中させます。
# 疑似コード: PRM + ビームサーチ
beam = [initial_prompt]
for step in range(max_steps):
candidates = [generate_next_step(b) for b in beam]
scores = [prm.score(c) for c in candidates] # 各ステップをPRMで評価
beam = top_k(candidates, scores, k=beam_width) # 上位Kを残す
訓練データの課題
PRMの最大の課題は訓練データの収集コストです。各推論ステップにラベルを付けるには:
- 人手アノテーション: 高品質だが非常に高コスト(OpenAI PRM800Kは75万ステップ)
- 自動アノテーション(Math-Shepherd方式): モンテカルロ推定でステップの有効性を判断
- 合成データ生成: 強力なLLM(GPT-4等)でアノテーションを生成
主要な実装・研究
| 手法 | 組織 | 特徴 |
|---|---|---|
| Let's Verify Step by Step | OpenAI | PRM有効性の初期大規模実証 |
| PRM800K | OpenAI | 75万ステップの人手ラベルデータセット |
| Math-Shepherd | 上海AI研 | 自動アノテーションでコスト削減 |
| Skywork-o1-PRM | Skywork | オープンソースPRM実装 |
| OmegaPRM | Google DeepMind | MCTSを活用した高品質PRM |
実用的な効果
OpenAIの研究によると、MATH-500ベンチマークで:
- ORM + Best-of-N: 56.6%の精度
- PRM + Best-of-N: 71.8%の精度(約+15%向上)
この差は計算量を増やすほど広がる傾向があり、推論時スケーリング(Test-Time Compute)のコアコンポーネントとして注目されています。
現在のトレンド
2025年以降、DeepSeek-R1やOpenAI o1/o3等の推論特化LLMの成功により、PRMは推論LLMの標準的コンポーネントになりつつあります。特に数学・コーディング・科学推論タスクで、PRMを活用したTest-Time Computeスケーリングが研究の主流となっています。