次の方法で共有


モザイク AI エージェント評価 LLM のジャッジ リファレンス

重要

この機能はパブリック プレビュー段階にあります。

この記事では、必要な入力と出力メトリックなど、Mosaic AI Agent Evaluation に組み込まれている各 LLM ジャッジの詳細について説明します。 また、 カスタムジャッジによって生成された出力もカバー

LLM のジャッジの概要については、「 エージェント評価で品質、コスト、待機時間を評価する方法を参照してください。

対応ジャッジ

応答品質メトリックは、アプリケーションの応答がユーザーの要求に対してどの程度適切かを評価します。 これらのメトリックは、地上の真理と比較した応答の精度、取得したコンテキストを考慮して応答が十分に根拠があるかどうか (または LLM が幻覚的かどうか)、応答が安全で有毒な言語を含まないかどうかなどの要因を評価します。

総合的に、LLM は正確な応答を生成しましたか?

correctness LLM ジャッジは、エージェントが生成した応答が事実上正確であり、提供されたグラウンド トゥルースの応答と意味的に類似しているかどうかについて、バイナリ評価と論理的根拠の記述を提供します。

correctness に必要な入力

グラウンド トゥルース expected_response が必要です。

入力評価セットには、次の列が必要です。

  • request
  • expected_response

さらに、mlflow.evaluate() の呼び出しで model 引数を使用しない場合は、response または trace も指定する必要があります。

重要

グラウンド トゥルース expected_response には、正しい応答として必要な最小限の事実のみを含めるべきです。 別のソースから応答をコピーする場合は、応答を編集して、 必須ではないテキストを削除し 回答が正しいと見なされるようにします。

必要な情報のみを含め、応答に厳密に要求されない情報を除外することで、Agent Evaluation は出力品質をより正確に評価できるようになります。

correctness の出力

質問ごとに次のメトリックが計算されます。

データ フィールド 説明
response/llm_judged/correctness/rating string yes または noyes は、生成された応答が非常に正確であり、グラウンド トゥルースと意味的に類似していることを示します。 グラウンド トゥルースの意図に関して軽微な省略や不正確さがあったとしても、許容される程度です。 no は、応答が条件を満たしていないことを示します。
response/llm_judged/correctness/rationale string yes または no に関する LLM の推論記述。
response/llm_judged/correctness/error_message string このメトリックの計算中にエラーが発生した場合、エラーの詳細はここに表示されます。 エラーがない場合、ここは NULL になります。

評価セット全体について、次のメトリックが計算されます。

メトリックの名前 説明
response/llm_judged/correctness/rating/percentage float, [0, 1] すべての質問において、正確性が yes と判断される割合。

応答は要求に関連していますか?

relevance_to_query LLM ジャッジは、応答が入力要求に関連しているかどうかを判断します。

relevance_to_query に必要な入力

グラウンド トゥルースは必要ありません。

入力評価セットには、次の列が必要です。

  • request

さらに、mlflow.evaluate() の呼び出しで model 引数を使用しない場合は、response または trace も指定する必要があります。

relevance_to_query の出力

質問ごとに次のメトリックが計算されます。

データ フィールド 説明
response/llm_judged/relevance_to_query/rating string 応答が要求に関連していると判断された場合はyes、それ以外の場合は no
response/llm_judged/relevance_to_query/rationale string yes または no に関する LLM の推論記述。
response/llm_judged/relevance_to_query/error_message string このメトリックの計算中にエラーが発生した場合、エラーの詳細はここに表示されます。 エラーがない場合、ここは NULL になります。

評価セット全体について、次のメトリックが計算されます。

メトリックの名前 説明
response/llm_judged/relevance_to_query/rating/percentage float, [0, 1] すべての質問において、relevance_to_query/ratingyes と判断される割合。

応答は、ハルシネーションか、それとも取得されたコンテキストに基づいているか?

groundedness LLM ジャッジは、生成された応答が取得されたコンテキストと事実上一致しているかどうかについて、バイナリ評価と論理的根拠の記述を返します。

groundedness に必要な入力

グラウンド トゥルースは必要ありません。

入力評価セットには、次の列が必要です。

  • request

さらに、mlflow.evaluate()の呼び出しで model 引数を使用しない場合は、trace または responseretrieved_context[].content の両方も指定する必要があります。

groundedness の出力

質問ごとに次のメトリックが計算されます。

データ フィールド 説明
response/llm_judged/groundedness/rating string 取得されたコンテキストが、生成された応答のすべてまたはほとんどすべてをサポートする場合は yes、それ以外の場合は no
response/llm_judged/groundedness/rationale string yes または no に関する LLM の推論記述。
response/llm_judged/groundedness/error_message string このメトリックの計算中にエラーが発生した場合、エラーの詳細はここに表示されます。 エラーがない場合、ここは NULL になります。

評価セット全体について、次のメトリックが計算されます。

メトリックの名前 説明
response/llm_judged/groundedness/rating/percentage float, [0, 1] すべての質問において、groundedness/ratingyes と判断される割合。

エージェントの応答に有害なコンテンツが含まれていますか?

safety LLM ジャッジは、生成された応答に有害または有毒なコンテンツが含まれているかどうかについて、バイナリ評価と論理的根拠の記述を返します。

safety に必要な入力

グラウンド トゥルースは必要ありません。

入力評価セットには、次の列が必要です。

  • request

さらに、mlflow.evaluate() の呼び出しで model 引数を使用しない場合は、response または trace も指定する必要があります。

safety の出力

質問ごとに次のメトリックが計算されます。

データ フィールド 説明
response/llm_judged/safety/rating string 応答に有害コンテンツや毒性コンテンツが含まれていない場合は yes、それ以外の場合は no
response/llm_judged/safety/rationale string yes または no に関する LLM の推論記述。
response/llm_judged/safety/error_message string このメトリックの計算中にエラーが発生した場合、エラーの詳細はここに表示されます。 エラーがない場合、ここは NULL になります。

評価セット全体について、次のメトリックが計算されます。

メトリックの名前 説明
response/llm_judged/safety/rating/average float, [0, 1] すべての質問において、yes と判断された割合。

検索ジャッジ

取得品質メトリックは、入力要求に関連するドキュメントを検索する場合のレトリバーのパフォーマンスを評価します。 これらのメトリックは、次のような要因を評価します。 既知の関連ドキュメントのうち、いくつが見つかりましたか? 予想される応答を生成するのに十分なドキュメントが見つかりましたか?

検索器は関連するチャンクを見つけましたか?

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 の出力

質問ごとに次のメトリックが計算されます。

データ フィールド 説明
retrieval/llm_judged/chunk_relevance/ratings array[string] 各チャンクに対して、yes または no で、取得されたチャンクが入力要求に関連しているかどうかを示します。
retrieval/llm_judged/chunk_relevance/rationales array[string] 各チャンクに対して、対応する評価に関する LLM の推論
retrieval/llm_judged/chunk_relevance/error_messages array[string] 各チャンクで、評価の計算にエラーがあった場合、エラーの詳細がここに出力され、その他の出力値は NULL になります。 エラーがない場合、ここは NULL になります。
retrieval/llm_judged/chunk_relevance/precision float, [0, 1] 取得したすべてのチャンクにおける関連するチャンクの割合を計算します。

評価セット全体について報告されるメトリックは次のとおりです。

メトリックの名前 説明
retrieval/llm_judged/chunk_relevance/precision/average float, [0, 1] すべての質問における chunk_relevance/precision の平均値

検索器が見つけた既知の関連ドキュメント数はいくつですか?

document_recall は、返された関連ドキュメントの数を、グラウンド トゥルースに基づく関連ドキュメントの合計数で割って計算されます。 たとえば、グラウンド トゥルースに基づいて 2 つのドキュメントが関連しているとします。 検索器がこれらのドキュメントのいずれかを返す場合、 document_recall は 0.5 です。 このメトリックは、返されたドキュメントの合計数の影響を受けません。

このメトリックは決定論的であり、LLM ジャッジは使用しません。

document_recall に必要な入力

グラウンド トゥルースが必要です。

入力評価セットには、次の列が必要です。

  • expected_retrieved_context[].doc_uri

さらに、mlflow.evaluate() の呼び出しで model 引数を使用しない場合は、retrieved_context[].doc_uri または trace も指定する必要があります。

document_recall の出力

質問ごとに次のメトリックが計算されます。

データ フィールド 説明
retrieval/ground_truth/document_recall float, [0, 1] 取得したチャンクに含まれるグラウンド トゥルース doc_uris の割合。

評価セット全体について、次のメトリックが計算されます。

メトリックの名前 説明
retrieval/ground_truth/document_recall/average float, [0, 1] すべての質問での document_recall の平均値

取得コンポーネントは、予想される応答を生成するのに十分なドキュメントを見つけましたか?

context_sufficiency LLM ジャッジは、取得コンポーネントが予想される応答を生成するのに十分なドキュメントを取得したかどうかを判断します。

context_sufficiency に必要な入力

グラウンド トゥルース expected_response が必要です。

入力評価セットには、次の列が必要です。

  • request
    • expected_response

さらに、mlflow.evaluate() の呼び出しで model 引数を使用しない場合は、retrieved_context[].content または trace も指定する必要があります。

context_sufficiency の出力

質問ごとに次のメトリックが計算されます。

データ フィールド 説明
retrieval/llm_judged/context_sufficiency/rating string yes または noyes は、取得されたコンテキストが期待される応答を生成するのに十分であることを示します。 no は、不足している情報を回収するように、この質問に対して取得を調整する必要があることを示します。 出力の根拠には、不足している情報が記載されている必要があります。
retrieval/llm_judged/context_sufficiency/rationale string yes または no に関する LLM の推論記述。
retrieval/llm_judged/context_sufficiency/error_message string このメトリックの計算中にエラーが発生した場合、エラーの詳細はここに表示されます。 エラーがない場合、ここは NULL になります。

評価セット全体について、次のメトリックが計算されます。

メトリックの名前 説明
retrieval/llm_judged/context_sufficiency/rating/percentage float, [0, 1] コンテキストの十分性が yesと判断される割合。

カスタム ジャッジ メトリック

ユース ケースに固有の評価を実行するカスタム ジャッジを作成できます。 詳細については、「カスタム LLM ジャッジを作成する」をご覧ください。

カスタム ジャッジが生成する出力は、assessment_typeANSWERRETRIEVALによって異なります。

ANSWER 評価のためのカスタム LLM ジャッジ

ANSWER 評価のカスタム LLM ジャッジは、各質問の応答を評価します。

各評価の出力は次のとおり。

データ フィールド 説明
response/llm_judged/{assessment_name}/rating string yes または no
response/llm_judged/{assessment_name}/rationale string yes または no に関する LLM の推論記述。
response/llm_judged/{assessment_name}/error_message string このメトリックの計算中にエラーが発生した場合、エラーの詳細はここに表示されます。 エラーがない場合、ここは NULL になります。

評価セット全体について、次のメトリックが計算されます。

メトリックの名前 説明
response/llm_judged/{assessment_name}/rating/percentage float, [0, 1] すべての質問において、{assessment_name} が yes と判断される割合。

取得評価のためのカスタム LLM ジャッジ

取得評価のカスタム LLM ジャッジは、すべての質問で取得された各チャンクを評価します。

各評価の出力は次のとおり。

データ フィールド 説明
retrieval/llm_judged/{assessment_name}/ratings array[string] チャンクごとの、yes または no に関するカスタム ジャッジの評価。
retrieval/llm_judged/{assessment_name}/rationales array[string] チャンクごとの、yes または no に関する LLM の推論記述。
retrieval/llm_judged/{assessment_name}/error_messages array[string] 各チャンクごとに、このメトリックの計算にエラーがあった場合、エラーの詳細がここに出力され、その他の値は NULL になります。 エラーがない場合、ここは NULL になります。
retrieval/llm_judged/{assessment_name}/precision float, [0, 1] カスタムジャッジが yes として評価したすべての取得済みチャンクの割合。

評価セット全体について報告されるメトリックは次のとおり。

メトリックの名前 説明
retrieval/llm_judged/{assessment_name}/precision/average float, [0, 1] すべての質問での {assessment_name}_precision の平均値