RAGの精度評価の枠組み
RAGの精度評価の枠組み
背景
私たちのプロジェクトでは、RAGシステムを開発しています。現状では開発段階ということもあり、人の目で入出力を見比べて評価を行っています。
一般には、RAG(Retrieval-Augmented Generation)の精度評価は、次のような理由から必要です。
- RAGシステムを運用する際に、精度の低下を早期に検出し、適切な対策を講じるために精度評価が求められます。これは、システムの安定性や信頼性を維持するための取り組みです。
- RAGシステムを改善する際に、精度の向上を評価指標として活用することで、より高性能なシステムを目指すことができます。これは、システムの進化や価値向上を目指す取り組みです。
開発フェーズを抜けて本格運用にもっていく過程で、マンパワーの必要な、標準化されていないやり方を続けることはできません。確立された手順やアルゴリズムによる、省力化の可能なやり方が必要です。
そのようなやり方を探るうえで、まずは基礎知識を獲得することがとても重要です。
そこで今回は、RAGシステムの評価について、教科書的な知識についてまとめました。
対象読者
この文書は、RAGの評価について大枠の知識を解説するものです。RAG(Retrieval-Augmented Generation)システムに関心があり、今後その理解を深めていく予定の方々を対象としています。
-
将来的にRAGシステムの運用に関わる予定の方
現在はRAGシステムの詳細について把握はしていないものの、将来的にその運用に携わる可能性がある方を想定しています。 -
RAGシステムの改善に向けて指標を必要としている方
RAGシステムの性能向上を目指しているものの、評価の指標について大枠の知識を持っていない方を対象としています。改善の方向性を検討するために、評価指標が必要な段階にある方です。
評価について
1. 評価枠組みの整理
RAGシステムの精度評価においては、評価枠組みを整理するための複数の切り口が存在します。主な観点は以下のとおりです。
-
評価の実施方法による分類
自動で行う定量的な評価と、手動で行う定性的な評価に分けられます。 -
評価対象の範囲による分類
検索や生成など、特定のモジュールに限定した部分的な評価と、システム全体を対象とした包括的な評価があります。 -
評価の目的による分類
モデル改善を目的とした開発時の「攻め」の評価と、異常検知を目的とした運用時の「守り」の評価に分けられます。
2. 評価観点の整理
RAGシステムの精度評価を行うライブラリとしてRagasがあります。Ragasは、LLMアプリケーションの評価において著名なライブラリです。
ここでは、RAGシステムの精度評価における観点を、Ragasを参考にして整理します。
検索結果に関する評価
- 関連性
質問と検索結果との関連性を測定します。関連性が高いほど、良好な検索結果であると評価できます。
Ragasの場合は、Context Precisionが該当します。
Context Precisionの場合、最小値の0に近ければ関連性のある回答がより下位にランクされていること、最大値の1に近ければ関連性がある回答がより上位にランクされていることを示します。 - 再現性
回答に必要な情報が、検索結果の中にどの程度含まれているかを測定します。情報の含有率が高いほど、再現性の高い検索結果であるといえます。
Ragasの場合は、Context Recallが該当します。
最大値の1では正解データと同等回答に必要十分な情報を取得できたことを、最小値の0では回答に必要な情報が不足していることを示します。
回答に関する評価
- 関連性
実際の質問と回答から逆に生成した疑似質問との類似度を測定します。類似度が高いほど、質問に対して適切な回答が生成されていると評価できます。
Ragasの場合は、Answer Relevanceが該当します。
疑似質問と実際の回答の類似度が値となります。 - 忠実性
検索結果から回答がどの程度導き出せるかを測定します。導出可能な割合が高いほど、忠実性の高い回答であるといえます。
Ragasの場合は、Answer Faithfulnessが該当します。
回答を分割し、そのうち検索結果から生成可能なものの割合が値となります。
評価観点分類
なお、以下のように評価観点を分類することができます:
- 「検索結果の関連性」「検索結果の再現性」「回答の関連性」は、検索の精度を評価する指標です。
- 「回答の忠実性」は、ハルシネーション(事実誤り)のリスクを評価する指標です。
考察
- どの指標も、それぞれに有用であり、RAGシステムの評価において欠かすことのできない重要な要素です。
- 私の参画しているプロジェクトについては、評価の枠組みについては、自動で行う定量的な評価を基本とすることになりそうです。
- 検索や生成といった特定のモジュールに限定した部分的な評価を、モデル改善を目的とした開発時の「攻め」の評価として実施していくことが考えられます。
- 一方で、システム全体を対象とした包括的な評価は、異常検知を目的とした運用時の「守り」の評価として活用していく方向が想定されます。
まとめ
- RAGシステムの精度評価は、運用時の異常検知や開発時の性能向上に不可欠です。
- 評価は「検索」と「生成」の両面から、関連性・再現性・忠実性などの観点で行われます。
- 定量的評価を基本とし、目的に応じて部分的または包括的な評価枠組みを使い分けます。
私たちのプロジェクトでは、マンパワーの少なさを考慮し、定量評価・自動評価を採用します。
また、ドメインを分割して開発を行っている都合上、部分的な評価枠組みを基本としたいと思います。
Discussion