SelfCheckGPT(セルフチェックジーピーティー)
LLMの同一プロンプトを複数回サンプリングし、生成テキスト間の一貫性によってハルシネーションを無参照で検出するフレームワーク。外部知識DBなしで動作する。
SelfCheckGPT
概要
SelfCheckGPT(Manakul, Liusie, Gales, 2023年3月・Cambridge大学)は、大規模言語モデル(LLM)が生成するテキストのハルシネーションを、外部参照データベースや人手アノテーションを必要とせずに検出するフレームワークである。LLMが事実を「知っている」場合はサンプリングを繰り返しても一貫した内容を生成するが、「知らない」場合は矛盾した内容を生成しやすいという仮説に基づいている。
2023年発表当初から生成AIの事実性評価において重要な手法として認識され、2024〜2025年にかけてRAG評価・エージェント信頼性評価・医療LLM検証など多くの実用領域へ応用が広がっている。
動作原理
サンプリングフェーズ
- 同一のプロンプトをLLMに複数回(デフォルト20回)投入
- temperature > 0 の設定で多様な出力を取得
- 各サンプルを文単位またはエンティティ単位に分解
一貫性測定フェーズ
評価対象テキストの各文について、残りのサンプルとの整合性を以下の3指標で測定する。
BERTScore一貫性: 対象文と各サンプルの意味的類似度をBERTエンコーダで計算し、平均スコアが低い文ほどハルシネーションリスクが高い。
NLI(自然言語推論)一貫性: DeBERTa系モデルを使用し、サンプル全文が対象文を「含意(entailment)」するか「矛盾(contradiction)」するかを分類。矛盾率が高い文をフラグ。
n-gram一貫性: BLEU・ROUGE系の字句オーバーラップで計算コストを抑えた軽量評価。リソース制約環境向け。
スコアリング
各文のハルシネーションスコア(0〜1)は上記指標の加重平均または最大値として出力される。スコアが高いほどハルシネーションの疑いが強い。
特長と優位性
| 特徴 | SelfCheckGPT | 外部DB参照型(FActScore等) |
|---|---|---|
| 外部知識不要 | ✅ | ❌(Wikipedia等が必要) |
| クローズドソースLLM対応 | ✅ | 制限あり |
| リアルタイム検出 | ✅(並列サンプリング次第) | API依存 |
| 精度 | 中〜高 | 高(知識DBの質に依存) |
| コスト | サンプリング分の推論コスト | 検索コスト + 推論コスト |
評価実績
WikiBio実験: GPT-3が生成したWikipedia人物紹介文のハルシネーション検出において、BERTScore指標で AUC 0.76〜0.83 を達成。人手評価との相関係数 ρ ≈ 0.72。
医療QA適用: Med-PaLM生成回答への適用研究では、専門医評価との一致率が NLI指標で 71.4% を記録(2024年)。
2025年の拡張動向
- SelfCheckGPT-MQAG: 多肢選択問題形式の質問を自動生成してサンプル整合性を評価する拡張版
- LLM-as-Judge統合: Claude 3.5 Sonnet等を一貫性判定モデルとして利用する組み合わせが広まる
- エージェント信頼性評価: マルチステップエージェントの中間ステップ事実性チェックへ応用
- RAGAs統合: RAGシステムの答弁忠実性評価のサブコンポーネントとして組み込み
実装例
# SelfCheckGPT の基本的な使用パターン
from selfcheckgpt.modeling_selfcheck import SelfCheckBERTScore
# 同一プロンプトから複数サンプリング
samples = [llm.generate(prompt) for _ in range(20)]
passage = samples[0] # 評価対象テキスト
# BERTScore一貫性で文単位スコアリング
selfcheck = SelfCheckBERTScore(rescale_with_baseline=True)
scores = selfcheck.predict(
sentences=passage.split('.'),
sampled_passages=samples[1:]
)
# scores: 各文の hallucination スコア [0, 1]
限界
- サンプリング回数に比例して推論コストが増大(20回サンプリング = 21倍のコスト)
- 確率的に一貫した誤情報(系統的バイアス)は検出できない
- 短文・箇条書き形式のテキストはスコアが不安定になりやすい
- temperature=0 の決定論的出力には適用不可
関連手法との比較
- FActScore: Wikipedia参照で精度は高いが外部DBが必須
- Semantic Entropy: 確率分布の意味的クラスタリングで計算効率が良い
- RAGAs Faithfulness: RAGシステム専用で検索文書との整合性を測定
まとめ
SelfCheckGPTは参照データなしでハルシネーションを検出できる点で、クローズドソースAPIや医療・法律等の専門領域において特に有用なフレームワークである。BERTScore・NLI・n-gramの複数指標を組み合わせることで、単一指標の弱点を補完しながら信頼性スコアを算出できる。2025年時点ではRAGAs等のより包括的な評価スイートへ統合される形で活用が広がっている。