Universal Self-Consistency(USCoT)とは、Self-Consistency手法を自由形式(open-ended)タスクに拡張する手法であり、Chen et al.(2023)の "Universal Self-Consistency for Large Language Model Generation" で提案された。従来のSelf-Consistencyは多肢選択や数値回答など離散的な回答空間を前提としていたが、USCoTはLLM自身に複数の候補回答の一貫性を判定させることで、要約・翻訳・コード生成などの自由形式タスクにもSelf-Consistencyを適用可能にした。
従来のSelf-Consistency(Wang et al., 2022)は、最終回答の完全一致に基づく多数決を集約手法として採用していた。この方式は数値回答(「42」「3.14」等)や多肢選択(「A」「B」「C」「D」等)では極めて有効だが、自由形式のテキスト生成タスクでは根本的な問題が生じる。
例えば、要約タスクで3つの推論パスが以下の回答を生成したとする。
3つの回答は意味的にほぼ同一だが、文字列としては完全に異なる。従来の多数決ではこれら3票がすべて別回答として扱われ、集約が機能しない。Universal Self-Consistency(USCoT)はこの問題を解決するために、LLM自身を一貫性判定器(consistency judge)として活用する。
USCoTの核心は、多数決の代わりにLLM自身に「複数の候補回答の中で最も一貫性のある回答はどれか」を判定させるメタ推論ステップを導入する点にある。
入力: 質問Q、few-shot CoTプロンプトP、サンプル数n、温度T
1. サンプリング: for i = 1 to n:
(reasoning_i, answer_i) = LLM(P + Q, temperature=T)
2. 一貫性判定プロンプト構築:
judge_prompt = "以下のn個の回答を比較し、最も一貫性のある
(多くの回答と整合する)回答を選択してください。
回答1: {answer_1}
回答2: {answer_2}
...
回答n: {answer_n}
最も一貫性のある回答の番号: "
3. 一貫性判定: selected = LLM(judge_prompt, temperature=0)
4. return answer_{selected}
| 特性 | 標準Self-Consistency | Universal Self-Consistency |
|---|---|---|
| 集約方式 | 完全一致の多数決 | LLMによる一貫性判定 |
| 対象タスク | 離散的回答(数値・選択肢) | 任意のタスク(自由形式含む) |
| 意味的等価性 | 考慮しない | LLMが判断 |
| 追加LLM呼び出し | 不要 | 1回(判定ステップ) |
| 判定の信頼性 | 決定的(完全一致) | 確率的(LLMの判断に依存) |
| コスト | n回の推論 | n+1回の推論 |
| 実装複雑性 | 低(文字列比較) | 中(判定プロンプト設計) |
USCoTは以下の自由形式タスクで有効性が実証されている。
コード生成タスクでは、機能的に等価だが構文的に異なるコードが生成される。USCoTはLLMに「どのコードが最も多くの候補と同じ機能を実現しているか」を判定させる。
| ベンチマーク | タスク | 標準CoT | Self-Consistency(多数決) | USCoT | 改善幅 |
|---|---|---|---|---|---|
| HumanEval | コード生成 | 67.0% | 71.3%(構文一致) | 76.8% | +9.8% |
| MBPP | コード生成 | 52.1% | 55.4%(構文一致) | 61.2% | +9.1% |
| CodeContests | 競プロ | 8.2% | 9.1%(出力一致) | 12.4% | +4.2% |
コード生成では、テストケース実行による出力一致判定(execution-based consistency)も可能であり、USCoTとの併用が最も高い精度を達成する。
要約タスクでは複数の要約候補の中から、元テキストの主要情報を最も網羅的かつ正確に反映している要約を選択する。
| データセット | 標準CoT(ROUGE-L) | USCoT(ROUGE-L) | 改善幅 |
|---|---|---|---|
| CNN/DailyMail | 34.2 | 37.8 | +3.6 |
| XSum | 28.1 | 31.5 | +3.4 |
| SAMSum | 41.3 | 44.7 | +3.4 |
翻訳では、複数の翻訳候補の中から最も自然かつ正確な翻訳をLLMが選択する。翻訳品質の評価をLLM自身が行うため、BLEUスコアよりも人間評価との相関が高い結果が得られる。
USCoTは従来のSelf-Consistencyが得意とする数学タスクでも適用可能であり、特に途中式を含む回答形式(「答えは42です。なぜなら…」)では、完全一致の多数決よりもUSCoTの方が柔軟に同一回答を認識できる。
USCoTの性能は一貫性判定プロンプトの設計に大きく依存する。以下は効果的な判定プロンプトのパターンである。
以下の{n}個の回答候補を比較してください。
他の回答と最も内容が一致している回答の番号を選んでください。
回答1: {answer_1}
回答2: {answer_2}
...
最も一貫性のある回答番号:
候補回答をペアで比較し、各ペアの類似度をスコア付けした後、最も高スコアの回答を選択する。n個の候補に対してn(n-1)/2回の比較が必要だが、より精密な判定が可能。
まずLLMに候補回答を意味的グループに分類させ、最大グループの代表回答を選択する。従来の多数決のセマンティック版とも言える。
| パターン | HumanEval精度 | 判定の安定性 | 追加コスト |
|---|---|---|---|
| 直接選択型 | 76.8% | 中 | 1回呼び出し |
| ペアワイズ比較型 | 78.2% | 高 | n(n-1)/2回 |
| グループ化型 | 77.5% | 中〜高 | 1〜2回呼び出し |
Chen et al.の論文における主要な実験結果と知見を整理する。
n個の候補回答をすべて一貫性判定プロンプトに含める必要があるため、コンテキスト長の制約を受ける。長文生成タスクではnを小さくするか、回答の要約を判定入力とする工夫が必要である。
一貫性判定自体がLLMの確率的出力に依存するため、判定結果が実行ごとに変動する可能性がある。判定ステップでは温度0(greedy decoding)を使用して再現性を確保するのが標準的だが、それでも100%の再現性は保証されない。
USCoTの総コストはn回のサンプリング + 1回の一貫性判定 = n+1回のLLM呼び出しとなる。一貫性判定プロンプトはn個の回答を含むため入力トークン数が大きく、プロンプトキャッシュの恩恵を受けにくい点に注意が必要である。
回答が数値・選択肢など離散的な場合は標準Self-Consistencyで十分であり、実装もシンプルである。回答が自由形式テキスト(要約、翻訳、説明、コード)の場合はUSCoTを使用する。迷った場合はUSCoTを選択して問題ない(離散的回答タスクでも同等の性能を発揮するため)。
はい。サンプリングにコスト効率の良い小型モデル(GPT-4o-miniやClaude 3.5 Haiku)を使用し、一貫性判定により高性能な大型モデル(GPT-4oやClaude 3.5 Sonnet)を使用するハイブリッド戦略は有効である。Chen et al.の実験でも、判定モデルの品質がUSCoT全体の性能に大きく影響することが示されている。
USCoTはn個の候補回答がすべて生成完了した後に一貫性判定を行うため、リアルタイムストリーミング出力とは直接的に互換性がない。ただし、サンプリングを並列実行し、全候補の生成完了後に最終回答をストリーミング出力するアーキテクチャは実現可能である。エンドユーザーには「思考中…」のインジケータを表示し、最終回答のみをストリーミングする設計が一般的である。
(1)候補回答の要約を一貫性判定の入力とする(長文タスク向け)、(2)nを小さくする(5〜8程度に制限)、(3)ペアワイズ比較を採用し、各比較で2つの回答のみを入力する(コンテキスト効率は高いが比較回数が増加)。Anthropicのclaude-3.5-sonnetは200Kトークンのコンテキストを持つため、多くの場合n=20程度のUSCoTが問題なく実行可能。