Von Bedeutung
このページでは、MLflow 2 でのエージェント評価バージョン 0.22
の使用方法について説明します。 Databricks では、エージェント評価 >1.0
と統合された MLflow 3 を使用することをお勧めします。 MLflow 3 では、エージェント評価 API が mlflow
パッケージの一部になりました。
このトピックの詳細については、「 評価と監視」を参照してください。
この記事では、モザイク AI エージェント評価を使用する方法の概要について説明します。 エージェント評価は、RAG アプリケーションやチェーンを含む、エージェント AI アプリケーションの品質、コスト、待機時間を、開発者が評価するのに役立ちます。 エージェント評価は、品質の問題を特定し、それらの問題の根本原因を特定するように設計されています。 エージェント評価の機能は、MLOps ライフ サイクルの開発、ステージング、運用の各フェーズ全体で統合されており、すべての評価メトリックとデータは MLflow 実行にログされます。
Agent Evaluation は、高度な調査に基づく評価手法を、Lakehouse、MLflow、およびその他の Databricks Data Intelligence Platform コンポーネントと統合された、わかりやすい SDK と UI に統合します。 モザイク AI の研究と共同で開発されたこの独自のテクノロジは、エージェントのパフォーマンスを分析および強化するための包括的なアプローチを提供します。
エージェント AI アプリケーションは複雑であり、さまざまなコンポーネントを含みます。 これらのアプリケーションのパフォーマンスの評価は、従来の ML モデルのパフォーマンスを評価するほど簡単ではありません。 品質の評価に使用される定性的メトリックと定量的メトリックはどちらも、本質的により複雑です。 エージェント評価には、取得と要求の品質を評価するための独自の LLM ジャッジとエージェント メトリックと、待機時間やトークン コストなどの全体的なパフォーマンス メトリックが含まれます。
エージェント評価の操作方法
次のコードは、以前に生成された出力に対してエージェント評価を呼び出してテストする方法を示しています。 エージェント評価の一環として、LLMジャッジによって計算された評価スコアを含むデータフレームを返します。 Databricks ワークスペースで実行できる同様のコードを含むクイック スタート ノートブックの ノートブックの例 を参照してください。
次のコードをコピーして、既存の Databricks ノートブックに貼り付けることができます。
%pip install mlflow databricks-agents
dbutils.library.restartPython()
import mlflow
import pandas as pd
examples = {
"request": [
{
# Recommended `messages` format
"messages": [{
"role": "user",
"content": "Spark is a data analytics framework."
}],
},
# SplitChatMessagesRequest format
{
"query": "How do I convert a Spark DataFrame to Pandas?",
"history": [
{"role": "user", "content": "What is Spark?"},
{"role": "assistant", "content": "Spark is a data processing engine."},
],
}
# Note: Using a primitive string is discouraged. The string will be wrapped in the
# OpenAI messages format before being passed to your agent.
],
"response": [
"Spark is a data analytics framework.",
"This is not possible as Spark is not a panda.",
],
"retrieved_context": [ # Optional, needed for judging groundedness.
[{"doc_uri": "doc1.txt", "content": "In 2013, Spark, a data analytics framework, was open sourced by UC Berkeley's AMPLab."}],
[{"doc_uri": "doc2.txt", "content": "To convert a Spark DataFrame to Pandas, you can use toPandas()"}],
],
"expected_response": [ # Optional, needed for judging correctness.
"Spark is a data analytics framework.",
"To convert a Spark DataFrame to Pandas, you can use the toPandas() method.",
]
}
global_guidelines = {
"english": ["The response must be in English"],
"clarity": ["The response must be clear, coherent, and concise"],
}
result = mlflow.evaluate(
data=pd.DataFrame(examples), # Your evaluation set
# model=logged_model.model_uri, # If you have an MLFlow model. `retrieved_context` and `response` will be obtained from calling the model.
model_type="databricks-agent", # Enable Mosaic AI Agent Evaluation
evaluator_config={
"databricks-agent": {"global_guidelines": global_guidelines}
}
)
# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])
エージェント評価の入力と出力
次の図は、エージェント評価で受け入れられる入力と、エージェント評価によって生成される対応する出力の概要を示しています。
入力
フィールド名やデータ型など、エージェント評価に必要な入力の詳細については、 input スキーマを参照してください。 フィールドの一部は次のとおりです。
- ユーザーのクエリ (
request
): エージェントへの入力 (ユーザーの質問またはクエリ)。 たとえば、"RAG とは何ですか?"。 - エージェントの応答 (
response
): エージェントによって生成された応答。 たとえば "検索拡張生成は..."。 - 予想される応答 (
expected_response
): (省略可能) グラウンド トゥルースによる (正しい) 応答。 - MLflow トレース (
trace
): (省略可能) エージェントの MLflow トレース。エージェント評価では、取得したコンテキストやツール呼び出しなどの中間出力が抽出されます。 または、これらの中間出力を直接指定することもできます。 - ガイドライン (
guidelines
): (省略可能) モデルの出力が準拠することが期待されるガイドラインまたは名前付きガイドラインの一覧。
出力
これらの入力に基づいて、Agent Evaluation は次の 2 種類の出力を生成します。
- 評価結果 (行ごと): 入力として指定された各行に対して、エージェント評価は、エージェントの品質、コスト、待機時間の詳細な評価を含む対応する出力行を生成します。
- LLM のジャッジは、正確性や接地性など、品質のさまざまな側面をチェックし、はい/いいえのスコアを出力し、そのスコアの根拠を書き込みます。 詳細については、 エージェント評価 (MLflow 2) による品質、コスト、待機時間の評価方法に関するページを参照してください。
- LLM ジャッジの評価を組み合わせて、その行が "合格" (高品質) または "失敗" (品質の問題がある) かどうかを示す全体的なスコアを生成します。
- 失敗した行については、根本原因が特定されます。 各根本原因は、特定の LLM ジャッジの評価に対応しており、判事の根拠を使用して潜在的な修正を特定できます。
- コストと待機時間は、 MLflow トレースから抽出されます。 詳細については、「 コストと待機時間の評価方法を参照してください。
- メトリック (集計スコア): すべての入力行にわたるエージェントの品質、コスト、待機時間を集計した集計スコア。 これには、正しい回答の割合、平均トークン数、平均待機時間などのメトリックが含まれます。 詳細については、「コストと待機時間を評価する方法品質、コスト、待機時間について MLflow 実行のレベルでメトリックを集計する方法を参照してください。
開発 (オフライン評価) と運用 (オンライン監視)
エージェント評価は、開発 (オフライン) 環境と運用環境 (オンライン) 環境の間で一貫するように設計されています。 この設計により、開発から運用環境へのスムーズな移行が可能になり、高品質のエージェント アプリケーションをすばやく反復処理、評価、デプロイ、監視できます。
開発環境と運用環境の主な違いは、運用環境ではグラウンドトゥルース ラベルを持たないのに対し、開発環境では必要に応じてグラウンドトゥルース ラベルを使用できることです。 グラウンドトゥルース ラベルを使用すると、エージェント評価で追加の品質メトリックを計算できます。
開発 (オフライン)
開発中、 requests
と expected_responses
は、 評価セットから取得されます。 評価セットは、エージェントが正確に処理できる代表的な入力のコレクションです。 評価セットの詳細については、 評価セット (MLflow 2) を参照してください。
response
とtrace
を取得するために、Agent Evaluation はエージェントのコードを呼び出して、評価セット内の各行に対してこれらの出力を生成できます。 または、これらの出力を自分で生成し、エージェント評価に渡すことができます。 詳細については、「 評価実行に入力を提供する方法 を参照してください。
運用環境 (オンライン)
運用環境では、エージェント評価へのすべての入力は、運用ログから取得されます。
Mosaic AI Agent Framework を使用して AI アプリケーションをデプロイする場合、エージェント評価は、 デプロイされたエージェントの監視 からこれらの入力を自動的に収集し、監視テーブルを継続的に更新するように構成できます。 詳細については、「 エージェント フレームワーク (MLflow 2) を使用してデプロイされたアプリを監視する」を参照してください。
Azure Databricks の外部にエージェントをデプロイする場合は、エージェント監視を使用することもできます。 Azure Databricks (MLflow 2) の外部にデプロイされたアプリの監視に関するページを参照してください。
評価セットを使用して品質ベンチマークを確立する
開発環境 (オフライン) の AI アプリケーションの品質を測定するには、評価セット、つまり代表的な質問のセットと省略可能なグラウンドトゥルースによる回答を定義する必要があります。 アプリケーションに RAG ワークフローなどの取得手順が含まれている場合、必要に応じて、応答の根拠になると思われる補足ドキュメントを作成します。
- メトリックの依存関係やベスト プラクティスなど、評価セットの詳細については、 評価セット (MLflow 2) を参照してください。
- 必要なスキーマについては、 エージェント評価入力スキーマ (MLflow 2) を参照してください。
- 高品質な評価セットを合成的に生成する方法については、「評価セットの合成」を参照してください。
評価の実行
評価を実行する方法の詳細については、「評価を 実行して結果を表示する (MLflow 2)」を参照してください。 エージェント評価では、チェーンからの出力を提供するための 2 つのオプションがサポートされています。
- アプリケーションを評価実行の一部として実行できます。 アプリケーションは、評価セット内の入力ごとに結果を生成します。
- アプリケーションの前回の実行からの出力を提供できます。
各オプションを使用するタイミングの詳細と説明については、「評価実行に入力を提供する」を参照してください。
生成型 AI アプリケーションの品質に関する人間のフィードバックを得る
Databricks レビュー アプリを使用すると、人間のレビュー担当者から AI アプリケーションの品質に関するフィードバックを簡単に収集できます。 詳細については、「 Gen AI アプリ (MLflow 2) の人間によるレビューにレビュー アプリを使用する」を参照してください。
Mosaic AI エージェント評価の利用可能地域
Mosaic AI エージェント評価は、顧客コンテンツを処理するときにデータ所在地を管理するために地域を使用する指定サービスです。 さまざまな地域でエージェント評価機能を利用できるかどうかの詳細については、「Databricks Designated Services」を参照してください。
価格
価格情報については、「Mosaic AI エージェント評価の価格」を参照してください。
LLM ジャッジをサポートするモデルに関する情報
- LLM ジャッジではサードパーティのサービスを使用して、Microsoft が運営する Azure OpenAI などの、GenAI アプリケーションを評価する場合があります。
- Azure OpenAI の場合、Databricks は不正使用の監視をオプトアウトしているため、Azure OpenAI ではプロンプトや応答が格納されません。
- 欧州連合 (EU) ワークスペースの場合、LLM ジャッジは EU でホストされているモデルを使用します。 他のすべてのリージョンでは、米国でホストされているモデルが使用されます。
- Azure の AI 搭載 AI アシスタント機能を無効にすると、LLM ジャッジが Azure AI 搭載 モデルを呼び出せなくなります。
- LLM ジャッジは、お客様が GenAI エージェント/アプリケーションを評価するのを支援することを目的としています。LLM ジャッジの出力は、LLM のトレーニング、改善、微調整には使用しないでください。
ノートブックの例
次のノートは、モザイクAIエージェント評価の使用方法を説明しています。