パフォーマンスを評価する: 重要なメトリック
この記事では、取得、応答の品質、およびシステム パフォーマンスに関する RAG アプリケーションのパフォーマンスの測定について説明します。
取得、応答、およびパフォーマンス
評価セットを使用すると、次のようなさまざまなディメンションにわたって RAG アプリケーションのパフォーマンスを測定できます。
- 取得品質: 取得メトリックにより、RAG アプリケーションが関連するサポート データの取得にどれだけ成功したかを評価します。 精度 (precision) と再現率 (recall) は、2 つの主要な取得メトリックです。
- 応答品質: 応答品質メトリックは、RAG アプリケーションの応答がユーザーの要求に対してどの程度適切かを評価します。 たとえば、応答メトリックでは、結果の応答がグラウンド トゥルースに照らして正しいかどうかや、応答が取得されたコンテキストにどの程度基づいているか (LLM がハルシネーションを起こしたかなど)、応答がどの程度安全か (つまり、毒性は含まれていないなど) などを測定できます。
- システム パフォーマンス (コスト & 待機時間): メトリックでは、RAG アプリケーションの全体的なコストとパフォーマンスを把握します。 全体的な待機時間とトークンの消費量は、チェーン パフォーマンス メトリックの例です。
応答メトリックと取得メトリックの両方を収集することが非常に重要です。 RAG アプリケーションは、正しいコンテキストを取得しているにもかかわらず、応答が適切でない場合や、問題のある取得に基づいても適切に応答できる場合があります。 両方のコンポーネントを測定することによってのみ、アプリケーションの問題を正確に診断して対処できます。
パフォーマンスの測定方法
これらのメトリックによるパフォーマンスの評価には、次の 2 つの主な方法があります。
- 決定論的測定: コストと待機時間のメトリックは、アプリケーションの出力に基づいて決定論的に計算できます。 評価セットに、質問に対する回答を含むドキュメントの一覧が含まれている場合は、取得メトリックのサブセットを決定論的に計算することもできます。
- LLM ジャッジ ベースの測定: この方法では、別の LLM がジャッジとして機能し、RAG アプリケーションの取得と応答の品質を評価します。 LLM ジャッジの中には (回答の正確性など)、人間がラベル付けしたグラウンド トゥルースとアプリの出力を比較するものがあります。 また、根拠性などの LLM ジャッジのように、アプリの出力を評価するために、人間がラベル付けしたグラウンド トゥルースを必要としないものもあります。
重要
LLM ジャッジを有効にするには、ユース ケースを理解するように調整する必要があります。 これを行うには、ジャッジがうまく機能する場合と機能しない場合を十分に注意して理解し、失敗したケースで改善するようにジャッジを調整する必要があります。
Mosaic AI エージェント評価では、このページで説明するメトリックごとに、ホストされる LLM ジャッジ モデルを使用して、すぐに使用できる実装が提供されます。 エージェント評価のドキュメントでは、これらのメトリックとジャッジの実装方法の詳細について説明し、精度を高めるためにデータでジャッジを調整する機能を提供します
メトリックの概要
RAG アプリケーションの品質、コスト、待機時間を測定するために Databricks で推奨されるメトリックの概要を次に示します。 これらのメトリックは、Mosaic AI エージェント評価で実装されます。
ディメンション | メトリックの名前 | 質問 | 測定基準 | グラウンド トゥルースが必要か? |
---|---|---|---|---|
取得 | chunk_relevance/precision | 取得されたチャンクのうち、要求に関連するものは何% ですか? | LLM ジャッジ | いいえ |
取得 | document_recall | グラウンド トゥルース ドキュメントの何% が、取得されたチャンクで表されますか? | 決定的 | はい |
取得 | context_sufficiency | 取得したチャンクは、期待される応答を生成するのに十分ですか? | LLM ジャッジ | はい |
回答 | correctness | 総合的に、エージェントは正しい応答を生成しましたか? | LLM ジャッジ | はい |
回答 | relevance_to_query | 応答は要求に関連していますか? | LLM ジャッジ | いいえ |
回答 | groundedness | 応答は、ハルシネーションですか、それともコンテキストに基づいていますか? | LLM ジャッジ | いいえ |
回答 | 安全性 | 応答に有害なコンテンツはありますか? | LLM ジャッジ | いいえ |
コスト | total_token_count、total_input_token_count、total_output_token_count | LLM 生成用のトークンの合計数を教えてください | 決定的 | いいえ |
Latency | latency_seconds | アプリ実行の待機時間を教えてください | 決定的 | いいえ |
取得メトリックの仕組み
取得メトリックは、取得元が関連する結果を提供しているかどうかを理解するのに役立ちます。 取得メトリックは、精度 (precision) と再現率 (recall) に基づいています。
メトリックの名前 | 質問への回答 | 詳細 |
---|---|---|
精度 | 取得されたチャンクのうち、要求に関連するものは何% ですか? | 精度は、取得されたドキュメントのうち、ユーザーの要求に実際に関連している割合です。 LLM ジャッジを使用して、取得した各チャンクにおけるユーザーの要求との関連性を評価できます。 |
リコール | グラウンド トゥルース ドキュメントの何% が、取得されたチャンクで表されますか? | 再現率は、グラウンド トゥルース ドキュメントのうち、取得されたチャンクで表される割合です。 これは、結果の完全性の尺度です。 |
精度と再現率
優れたウィキペディアの記事を基に作成された精度と再現率に関する簡単な手引きを次に示します。
精度の数式
精度は、“取得したチャンクのうち、ユーザーのクエリに実際に関連するのは、これらの項目の何% であるか?” を測定します。 精度の計算では、関連する "すべて "の項目を知っている必要は "ありません"。
再現率の数式
再現率は、“ユーザーのクエリに関連することがわかっているすべてのドキュメントのうち、チャンクを取得したのは何% であったか?” を測定します。 再現率を計算するには、"すべて" の関連項目を含むグラウンド トゥルースが必要です。 項目には、ドキュメントまたはドキュメントのチャンクを指定できます。
次の例では、取得した 3 つの結果のうち 2 つがユーザーのクエリに関連していたため、精度は 0.66 (2/3) でした。 取得したドキュメントには、関連する合計 4 つのドキュメントのうちの 2 つが含まれていたため、再現率は 0.5 (2/4) でした。