Self-Consistency(セルフコンシステンシー)
同一プロンプトから多数のChain-of-Thought推論パスをサンプリングし、多数決により最終回答の一貫性・精度を高めるデコーディング手法。
Self-Consistency とは
Self-Consistency(自己整合性)は、Google の Wang et al. 2022が提案したChain-of-Thought(CoT)の精度向上手法だ。同じ問題に対して複数の推論経路をサンプリングし、最も一貫した(多数の経路が辿り着く)回答を採択する。
基本的なアイデア
人間が難しい問題を解く際、複数のアプローチを試して一致する答えを信頼するという認知プロセスに着想を得ている。一つの推論経路が誤りを含んでいても、多数の独立した経路が同じ答えに収束すれば、その答えの信頼性は高い。
動作手順
ステップ1 プロンプト設定: CoTプロンプトを用意する(few-shot または zero-shot CoT)。
ステップ2 サンプリング: 温度T > 0(通常0.7〜1.0)でN回生成する(20〜40回推奨)。
ステップ3 回答抽出: 各推論経路の最終回答を抽出する(数値・選択肢・True/False等)。
ステップ4 多数決: 最頻回答を最終出力として採択する。
具体的な例
問題「学校に48人の生徒がいる。女子は男子の3倍。女子は何人?」に対して複数のCoT経路を生成する。経路1は「男子をxとすると 3x + x = 48 → x = 12 → 女子 = 36」と解く。経路2は「全体の3/4が女子 → 48 × 3/4 = 36」と解く。経路3は「比率3:1 → 女子 = 48×3/4 = 36」と解く。誤答経路は「48 ÷ 3 = 16」と解く。多数決の結果、3経路が一致する36が最終回答として採択される。
Greedy デコーディングとの比較
元論文での実験結果(N=40のSelf-Consistency)において、GSM8Kタスクでは CoT(Greedy)の46.9%に対しSelf-Consistency が74.4%を達成した。SVAMPタスクでは63.7%に対し86.8%、AQuAタスクでは35.8%に対し52.2%を記録している。いずれもGreedy比で20〜30ポイントの向上が見られる。
実装の簡潔さ
Self-Consistencyの実装は非常にシンプルだ。OpenAI API等で同一プロンプトをN回呼び出し、各レスポンスから最終回答を正規表現で抽出し、Counterクラスで最頻値を取得するだけで実装できる。並列リクエストにより計算時間をN倍未満に抑えることも可能だ。
バリアント
Weighted Majority Voting: 回答だけでなく推論の信頼スコアも考慮した重み付き多数決を行う。
Universal Self-Consistency(USC): LLMに複数の候補回答を提示し「最も一貫した答えを選べ」と指示することで、多数決をLLM自体に委託する。GPT-4で特に有効とされる。
Code Self-Consistency: 生成コードを実際に実行し、テストケースを通過した回答のみを集計対象にする手法(Execution-Verified SC)。コーディングタスクで高い精度を発揮する。
報酬モデル不要の利点
Best-of-NやMCTSが報酬モデルやPRMを必要とするのに対し、Self-Consistencyは追加モデルなしで動作する。これが実装の容易さと広い採用につながっている。特にAPIアクセスのみが可能な環境(モデルの内部にアクセスできない場合)でも使用できる点が大きな強みだ。
適用領域と限界
算術推論(GSM8K等)・論理推論・常識推論(CommonsenseQA)で有効だ。正解が一意でないタスク(創作・翻訳・要約)では多数決の意味が薄れ、効果が限定的になる。N=40なら推論コストが40倍になるため、API費用が主なボトルネックとなる。
まとめ
Self-Consistencyは実装が最も簡単なTest-Time Compute手法の一つでありながら、効果は絶大だ。特に数値回答を持つタスクでは、モデルサイズを上げるより多数決を取る方が費用対効果が高いケースも多い。推論モデルが普及した2025年以降も、シンプルさゆえに広く活用されている手法だ。