Mosaic AIエージェント評価とは?
プレビュー
この機能はパブリックプレビュー段階です。
この記事では、Mosaic AI Agent Evaluation の使用方法の概要を説明します。 Agent Evaluationは、開発者がRAGアプリケーションやチェーンを含む エージェントAIアプリケーションの品質、コスト、およびレイテンシを評価するのに役立ちます。 エージェント評価は、品質の問題を特定し、それらの問題の根本原因を特定するように設計されています。 Agent Evaluation の機能は、 MLOps ライフサイクルの開発フェーズ、ステージングフェーズ、本番運用フェーズ全体で統合されており、すべての評価メトリクスとデータは MLflowランに記録されます。
Agent Evaluation は、研究に裏打ちされた高度な評価手法をユーザーフレンドリーな SDK と UI に統合し、レイクハウス、MLflow、その他の Databricks Data Intelligence Platform コンポーネントと統合します。 Mosaic AIリサーチチームと共同で開発されたこの独自の技術は、エージェントのパフォーマンスを分析および強化するための包括的なアプローチを提供します。
エージェントAIアプリケーションは複雑で、多くの異なるコンポーネントが関与しています。 これらのアプリケーションのパフォーマンスを評価することは、従来の ML モデルのパフォーマンスを評価するほど簡単ではありません。 品質を評価するために使用される定性的メトリクスと定量的メトリクスは、どちらも本質的により複雑です。 Agent Evaluation には、独自の LLM ジャッジと Agent メトリクスが含まれており、取得とリクエストの品質、およびレイテンシやトークンコストなどの全体的なパフォーマンスメトリクスを評価します。
Agent Evaluation はどのように使用しますか?
次のコードは、以前に生成された出力でエージェント評価を呼び出してテストする方法を示しています。 エージェント評価の一部である 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 ワークスペースに次のノートブックをインポートして実行することもできます。
エージェント評価の入力と出力
次の図は、エージェント評価によって受け入れられる入力と、エージェント評価によって生成される対応する出力の概要を示しています。
入力
エージェント評価に必要な入力 (フィールド名やデータ型など) の詳細については、 入力スキーマを参照してください。 一部のフィールドは次のとおりです。
ユーザーのクエリ (
request
): エージェントへの入力 (ユーザーの質問またはクエリ)。 たとえば、「RAGとは」などです。エージェントの応答 (
response
): エージェントによって生成された応答。 たとえば、「Retrieval augmented generation is...」などです。予想される応答 (
expected_response
): (オプション) グラウンド トゥルース (正しい) 応答。MLflow トレース (
trace
): (省略可能) エージェントの MLflow トレースで、エージェント評価によって取得されたコンテキストやツール呼び出しなどの中間出力が抽出されます。 または、これらの中間出力を直接提供することもできます。
出力
これらの入力に基づいて、エージェント評価は 2 種類の出力を生成します。
評価結果(行ごと): 入力として指定された各行について、Agent Evaluation は、エージェントの品質、コスト、および遅延の詳細な評価を含む対応する出力行を生成します。
LLMの審査員は、正しさや根拠など、品質のさまざまな側面をチェックし、はい/いいえのスコアとそのスコアの根拠を出力します。 詳細については 、「エージェント評価による品質、コスト、および遅延の評価方法」を参照してください。
LLMジャッジの評価は、その行が「合格」(高品質)か「不合格」(品質に問題がある)を示す総合スコアを生成するために行われます。
失敗した行については、根本原因が特定されます。 各根本原因は特定のLLMジャッジの評価に対応しているため、ジャッジの理論的根拠を使用して潜在的な修正を特定できます。
コストと待機時間は、 MLflow トレースから抽出されます。 詳細については、「 コストとレイテンシの評価方法」を参照してください。
メトリクス (集計スコア): すべての入力行にわたるエージェントの品質、コスト、および遅延をまとめた集計スコア。 これには、正解率、平均トークン数、平均レイテンシなどのメトリクスが含まれます。 詳細については、「 コストとレイテンシの評価方法 」および「 品質、コスト、レイテンシについて MLflow ランレベルでメトリクスを集計する方法」を参照してください。
開発(オフライン評価)と本番運用(オンラインモニタリング)
Agent Evaluation は、開発環境 (オフライン) と本番運用 (オンライン) 環境で一貫性を保つように設計されています。 この設計により、開発から本番運用へのスムーズな移行が可能になり、高品質のエージェントアプリケーションを迅速に反復、評価、デプロイ、監視できます。
開発と本番運用の主な違いは、本番運用ではグラウンドトゥルースラベルがないのに対し、開発ではオプションでグラウンドトゥルースラベルを使用できる点です。 グラウンドトゥルースラベルを使用すると、Agent Evaluation は追加の品質メトリクスをコンピュートできます。
開発(オフライン)
開発では、requests
とexpected_responses
評価セットから取得されます。評価セットは、エージェントが正確に処理できる必要がある代表的な入力のコレクションです。 評価セットの詳細については、「 評価セット」を参照してください。
response
とtrace
を取得するために、エージェント評価はエージェントのコードを呼び出して、評価セットの各行に対してこれらの出力を生成できます。または、これらの出力を自分で生成し、Agent Evaluation に渡すこともできます。 詳細については、「 評価実行に入力を提供する方法 」を参照してください。
本番運用 (オンライン)
本番運用では、Agent Evaluation へのすべての入力は本番運用ログから取得されます。
Mosaic AIAgent Framework を使用して AI アプリケーションをデプロイする場合、Agent 拡張推論テーブルからこれらの入力を自動的に収集し、モニタリングダッシュボードを継続的に更新するように Agent Evaluation を設定できます。詳細については、「 本番運用トラフィックでエージェントの品質を監視する方法」を参照してください。
エージェントを の外部にデプロイする場合は、ログを必要なDatabricks ETL入力スキーマ に し、同様にモニタリングダッシュボードを設定できます。
評価セットで品質ベンチマークを確立する
開発中 (オフライン) の AI アプリケーションの品質を測定するには、評価セット (代表的な質問のセットとオプションのグラウンド トゥルース回答) を定義する必要があります。 RAGワークフローのように、アプリケーションに取得ステップが含まれる場合は、応答の基となると思われるサポートドキュメントをオプションで提供できます。
評価セットの詳細 (メトリクスの依存関係やベストプラクティスなど) については、「 評価セット」を参照してください。 必要なスキーマについては、 エージェント評価入力スキーマを参照してください。
評価実行
評価の実行方法の詳細については、「評価を実行して結果を表示する方法」を参照してください。エージェント評価では、チェーンからの出力を提供するための 2つのオプションがサポートされています。
評価実行の一部としてアプリケーションを実行できます。 アプリケーションは、評価セット内の入力ごとに結果を生成します。
アプリケーションの以前の実行からの出力を提供できます。
各オプションをいつ使用するかの詳細と説明については、「評価の実行に入力を提供する方法」を参照してください。
生成AIアプリケーションの品質に関する人間からのフィードバックを取得する
Databricks レビュー アプリを使用すると、AI アプリケーションの品質に関するフィードバックを人間のレビュアーから簡単に収集できます。 詳細については、「 エージェント アプリケーションの品質に関するフィードバックを取得する」を参照してください。
アシスタント機能の地理的な可用性
Mosaic AIAgent Evaluation は、 Geosを使用して顧客コンテンツを処理する際のデータ所在地を管理する 指定サービス です。さまざまな地域でのエージェント評価の可用性の詳細については、「 Databricks 指定サービス」を参照してください。
価格
価格 情報については、 Mosaic AI Agent Evaluation 価格を参照してください。
LLMジャッジを支援するモデルに関する情報
LLMジャッジは、Microsoftが運営するAzure OpenAIなどのサードパーティサービスを使用して生成AIアプリケーションを評価する場合があります。
Azure OpenAIの場合、Databricksは不正行為モニタリングをオプトアウトしているため、プロンプトや応答はAzure OpenAIに保存されません。
欧州連合(EU)のワークスペースの場合、LLMジャッジはEUでホストされているモデルを使用します。他のすべてのリージョンでは、米国でホストされているモデルを使用します。
パートナー向けの AI 支援機能 を無効にすると、LLM の審査員がパートナー向けのモデルを呼び出すのを防ぐことができます。
LLM ジャッジに送信されたデータは、モデルのトレーニングには使用されません。
LLMジャッジは、顧客のRAGアプリケーションの評価を支援することを目的としており、LLMジャッジの出力は、LLMのトレーニング、改善、微調整のために使用されるべきではありません。