自己整合性
Self-Consistency
じこせいごうせい
解説
自己整合性とは、同じ問いを複数回解かせて多数決などで答えをまとめ、偶然の誤りを減らす推論手法です。理解すると調整がしやすくなります。
同じ質問をLLMに繰り返し聞くと、毎回少しずつ違う回答が返ってくることがあります。特に推論を伴う問題では、ある時は正しい答えにたどり着き、別の時は途中で間違えるということが起こります。自己整合性(Self-Consistency)とは、同じ質問に対して複数の回答を生成し、多数決で最終回答を決定することで精度を高める手法です。
基本的な仕組み
自己整合性の手順はシンプルです。まず、同じプロンプトをモデルに複数回(たとえば5〜20回)送り、それぞれ異なる推論パスで回答を生成させます。LLMの出力にはランダム性(温度パラメータによる)があるため、毎回異なる推論経路をたどります。そして、最も多くの回答が一致した結果を最終回答として採用します。
たとえば数学の問題で、10回生成して7回が「42」、2回が「38」、1回が「45」と答えた場合、多数決で「42」が最終回答になります。正しい推論はさまざまな経路から同じ答えに収束しやすい一方、誤った推論はランダムにばらつく傾向があるため、この方法で精度が向上します。
なぜ効果があるのか
自己整合性が機能する理由は、ランダムな誤りは集約によって相殺されるという統計的な原理に基づいています。モデルが正解にたどり着く確率が50%を超えていれば、試行回数を増やすほど多数決の正答率は向上します。これは「陪審員定理」として知られる原理と同じ考え方です。
特に効果が高いのは、Chain-of-Thought(CoT)推論と組み合わせた場合です。CoTで段階的に推論させると、各試行が異なる推論経路を探索するため、単純な回答生成の繰り返しよりも多様な解法が得られます。Google Researchの研究では、CoT + 自己整合性の組み合わせにより、算術推論タスクで大幅な精度向上が確認されています。
コストとのトレードオフ
自己整合性の最大の制約は計算コストです。10回生成すればAPIコストは10倍、レイテンシも増加します。リアルタイムの対話システムでは、ユーザーを何秒も待たせるわけにはいきません。そのため、この手法は精度が特に重要で、多少の遅延が許容されるタスクに適しています。たとえば、医療診断の補助、コード生成の検証、重要な意思決定の支援などが典型的な適用場面です。
並列生成によるレイテンシの削減や、少ない試行回数で効率的に一致を判定する「早期停止」の仕組みなど、コスト最適化のための工夫も研究されています。
適用の判断基準
自己整合性を導入すべきかの判断は、正解が明確に定義できるタスクかどうかがポイントです。数学問題やコードの正誤判定のように答えが一意に決まるタスクでは多数決が有効ですが、創造的な文章生成のように「正解がない」タスクでは、多数決の意味が薄れます。自分のユースケースの特性を見極めた上で、コストに見合う精度向上が得られるかを検証することが大切です。