重要
この機能はベータ版です。
重要
このページでは、MLflow 2 でのエージェント評価バージョン 0.22
の使用方法について説明します。 Databricks では、エージェント評価 >1.0
と統合された MLflow 3 を使用することをお勧めします。 MLflow 3 では、エージェント評価 API が mlflow
パッケージの一部になりました。
このトピックの詳細については、「 運用品質の監視 (スコアラーを自動的に実行する)」を参照してください。
このページでは、GenAI の Lakehouse Monitoring のさまざまな機能を使用する方法について説明します。 監視を有効にするには、監視の 概要にリンクされている手順に従います。
監視結果の表示
監視結果を表示する前に、次のものが必要です。
これらの前提条件が満たされたら、次の手順に従って、モニターによって生成された結果を要約したページを表示できます。
[AI/ML] セクションの下のサイドバーで [実験] をクリックします。
モニターに関連付けられている MLflow 実験をクリックします。
関連する実験の名前を見つける方法がわからない場合は、「 監視メタデータの取得 」の手順に従って実験 ID を取得し、ノートブックで
mlflow.get_experiment(experiment_id=$YOUR_EXPERIMENT_ID)
実行して実験名を見つけます。[ 監視 ] タブをクリックします。
SQL Warehouse の選択 ドロップダウンを使用して、SQL ウェアハウスを選択します。
ページが更新され、監視結果が表示されます。 結果の読み込みに数分かかることがあります。
監視 UI を使用する
監視 UI のすべてのデータは、[ グラフ ] タブと [ ログ ] タブの両方で、時間枠に制限されます。 ウィンドウを変更するには、[ 時間範囲 ] ドロップダウンを使用します。
[グラフ] タブ
[グラフ] タブは、要求、メトリック、待機時間、エラーの 4 つのセクションで構成されます。
[要求] セクションには、時間の経過に伴うトレース ボリュームが表示されます。
[メトリック] セクションには、LLM ジャッジによって評価された応答の数が表示されます。 緑は成功した応答を示し、赤は失敗した応答を示します。 このセクションに示すメトリックは、 モニターの作成時 に定義されたメトリックと、全体的な合格/失敗品質スコアに対応している必要があります。
[待ち時間] セクションには、MLflow の報告された待機時間から取得された、トレース実行の待機時間が時間の経過と同時に表示されます。
[ エラー ] セクションには、時間の経過に伴うモデル エラーが表示されます。 エラーが発生しなかった場合は、次のように "データなし" インジケーターが表示されます。
ログタブ
[ ログ ] タブには、選択したモデルに送信された要求と、LLM 評価の結果 (ある場合) が一覧表示されます。 選択した期間から最大 10,000 件の要求が UI に表示されます。 要求数がこのしきい値を超えた場合、要求はモニター構成で指定されたサンプル レートとは異なるレートでサンプリングされます。
送信された要求に含まれるテキストに基づいて要求ログをフィルター処理するには、検索ボックスを使用します。 [ フィルター ] ドロップダウン メニューを使用して、関連する評価の結果によってログをフィルター処理することもできます。
要求にカーソルを合わせ、チェックボックスをクリックして要求を選択します。 その後、[ トレースのエクスポート ] をクリックして、これらの要求を評価データセットに追加できます。 データセットは、モニターと同じ MLflow 実験を使用してログに記録されている必要があります。
リクエストをクリックしてその詳細を表示します。 モーダルには、評価結果、入力、応答、要求に応答するために取得されたドキュメント (存在する場合) が表示されます。 タイミング情報など、要求の詳細については、モーダルの右上にある [詳細なトレース ビューを表示 ] をクリックします。
アラートを追加する
Databricks SQL アラートを使用して、評価されたトレース テーブルが期待値と一致しない場合 (有害とマークされた要求の割合がしきい値を超えた場合など) にユーザーに通知します。
モニターを更新または一時停止する
モニターの構成を更新するには、次の入力を受け取る update_monitor
を呼び出します。
endpoint_name: str
- 監視対象のエンドポイントの名前monitoring_config: dict
- モニターの構成。 サポートされているパラメーターについては、「 監視の設定 」を参照してください。
例えば次が挙げられます。
from databricks.agents.evals.monitors import update_monitor
monitor = update_monitor(
endpoint_name = "model-serving-endpoint-name",
monitoring_config = {
"sample": 0.1, # Change sampling rate to 10%
}
)
同様に、モニターを一時停止するには:
from databricks.agents.evals.monitors import update_monitor
monitor = update_monitor(
endpoint_name = "model-serving-endpoint-name",
monitoring_config = {
"paused": True,
}
)
監視メタデータを取得する
get_monitor
関数を使用して、デプロイされたエージェントのモニターの現在の構成を取得します。
from databricks.agents.evals.monitors import get_monitor
get_monitor('model-serving-endpoint-name')
この関数は、次の属性を含む Monitor
オブジェクトを返します。
endpoint_name
- 監視対象のエンドポイントの名前。monitoring_config
- モニターの構成。 構成パラメーターの 監視の設定 を参照してください。experiment_id
- 監視結果が表示される MLflow 実験。 監視結果の表示を参照してください。evaluated_traces_table
- 監視評価結果を含む Unity カタログ テーブル。
モニターを削除する
エンドポイントからモニターを削除するには、 delete_monitor
を呼び出します。
from databricks.agents.evals.monitors import delete_monitor
monitor = delete_monitor(
endpoint_name = "model-serving-endpoint-name",
)
モニターによって生成された評価されたトレース テーブルは、 delete_monitor
の呼び出しによって削除されません。
エージェント監視のカスタム メトリック
監視でカスタム メトリックを有効にするこの方法は、今後変更される可能性があります。 ご質問がある場合は、Databricks の担当者にお問い合わせください。
エージェント モニターでカスタム メトリックに対する評価を有効にするには、次の手順に従います。
ワークスペースに Python (
.py
) ファイルを作成し、カスタム メトリックを定義します。 これは、Databricks ノートブックではなく Python ファイルである必要があります。 Databricks ワークスペースで Python ファイルを作成する手順については、「ワークスペース ファイルの 基本的な使用方法 」を参照してください。このファイルで、メトリック関数を含む
CUSTOM_METRICS
という名前のリストを定義します。mlflow.evaluate
を使用すると、同じカスタム メトリックがオンラインとオフラインで動作します。 カスタム メトリック (MLflow 2) を参照してください。ファイルの例を次に示します。
# custom_metrics.py import mlflow import pandas as pd from databricks.agents.evals import metric @metric def response_mentions_llm(response): return "LLM" in response @metric def request_too_long(request): return len(request) > 1000 CUSTOM_METRICS = [response_mentions_llm, request_too_long]
[ ワークフロー ] タブに移動します。
- エージェントが Databricks でホストされている場合は、
[<your agent name>] Agent Monitoring Job
というタイトルのワークフローを見つけます。 - エージェントが Databricks の外部でホストされている場合は、
monitor_<monitoring table name>
というタイトルのワークフローを見つけて、置き換えてください。 テーブル名に含まれる文字には「-」を使用します。
- エージェントが Databricks でホストされている場合は、
ワークフローを編集してジョブ パラメーターを追加します。 「ジョブ パラメーターを構成する」を参照してください。
CUSTOM_METRICS_NOTEBOOK_PATH
という名前のパラメーターを作成します。 このパラメーターの値は、カスタム メトリック Python ファイルへの完全なパスである必要があります。
カスタム メトリックは、モニターの次の実行時に評価されます。
カスタム メトリックをモニターに含める前に反復処理するには、トレースのサブセットに対して mlflow.evaluate
を実行します。
エージェントが Databricks でホストされている場合:
import mlflow
import pandas as pd
from databricks.agents.evals import metric
@metric
def response_mentions_llm(response):
return "LLM" in response
df = spark.table("<your-monitoring-table>")
pdf = df.toPandas()[['request','response','trace']]
import mlflow
result = mlflow.evaluate(
data = pdf,
model_type="databricks-agent",
extra_metrics=[response_mentions_llm]
)
display(result)