Mosaic AI エージェント評価とは?
重要
この機能はパブリック プレビュー段階にあります。
この記事では、モザイク AI エージェント評価を使用する方法の概要について説明します。 エージェント評価は、RAG アプリケーションやチェーンを含む、エージェント AI アプリケーションの品質、コスト、待機時間を、開発者が評価するのに役立ちます。 エージェント評価は、品質の問題を特定し、それらの問題の根本原因を特定するように設計されています。 エージェント評価の機能は、MLOps ライフ サイクルの開発、ステージング、運用の各フェーズ全体で統合されており、すべての評価メトリックとデータは MLflow 実行にログされます。
Agent Evaluation は、高度な調査に基づく評価手法を、Lakehouse、MLflow、およびその他の Databricks Data Intelligence Platform コンポーネントと統合された、わかりやすい SDK と UI に統合します。 モザイク AI の研究と共同で開発されたこの独自のテクノロジは、エージェントのパフォーマンスを分析および強化するための包括的なアプローチを提供します。
エージェント AI アプリケーションは複雑であり、さまざまなコンポーネントを含みます。 これらのアプリケーションのパフォーマンスの評価は、従来の ML モデルのパフォーマンスを評価するほど簡単ではありません。 品質の評価に使用される定性的メトリックと定量的メトリックはどちらも、本質的により複雑です。 エージェント評価には、取得と要求の品質を評価するための独自の LLM ジャッジとエージェント メトリックと、待機時間やトークン コストなどの全体的なパフォーマンス メトリックが含まれます。
エージェント評価操作の使用方法は?
次のコードは、以前に生成された出力に対してエージェント評価を呼び出してテストする方法を示しています。 エージェント評価は、その一部である LLM ジャッジによって計算された評価スコアを含むデータフレームを返します。
次のコードをコピーして、既存の 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."
}],
},
# Primitive string format
# Note: Using a primitive string is discouraged. The string will be wrapped in the
# OpenAI messages format before being passed to your agent.
"How do I convert a Spark DataFrame to Pandas?"
],
"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.",
]
}
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
)
# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])
または、次のノートブックを Databricks ワークスペースにインポートして実行することもできます。
Mosaic AI エージェント評価例のノートブック
エージェント評価の入力と出力
次の図は、エージェント評価で受け入れられる入力と、エージェント評価によって生成される対応する出力の概要を示しています。
入力
フィールド名やデータ型など、エージェント評価に必要な入力の詳細については、 input スキーマを参照してください。 フィールドの一部は次のとおりです。
- ユーザーのクエリ (
request
):エージェントへの入力 (ユーザーの質問またはクエリ) を します。 たとえば、"RAG とは何ですか?"。 - エージェントの応答 (
response
):エージェントによって生成された応答 。 たとえば、"取得拡張生成は ..." です。 - 予想される応答 (
expected_response
): (省略可能) 地上の真実 (正しい) 応答。 - MLflow トレース (
trace
): (省略可能) エージェントの MLflow トレース、エージェント評価によって取得されたコンテキストやツール呼び出しなどの中間出力が抽出されます。 または、これらの中間出力を直接指定することもできます。
出力
これらの入力に基づいて、Agent Evaluation は次の 2 種類の出力を生成します。
- 評価結果 (行ごと): 入力として指定された各行について、エージェント評価は、エージェントの品質、コスト、待機時間の詳細な評価を含む対応する出力行を生成します。
- LLM のジャッジは、正確性や接地性など、品質のさまざまな側面をチェックし、はい/いいえのスコアを出力し、そのスコアの根拠を書き込みます。 詳細については、「 エージェント評価で品質、コスト、待機時間を評価する方法を参照してください。
- LLM ジャッジの評価を組み合わせて、その行が "合格" (高品質) または "失敗" (品質の問題がある) かどうかを示す全体的なスコアを生成します。
- 失敗した行については、根本原因が特定されます。 各根本原因は、特定の LLM ジャッジの評価に対応しており、判事の根拠を使用して潜在的な修正を特定できます。
- コストと待機時間は、 MLflow トレースから抽出されます。 詳細については、「 コストと待機時間の評価方法を参照してください。
- メトリック (集計スコア): すべての入力行にわたるエージェントの品質、コスト、待機時間を集計した集計スコア。 これには、正しい回答の割合、平均トークン数、平均待機時間などのメトリックが含まれます。 詳細については、「コストと待機時間を評価する方法品質、コスト、待機時間について MLflow 実行のレベルでメトリックを集計する方法を参照してください。
開発 (オフライン評価) と運用 (オンライン監視)
エージェント評価は、開発 (オフライン) 環境と運用環境 (オンライン) 環境の間で一貫するように設計されています。 この設計により、開発から運用環境へのスムーズな移行が可能になり、高品質のエージェント アプリケーションをすばやく反復処理、評価、デプロイ、監視できます。
開発と生産の主な違いは、運用環境では地表のラベルを持たないのに対し、開発中は必要に応じてグラウンド・トゥルース・ラベルを使用できることです。 地上信頼度ラベルを使用すると、エージェント評価で追加の品質メトリックを計算できます。
開発 (オフライン)
開発中、 requests
と expected_responses
は、 評価セットから取得されます。 評価セットは、エージェントが正確に処理できる代表的な入力のコレクションです。 評価セットの詳細については、 評価セットを参照してください。
response
とtrace
を取得するために、Agent Evaluation はエージェントのコードを呼び出して、評価セット内の各行に対してこれらの出力を生成できます。 または、これらの出力を自分で生成し、エージェント評価に渡すことができます。 詳細については、「 評価実行に入力を提供する方法 を参照してください。
運用 (オンライン)
運用環境では、エージェント評価へのすべての入力は、運用ログから取得されます。
Mosaic AI Agent Framework を使用して AI アプリケーションをデプロイする場合、エージェント評価は、 エージェント拡張推論テーブルからこれらの入力を自動的に収集し 監視ダッシュボードを継続的に更新するように構成できます。 詳細については、「 運用トラフィックでエージェントの品質を監視する方法を参照してください。
Azure Databricks の外部にエージェントをデプロイする場合は、必要な input スキーマにログを ETL し 同様に監視ダッシュボードを構成できます。
評価セットを使用して品質ベンチマークを確立する
開発中の AI アプリケーションの品質 (オフライン) を測定するには、評価セット、つまり代表的な質問のセットとオプションの地上の答えを定義する必要があります。 アプリケーションに RAG ワークフローなどの取得手順が含まれている場合、必要に応じて、応答の根拠になると思われる補足ドキュメントを作成します。
メトリックの依存関係やベスト プラクティスなど、評価セットの詳細については、「 評価セットを参照してください。 必要なスキーマについては、 Agent Evaluation 入力スキーマを参照してください。
評価の実行
評価を実行する方法の詳細については、「評価を実行して結果を表示する方法」を参照してください。 エージェント評価では、チェーンからの出力を提供するための 2 つのオプションがサポートされています。
- アプリケーションを評価実行の一部として実行できます。 アプリケーションは、評価セット内の入力ごとに結果を生成します。
- アプリケーションの前回の実行からの出力を提供できます。
各オプションを使用するタイミングの詳細と説明については、「評価実行に入力を提供する方法」を参照してください。
GenAI アプリケーションの品質に関する人間のフィードバックを得る
Databricks レビュー アプリを使用すると、人間のレビュー担当者から AI アプリケーションの品質に関するフィードバックを簡単に収集できます。 詳細については、「エージェント アプリケーションの品質に関するフィードバックを得る」を参照してください。
アシスタント機能の利用可能地域
Databricks アシスタントは、カスタマー コンテンツを処理する際に Geos を使用してデータ所在地を管理する指定サービスです。 さまざまな地域でエージェント評価機能を利用できるかどうかの詳細については、「Databricks Designated Services」を参照してください。
価格
価格情報については、「Mosaic AI エージェント評価の価格」を参照してください。
制限事項
エージェントの評価は、HIPAA が有効なワークスペースでは使用できません。
LLM ジャッジをサポートするモデルに関する情報
- LLM ジャッジではサードパーティのサービスを使用して、Microsoft が運営する Azure OpenAI などの、GenAI アプリケーションを評価する場合があります。
- Azure OpenAI の場合、Databricks は不正使用の監視をオプトアウトしているため、Azure OpenAI ではプロンプトや応答が格納されません。
- 欧州連合 (EU) ワークスペースの場合、LLM ジャッジは EU でホストされているモデルを使用します。 他のすべてのリージョンでは、米国でホストされているモデルが使用されます。
- Azure の AI 搭載 AI アシスタント機能を無効にすると、LLM ジャッジが Azure AI 搭載 モデルを呼び出せなくなります。
- LLM ジャッジに送信されるデータは、モデル トレーニングには使用されません。
- LLM ジャッジは、お客様が RAG アプリケーションを評価するのを支援することを目的としています。LLM ジャッジの出力は、LLM のトレーニング、改善、微調整には使用しないでください。