現役のITエンジニアが、 システム開発の現場で求められる知識を発信
記事検索
公開

RAGの評価指標 ─ 何を・どう測るかを整理する

生成AI関連

はじめに

RAG(Retrieval-Augmented Generation:検索拡張生成)は、生成AI活用の定番構成になりつつあります。社内ドキュメントを検索してAIに回答させる仕組みを構築した、あるいはこれから構築しようとしている方も多いのではないでしょうか。
一方で、RAGを構築した後に直面しがちな課題があります。

  • 「回答がなんとなく合っている気がするが、定量的にどう評価すればいいか分からない」
  • 「パラメータを変更したが、良くなったのか悪くなったのか判断できない」
  • 「そもそも何を測ればいいのか分からない」

RAGを構築するための情報は増えてきましたが、評価するための情報はまだ十分に整理されていないのが現状です。
本記事では、RAG評価の全体像を整理し、代表的な指標を一つずつ解説します。「まず何を測ればいいのか」が分かる状態をゴールとしています。
対象読者は、RAGを構築した、またはこれから構築する初心者〜中級者の方です。RAGの構築手順そのものについては、下記の記事で解説しています。

生成AI関連
Amazon Bedrock Knowledge Base × S3 VectorsでRAGを作って…

RAGの簡単なおさらい

RAGとは、ユーザーの質問に対して外部のドキュメントから関連情報を検索(Retrieve)し、その情報をコンテキストとしてLLMに渡して回答を生成(Generate)させる仕組みです。LLMが学習していない社内固有の情報にも対応できるため、企業でのAI活用で広く採用されています。
RAGの処理は、大きく2つのステップに分かれます。

  1. 検索(Retrieval): ユーザーの質問に関連するドキュメントをベクトル検索等で取得する
  2. 生成(Generation): 取得したドキュメントをコンテキストとしてLLMに渡し、回答を生成する

検索の基盤となるエンベディング(埋め込み表現)の仕組みについては、下記の記事で解説しています。

生成AI関連
類似検索を実現するための「エンベディング」のしくみ

ここで重要なのは、RAGには2つのステップがあるため、評価も2つの軸が必要になるという点です。検索がうまくいっていなければ、いくら優秀なLLMを使っても正しい回答は生成できません。逆に、検索は正確でもLLMが取得した情報を正しく使えなければ、やはり品質は下がります。
この「検索」と「生成」の両面から評価するという考え方が、本記事の基本的な構成です。

RAG評価の全体像

RAGの評価は、大きく3つの観点に分類できます。

観点 評価対象 問い 代表的な指標
検索(Retrieval) 検索コンポーネント 正しいドキュメントを取得できているか? Precision@K, Recall@K, MRR, NDCG
生成(Generation) 生成コンポーネント 取得した情報から正しい回答を生成できているか? Faithfulness, Answer Relevancy
エンドツーエンド システム全体 ユーザーの質問に対する最終的な回答品質は十分か? Context Relevance, Context Precision, Context Recall

検索の評価は、情報検索(Information Retrieval)分野で長く研究されてきた指標がそのまま活用できます(Stanford IR講義資料)。一方、生成の評価はRAG特有の観点が求められ、近年新しい指標やフレームワークが提案されています。
以降、それぞれの指標を順番に見ていきます。

検索(Retrieval)の評価指標

まずは、RAGの第1ステップである「検索」の評価指標です。検索が正しく機能しているかどうかは、RAG全体の品質を左右する土台となります。

混同行列で考える検索の評価

検索結果の評価は、実は2クラス分類と同じ枠組みで考えることができます。各ドキュメントを「ユーザーの質問に関連があるか/ないか」×「検索で取得したか/しなかったか」で分類すると、以下の4象限になります。

関連あり(正解) 関連なし
取得した TP(正しく取得) FP(ノイズ)
取得しなかった FN(取りこぼし) TN(正しく除外)
  • TP(True Positive): 質問に関連するドキュメントを正しく取得できた
  • FP(False Positive): 質問に関連しないドキュメントを誤って取得してしまった(ノイズ)
  • FN(False Negative): 質問に関連するドキュメントを取得できなかった(取りこぼし)
  • TN(True Negative): 質問に関連しないドキュメントを正しく取得しなかった

混同行列の基本概念(Positive/Negativeの設計、True/Falseの意味)については、下記の記事で詳しく解説しています。本記事では深入りせず、RAG検索の文脈での使い方に焦点を当てます。

生成AI関連
生成AIの精度を評価するための指標入門(2クラス分類編)

この4象限から、次の2つの指標が導かれます。

Precision@K(適合率)

取得した上位K件のドキュメントのうち、実際に関連があるドキュメントの割合です。


Precision@K = 関連ありと判定された取得文書数 / K

計算例: 上位5件を取得し、そのうち3件が関連文書だった場合


Precision@5 = 3 / 5 = 0.6

Precision@Kが高いほど、「取得した文書にノイズが少ない」ことを意味します。なお、Kの値はRAGシステムの設計に依存します。多くのRAGシステムではK=3〜10程度で検索結果を取得するため、その範囲で評価するのが一般的です。

Recall@K(再現率)

全関連ドキュメントのうち、上位K件で取得できた割合です。


Recall@K = 上位K件に含まれる関連文書数 / 全関連文書数

計算例: 全体で関連文書が4件あり、上位5件の取得結果に3件が含まれていた場合


Recall@5 = 3 / 4 = 0.75

Recall@Kが高いほど、「関連文書の取りこぼしが少ない」ことを意味します。
なお、Precision@KとRecall@Kにはトレードオフの関係があります。Kを大きくすれば(多くの文書を取得すれば)Recallは上がりやすいですが、その分ノイズも増えてPrecisionは下がりやすくなります。逆にKを小さくすればPrecisionは上がりますが、関連文書を取りこぼしてRecallが下がります。

ビジネスでの使い分け

Precision(適合率)とRecall(再現率)のどちらを重視するかは、ビジネス要件によって変わります。

重視する指標 適したケース 理由
Precision重視 社内チャットボット、顧客向けFAQ ノイズの多い回答はユーザー体験を損なう。関係ない情報が混ざると信頼を失う
Recall重視 法務・コンプライアンス調査、障害調査 見逃しが致命的。多少ノイズが増えても、関連情報を網羅的に取得したい
バランス 一般的な社内ナレッジ検索 適度な精度と網羅性の両立が求められる

順序を考慮した検索評価指標

Precision@KやRecall@Kは「取得したかどうか」を見る指標ですが、実際のRAGでは取得結果の順序も重要です。関連文書が1位にあるのと5位にあるのとでは、回答品質に差が出ます。ここでは、順序を考慮した2つの指標を紹介します。

MRR(Mean Reciprocal Rank)

MRRは、最初の関連文書が検索結果の何番目に現れるかを評価する指標です。
複数のクエリに対して検索を実行し、各クエリで最初に関連文書が現れた順位の逆数を平均します。


Reciprocal Rank = 1 / (最初の関連文書の順位)
MRR = 全クエリのReciprocal Rankの平均

計算例: 3つのクエリで検索を実行した結果

クエリ 最初の関連文書の順位 Reciprocal Rank
クエリ1 1位 1/1 = 1.0
クエリ2 3位 1/3 ≒ 0.333
クエリ3 2位 1/2 = 0.5

MRR = (1.0 + 0.333 + 0.5) / 3 ≒ 0.611

MRRは「1件だけ正解を見つければいい」ケースに向いています。例えば、社内FAQで「この質問に対する最適な回答が1つあれば十分」という場面では、最初の関連文書が上位にあるかどうかが最も重要です。
一方で、MRRには「最初の1件しか見ない」という限界もあります。2位以降に関連文書が複数あっても評価に反映されません。複数の関連文書を総合的に評価したい場合は、次に紹介するNDCGが適しています。

NDCG(Normalized Discounted Cumulative Gain)

NDCGは、関連文書が上位にどれだけ集まっているかを評価する指標です。MRRが「最初の1件」に注目するのに対し、NDCGは取得結果全体の順序の質を評価します。
NDCGの考え方を段階的に説明します。
1. 関連度スコア: 各文書に関連度を数値で付与します(例:関連度なし=0, やや関連=1, 非常に関連=2)。
2. DCG(Discounted Cumulative Gain): 順位が下がるほど割り引く(Discount)ことで、上位の関連文書を高く評価します。


DCG@K = Σ (関連度スコア_i / log2(i + 1))   ※ i = 1, 2, ..., K

3. NDCG: DCGを理想的な並び順のDCG(IDCG)で正規化し、0〜1の範囲にします。


NDCG@K = DCG@K / IDCG@K

なお、DCGの計算式には複数の流派があり、gainの部分を rel_i ではなく 2^{rel_i} – 1 とする定義も広く使われています(Wikipedia: Discounted cumulative gain)。本記事では直感的に理解しやすい rel_i 版を採用しています。
計算例: 上位5件の検索結果の関連度が [2, 0, 1, 0, 1] だった場合


DCG@5 = 2/log2(2) + 0/log2(3) + 1/log2(4) + 0/log2(5) + 1/log2(6)
      = 2/1.0 + 0/1.585 + 1/2.0 + 0/2.322 + 1/2.585
      = 2.0 + 0 + 0.5 + 0 + 0.387
      = 2.887

理想的な並び順 [2, 1, 1, 0, 0] の場合:


IDCG@5 = 2/log2(2) + 1/log2(3) + 1/log2(4) + 0/log2(5) + 0/log2(6)
       = 2.0 + 0.631 + 0.5 + 0 + 0
       = 3.131

NDCG@5 = 2.887 / 3.131 ≒ 0.922

NDCGは「複数の関連文書をバランスよく上位に出したい」ケースに向いています。例えば、技術的な質問に対して複数のドキュメントを参照して回答を組み立てるRAGシステムでは、関連度の高い文書が上位に集まっているかどうかが回答品質に直結します。
NDCGが1.0に近いほど、理想的な順序に近い検索結果が得られていることを示します。上の計算例では0.922なので、ほぼ理想に近い順序で検索できていると言えます。

検索評価指標の比較

ここまで紹介した4つの指標を比較します。

指標 順序を考慮 複数段階の関連度 特徴 向いているケース
Precision@K 取得文書のノイズの少なさを測る ノイズを減らしたい場面
Recall@K 関連文書の網羅性を測る 取りこぼしを減らしたい場面
MRR 最初の関連文書の順位を測る 1件の正解で十分な場面
NDCG 上位の関連文書の集中度を測る 複数の関連文書が必要な場面

実務では、まずPrecision@KとRecall@Kで検索の基本性能を確認し、順序が重要な場面ではMRRやNDCGを追加で確認するのが一般的です。

生成(Generation)の評価指標

次に、RAGの第2ステップである「生成」の評価指標です。検索で正しいドキュメントを取得できても、LLMがその情報を適切に使って回答を生成できなければ意味がありません。
生成の評価では、主に以下の2つの観点が重要です。なお、RAGAS論文(Shahul Es et al., 2023)では、これらに加えてContext Relevance(取得したコンテキストが質問にどれだけ関連・集中しているか)も中心的な指標として位置づけられています。Context Relevanceは後述するContext Precisionと近い概念で、TruLensフレームワークでも「RAG Triad」の一角として採用されています。

Faithfulness(忠実性)

Faithfulnessは、生成された回答が、取得したコンテキスト(検索結果)に基づいているかを測る指標です(Ragas公式ドキュメント)。回答に含まれる主張(claim)を分解し、それぞれがコンテキストから推論可能かどうかを判定します。


Faithfulness = コンテキストで裏付けられる主張の数 / 回答中の主張の総数

なぜ重要か: RAGの大きな利点の一つは、LLMの回答をドキュメントに基づかせることで、ハルシネーション(幻覚)を抑制できる点です。Faithfulnessが低い場合、LLMがコンテキストにない情報を「でっち上げて」回答している可能性があります。
具体例:
コンテキスト(検索で取得した情報):

「当社の年間休日は125日です。夏季休暇は3日間です。」

LLMの回答:

「当社の年間休日は125日で、夏季休暇は3日間、冬季休暇は5日間です。」

この回答には3つの主張がありますが、「冬季休暇は5日間」はコンテキストに含まれていません。


Faithfulness = 2 / 3 ≒ 0.667

Faithfulnessは1.0に近いほど、コンテキストに忠実な回答が生成されていることを示します。この指標は、RAGAS論文(Shahul Es et al., 2023)で提案されたRAG評価の中核的な指標の一つです。

Answer Relevancy(回答の関連性)

Answer Relevancyは、生成された回答がユーザーの質問にどれだけ的確に答えているかを測る指標です。
Faithfulnessとの違いを整理すると次のようになります。

指標 評価する対象 問い
Faithfulness 回答 ↔ コンテキスト 回答はコンテキストに基づいているか?
Answer Relevancy 回答 ↔ ユーザーの質問 回答はユーザーの質問に答えているか?

コンテキストに忠実であっても、ユーザーの質問に答えていなければ意味がありません。例えば、「有給休暇の申請方法」を聞いているのに「有給休暇の残日数の確認方法」を回答している場合、Faithfulnessは高くてもAnswer Relevancyは低くなります。
Answer Relevancyの測定方法はいくつかありますが、RAGASフレームワーク(Ragas公式ドキュメント)では、回答から逆に質問を生成し、元の質問との意味的な類似度(コサイン類似度)を計算する方法が採用されています。回答が質問に的確に答えているほど、逆生成された質問は元の質問に近くなるという考え方です。

Context Precision / Context Recall

この2つの指標は、検索と生成をつなぐ重要な指標です。検索の指標(Precision@K/Recall@K)が「関連文書を取得できたか」を見るのに対し、Context Precision/Recallは「取得した文書が実際の回答生成にどれだけ役立ったか」を見ます。

Context Precision(コンテキストの適合率)

取得したコンテキストのうち、関連するコンテキストがどれだけ上位に集中しているかを測る指標です。単に関連コンテキストの割合を見るだけでなく、順位を考慮する点がPrecision@Kとの違いです。
RAGASフレームワーク(Ragas公式ドキュメント)では、各順位での適合率(Precision@k)を関連コンテキストの位置で重み付けして平均する形で定義されています。


Context Precision@K = (1 / 関連コンテキスト数) × Σ (Precision@k × v_k)
※ v_k = k番目のコンテキストが関連なら1、そうでなければ0
※ Precision@k = 上位k件中の関連コンテキスト数 / k

具体例: 「当社の育児休暇制度について教えてください」という質問に対して、5件のドキュメントを取得したとします。

順位 内容 関連性 Precision@k
1 育児休暇の取得条件と期間 1/1 = 1.0
2 介護休暇の制度概要 —(スキップ)
3 育児休暇中の給与・手当 2/3 ≒ 0.667
4 会社の沿革 —(スキップ)
5 育児休暇の申請手順 3/5 = 0.6

Context Precision@5 = (1.0 + 0.667 + 0.6) / 3 ≒ 0.756

同じ3件の関連文書でも、1位・2位・3位に集中していればスコアは高くなり、下位に散らばっていればスコアは低くなります。この「上位集中度」を測れる点が、単純な割合では捉えられないContext Precisionの強みです。
なお、RAGASフレームワークでは、参照回答(ground truth)と比較する Context Precision と、LLMの生成回答と比較する Context Utilization が区別されています。参照回答を用意できない場合は後者を使います。
Context Precisionが低い場合、関連するドキュメントが下位に埋もれている、またはノイズが多いことを意味します。ノイズの多いコンテキストはLLMの回答品質を下げる原因になるため、検索精度の改善やリランキングの導入が必要です。

Context Recall(コンテキストの再現率)

理想的な回答に必要な情報が、取得したコンテキストにどれだけ含まれていたかを測ります。Context Precisionと異なり、この指標には参照回答(ground truth)が必要です(Ragas公式ドキュメント)。


Context Recall = 正解に含まれる主張のうちコンテキストで裏付けられる数 / 正解に含まれる主張の総数

具体例: 同じ育児休暇の質問で、あらかじめ用意した参照回答(ground truth)には以下の4つの情報が含まれるべきだったとします。

  1. 取得条件(入社1年以上) → コンテキストに含まれている ○
  2. 休暇期間(最長2年) → コンテキストに含まれている ○
  3. 給与・手当の情報 → コンテキストに含まれている ○
  4. 復職後の時短勤務制度 → コンテキストに含まれていない ✕

Context Recall = 3 / 4 = 0.75

Context Recallが低い場合、正しい回答を生成するために必要な情報が検索で取得できていないことを意味します。この場合、検索コンポーネントの改善(チャンク分割の見直し、Embeddingモデルの変更、メタデータフィルタリングの導入など)が必要です。

Precision@K/Recall@K との違い

これら2つの指標は、検索(Retrieval)の指標であるPrecision@K/Recall@Kと名前が似ていますが、評価の観点が異なります。

指標 何を見ているか 基準
Precision@K / Recall@K 取得した文書が「質問に関連するか」 文書レベルの関連性
Context Precision / Recall 取得した文書が「回答生成に役立ったか」 回答生成への貢献度

例えば、質問に関連する文書を取得できていても(Precision@Kが高い)、その文書の内容がLLMの回答に十分活用されなければ、Context Precisionは低くなります。両者を組み合わせることで、「検索は良いが生成で情報を活かせていない」「そもそも検索で必要な情報を取れていない」といった問題の切り分けが可能になります。

従来のNLP指標とその限界

RAGの評価指標を紹介してきましたが、自然言語処理(NLP)の分野には、以前から文章の類似度を測る指標が存在します。ここでは代表的な3つの指標と、RAG評価における限界を整理します。

BLEU / ROUGE

BLEUとROUGEは、生成されたテキストと参照テキスト(正解)をn-gram(連続するn個の単語)の一致度で比較する指標です。

指標 概要 もともとの用途
BLEU 生成テキスト中のn-gramが参照テキストにどれだけ含まれるか(Precision寄り) 機械翻訳の評価
ROUGE 参照テキスト中のn-gramが生成テキストにどれだけ含まれるか(Recall寄り) 文書要約の評価

これらの指標はもともと機械翻訳や文書要約の評価のために開発されたもので、n-gramの一致度をもとに0〜1のスコアを算出します。スコアが1.0に近いほど、参照テキストとの一致度が高いことを示します。
限界: これらの指標は表面的な単語の一致を見ているため、以下の場面では正しく評価できません。

  • 言い換え: 「会議は10時に始まります」と「10時から会議がスタートします」は同じ意味ですが、n-gramの一致度は低くなります
  • 語順の違い: 語順が異なるだけで意味が同じ文を低く評価してしまいます
  • 意味的な正しさ: 単語が一致していても、文全体の意味が異なるケースを捉えられません

RAGの回答は自然言語で生成されるため、正解と同じ意味でも異なる表現で回答されることがほとんどです。このため、BLEUやROUGEだけではRAGの回答品質を正確に測ることが難しいのが実情です。

BERTScore

BERTScoreは、BLEUやROUGEの限界を補うために提案された指標で、Embeddingベースの意味的類似度で文章を比較します。
単語レベルのn-gram一致ではなく、BERTなどの事前学習済み言語モデルを用いてトークン(単語)ごとに文脈を考慮したベクトル表現を生成し、候補文と参照文の間でトークン同士の最適なマッチングを行って類似度を計算します(Zhang et al., 2020)。文全体を1つのベクトルにまとめるのではなく、トークン単位で照合する点が特徴で、Precision・Recall・F1の形でスコアが算出されます。
これにより、言い換えや語順の違いにもある程度対応できます。例えば、「会議は10時に始まります」と「10時から会議がスタートします」のように、表面的な単語は異なっても意味が同じ文については、BERTScoreではBLEUやROUGEよりも高いスコアが得られます。ただし、BERTScoreも万能ではなく、文脈に依存する微妙なニュアンスの違いを完全に捉えることは難しい場合があります。
エンベディングの基本については、下記の記事で解説しています。

生成AI関連
類似検索を実現するための「エンベディング」のしくみ

RAG評価における注意点

これらの従来指標には共通の前提があります。それは、参照テキスト(正解)が必要という点です。
RAGの実運用では、質問と正解のペアを大量に用意することが難しい場面も多くあります。社内ナレッジのように正解が明確に定義しづらいケースや、質問のバリエーションが膨大で網羅的な正解データを作りきれないケースが典型的です。
こうした「正解データなしでも評価したい」という課題に対するアプローチとして、次のセクションで紹介する「LLM-as-a-Judge」が注目されています。

評価を実践するためのアプローチ

ここまで様々な指標を紹介してきましたが、「実際にどう評価すればいいのか」が気になる方も多いと思います。ここでは、評価を実践するための3つのアプローチを紹介します。

LLM-as-a-Judge(LLMによる自動評価)

LLM-as-a-Judgeとは、LLM自身に「審判役」をさせる評価アプローチです。
従来の評価では、人間の評価者が回答を読み、品質を判定する必要がありました。しかし、これには時間とコストがかかり、大量のデータを評価するにはスケールしません。
LLM-as-a-Judgeでは、評価対象の回答をLLMに渡し、「この回答はコンテキストに基づいているか(Faithfulness)」「この回答は質問に答えているか(Answer Relevancy)」といった観点でスコアリングさせます。
イメージとしては、以下のようなプロンプトをLLMに渡すことで、自動的に評価スコアを得ます。


以下の「質問」「コンテキスト」「回答」を確認し、回答がコンテキストの内容に基づいているかを
1(全く基づいていない)〜5(完全に基づいている)のスケールで評価してください。

【質問】{ユーザーの質問}
【コンテキスト】{検索で取得したドキュメント}
【回答】{LLMが生成した回答}

このように、LLMが「評価者」として機能することで、人間が一件ずつ確認する必要がなくなります。
メリット:

  • 正解データが不要: 参照テキストがなくても評価できる(FaithfulnessやAnswer Relevancyの場合)
  • スケーラブル: 大量の質問・回答ペアを短時間で評価できる
  • 多様な観点: プロンプトを変えることで、様々な観点から評価できる

注意点:

  • 評価LLM自体のバイアス: 長い回答を高く評価しやすい、自分が生成した回答を高く評価しやすい、などの傾向がある
  • コスト: 評価のためにLLM APIの呼び出しが必要になるため、大量評価ではコストがかかる
  • 評価基準の再現性: プロンプトの書き方によって評価結果が変わる場合がある

なお、Zheng et al. (2023) のMT-benchにおける検証では、GPT-4をジャッジとして使用した場合に人間の評価者との一致率が約80%以上と報告されています(Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena)。ただし、この一致率は使用するジャッジモデルの性能や評価対象によって変動するため、自身のユースケースで精度を確認することが重要です。

代表的な評価フレームワーク

RAG評価の指標を一つずつ手動で実装するのは大変です。そこで、これらの指標をまとめて計算できるフレームワークがいくつか公開されています。

フレームワーク 特徴 主な指標
RAGAS 論文ベースのオープンソースフレームワーク。RAG評価に特化した指標を網羅 Faithfulness, Answer Relevancy, Context Relevance, Context Precision, Context Recall
TruLens フィードバック関数による評価。評価結果のダッシュボード機能が充実 Groundedness, Answer Relevance, Context Relevance
DeepEval テストフレームワークとして設計。pytest風のインターフェースで評価を実行 Faithfulness, Answer Relevancy, Hallucination, Bias 等

RAGASは、Shahul Es et al. (2023) の論文「RAGAS: Automated Evaluation of Retrieval Augmented Generation」で提案されたフレームワークで、本記事で紹介したFaithfulness・Answer Relevancy・Context Precision・Context Recallに加え、Context Relevanceなどの指標も一括で評価できます。
各フレームワークの使い方やコード例は本記事のスコープ外としますが、まずは評価指標の意味を理解した上で、自分のユースケースに合ったフレームワークを試してみるのがおすすめです。
なお、どのフレームワークを選ぶかは、以下の観点で判断するのが良いでしょう。

  • 評価指標の網羅性: 自分が測りたい指標がサポートされているか
  • 導入の容易さ: 既存のRAGパイプラインへの組み込みやすさ
  • 可視化・レポート機能: 評価結果を分析・共有しやすいか

人間による評価

自動指標やLLM-as-a-Judgeでは捉えきれない品質要素もあります。

  • トーンや読みやすさ: ビジネス向けの回答として適切な文体か
  • 実用性: 回答を受け取ったユーザーが、実際に行動に移せる内容か
  • ニュアンスの正しさ: 文字面は合っていても、微妙なニュアンスが違うケース

これらは最終的に人間の判断が必要です。特に、ユーザーが実際にRAGの回答を受け取ったときに「役に立った」と感じるかどうかは、自動指標だけでは測りきれません。
ただし、全件を人間が評価するのはコストが高いため、開発フェーズに応じた使い分けが現実的です。

フェーズ 評価手法 目的
開発初期 自動指標(Precision, Recall等) パラメータ調整の高速なイテレーション
中期 LLM-as-a-Judge スケーラブルな品質チェック
リリース前 人間による評価 最終的な品質保証
運用中 人間による定期サンプリング 品質の継続的な監視

精度に対する考え方(何をどこまで求めるか、人間の判断とAIの役割分担など)については、下記の記事で整理しています。

生成AI関連
生成AIに精度を求めすぎない

まとめ

本記事では、RAGの評価指標を体系的に整理しました。ポイントを振り返ります。

  • RAGの評価は「検索」と「生成」の両面から測る必要がある
  • 検索の評価は、混同行列ベースの指標(Precision@K / Recall@K)が出発点
  • 順序を考慮した指標(MRR / NDCG)で、より実践的な評価が可能
  • 生成の品質はFaithfulness(忠実性)Answer Relevancy(回答関連性)で測定する
  • 検索と生成をつなぐContext Precision / Context Recallも重要
  • LLM-as-a-Judge評価フレームワーク(RAGAS等)を活用すれば、効率的に評価を回せる
  • 従来のNLP指標(BLEU/ROUGE/BERTScore)は参考になるが、RAG評価では限界がある

「RAGを構築したが、どう評価すればいいか分からない」という方は、まずPrecision@KとRecall@Kで検索の品質を確認し、FaithfulnessとAnswer Relevancyで生成の品質を確認するところから始めるのが良いでしょう。
大切なのは、「まず測ること」が改善の第一歩だということです。完璧な評価体制を最初から整える必要はありません。測れる指標から測り始め、改善のサイクルを回していくことが、RAGの品質向上への近道です。
また、評価指標はあくまで「改善のための道具」です。指標のスコアを上げること自体が目的ではなく、最終的にはユーザーにとって役立つ回答を返せるRAGシステムを構築することがゴールです。指標を活用しながら、継続的にRAGの品質を高めていきましょう。

生成AI活用支援サービスのご紹介

Tech Funでは、お客様のフェーズに合わせ、生成AI活用に向けた支援を3つのパックでご提供しています。

  1. 無料診断パック:業務・プロセスの現状を無料で診断し、生成AI活用の可能性をレポートします。
  2. 検証(PoC)パック:診断で有効性が確認された業務を対象に、プロトタイプ構築を支援します。
  3. コンサルティングサービス:生成AI導入戦略の策定から運用体制構築までを包括的に支援します。

生成AIに限らず、Web・業務システム開発やインフラ設計など、技術領域を問わずご相談を承っています。「何から始めれば良いか分からない」という段階でも構いませんので、ぜひお気軽にお問い合わせください。

執筆・編集

Tech Fun Magazine R&Dチーム
Tech Funの生成AI研究に携わるエンジニアが、最新のAIモデル動向やプロンプト設計、実業務への応用手法など、生成AIに特化した知見を執筆・編集しています。
モデル評価や業務シナリオに応じたAI活用設計など、日々のR&D活動で得られる実践的なノウハウをわかりやすく紹介します。

ARTICLE
生成AI関連記事一覧

生成AI関連

RAGの評価指標 ─ 何を・どう測るかを整理する

生成AI関連

Guardrails for Amazon Bedrock …

生成AI関連

生成AIに精度を求めすぎない

生成AI関連

Amazon Bedrock Knowledge Baseで…

生成AI関連

はじめての人のための:AI・機械学習・統計・生成AI・AGI…

生成AI関連

Amazon Bedrock Knowledge Base …

生成AI関連

NotebookLMで議事録活用【活用編】

生成AI関連

生成AIシステムへのガードレール導入のポイント

生成AI関連

NotebookLMで議事録活用【生成編】

記事一覧を見る