エージェントのメトリクスとLLM審査員を使用してアプリのパフォーマンスを評価する
プレビュー
この機能はパブリックプレビュー段階です。
この記事では、Agent メトリクスと大規模言語モデル (LLM) judge evaluations コンピュート by Agent Evaluation evaluation 実行について説明します。
Databricksは、人間の評価者との一致を測定することで、ジャッジの質を向上させることに尽力しています。Databricksは、学術的および独自のデータセットからの多様で挑戦的な例を使用して、最先端のLLMジャッジアプローチに対してジャッジをベンチマークおよび改善し、継続的な改善と高い精度を保証します。
エージェントのメトリクスとジャッジ
Mosaic AI Agent Evaluation は、エージェント アプリケーションの品質を評価するために 2 つのアプローチを使用します。
LLMの審査員: 別の LLM は、アプリケーションの取得と応答の品質を評価するためのジャッジとして機能します。 Agent Evaluation には、評価プロセスをスケールアップし、多数のテストケースを含めることを可能にする一連の組み込み LLM ジャッジが含まれています。
決定論的な計算: アプリケーションのトレースから決定論的なメトリクスを導き出し、必要に応じて評価セットに記録されたグラウンドトゥルースからパフォーマンスを評価します。 例としては、トークン数とレイテンシのメトリクス、グラウンドトゥルースドキュメントに基づく取得リコールなどがあります。
次の表に、組み込みメトリクスとそれによって回答できる質問を示します。
メトリクス名 |
質問 |
メトリクスタイプ |
---|---|---|
|
LLM審査 |
|
|
決定論的 (グラウンド トゥルースが必要) |
|
|
LLM 審査済み (グラウンドトゥルースが必要) |
|
|
LLM 審査済み (グラウンドトゥルースが必要) |
|
|
LLM審査 |
|
|
LLM審査 |
|
|
LLM審査 |
|
|
確定的 |
|
|
確定的 |
また、カスタム LLM ジャッジを定義して、ユースケースに固有の基準を評価することもできます。 「カスタムジャッジメトリクス」を参照してください。
LLMジャッジの信頼性と安全性に関する情報については、「LLMジャッジを強化するモデルに関する情報」を参照してください。
検索メトリクス
検索メトリクスは、エージェント アプリケーションが関連するサポート データをどれだけ正常に取得できるかを評価します。 精度と再現率は 2 つの重要な検索メトリクスです。
recall = # of relevant retrieved items / total # of relevant items
precision = # of relevant retrieved items / # of items retrieved
リトリーバーは関連するチャンクを見つけたか
chunk-relevance-precision
LLM ジャッジは、レトリーバーによって返されるチャンクが入力リクエストに関連しているかどうかを判断します。精度は、返された関連するチャンクの数を返されたチャンクの合計数で割った値として計算されます。 たとえば、レトリーバーが 4 つのチャンクを返し、LLM ジャッジが返された 4 つのドキュメントのうち 3 つがリクエストに関連していると判断した場合、 llm_judged/chunk_relevance/precision
は 0.75 です。
llm_judged/chunk_relevance
に必要な入力
グラウンドトゥルースは必要ありません。
入力評価セットには、次の列が必要です。
request
また、 mlflow.evaluate()
の呼び出しで model
引数を使用しない場合は、 retrieved_context[].content
または trace
も指定する必要があります。
llm_judged/chunk_relevance
の出力
各質問に対して、次のメトリクスが計算されます。
データフィールド |
タイプ |
説明 |
---|---|---|
|
|
各チャンクについて、 |
|
|
各チャンクについて、対応するレーティングに対する LLM の推論。 |
|
|
各チャンクについて、評価の計算でエラーが発生した場合、エラーの詳細がここに表示され、他の出力値はNULLになります。エラーがない場合、これはNULLです。 |
|
|
取得されたすべてのチャンクのうち関連するチャンクの割合を計算します。 |
評価セット全体について、次のメトリクスが報告されます。
メトリクス名 |
タイプ |
説明 |
---|---|---|
|
|
すべての質問の平均値は |
レトリーバーは既知の関連文書をいくつ見つけましたか?
document_recall
は、返された関連ドキュメントの数を、グラウンド トゥルースに基づく関連ドキュメントの合計数で割った値として計算されます。 たとえば、2 つのドキュメントがグラウンド トゥルースに基づいて関連しているとします。 レトリーバーがこれらのドキュメントのいずれかを返す場合、 document_recall
0.5 です。 このメトリクスは、返されるドキュメントの合計数の影響を受けません。
このメトリクスは決定論的であり、LLM ジャッジは使用しません。
レトリーバーは、期待される応答を生成するのに十分なドキュメントを見つけましたか?
context_sufficiency
LLM ジャッジは、レトリーバが期待されるレスポンスを生成するのに十分なドキュメントを取得したか否かを判定します。
context_sufficiency
に必要な入力
グラウンドトゥルース・ expected_response
が必要です。
入力評価セットには、次の列が必要です。
request
expected_response
また、 mlflow.evaluate()
の呼び出しで model
引数を使用しない場合は、 retrieved_context[].content
または trace
も指定する必要があります。
context_sufficiency
の出力
各質問に対して、次のメトリクスが計算されます。
データフィールド |
タイプ |
説明 |
---|---|---|
|
|
|
|
|
LLMの書面による推論は、 |
|
|
このメトリクスの計算でエラーが発生した場合は、エラーの詳細がこちらに表示されます。 エラーがない場合、これは NULL です。 |
評価セット全体に対して、次のメトリクスが計算されます。
メトリクス名 |
タイプ |
説明 |
---|---|---|
|
|
コンテキストの十分性が |
レスポンスメトリクス
応答品質メトリクスは、アプリケーションがユーザーのリクエストにどの程度適切に応答しているかを評価します。 これらのメトリクスは、グラウンドトゥルースと比較したレスポンスの精度、取得したコンテキストを考慮してレスポンスが十分に根拠があるか(またはLLMが幻覚を見ているか)、レスポンスが安全で有害な言葉がないかどうかなどの要素を評価します。
全体として、LLMは正確な答えを出しましたか?
correctness
LLMの裁判官は、エージェントによって生成された応答が事実上正確であり、提供されたグラウンドトゥルース応答と意味的に類似しているかどうかについて、二項評価と書面による理論的根拠を提供します。
correctness
に必要な入力
グラウンドトゥルース expected_response
が必要です。
入力評価セットには、次の列が必要です。
request
expected_response
また、 mlflow.evaluate()
の呼び出しで model
引数を使用しない場合は、 response
または trace
も指定する必要があります。
重要
グラウンドトゥルース expected_response
には、正しい対応に必要な最小限の事実 のみ を含める必要があります。 別のソースから応答をコピーする場合は、必ず応答を編集して、回答が正しいと見なされるために 必要 のないテキストを削除してください。
必要な情報のみを含め、回答に厳密に必要でない情報を省略することで、Agent Evaluation は出力品質に関するより堅牢なシグナルを提供できます。
correctness
の出力
各質問に対して、次のメトリクスが計算されます。
データフィールド |
タイプ |
説明 |
---|---|---|
|
|
|
|
|
LLMの書面による推論は、 |
|
|
このメトリクスの計算でエラーが発生した場合は、エラーの詳細がこちらに表示されます。 エラーがない場合、これは NULL です。 |
評価セット全体に対して、次のメトリクスが計算されます。
メトリクス名 |
タイプ |
説明 |
---|---|---|
|
|
すべての質問で、正しさが |
レスポンスはリクエストに関連していますか?
relevance_to_query
LLM ジャッジは、応答が入力要求に関連しているかどうかを判断します。
relevance_to_query
に必要な入力
グラウンドトゥルースは必要ありません。
入力評価セットには、次の列が必要です。
request
また、 mlflow.evaluate()
の呼び出しで model
引数を使用しない場合は、 response
または trace
も指定する必要があります。
relevance_to_query
の出力
各質問に対して、次のメトリクスが計算されます。
データフィールド |
タイプ |
説明 |
---|---|---|
|
|
|
|
|
LLMの書面による推論は、 |
|
|
このメトリクスの計算でエラーが発生した場合は、エラーの詳細がこちらに表示されます。 エラーがない場合、これは NULL です。 |
評価セット全体に対して、次のメトリクスが計算されます。
メトリクス名 |
タイプ |
説明 |
---|---|---|
|
|
すべての質問で、 |
その反応は幻覚なのか、それとも取り出された文脈に基づいているのか。
groundedness
LLM ジャッジは、生成された応答が取得されたコンテキストと事実上一致しているかどうかについて、バイナリ評価と書面による理論的根拠を返します。
groundedness
に必要な入力
グラウンドトゥルースは必要ありません。
入力評価セットには、次の列が必要です。
request
また、 mlflow.evaluate()
の呼び出しで model
引数を使用しない場合は、 response
と retrieved_context[].content
のいずれかまたは両方を trace
または両方指定する必要があります。
groundedness
の出力
各質問に対して、次のメトリクスが計算されます。
データフィールド |
タイプ |
説明 |
---|---|---|
|
|
|
|
|
LLMの書面による推論は、 |
|
|
このメトリクスの計算でエラーが発生した場合は、エラーの詳細がこちらに表示されます。 エラーがない場合、これは NULL です。 |
評価セット全体に対して、次のメトリクスが計算されます。
メトリクス名 |
タイプ |
説明 |
---|---|---|
|
|
すべての質問で、 |
エージェントの回答に有害な内容はありますか?
safety
LLMの裁判官は、生成された回答に有害または有害なコンテンツが含まれているかどうかについて、バイナリ評価と書面による根拠を返します。
safety
に必要な入力
グラウンドトゥルースは必要ありません。
入力評価セットには、次の列が必要です。
request
また、 mlflow.evaluate()
の呼び出しで model
引数を使用しない場合は、 response
または trace
も指定する必要があります。
safety
の出力
各質問に対して、次のメトリクスが計算されます。
データフィールド |
タイプ |
説明 |
---|---|---|
|
|
|
|
|
LLMの書面による推論は、 |
|
|
このメトリクスの計算でエラーが発生した場合は、エラーの詳細がこちらに表示されます。 エラーがない場合、これは NULL です。 |
評価セット全体に対して、次のメトリクスが計算されます。
メトリクス名 |
タイプ |
説明 |
---|---|---|
|
|
|
パフォーマンス指標
パフォーマンス メトリックは、エージェント アプリケーションの全体的なコストとパフォーマンスを取得します。 全体的なレイテンシとトークン消費は、パフォーマンス メトリックの例です。
エージェントアプリケーションを実行するためのトークンコストはいくらですか?
トレース内のすべてのLLM生成呼び出しの合計トークン数を計算します。これは、トークンが多いほど総コストが高くなることを意味します。
トークン数は、トレースが使用可能な場合にのみ計算されます。 mlflow.evaluate()
の呼び出しに model
引数が含まれている場合は、トレースが自動的に生成されます。評価データセットに trace
列を直接指定することもできます。
各質問に対して、次のメトリクスが計算されます。
データフィールド |
タイプ |
説明 |
---|---|---|
|
|
エージェントのトレース内のすべての LLM スパンにわたるすべての入力トークンと出力トークンの合計。 |
|
|
エージェントのトレース内のすべての LLM スパンにわたるすべての入力トークンの合計。 |
|
|
エージェントのトレース内のすべての LLM スパンにわたるすべての出力トークンの合計。 |
評価セット全体に対して、次のメトリクスが計算されます。
名前 |
説明 |
---|---|
|
すべての質問の平均値。 |
|
すべての質問の平均値。 |
|
すべての質問の平均値。 |
エージェント アプリケーションの実行の待機時間はどれくらいですか?
トレースのアプリケーション全体のレイテンシを秒単位で表示します。
レイテンシは、トレースが使用可能な場合にのみ計算されます。 mlflow.evaluate()
の呼び出しに model
引数が含まれている場合は、トレースが自動的に生成されます。評価データセットに trace
列を直接指定することもできます。
各質問に対して、次のメトリクスが計算されます。
名前 |
説明 |
---|---|
|
トレースに基づくエンドツーエンドの待機時間 |
評価セット全体に対して、次のメトリクスが計算されます。
メトリクス名 |
説明 |
---|---|
|
すべての質問の平均値 |
カスタムジャッジメトリクス
カスタムジャッジを作成して、ユースケースに固有の評価を実行できます。 詳細については、「 カスタム LLM ジャッジの作成」を参照してください。
カスタムジャッジによって生成される出力は、その assessment_type
、 ANSWER
、または RETRIEVAL
によって異なります。
ANSWER評価のためのカスタムLLMジャッジ
ANSWER評価用のカスタムLLMジャッジは、各質問の回答を評価します。
各評価で提供される出力:
データフィールド |
タイプ |
説明 |
---|---|---|
|
|
|
|
|
LLMの書面による推論は、 |
|
|
このメトリクスの計算でエラーが発生した場合は、エラーの詳細がこちらに表示されます。 エラーがない場合、これは NULL です。 |
評価セット全体に対して、次のメトリクスが計算されます。
メトリクス名 |
タイプ |
説明 |
---|---|---|
|
|
すべての質問で、{assessment_name}が |
検索評価のためのカスタムLLMジャッジ
RETRIEVAL評価用のカスタムLLMジャッジは、すべての質問で取得された各チャンクを評価します。
各評価で提供される出力:
データフィールド |
タイプ |
説明 |
---|---|---|
|
|
各チャンク、 |
|
|
各チャンクについて、LLM は |
|
|
各チャンクについて、このメトリクスの計算でエラーが発生した場合、エラーの詳細はここに表示され、他の値はNULLです。エラーがない場合、これはNULLです。 |
|
|
取得されたすべてのチャンクのうち、カスタムジャッジが |
評価セット全体について報告されるメトリクス:
メトリクス名 |
タイプ |
説明 |
---|---|---|
|
|
すべての質問の平均値は |
LLMジャッジを支援するモデルに関する情報
LLMジャッジは、Microsoftが運営するAzure OpenAIなどのサードパーティサービスを使用して生成AIアプリケーションを評価する場合があります。
Azure OpenAIの場合、Databricksは不正行為モニタリングをオプトアウトしているため、プロンプトや応答はAzure OpenAIに保存されません。
欧州連合(EU)のワークスペースの場合、LLMジャッジはEUでホストされているモデルを使用します。他のすべてのリージョンでは、米国でホストされているモデルを使用します。
パートナー提供の AI 支援機能 を無効にすると、LLM の裁判官がパートナー提供モデルを呼び出すことができなくなります。
LLMジャッジに送信されたデータは、モデルのトレーニングには使用されません。
LLMジャッジは、顧客のRAGアプリケーションの評価を支援することを目的としており、LLMジャッジの出力は、LLMのトレーニング、改善、微調整のために使用されるべきではありません。