AI・機械学習
中級
RAG Faithfulness(RAGAs)(ラグフェイスフルネスラガス)
RAGシステムが生成した回答の各文が、検索された参照文書によって支持されているかを測定する評価指標。RAGAsフレームワークの中核指標の一つ。
0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
RAG評価
忠実性
RAGAs
ハルシネーション
コンテキスト整合
RAG Faithfulness(RAGAs)
概要
RAG Faithfulness(忠実性)は、Retrieval-Augmented Generation(RAG)システムの評価フレームワークであるRAGAs(Es, James, Anke, Schockaert, 2023年9月)の中核指標の一つである。RAGシステムが生成した回答の各文が、検索された参照文書(コンテキスト)によって論理的に支持されているかを測定することで、RAG固有のハルシネーション問題を定量化する。
RAGAsフレームワークの全体構成
| 指標 | 測定内容 | 対象 |
|---|---|---|
| Faithfulness | 回答が検索コンテキストに忠実か | 生成品質 |
| Answer Relevancy | 回答が質問に関連しているか | 生成品質 |
| Context Precision | 検索結果に無関係な文書が混入していないか | 検索品質 |
| Context Recall | 正解に必要な情報が検索で取得できているか | 検索品質 |
Faithfulness の計算手順
Step 1: 原子的事実の抽出
生成回答をLLMで原子的事実の集合 S = {s₁, s₂, ..., sₙ} に分解する。
Step 2: コンテキスト検証
各原子的事実sᵢについて、検索されたコンテキスト C をもとにLLM-as-Judgeが「支持される(1)」か「支持されない(0)」かを判定。
Step 3: スコア算出
Faithfulness = 支持された事実数 / 総事実数
スコア解釈と実用目安
| スコア | 評価 | 意味 |
|---|---|---|
| 0.90 以上 | 優秀 | ほぼ全文がコンテキストに基づく |
| 0.75〜0.89 | 良好 | 一部コンテキスト外情報あり |
| 0.60〜0.74 | 要改善 | 生成モデルの事前知識が混入 |
| 0.60 未満 | 危険 | 大規模なハルシネーション |
実装
from ragas import evaluate
from ragas.metrics import faithfulness
from datasets import Dataset
data = {
'question': ['東京タワーはいつ建設されましたか?'],
'answer': ['東京タワーは1958年に建設されました。高さは333メートルです。'],
'contexts': [['東京タワーは1958年12月に完工した電波塔。']],
}
dataset = Dataset.from_dict(data)
result = evaluate(dataset, metrics=[faithfulness])
print(result['faithfulness']) # 0.5(「333メートル」はコンテキスト外)
2025年の状況
- RAGAs v0.2以降でデフォルトLLMがGPT-4o-miniへ移行
- Notion・Salesforce等のエンタープライズRAGで本番監視指標として採用
- 医療RAGでは Faithfulness ≥ 0.95 を社内基準とする事例あり
Faithfulnessが低い原因と対策
原因:
- LLMが事前知識でコンテキスト外情報を補完
- Context Recall問題(必要な情報が検索で取得できていない)
対策:
- システムプロンプトに「コンテキスト外の情報は述べない」と明示
- ハイブリッド検索(Dense + Sparse)でContext Recallを向上
- Rerankerでコンテキスト品質を向上させてからLLMに渡す
まとめ
RAG Faithfulnessは、RAGシステム固有のハルシネーション(コンテキスト外情報の生成)を定量化する中心的な評価指標である。原子的事実分解 + LLM-as-Judgeの2段階で0〜1のスコアを算出し、0.9以上が実用的な目標値とされる。2025年時点でエンタープライズRAGの本番監視指標として広く採用されている。