sue@blog ~ /posts/llm-output-verification-methods
$ cd ../
$ cat post.metadata

LLM出力の検証 ②手法カタログ — 自己一貫性・検索照合・ジャッジ・ガードレール

date: 2026-06-26 LLM ハルシネーション 考察
第1回で描いた4系統の地図に、具体的な手法を載せていく。SelfCheckGPTから意味的エントロピー、RAGAS、MiniCheck、LLM-as-judge、Chain-of-Verification、Llama Guardまで。分類ツリーと網羅比較表で「どれをいつ使うか」を判断できるところまで持っていく。
「LLM出力の検証」連載(全3回)
① 全体像② 手法カタログ(この記事)③ 実装編

第1回のおさらい。検証手法は「何を根拠に正しさを測るか」で4系統——A. リファレンス不要B. リファレンス有りC. ジャッジ系D. 実行時ガードレール——に整理できる。この回ではそれぞれの中身を棚卸しする。まず全体を1枚の分類ツリーで。

手法分類ツリー ― 4系統の代表手法 A リファレンス不要 A-1 自己一貫性 SelfCheckGPT SAC3 グラフUQ (Lin+) A-2 不確実性・内部状態 意味的エントロピー / SEP INSIDE / EigenScore logprob・perplexity P(True) / 確信度申告 SAPLMA (内部状態) Lookback Lens (attention) B リファレンス有り B-1 ファクトチェック FActScore (KB照合) SAFE (検索照合) B-2 RAG忠実性 RAGAS NLI照合 (SummaC等) MiniCheck Vectara HHEM RefChecker Patronus Lynx 引用検証 (ALCE) C ジャッジ系 C-1 LLM-as-judge MT-Bench型 (Zheng+) G-Eval Prometheus 2 C-2 自己検証 Chain-of-Verification Self-Refine Reflexion Constitutional AI D ガードレール D-1 枠組み Guardrails AI NeMo Guardrails D-2 ガードモデル Llama Guard 3 Granite Guardian OpenAI Moderation D-3 構造化出力 Outlines / Instructor D-4 攻撃検知 LlamaFirewall Prompt Guard / Lakera
図1: 手法分類ツリー。A・Bは「根拠を外部に持つか」で、CはAにもBにもなりうる横断的な判定役、Dは本番のI/Oを守る門番。代表手法のみ掲載(全リストは下の比較表)。

1. 網羅比較表

先に俯瞰を。精度感は各論文・ベンチでの相対評価のおおよその目安、コストは1出力あたりの追加推論負荷(低=追加1パス以下、中=数回呼び出し、高=多数サンプリングや多段)。

手法系統原理(一言で)必要な根拠精度コスト
SelfCheckGPTA-1複数サンプルとの矛盾を文単位でスコア化不要中〜高中〜高
Semantic EntropyA意味クラスタ上のエントロピーで不確実性不要
SEPA-2意味エントロピーを隠れ状態から1パス近似隠れ状態
SAC3A-1質問言い換え×クロスモデルで照合不要+別LLM
INSIDE / EigenScoreA-2回答埋め込みの共分散固有値で意味多様性内部埋め込み
logprob / perplexityA-2トークン確率を不確実性に使うlogprob低〜中
P(True) / 確信度申告A-2モデル自身に正しさ確率を言わせる不要低〜中
SAPLMAA-2隠れ状態に真偽分類器を学習隠れ状態+ラベル
Lookback LensA-2文脈/生成へのattention比率で文脈幻覚検知attention中〜高
FActScoreB-1原子事実をKBで検証し精度算出信頼できるKB
SAFEB-1原子事実をGoogle検索で検証Web検索
RAGAS FaithfulnessB-2claim分解→文脈支持率取得文脈中〜高
NLI照合(SummaC/AlignScore)B-2根拠=前提・出力文=仮説で含意判定根拠+NLIモデル中〜高
MiniCheckB-2GPT-4蒸留の小型グラウンディング判定根拠文書高(GPT-4並)
Vectara HHEMB-2クロスエンコーダで事実整合確率根拠文書
RefCheckerB-2claim-triplet粒度で照合根拠文書
Patronus LynxB-2RAG忠実性をFT済みLLMで推論付き判定根拠文書中〜高
引用検証(ALCE/AIS)B-2引用が主張を裏付けるかNLI判定引用元中〜高
LLM-as-a-JudgeC-1強力LLMに採点/比較させる不要(任意で参照)中〜高低〜中
G-EvalC-1CoT手順+確率加重で連続採点logprob中〜高
Prometheus 2C-1細粒度評価専用のオープン評価LMルーブリック低〜中
Chain-of-VerificationC-2検証質問を独立に解いて自己修正不要中〜高
Self-RefineC-2自己フィードバックで反復改善不要中〜高
ReflexionC-2失敗を言語反省して次試行に反映外部検証シグナル中〜高
Constitutional AIC-2原則に照らしcritique→revision原則リスト
Guardrails AI / NeMoD-1入出力を検証→reask/ブロックバリデータ定義低〜中
Llama Guard / Granite GuardianD-2安全性タクソノミで入出力分類ガードモデル中〜高
構造化出力(Outlines/Instructor)D-3制約付きデコード/スキーマ検証JSON Schema等高(形式のみ)
OpenAI ModerationD-2ホスト型分類器で安全カテゴリ判定API中〜高
LlamaFirewall / Prompt GuardD-4攻撃分類+CoT監査ガードモデル

2. A. リファレンス不要 — 自己一貫性と不確実性

外部知識も正解ラベルも使わず、出力そのものの内部整合性や確信度から怪しさを測る系統。前提は「本当に知っている事実は何度生成しても一致するが、捏造(confabulation)は生成ごとに発散・矛盾する」という仮説だ。外部APIにそのまま被せられるのが最大の利点。

A-1. サンプリング/自己一貫性

SelfCheckGPT(Manakul ら, EMNLP 2023)は、同じプロンプトを高温度でN回サンプリングし、主回答の各文がサンプル群に支持されるか/矛盾するかを文単位でスコア化する。整合性の測り方に5変種(BERTScore / QA / n-gram / NLI / Prompt)があり、実務ではNLI版とPrompt版が定番。完全ブラックボックスで動き「どの文が怪しいか」を局在化できる反面、1回答あたり6〜20サンプルを追加生成するためコストが数倍になり、「一貫して同じ嘘を繰り返す」誤りは取り逃す

SAC3(Zhang ら, Findings of EMNLP 2023)はその弱点を補う。質問を意味的に等価な言い換えに変換してクロスチェックし、さらに別のLLMにも同じ質問群を投げてモデル横断で照合する。自信満々の誤答まで潰せるが、言い換え×複数応答×複数モデルで生成回数が掛け算的に増え、コストは最重量級。

A-2. 不確実性・確信度・内部状態

logprob / perplexityは最も安価。生成時のトークン確率をそのまま不確実性に使い、追加コストほぼゼロでスパン単位に局在化できる。ただしLLMは過信(overconfident)で、流暢に誤答する一番危険なケースを取り逃しやすい

Semantic Entropy(意味的エントロピー)(Farquhar ら, Nature 2024)は、表層ではなく意味レベルで不確実性を測る。双方向NLIで意味的に等価な回答をクラスタにまとめ、意味クラスタ上の確率分布からエントロピーを計算する。言い換えの違いに惑わされない頑健さが核心で、Nature掲載で理論的裏付けが厚い。弱点は5〜10回の追加生成。これをSEP(Semantic Entropy Probes)が潰す——1回生成の隠れ状態から線形プローブでSEを直接近似し、追加コストをほぼゼロに。ただし隠れ状態アクセス(ホワイトボックス)が必須。

INSIDE / EigenScore(Chen ら, ICLR 2024)は埋め込み空間で意味多様性を測り、共分散行列の固有値で「回答群の広がり」を評価する。SAPLMA(Azaria & Mitchell, EMNLP Findings 2023)は「LLMの内部状態は嘘を知っている」を実証し、隠れ活性にMLP分類器で真偽を学習させる(精度71〜83%)。Lookback Lens(Chuang ら, EMNLP 2024)はRAG/要約の文脈幻覚に特化し、各attention headの「文脈へのattention ÷ 生成へのattention」(lookback ratio)を特徴量に判定する。軽量で、検出だけでなくデコーディング誘導で緩和にも使える。

クローズドAPIでも動かしたいならP(True)(回答後に「これは正しい?」と問い直しTrue確率を読む)やverbalized confidence(確信度を言葉で述べさせる)。後者はRLHFモデルで内部確率よりよくキャリブレートされうるが、丸い数字への偏りと過信は残る。

3. B. リファレンス有り — 検索照合とファクトチェック

外部の根拠(検索結果・KB・与えた文脈)と出力を突き合わせる。中核は「出力をatomic fact / claimに分解 → 各claimを根拠と照合」という分解+検証パイプライン。RAGを運用しているなら、実務でいちばん効くのがここだ。

B-1. ファクトチェック(世界知識)

FActScore(EMNLP 2023)は長文を最小単位の事実に分解し、各事実をWikipedia等で検証して「支持事実数/全事実数」を算出。市販LLMの伝記生成が58%しか取れないことを示した。SAFE(Google DeepMind, 2024)は知識源をライブのGoogle検索に拡張し、人手と約72%一致しつつ人手より20倍以上安いと報告。最新・ニッチな事実に強い反面、検索コストとSEOスパムの影響を受ける。

B-2. RAG忠実性(与えた文脈)

RAGASは回答を複数claimに分解し、各claimが取得文脈から推論可能かを判定して Faithfulness を0〜1で算出する。正解ラベル不要で、Context Precision/Recall と組み合わせ「検索が悪いのか生成が悪いのか」を切り分けられる。NLIベース照合(SummaC / AlignScore)は「根拠=前提、出力文=仮説」として含意判定する古典的かつ堅実な手法で、LLM不要・小型・決定論的なため大量バッチに最適。

近年の主役は小型の専用判定器だ。MiniCheck(EMNLP 2024)はGPT-4で合成した(文書,主張)ペアで小型モデルを蒸留し、GPT-4並みの精度を約400分の1のコストで実現する。Vectara HHEMは(根拠,生成)の事実整合確率を出すクロスエンコーダで、付随するハルシネーション・リーダーボードはLLM選定の客観指標になる。RefChecker(Amazon)は(主語,述語,目的語)のtriplet粒度で照合して誤り箇所を局所特定し、Patronus LynxはRAGTruthで学習したOSS LLM(8Bで HaluBench 87.3%)で理由付きの忠実性判定を返す。さらに引用検証(ALCE / AIS)は「答えが正しいか」だけでなく「根拠を示せているか(検証可能性)」を Citation Precision/Recall で測る。

事実性・忠実性・検証可能性は別物
correctness(世界知識として正しいか)/faithfulness(与えた文脈に支持されるか)/attribution(引用で裏付けられるか)は直交する軸。RAGでは「忠実だが不正解(文脈自体が誤り)」を見逃しがちなので、検索品質の評価と必ずセットにする。

4. C. ジャッジ系 — LLM-as-judge と自己検証

C-1. LLM-as-a-Judge

別の(または同一の)LLMに採点・批判させる、人手評価を代替する最も普及した品質ゲートLLM-as-a-Judge(Zheng ら, MT-Bench / Chatbot Arena, 2023)は、GPT-4判定が人間選好と80%超で一致(人間同士と同水準)することを示した。参照回答が無いオープンエンド課題でBLEU/ROUGEより遥かに高い人間相関を得られ、A/Bペアワイズにすると絶対スコアの不安定さを避けられる。G-Eval(Liu ら, EMNLP 2023)は評価手順のCoTを自動生成し、出力トークン確率でスコアを期待値加重して同点を緩和する。Prometheus 2(EMNLP 2024)はルーブリックに沿って採点する専用オープン評価LMで、人間とPearson 0.897(GPT-4の0.882と同等)を達成。自己ホストでバージョン固定・低コスト・データ秘匿ができる。

C-2. 自己検証・自己批判

Chain-of-Verification(CoVe)(Dhuliawala ら, 2023)は (1)回答 → (2)検証質問を計画 → (3)各質問を元回答に引きずられない独立コンテキストで解く → (4)食い違いを修正、という流れ。ステップ(3)の分離が肝で、列挙・固有名詞・数値の幻覚に効く。Self-Refine(NeurIPS 2023)は同一モデルで「生成→自己批評→書き直し」を反復、Reflexion(NeurIPS 2023)は失敗を言語反省してエピソード記憶に蓄える。Constitutional AI(Anthropic 2022)は原則に照らしてcritique→revisionで有害出力を除く。

自己検証の原理的な限界
「Large Language Models Cannot Self-Correct Reasoning Yet」(Huang ら, ICLR 2024)が示すように、外部フィードバックなしの純粋な自己訂正は推論誤りを直せない。批評と修正を同じモデルがやると、そのモデルが気づけない誤りは残るし、誤フィードバックで逆に劣化することもある。自己検証はテスト・検索・別モデル・人手といった外部シグナルと組み合わせて初めて信頼できる。

5. D. 実行時ガードレール — 本番の門番

本番のI/Oを実行時に検査してブロック・再生成・修正する。Guardrails AIは出力をJSON Schema / 型 / Hubバリデータ(PII・profanity・正規表現・toxic等)で検証し、不合格時に correct / refuse / reask を発火する。NeMo GuardrailsはColang DSLで会話フロー全体を状態機械として制御し、self-check・AlignScore・SelfCheckGPT方式の3系統で幻覚レールも張れる。

安全性はガードモデルに寄せる。Llama Guard 3(Llama-3.1-8B)は入出力を safe/unsafe + 違反カテゴリで分類、Granite Guardian(IBM)は安全性に加えRAGの context relevance / groundedness まで検出する。OpenAI Moderationは無料・ホスト型の一次フィルタ。形式崩れ対策の構造化出力は、制約付きデコード(Outlines・OpenAI Structured Outputs)か生成後スキーマ検証+リトライ(Instructor)で「JSONが壊れる」を根絶する——ただし形式の正しさは内容の真偽を保証しない。攻撃面ではLlamaFirewall(Meta)がPromptGuard+AlignmentCheck+CodeShieldの多層でエージェントを守り、AgentDojoで攻撃成功率を90%以上削減したと報告する。

ガードレールは「壁」ではなく「層」
「Bypassing LLM Guardrails」(arXiv:2504.11168)が示すように、encoding / evasion 型攻撃でガードは回避されうる。ガードレールは破られない壁ではなく、攻撃コストを上げる多層防御の一枚。継続的なモデル・ルール更新が前提になる。

選び方の早見

第2回のまとめ
手法は系統ごとに役割が違う。Aは外部APIに被せやすい怪しさ検知、BはRAGの主力、Cは人手評価の自動化、Dは本番の門番。1つで全部は無理なので、次回はこれらを1本のパイプラインに組む。

次回

カタログが揃った。第3回「実装編」では、これらを安価→高価の多段防御パイプラインに組み、オフライン回帰テストとオンライン監視で二層化し、人手レビュー(HITL)で継続改善を回すところまで、コードと運用設計に落とす。

連載
① 全体像② 手法カタログ(この記事)③ 実装編
sue@blog ~ $ _