Mosaic AIエージェント評価入門

プレビュー

この機能はパブリックプレビュー段階です。

この記事では、Mosaic AI エージェントの評価について説明します。 エージェント評価を使用すると、開発者は、より単純な形式の RAG アプリケーションやチェーンを含む、エージェント生成AIアプリケーションの品質、レイテンシ、コストを迅速かつ確実に評価できます。 エージェント評価の機能は、 MLOpsライフサイクルの開発、ステージング、および本番運用の各フェーズにわたって統合されており、すべての評価メトリックとデータはMLflow実行に記録されます。

エージェント・アプリケーションは複雑で、多くの異なるコンポーネントが関係しています。 これらのアプリケーションのパフォーマンスを評価することは、従来の ML モデルのパフォーマンスを評価するほど簡単ではありません。 品質を評価するために使用される定性的および定量的メトリックは、本質的により複雑です。 この記事では、エージェント評価の使用方法の概要と、より詳細な記事へのリンクを示します。

エージェント評価の例

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

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

%pip install mlflow databricks-agents
dbutils.library.restartPython()

import mlflow
import pandas as pd

examples =  {
    "request": [
        "What is Spark?",
        "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 エージェント評価サンプルノートブック

ノートブックを新しいタブで開く

評価セットでグラウンドトゥルースを確立する

エージェント アプリケーションの品質を測定するには、高品質で正確な応答がどのようなものかを定義する必要があります。 そのためには、代表的な質問とグラウンドトゥルースの回答のセットである評価セットを作成します。 アプリケーションに RAG ワークフローのような取得ステップが含まれる場合は、応答の根拠となるサポート ドキュメントをオプションで提供できます。

スキーマ、メトリクスの依存関係、ベストプラクティスなど、評価セットの詳細については、「評価セット」を参照してください。

適切なメトリクスでパフォーマンスを評価する

AIアプリケーションを評価するには、次のようないくつかのメトリクスが必要です。

  • 応答メトリック。応答が正確であるか、取得されたコンテキスト(存在する場合)と一致しているか、入力要求に関連しているかどうかを測定します。

  • 検索メトリック。検索ステップ (ある場合) が入力要求に関連するチャンクを返したかどうかを測定します。

  • パフォーマンスメトリクス。すべてのLLM生成呼び出しにわたるトークンの数とトレースの遅延(秒単位)を測定します。

メトリクスと LLM 審査員の詳細については、 「エージェント メトリクスと LLM 審査員を使用してアプリのパフォーマンスを評価する」を参照してください。

評価実行

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

  • 評価実行の一部としてアプリケーションを実行できます。 アプリケーションは、評価セット内の入力ごとに結果を生成します。

  • アプリケーションの以前の実行からの出力を提供できます。

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

生成AIアプリケーションの品質に関する人間からのフィードバックを取得する

Databricks レビュー アプリを使用すると、エージェント アプリケーションの品質に関するフィードバックを人間のレビュー担当者から簡単に収集できます。 詳細については、「 エージェント アプリケーションの品質に関するフィードバックを取得する」を参照してください。

制約

エージェント評価は、HIPAA 対応のワークスペースでは利用できません。

LLMジャッジを支援するモデルに関する情報

  • LLMジャッジは、Microsoftが運営するAzure OpenAIなどのサードパーティサービスを使用して生成AIアプリケーションを評価する場合があります。

  • Azure OpenAIの場合、Databricksは不正行為モニタリングをオプトアウトしているため、プロンプトや応答はAzure OpenAIに保存されません。

  • 欧州連合(EU)のワークスペースの場合、LLMジャッジはEUでホストされているモデルを使用します。他のすべてのリージョンでは、米国でホストされているモデルを使用します。

  • パートナー駆動のAI 補助機能を無効にすると、LLM 審査員がパートナー駆動のモデルを呼び出せなくなります。

  • LLM ジャッジに送信されたデータは、モデルのトレーニングには使用されません。

  • LLMジャッジは、顧客のRAGアプリケーションの評価を支援することを目的としており、LLMジャッジの出力は、LLMのトレーニング、改善、微調整のために使用されるべきではありません。