RAG評価フレームワーク比較:RAGAS vs TruLens vs DeepEval
本記事では、RAGAS、TruLens、DeepEvalの3つの主要なRAG評価フレームワークを深く比較します。RAGに特化した評価が必要な理由、評価の3層(検索品質、生成品質、エンドツーエンド品質)、および主要な検索指標(Precision@K、Recall@K、MRR、NDCG)を解説します。その後、RAGAS(LLM判定役、正解データ不要、合成テストセット生成機能)とTruLens(可観測性、RAGトライアド、ダッシュボード)を詳述し、DeepEvalについても簡単に触れ、フレームワーク選択の指針を提供します。
RAG(検索拡張生成)パイプラインの品質評価は、従来のBLEUやROUGEなどのNLP指標では不十分です。これらの指標は単語の重複しか見ないため、検索器が適切なコンテキストを取得したか、生成器がそのコンテキストに基づいて事実と一致する回答を生成したかを判断できません。そこで、RAG専用の評価フレームワークであるRAGAS、TruLens、DeepEvalが開発されました。
RAGシステムは検索器(コンテキストを取得)と生成器(コンテキストを使って回答を作成)の2つの部分からなります。どちらかが失敗すると最終回答も失敗しますが、失敗の様式は異なります。検索器が不良だと無関係または不完全なチャンクを取得し、生成器が不良だと良質なコンテキストを無視して幻覚を起こしたり、技術的に正しいが役に立たない回答を生成したりします。従来の指標は生成回答と参照回答の単語重複を比較するだけであり、LLMが事実に基づいているかや検索器が適切に機能したかを判断できません。RAG評価には、両方の部分を個別かつ同時にチェックし、毎回人手で正解を用意する必要のない指標が必要です。このギャップを埋めるためにRAGAS、TruLens、DeepEvalが構築され、それぞれ異なる哲学でアプローチしています。
RAG評価は通常、3つの層に分けられます:検索品質(適切なチャンクを取得できたか)、生成品質(モデルがチャンクを正しく使用し幻覚を起こさないか)、およびエンドツーエンド品質(最終回答がユーザーの質問を満たすか)。各フレームワークはこれら3つのいくつかの組み合わせをスコアリングしますが、自動化の程度、正解データの必要性、一度きりの評価か継続監視向けかが異なります。
これらのフレームワークの基盤となる古典的な情報検索指標を理解することは重要です。Precision@Kは検索器が返した上位K個のチャンクのうち実際に関連するものの割合を測定し、高いほどノイズが少ないことを示します。Recall@Kは知識ベース内の全関連チャンクのうち上位K個に含まれていた割合を測定し、高いほど情報が完全であることを示します。PrecisionとRecallは通常トレードオフの関係にあり、Kを増やすとRecallは上がるがPrecisionは下がります。MRR(平均逆順位)は最初の関連チャンクのランクの高さを測定し、LLMは初期のコンテキストに注目しやすいため重要です。NDCG(正規化割引累積利得)はより微妙な指標で、関連性が二値でない場合に有用であり、ランク付けの完全性を評価します。古典的なIR指標は事前に関連性ラベルが必要ですが、RAGAS、TruLens、DeepEvalはLLMをその判断に用いることでこの要件を回避し、設定が容易である代わりにノイズが増える可能性があります。各手法の信頼性を確認するには、200~300のクエリ/チャンクペアにラベルを付け、Precision@K、Recall@K、NDCGをベースラインとして計算することを推奨します。
RAGASはPythonベースのフレームワークで、最大の特徴はほとんどの指標が人手による正解データを必要としないことです。LLMを判定役として、生成回答と検索コンテキストを比較し、忠実度、回答関連性、コンテキスト精度、コンテキスト再現率、回答正確性、意味的類似性などのスコアを算出します。また、ドキュメントから自動的にテストセットを生成する機能も備えており、質問と参照回答を自動生成することで、テストセット構築のボトルネックを解消します。コード例として、from ragas import evaluate でメトリクスを実行し、TestsetGenerator で合成テストセットを作成する方法が示されています。RAGASの強みは最小限の設定で迅速なベンチマークが可能で、LangChainやLlamaIndexとシームレスに連携することです。制限としては、LLM判定役に依存するためスコアが実行ごとに変動する可能性があり、評価ごとに追加のLLM呼び出しコストが発生します。RAGASはプロトタイプ構築後の迅速な自動評価や、検索器やプロンプトのA/Bテストに最適です。
TruLensは異なるアプローチを採用しており、一度きりの評価ではなく可観測性に重点を置いています。RAGアプリケーションの各ステップ(何が検索され、LLMが何を見て、何を生成したか)をログに記録し、そのログをスコアの基盤とします。コアコンセプトは「RAGトライアド」で、コンテキスト関連性(チャンクごとに評価)、根拠の有無(回答がコンテキストに裏付けられているか)、回答関連性(回答がユーザーの質問に対応しているか)の3つの指標からなります。TruLensの差別化要因は、これらのスコアを中心としたツール群であり、Streamlitベースのダッシュボードが付属しており、複数の実験を比較したり、継続的な監視が可能です。TruLensは本番環境での継続監視に適しており、特にRAGASより長期的な運用に向いています。
DeepEvalについては、提供されたテキストでは詳細が省略されていますが、包括的な評価ツールを提供するとされています。フレームワークの選択はチームの段階によります。RAGASは迅速なプロトタイプ評価とA/Bテストに、TruLensは本番環境での継続監視に、DeepEvalはより包括的な自動評価に適しています。どのフレームワークを使用する場合でも、LLMによる判定の信頼性を検証するために、人手によるラベル付きデータでベースラインを確立することが推奨されます。