メインコンテンツまでスキップ

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リサーチチームと共同で開発されたこの独自の技術は、エージェントのパフォーマンスを分析および強化するための包括的なアプローチを提供します。

評価を示すLLMOps図

エージェントAIアプリケーションは複雑で、多くの異なるコンポーネントが関与しています。 これらのアプリケーションのパフォーマンスを評価することは、従来の ML モデルのパフォーマンスを評価するほど簡単ではありません。 品質を評価するために使用される定性的メトリクスと定量的メトリクスは、どちらも本質的により複雑です。 Agent Evaluation には、独自の LLM ジャッジとエージェント メトリクスが含まれており、取得とリクエストの品質だけでなく、レイテンシーやトークン コストなどの全体的なパフォーマンス メトリクスも評価します。

Agent Evaluation はどのように使用しますか?

次のコードは、以前に生成された出力で Agent Evaluation を呼び出してテストする方法を示しています。 これは、エージェント評価の一部である LLM ジャッジによって計算された評価スコアを持つデータフレームを返します。

次のものをコピーして、既存の Databricks ノートブックに貼り付けることができます。

Python
%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'])

または、次のノートブックを Databricks ワークスペースにインポートして実行することもできます。

Mosaic AI エージェント評価サンプルノートブック

Open notebook in new tab

エージェント評価の入力と出力

次の図は、エージェント評価によって受け入れられる入力と、エージェント評価によって生成される対応する出力の概要を示しています。

エージェント_eval_data_flows

入力

エージェント評価に必要な入力 (フィールド名やデータ型など) の詳細については、 入力スキーマを参照してください。 一部のフィールドは次のとおりです。

  • ユーザーのクエリ (request): エージェントへの入力 (ユーザーの質問またはクエリ)。 たとえば、「RAGとは」などです。
  • エージェントの応答 (response): エージェントによって生成された応答。 たとえば、「Retrieval augmented generation is...」などです。
  • 予想される応答 (expected_response): (オプション) グラウンド トゥルース (正しい) 応答。
  • MLflow トレース (trace): (省略可能) エージェントの MLflow トレースで、エージェント評価によって取得されたコンテキストやツール呼び出しなどの中間出力が抽出されます。 または、これらの中間出力を直接提供することもできます。
  • ガイドライン (guidelines): (オプション) モデルの出力が準拠することが期待されるガイドラインまたは名前付きガイドラインの一覧。

出力

これらの入力に基づいて、エージェント評価は 2 種類の出力を生成します。

  1. 評価結果(行ごと): 入力として指定された各行について、Agent Evaluation は、エージェントの品質、コスト、および遅延の詳細な評価を含む対応する出力行を生成します。

    • LLMの審査員は、正しさや根拠など、品質のさまざまな側面をチェックし、はい/いいえのスコアとそのスコアの根拠を出力します。 詳細については 、「エージェント評価による品質、コスト、および遅延の評価方法」を参照してください。

    • LLMジャッジの評価は、その行が「合格」(高品質)か「不合格」(品質に問題がある)を示す総合スコアを生成するために行われます。

      • 失敗した行については、根本原因が特定されます。 各根本原因は特定のLLMジャッジの評価に対応しているため、ジャッジの理論的根拠を使用して潜在的な修正を特定できます。
    • コストと待機時間は、 MLflow トレースから抽出されます。 詳細については、「 コストとレイテンシの評価方法」を参照してください。

  2. メトリクス (集計スコア): すべての入力行にわたるエージェントの品質、コスト、および遅延をまとめた集計スコア。 これには、正解率、平均トークン数、平均レイテンシなどのメトリクスが含まれます。 詳細については、「 コストとレイテンシの評価方法 」および「 品質、コスト、レイテンシについて MLflow 実行レベルでメトリクスを集計する方法」を参照してください。

Development (offline evaluation) and 本番運用 (online モニタリング)

Agent Evaluation は、開発環境 (オフライン) と本番運用 (オンライン) 環境で一貫性を保つように設計されています。 この設計により、開発から本番運用へのスムーズな移行が可能になり、高品質のエージェントアプリケーションを迅速に反復、評価、デプロイ、監視できます。

開発と本番運用の主な違いは、本番運用ではグラウンドトゥルースラベルがないのに対し、開発ではオプションでグラウンドトゥルースラベルを使用できる点です。 グラウンドトゥルースラベルを使用すると、Agent Evaluation は追加の品質メトリクスをコンピュートできます。

開発(オフライン)

エージェント_eval_overview_dev

開発では、requestsexpected_responses 評価セット から取得されます。評価セットは、エージェントが正確に処理できる必要がある代表的な入力のコレクションです。 評価セットの詳細については、「 評価セット」を参照してください。

responsetraceを取得するために、エージェント評価はエージェントのコードを呼び出して、評価セットの各行に対してこれらの出力を生成できます。または、これらの出力を自分で生成し、Agent Evaluation に渡すこともできます。 詳細については、「 評価実行に入力を提供する方法 」を参照してください。

本番運用 (online)

エージェント_eval_overview_prod

本番運用では、Agent Evaluation へのすべての入力は本番運用ログから取得されます。

Mosaic AIエージェントフレームワークを使用してAIアプリケーションをデプロイする場合、エージェント評価は、モニターデプロイされたエージェントからこれらの入力を自動的に収集し、モニタリングテーブルを継続的に更新するように設定できます。詳細については、「 ジェネレーション AI アプリを監視する方法」を参照してください。

エージェントを の外部にデプロイする場合は、ログを必要なDatabricks ETL入力スキーマ に し、同様にモニタリングダッシュボードを設定できます。

評価セットで品質ベンチマークを確立する

開発中 (オフライン) の AI アプリケーションの品質を測定するには、評価セット (代表的な質問のセットとオプションのグラウンド トゥルース回答) を定義する必要があります。 RAGワークフローのように、アプリケーションに取得ステップが含まれる場合は、応答の基となると思われるサポートドキュメントをオプションで提供できます。

  • 評価セットの詳細 (メトリクスの依存関係やベストプラクティスなど) については、「 評価セット」を参照してください。
  • 必要なスキーマについては、 エージェント評価入力スキーマを参照してください。
  • 高品質の評価セットを合成的に生成する方法については、「 評価セットの合成」を参照してください。

評価 実行

評価を実行する方法の詳細については、「 評価の実行と結果の表示」を参照してください。 エージェント評価では、チェーンからの出力を提供するための 2 つのオプションがサポートされています。

  • 評価実行の一部としてアプリケーションを実行できます。 アプリケーションは、評価セットの各入力に対して結果を生成します。
  • アプリケーションの以前の実行からの出力を提供できます。

各オプションをいつ使用するかの詳細と説明については、「 評価実行に入力を提供する」を参照してください。

生成AI アプリケーションの品質について人間によるフィードバックを得る

Databricks レビュー アプリを使用すると、AI アプリケーションの品質に関するフィードバックを人間のレビュアーから簡単に収集できます。詳細については、「 レビュー アプリを使用して AI 生成アプリの人間によるレビューを行う」を参照してください。

Agent EvaluationGeo の 可用性Mosaic AI

Mosaic AIAgent EvaluationGeosは、顧客コンテンツを処理する際に を使用してデータ所在地を管理する 指定サービス です。さまざまな地域でのエージェント評価の可用性の詳細については、「 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のトレーニング、改善、微調整のために使用されるべきではありません。
この記事は役に立ちましたか?