AI

RAGTruthとは|RAGのハルシネーションを検出するACL 2024評価データセットを解説

RAGTruthは、検索拡張生成(RAG)でLLMが起こすハルシネーションを単語(スパン)単位で注釈した評価用コーパスである。NewsBreakとイリノイ大学アーバナ・シャンペーン校の研究チームがACL 2024で発表し(arXiv:2401.00396)、約1.8万件の自然生成応答を人手で注釈している。合成した偽情報ではなく実際にLLMが出した誤りを集めている点が、既存の評価データセットと決定的に違う。この記事では、論文の実測値をもとにデータ構成・4つのハルシネーション分類・検出ベンチマークの結果、そして日本語RAGで使うときの注意点までを整理する。

まとめ:RAGTruthの要点

  • 正体:RAG設定のハルシネーションをスパン単位で注釈したコーパス。ACL 2024、NewsBreak+UIUC。データはGitHub(ParticleMedia/RAGTruth)で公開。
  • 規模:2,965事例 × 6モデル = 17,790応答。うち43.1%(7,664応答)にハルシネーションがあり、注釈スパンは14,289件。
  • タスク:質問応答(MS MARCO)・データからの記述生成(Yelp Open Dataset)・ニュース要約(CNN/Daily Mail+最新ニュース)の3種。
  • 分類:矛盾(Conflict)と事実無根の追加(Baseless Info)を、それぞれ「明白(Evident)」「微妙(Subtle)」に分けた4タイプ。
  • 最大の知見:RAGTruthで微調整したLlama-2-13Bの検出F1は78.7で、GPT-4-turboのプロンプト検出(F1 63.4)を上回る。

RAGTruthとは何か:自然発生のハルシネーションを集めたRAG特化コーパス

RAGでは、参照文(retrieved context)を与えたうえで「文脈に基づいて答えよ」とLLMに指示する。それでもモデルは、参照に無い情報を足したり、参照と食い違う内容を出したりする。RAGTruthはこのRAG特有の逸脱だけを対象にする。プロンプトを意図的にひねって誤りを誘発した合成データ(HaluEval など)とは異なり、6つのLLMに素直なプロンプトで生成させた応答を人手で注釈しているため、実運用で起きる誤りの分布に近い。

目的は明快で、RAGのハルシネーションを「測る」ための共通土台を作ることにある。論文は、この高品質な注釈データで小型LLMを微調整すれば、GPT-4のプロンプトベース検出に匹敵・凌駕する検出器を作れることを示した。評価データセットでありながら、検出モデルの学習データとしても機能するのが特徴だ。ハルシネーションそのものの定義や種類はAIにおけるハルシネーションとは?基本概念と種類の解説で先に押さえておくと理解が早い。

RAGTruthデータセットの構成:3タスク・6モデル・スパン注釈

3つのタスクと元データ

RAGTruthは、性質の異なる3タスクを混ぜることで、ハルシネーションの出方の違いまで測れるように設計されている。

タスク 元データ 与える文脈 ハルシネーション率
質問応答(QA) MS MARCO 日常的な質問+参照3節 29.1%
データからの記述生成 Yelp Open Dataset 店舗の構造化データ(JSON)+レビュー 68.6%
ニュース要約 CNN/Daily Mail+最新ニュース 記事本文 約30%

最も誤りが多いのはデータからの記述生成(68.6%)で、JSONのnull値や属性の解釈ミスが多発する。要約では、最新ニュース(27.6%)が旧来のCNN/Daily Mail(30.9%)より誤りを増やすことはなかった。論文はこれを、最新ニュースの文脈が短いためと推測している。タスクによって難所が違うことが、単一ドメインの評価では見えないRAGTruthの利点だ。

応答を生成した6モデルと注釈の規模

各事例に対し、次の6モデルが1応答ずつ生成する(1事例=6応答)。GPT-3.5-turbo-0613、GPT-4-0613、Mistral-7B-Instruct、Llama-2-7B-chat、Llama-2-13B-chat、Llama-2-70B-chat(4bit量子化)。全2,965事例で合計17,790応答となり、これがほぼ「1.8万件」の内訳である。ハルシネーションを含む応答は7,664件(43.1%)、注釈スパンは14,289件にのぼる。

注釈の粒度と品質管理

注釈はスパン(単語)単位で行い、応答全体の評価とスパン単位ラベルの二層で記録する。各応答を2名が独立に注釈し、一致率は応答レベルで91.8%、スパンレベルで78.8%。差が大きい場合は第三者がレビューする。判断が割れやすいケース向けに、参照には無いが真かもしれない情報を示すimplicit_true、null値起因の誤りを示すdue_to_nullといった補助ラベルも付与され、利用者が評価基準を用途に合わせて調整できるようになっている。

ハルシネーションの4タイプ

RAGTruthは、参照文と応答のズレを「矛盾」と「事実無根の追加」に大別し、それぞれ検証の難易で2段階に分ける。この4分類が注釈と検出評価の共通言語になる。

タイプ 内容
Evident Conflict(明白な矛盾) 参照と正反対・明らかな事実誤り 数値・氏名の取り違え
Subtle Conflict(微妙な矛盾) 語の置き換えで意味や程度が変わる 含意の異なる用語への差し替え
Evident Baseless Info(明白な事実無根) 参照に無い情報を捏造して追加 根拠のない事実の創作
Subtle Baseless Info(微妙な事実無根) 推測・暗黙知で情報を補う 主観的な前提や一般論の混入

論文の集計では、矛盾よりも事実無根の追加のほうが多く、特に質問応答で目立った。しかも検証が容易な「明白(Evident)」タイプが相当数を占める。参照文を与えるRAG構成でも誤りは消えず、検出の仕組みが要ることをこの分布が示している。

ベンチマーク結果の要点:微調整モデルがGPT-4を上回る

モデル別のハルシネーション頻度

OpenAIの2モデルが明確に低頻度で、なかでもGPT-4-0613が最少(QAでの密度0.06)だった。ここでの「密度」は応答100語あたりの平均ハルシネーションスパン数を指す。Llama-2系はモデルが大きいほど密度が下がる負の相関が見られた一方、各種リーダーボードで強いMistral-7B-Instructはハルシネーションを含む応答数が最多だった。ベンチマークの強さとRAGでの忠実性は別物、という実例である。

検出手法別のF1:微調整モデルがGPT-4を上回る

応答レベルの検出F1(全体)を比べると、既存手法は軒並み苦戦した。最強のプロンプト検出であるGPT-4-turboでもF1 63.4にとどまり、SelfCheckGPT(GPT-3.5)は58.8だった。これに対し、RAGTruthの訓練セットで微調整したLlama-2-13BはF1 78.7で最高性能を記録する。

検出手法 応答レベルF1 スパンレベルF1
プロンプト(GPT-3.5-turbo) 52.9 12.8
プロンプト(GPT-4-turbo) 63.4 28.3
SelfCheckGPT(GPT-3.5) 58.8
微調整 Llama-2-13B 78.7 52.7

難しいのは「どこが誤りか」を当てるスパンレベルで、GPT-4-turboは非ハルシネーション部分を誤検知しがち(適合率18.4%)。微調整モデルでもF1 52.7で、位置特定は依然として未解決の課題として残る。旧来の解説記事にあった「GPT-4相当」という表現は正確ではなく、RAGTruthの本質は小型モデルの微調整でGPT-4のプロンプト検出を超えられる点にある。

RAGTruthの実践的な使い方:検出モデルの学習と応答選択

RAGTruthは「評価するだけ」で終わらない。論文が示した使い方は主に2つある。

  • 検出モデルの学習データにする:テスト用に各タスク150事例(計450事例)を残し、残りでLlama-2-13Bを微調整する(全パラメータ学習、学習率2e-5、1エポック、A100×4)。文脈と応答のペアを入力、ハルシネーションスパンを出力とする。
  • 応答選択でハルシネーションを抑制する:微調整した検出器で複数応答を採点し、誤りの少ない応答を選ぶ。論文の実験では、Llama-2-7B/Mistral-7Bの2応答から「検出スパンなし」を選ぶ運用で、ハルシネーション率が52.4%から19.3%へ(約63%減)低下した。

自社RAGでは、この検出器を回答前の品質ゲートとして組み込む形が現実的だ。生成した回答を検出器に通し、スパンが検出された箇所を再生成・保留・出典明示に回す。プロンプトやRAG構成そのものでの対策はAIハルシネーション対策|プロンプト・RAG・検出APIで誤答を減らす実装手順と組み合わせると効果が高い。

他のハルシネーション評価データセットとの違い

RAGTruthの独自性は3点に集約できる。第一に、プロンプトで誤りを誘発した合成データではなく自然発生の応答を扱う。第二に、事実確認を三つ組に分解する手法や応答単位の判定にとどまらず、スパン単位で位置まで注釈している。第三に、RAG設定に的を絞った大規模注釈である点だ。

ここは立場をはっきりさせておきたい。合成データだけでハルシネーション検出器を評価すると、実運用での誤りの分布とズレるため数値を過信しやすい。RAGを本番投入する前提なら、RAGTruthのような自然発生・RAG特化の評価軸を必ず一つは持っておくべきだ。合成データは量を稼げる利点があるので、両者を併用して費用対効果を取るのが妥当な落としどころになる。

日本語RAGにRAGTruthを使うときの注意点

RAGTruthは英語専用のコーパスであり、日本語RAGの評価にそのまま流用すべきではない。理由は主に2つある。

ひとつは言語構造の違いだ。RAGTruthはスパン(単語)単位の注釈を前提にするが、日本語は英語のような明確な語境界を持たない。そのため注釈基準をそのまま移すと粒度が揺れやすく、日本語では文・節単位の注釈設計を検討したほうが安定する。もうひとつはハルシネーションの現れ方で、敬語・曖昧表現・主語省略に起因する「微妙な矛盾/事実無根」が日本語では増えやすい。英語のラベル分布をそのまま期待値にはできない。

現実的な解は、データを翻訳して使うことではなく、RAGTruthの方法論を日本語で再現することだ。自然生成した日本語応答を集め、4分類の枠組みで自前注釈し、小型モデルを微調整する——この設計思想を借りるのが最も効く。まずはLangflowとは?ノーコードでAIエージェント・RAGを作る使い方とWebhook連携を実例で解説のような構成でRAGを組み、その出力を評価対象にすると着手しやすい。

よくある質問

RAGTruthのデータはどこで入手できますか?

GitHubのParticleMedia/RAGTruthリポジトリで公開されています。研究・商用利用の可否はリポジトリのライセンス表記を必ず確認してください。

RAGTruthは日本語に対応していますか?

いいえ。応答生成の元データ(MS MARCO・Yelp・CNN/Daily Mail)はいずれも英語で、日本語データは含まれません。日本語RAGには方法論の転用が現実的です。

なぜ微調整した小型モデルがGPT-4より検出精度が高いのですか?

RAGTruthがRAG特有の誤りをスパン単位で大量に注釈しているため、これを教師データにするとタスクに特化した検出器を作れるからです。汎用のプロンプト検出(GPT-4-turboでF1 63.4)を微調整Llama-2-13B(F1 78.7)が上回りました。

RAGTruthとHaluEvalは何が違いますか?

HaluEval等は誤りを誘発して作る合成寄りのデータが中心ですが、RAGTruthは6モデルが自然に生成した応答を注釈します。実運用に近い誤りの分布と、位置まで示すスパン注釈が違いです。

RAGの精度評価にそのまま使えますか?

ハルシネーション(忠実性)の評価には直接使えます。ただし検索の適合率や回答の網羅性といったRAG全体の品質は測れないため、他の指標と併用してください。

関連記事

資料請求

RELATED POSTS 関連記事