RAGの評価方法|Ragasの評価指標とボトルネック特定・精度改善
最終更新日:2026/10/05
RAG評価とは、検索で必要な根拠を取れたか、生成がその根拠に忠実かを分けて測ることです。正解データを用意できるかどうかで、使える指標が変わります。RAG構築案件に参画したエンジニア向けに、Ragasの評価指標・ボトルネックの特定・精度改善の進め方を整理します。
先に結論
RAGの評価は検索(retrieval)と生成(generation)を分けて測る。総合スコア1本では、どこを直せばよいか判断できません
中心になるのは4指標。検索側がContext Precision / Context Recall、生成側がFaithfulness / Response Relevancyです
正解データ(reference)があるかどうかで使える指標が変わります。Faithfulness と Response Relevancy は正解なしで測れます
評価セットは、小〜中規模のPoCや初期運用なら30〜50問程度から始め、実ログが貯まった段階で入れ替えると回しやすくなります
改善は「前処理・チャンク設計 → 検索 → 生成」の順に手を入れると、原因の切り分けがぶれにくくなります
この記事でわかること
RAGの評価指標が何を測っているか、どの指標に正解データが必要か
Ragasの評価データ形式と、実行までの流れ
スコアの組み合わせからボトルネックを特定する判断表
精度改善で先に着手すべき順番と、効果が出にくい打ち手
RAG評価まわりがフリーランス案件でどう扱われるか
対象は、RAGの仕組みをひととおり理解していて、これから評価と改善を任される立場のエンジニアです。RAGそのものの仕組みから確認したい場合は、RAGとは?仕組み・活用事例・導入メリットをわかりやすく解説を先に読んでおくと、この記事の前提が揃います。
なお、LLM全般の評価設計(オフライン評価とオンライン評価の使い分け、LLM-as-a-Judgeの仕組み、品質保証プロセスの組み立て)はLLM評価(Evals)とは|LLM-as-a-Judgeと品質保証の実務まで解説で扱っています。この記事はそこから踏み込んで、RAG固有の検索・回答の評価と改善だけを対象にします。
目次
RAGの評価は「検索」と「生成」を分けて測る
RAG評価の主要指標|Ragasで何が測れるか
Ragasの使い方|データ形式と実行の流れ
評価データセットの作り方|件数と質問の集め方
スコアからボトルネックを特定する
RAGの精度改善|効果が出やすい順に進める
評価ツールの選び方|Ragas以外の選択肢
RAG評価でつまずきやすい点と対策
RAG評価スキルはフリーランス案件でどう扱われるか
まとめ
よくある質問
RAGの評価は「検索」と「生成」を分けて測る
結論として、RAGの品質劣化は検索と生成のどちらでも起きるため、評価も2つに分けないと原因が特定できません。
処理が2段階なら、壊れる場所も2つある
RAGは「質問に関連する文書を探す」工程と、「探した文書をもとに回答を書く」工程に分かれます。前者が失敗すれば、必要な根拠が手元にないまま回答が作られます。後者が失敗すれば、根拠はあるのに回答が文書から離れていきます。
症状はどちらも「回答が間違っている」で同じです。ところが打ち手はまったく違います。検索が原因なら埋め込みモデルやチャンク設計を触ることになり、生成が原因ならプロンプトや出力制約を触ることになります。
総合スコア1本では改善が止まる
「正答率72%」のような単一スコアは、報告には向きますが改善には使えません。72%の内訳が「検索で根拠を拾えなかった20%」なのか「根拠はあるのに回答が逸脱した20%」なのかで、次の一手が変わるためです。
評価設計の段階で、検索側の指標と生成側の指標を必ず別々に出しておきます。ここを分けておくと、改善の効果も「どの指標が動いたか」で説明できます。
評価は3つの層で考える
RAGの評価は、検索・生成・エンドツーエンドの3層で整理すると見通しが良くなります。
層 | 測るもの | 代表的な指標 |
|---|---|---|
検索(retrieval) | 必要な文書を、上位に、過不足なく拾えたか | Context Precision、Context Recall、Recall@k、MRR、NDCG |
生成(generation) | 拾った文書に忠実か、質問に答えているか | Faithfulness、Response Relevancy |
エンドツーエンド | ユーザーから見た最終回答の品質 | 正答率、人手評価、業務KPI |
検索側は情報検索の古典的な指標(Recall@k、MRR、NDCGなど)がそのまま使えます。生成側はLLMを使った採点が中心になります。
ミニFAQ:検索指標だけ見ていれば足りますか。
足りません。検索が完璧でも、回答が文書にない内容を足してしまう(ハルシネーション)ケースは残ります。Faithfulnessのような生成側の指標を必ず併用してください。
RAG評価の主要指標|Ragasで何が測れるか
結論から言うと、まずは4指標に絞って回すのが現実的です。RagasはRAG評価に特化したオープンソースのフレームワークで、利用可能な指標の一覧が公式ドキュメントに整理されています。
検索側の2指標
Context Precision は、検索した文脈のうち関連するものを上位にランクできているかを測ります。スコアが高いほど、上位に無関係な文書が混ざりにくい状態です。公式ドキュメントの定義では、各位置でのPrecision@kを算出し、その平均を取る形です。ノイズが上位に混ざるとスコアが落ちます。
Context Recall は、回答に必要な情報が検索結果に含まれていたかを測ります。こちらは「拾い漏れ」の指標です。Recallが低いまま生成側をいくら調整しても、根拠がないので回答は良くなりません。
生成側の2指標
Faithfulness は、回答が検索した文脈にどれだけ忠実かを測ります。回答を個別の主張(claim)に分解し、各主張が文脈から導けるかを検証して、支持された主張の割合をスコアにします。全主張が支持されれば1.0、半分なら0.5です。
Response Relevancy は、回答が質問の意図に沿っているかを測ります。執筆時点では、旧名称の answer_relevancy から Response Relevancy に変更されています。計算方法が独特で、生成された回答から逆に質問を複数作り、元の質問との埋め込みのコサイン類似度を平均します。事実の正しさは測っていない点に注意してください。回答が的外れでも内容が整合していれば高く出ます。
補助的に使う指標
指標 | 測るもの | スコアの向き | reference |
|---|---|---|---|
Context Entities Recall | 固有名詞など、エンティティ単位での回収率 | 高いほど良い | 必要 |
Noise Sensitivity | 誤った主張を出してしまう頻度 | 低いほど良い | 必要 |
Noise Sensitivityだけは向きが逆なので、ダッシュボードに並べるときは要注意です。無関係な文書に引きずられた誤りを見たい場合は、irrelevantモードを指定します。
正解データが必要かどうかの早見表
評価を設計するとき、最初に効いてくるのが「正解(reference)を用意できるか」です。
指標 | 主に測る層 | reference(正解) | 備考 |
|---|---|---|---|
LLMContextPrecisionWithReference | 検索 | 必要 | 正解回答を基準に関連性を判定 |
LLMContextPrecisionWithoutReference | 検索 | 不要 | 生成した回答を基準に判定 |
NonLLMContextPrecisionWithReference | 検索 | 必要(参照文脈) | 文字列類似度ベースでLLM不要 |
LLMContextRecall | 検索 | 必要 | 拾い漏れの検出 |
Faithfulness | 生成 | 不要 | 文脈との整合のみを見る |
Response Relevancy | 生成 | 不要 | 質問意図との一致のみ |
Noise Sensitivity | 横断 | 必要 | 低いほど良い |
正解を作る工数が取れない立ち上げ期は、reference不要の3つ(LLMContextPrecisionWithoutReference、Faithfulness、Response Relevancy)から始める構成が取りやすくなります。NonLLM系はLLMを呼ばないため、文脈の照合が文字列で足りるケースではコストを抑えられます。
なお、Ragasは更新の速いOSSです。指標名・クラス名・必要なフィールドはバージョンによって変わることがあるため、実装時は利用中のバージョンの公式ドキュメントもあわせて確認してください。本記事の記載は執筆時点の公開ドキュメントに基づいています。
Ragasの使い方|データ形式と実行の流れ
結論として、Ragasの導入で手間がかかるのは実行部分ではなく、評価データを揃える部分です。実行自体は数行で終わります。
評価データは4つのフィールドで持つ
公式のRAG評価ガイドでは、評価データを次のフィールドで持ちます。
フィールド | 内容 |
|---|---|
user_input | ユーザーからの質問 |
retrieved_contexts | その質問で検索された文脈(複数) |
response | RAGが生成した回答 |
reference | 期待される正解(任意) |
ポイントは、retrieved_contexts を必ず記録しておくことです。本番のログに質問と回答しか残していないと、後から検索側の評価ができません。RAGを作る段階で、検索結果をログに落とす設計にしておいてください。
実行はデータセット化して評価関数に渡すだけ
辞書のリストを EvaluationDataset.from_list でデータセットに変換し、evaluate 関数に指標のリストと評価用LLMを渡します。評価用LLMは LangchainLLMWrapper などでラップして指定します。結果は指標ごとに0.0〜1.0のスコアで返ります。
指標の多くはLLMを使って採点するため、評価そのものにAPIコストがかかります。質問数 × 指標数 × 内部の呼び出し回数だけLLMが動く、と見積もっておくと予算を外しません。指標によっては1問あたり複数回の判定が走ります。式だけで見積もらず、まず10件程度の小さいサンプルで実測し、そこから比例させるのが確実です。
正解データがないときの進め方
referenceを用意できない場合でも、評価は始められます。
reference不要の指標(Faithfulness、Response Relevancy、WithoutReference版のContext Precision)だけで回す
低スコアの質問を人手で見て、そこだけ正解を作る
作った正解を評価セットに戻し、Context Recallを計測できる範囲を広げる
いきなり全件の正解を作ろうとすると、たいてい途中で止まります。低スコアから順に正解を作るほうが、同じ工数で得られる情報が多くなります。合成データで評価セットを作る仕組みもRagas側に用意されているので、テストデータ生成のドキュメントも確認しておくとよいでしょう。
ミニFAQ:評価用のLLMは、本番と同じモデルでよいですか。
別系統のモデルを使うほうが望ましい、というのが原則です。同じモデルだと自己採点に近くなり、甘く出る懸念があるためです。ただしコストや利用可能なモデルの制約で難しい場合は、同一モデルでも運用できます。その場合は、サンプルを人手で突き合わせて採点の傾向を確認してから使ってください。
評価データセットの作り方|件数と質問の集め方
結論として、最初から大規模に作る必要はありません。30〜50問あれば、指標の傾向と大きなボトルネックは見えてきます。
件数は「毎週回せる規模」で決める
評価は1回で終わりません。改善のたびに回すものなので、1回の実行が現実的な時間とコストで終わる件数に抑えます。LLM採点を伴う評価は件数に比例してコストが増えるため、500問を月1回より、50問を週1回のほうが改善サイクルは速く回ります。
本番リリース前の最終確認など、節目では件数を増やした大きめのセットを別に用意する二段構えが扱いやすい形です。
質問は3つのソースから集める
実際の利用ログ:最優先です。想定質問と実際の質問は、言い回しも粒度もずれます
業務担当者へのヒアリング:導入先の現場が「これに答えてほしい」と思っている質問を拾います
文書からの合成:カバレッジを埋める用途。ドキュメントから自動生成した質問で、手薄な領域を補います
この3つを混ぜておくと、評価セットが特定の質問パターンに偏りにくくなります。
正解の作り方は先に合意する
正解の粒度がばらつくと、スコアも当然ばらつきます。着手前に次の点を決めておいてください。
正解は「文書からの抜粋」か「要約された回答文」か
複数の文書にまたがる質問を、どう正解として書くか
「答えられない」が正しい質問(文書に情報がない質問)を含めるか
3つめは見落とされがちですが重要です。情報がないときに素直に「わからない」と返せるかは、業務システムでは評価ポイントになります。
スコアからボトルネックを特定する
ここがRAG評価の核心です。指標を4つ並べたら、組み合わせで原因を切り分けます。
Context Recall | Context Precision | Faithfulness | Response Relevancy | 推定ボトルネック | 先に試す打ち手 |
|---|---|---|---|---|---|
低 | — | — | — | 検索で根拠を拾えていない | チャンク設計の見直し、埋め込みモデル変更、top-k を増やす、クエリ書き換え |
高 | 低 | — | — | 根拠は拾えたがノイズが混ざる | リランキング導入、top-k を絞る、メタデータでの絞り込み |
高 | 高 | 低 | — | 文脈から逸脱した回答 | プロンプトで出典引用を必須化、生成モデルの変更、温度を下げる |
高 | 高 | 高 | 低 | 質問意図とのズレ | 質問の解釈処理、回答フォーマットの指定、マルチターンの文脈引き継ぎ |
高 | 高 | 高 | 高(なのに体感が悪い) | 評価セットが実利用とずれている | 実ログから質問を入れ替える、業務KPIと突き合わせる |
公開されている改善事例や実務で見かけるのは、1行目と2行目のパターンが多い印象です。そのため不調はまず検索側から確認する進め方が取られやすくなります。ただし常に検索が原因とは限りません。文書が古いまま放置されている、生成側の制約が足りない、といった構成では生成側が主因になることもあります。切り分けは指標で行い、順序は目安として扱ってください。
最後の行は見逃されやすいパターンです。スコアがすべて高いのに現場の評価が低い場合、評価セットが「答えやすい質問」ばかりになっている可能性があります。そのときは指標ではなく、評価セットのほうを直します。
RAGの精度改善|効果が出やすい順に進める
結論として、改善は上流から順に当たるのが鉄則です。下流から触ると、原因が動いたのか偶然なのか分からなくなります。
1. ドキュメント前処理
もっとも地味で、もっとも効きやすい工程です。PDFから抽出したテキストの改行が壊れている、表がぐちゃぐちゃに潰れている、同じ内容の旧版と新版が両方入っている。こうした元データの問題は、どんな検索手法を入れても解決しません。
改訂履歴のある社内文書を扱う案件では、旧版の混入が精度低下の主因になっていることがよくあります。前処理の段階で版管理のルールを決めておきます。
2. チャンク設計
チャンクのサイズとオーバーラップ、分割の単位を見直します。固定長で機械的に切ると、見出しと本文が分断されたり、表が途中で割れたりします。見出し構造を保ったまま分割する、親子関係を持たせて検索は小さい単位・生成には大きい単位を渡す、といった設計が取られます。
3. 検索の改善
ベクトル検索だけだと、型番や固有名詞の完全一致に弱くなります。キーワード検索(BM25など)と組み合わせるハイブリッド検索は、社内文書RAGで採用例が多い構成です。加えて、検索結果を関連度で並べ替えるリランキングを入れると、Context Precisionが改善しやすくなります。
ベクトルDBの選定自体に悩む場合は、ベクトルDBの選び方|Pinecone・Weaviate・Qdrant・pgvectorの使い分けで選定軸を整理しています。
4. 生成の改善
プロンプト側では、出典の明示を必須にする、文脈にない情報は書かせない、情報がない場合は「わからない」と答えさせる、といった制約が定番です。Faithfulnessのスコアは、この種の制約を入れるだけで改善することがあります。
5. 構成そのものを変える
ここまでやって頭打ちなら、RAGの構成を変える選択肢に入ります。文書間の関係性が重要な領域では、グラフ構造を使う方法もあります。詳しくはGraphRAGとは|通常RAGとの違い・仕組み・構築案件の実務を参照してください。
ミニFAQ:いきなり生成モデルを上位モデルに変えるのは有効ですか。
Faithfulnessが低いケースでは効くことがあります。ただし検索側が原因の場合はほとんど改善せず、コストだけが上がります。切り分けを先にしてください。
評価ツールの選び方|Ragas以外の選択肢
結論として、使っている基盤に評価機能が載っているなら、まずそれを試すのが早道です。
ツール・サービス | 位置づけ | 向いているケース |
|---|---|---|
RAG評価に特化したOSS | フレームワーク非依存で指標を揃えたいとき | |
LLM評価全般のOSS。テスト形式で書ける | CIに評価を組み込みたいとき | |
評価とトレースを組み合わせるOSS | 実行過程まで追いたいとき | |
LangChain系のトレース・評価基盤 | LangChain/LangGraphで構築しているとき | |
マネージドの評価指標群 | Azure上でLLMアプリを運用しているとき | |
モデル評価・RAG評価のマネージド機能 | Bedrockでナレッジベースを構築しているとき | |
Google Cloudの評価サービス | Vertex AI上で運用しているとき |
OSSとマネージドの使い分けは、3つの軸で考えると整理しやすくなります。
判断軸 | OSSが向くケース | マネージドが向くケース |
|---|---|---|
評価結果を誰が見るか | チーム内の改善用 | 顧客報告・監査で履歴と権限管理が要るとき |
基盤の制約 | 複数の基盤をまたぐ、将来の移行を想定する | すでに単一クラウドに寄せている |
指標のカスタマイズ | 独自指標やドメイン固有の判定を足したい | 標準指標で足りる、構築工数を抑えたい |
評価データに機密文書が含まれる案件では、採点用LLMにどこまでデータが渡るかも選定条件になります。ここは技術要件というより契約・情報管理の論点です。参画前に確認しておくと、後から構成をやり直さずに済みます。
研究動向としては、TREC RAG Trackで評価手法そのものの議論が進んでいます。評価設計の妥当性を顧客に説明する場面では、こうした公開評価の枠組みを参照すると話が通りやすくなります。
RAG評価でつまずきやすい点と対策
LLM採点のばらつき
LLMで採点する以上、同じ入力でもスコアが揺れます。対策は、温度を下げる、複数回実行して平均を取る、スコアの絶対値ではなく変化量で判断する、の3つです。
「0.78だから合格」ではなく、「改善前0.71 → 改善後0.78」で見ます。絶対値での合格ラインを顧客と握ってしまうと、後で苦しくなります。
評価コストの膨張
指標を全部入れたくなりますが、LLM呼び出しは指標ごとに発生します。日常の定点観測は4指標、節目のフル評価では補助指標も入れる、という二段構えにするとコストを抑えられます。NonLLM系の指標を混ぜるのも有効です。
評価セットの陳腐化
ドキュメントが更新されれば、昔作った正解は合わなくなります。文書の更新タイミングで評価セットを棚卸しする運用を、最初から組み込んでおいてください。
導入チェックリスト
着手時に確認しておくと手戻りが減る項目です。
検索結果(retrieved_contexts)がログに残る実装になっているか
検索側と生成側の指標を分けて出す設計になっているか
reference を作れるか、作れないならreference不要の指標で始めるか決めたか
評価の実行コスト(質問数 × 指標数)を見積もったか
「情報がない質問」を評価セットに含めたか
スコアの合格ラインではなく、変化量で判断する合意を取ったか
文書更新時に評価セットを棚卸しする運用を決めたか
RAG評価スキルはフリーランス案件でどう扱われるか
結論として、RAG構築案件では「作れること」より「良くできること」の比重が上がっています。PoCから本番運用に移る段階で、評価の仕組みを持っているかが問われます。
面談で聞かれやすいのは、次のような点です。
精度が出ないと言われたとき、どう原因を切り分けたか
評価データをどう用意したか(誰が正解を作ったか)
改善の効果をどう数字で示したか
ここで「プロンプトを調整しました」だけで終わると、評価されにくくなります。検索側と生成側を分けて測り、どちらが原因だったかを説明できると、同じ経験でも伝わり方が変わります。
案件そのものの内容や参画ルートはRAG構築案件の実情|単価相場・必要スキル・獲得方法、評価・アノテーション寄りの関わり方はLLM評価・データアノテーション案件|単価相場と参入ルートで整理しています。単価の水準は案件の役割や稼働によって変わるため、自分の経験でどのくらいを狙えるか知りたい場合は、無料のフリーランスエンジニア単価診断で市場単価の目安を確認できます。単価を体系的に上げる考え方は【2026年最新版】フリーランスエンジニアの単価相場と単価の上げ方とは?にまとめています。
実装フレームワーク側の知識を補強したい場合は、LlamaIndexとは|RAG構築の仕組み・LangChainとの違いを解説もあわせて確認してください。
まとめ
RAGの評価は、検索と生成を分けて測り、スコアの組み合わせからボトルネックを特定する作業です。ここが分けられていないと、改善は勘に頼ることになります。
中心は4指標。Context Precision / Context Recall(検索)と Faithfulness / Response Relevancy(生成)
Faithfulness と Response Relevancy は正解データなしで測れる。立ち上げ期はここから始める
Response Relevancy は事実の正しさを測らない。Faithfulnessと必ず併用する
評価セットは、PoCや初期運用なら30〜50問の定点観測から。実ログの質問を優先的に入れる
改善は前処理 → チャンク設計 → 検索 → 生成の順。上流から当たると原因が特定しやすい
スコアは絶対値ではなく変化量で判断する。LLM採点は揺れるため
検索結果をログに残していないと、後から検索側の評価ができない。実装段階で設計しておく
次のステップとしては、手元のRAGで retrieved_contexts がログに残っているかを確認してみてください。残っていない場合、評価の前にそこから着手することになります。
参照した一次情報は以下のとおりです。各ツールの仕様は更新されるため、記載内容は執筆時点の公開情報に基づきます。
よくある質問
Context Precision と Context Recall はどちらを優先して改善すべきですか
まずRecallです。必要な情報が検索結果に入っていなければ、順位を整えても回答は良くなりません。Recallを確保してから、Precisionでノイズを削る順序が基本になります。
Faithfulness が高いのに、回答が間違っているのはなぜですか
Faithfulnessは「検索した文脈に忠実か」だけを見ています。文脈そのものが古い、または誤っていれば、忠実な回答でも内容は間違います。元データの鮮度・正確性は別途担保が必要です。
Response Relevancy が高ければ、正しい回答と言えますか
言えません。この指標は回答から逆に質問を生成し、元の質問との類似度を見ています。質問の意図に沿っているかを測る指標で、事実の正しさは対象外です。Faithfulnessと必ず併用してください。
評価用の質問は何問必要ですか
小〜中規模のPoCや初期運用での定点観測なら、30〜50問程度から始められます。対象文書が多い本番業務RAGでは、カテゴリごとに件数を割り当てて増やします。いずれにせよ件数より「実際に来る質問に近いか」のほうが効きます。
正解データがなくても評価できますか
できます。Faithfulness、Response Relevancy、LLMContextPrecisionWithoutReference はreferenceなしで動きます。Context Recallを測る段階になったら正解が必要になるため、低スコアの質問から順に作っていくのが現実的です。
評価用のLLM費用はどのくらい見ておくべきですか
指標ごとにLLM呼び出しが発生するため、質問数 × 指標数 × 内部呼び出し回数で見積もります。実際の単価はモデルと提供元で変わるので、小さいセットで1回実行して実測し、そこから比例させるのが確実です。
ハイブリッド検索とリランキングは、どちらを先に入れるべきですか
Context Recallが低いならハイブリッド検索、Recallは足りているのにPrecisionが低いならリランキングです。症状で選び分けます。両方同時に入れると、どちらが効いたか分からなくなります。
「情報がないので答えられない」と返せることも評価すべきですか
業務システムでは評価対象に含めてください。文書に情報がない質問を評価セットに混ぜ、無理に答えを作っていないかを確認します。誤った断定は、答えないことより損害が大きくなる場面があります。
評価はCIに組み込むべきですか
プロンプトや検索設定を頻繁に変えるフェーズでは有効です。ただしLLM採点はコストと実行時間がかかるため、全件をプルリクエストごとに回すのではなく、小さいサブセットをCIで、フルセットを定期実行で、という分け方が扱いやすくなります。
日本語ドキュメントでも指標はそのまま使えますか
使えますが、採点用LLMの日本語性能に結果が左右されます。導入時に10〜20件程度を人手で突き合わせ、スコアと人間の判断がずれていないかを確認してから本運用に移してください。特にFaithfulnessは主張の分解精度が日本語で落ちることがあるため、低スコアの事例を優先して目視すると傾向をつかみやすくなります。
人手評価はもう不要ですか
不要にはなりません。自動評価は変化の検知に向いていますが、業務上の正しさの最終判断は人が持ちます。自動評価で絞り込み、低スコアだけを人が見る運用が効率的です。
RAGの評価指標は、社内の非エンジニアにどう説明すればよいですか
「資料を正しく探せたか」「探した資料どおりに答えたか」「質問に答えているか」の3点に言い換えると伝わります。指標名をそのまま出すより、工程ごとの合否として示すほうが合意を取りやすくなります。
関連するタグ:
