MLflow トレースを表示する
MLflow生成 エージェントの実行後にAI トレースを表示するには、次のいずれかのオプションを使用します。
-
インライン視覚化 : Databricks ノートブックのセル出力で直接レンダリングされたトレースを確認します。
-
ワークスペース エクスペリメント : Databricks ワークスペースで、 エクスペリメント に移動し、エクスペリメントを選択して、[ トレース ] をクリックします。
-
MLflow実行: MLflowエージェントがアクティブ 実行の下で実行されると、トレースは UI の実行MLflow ページに表示されます。
-
エージェント評価 UI : エージェント評価で、評価結果の [ 詳細トレース ビューの表示 ] をクリックします。
トレースの検索
UI または API を使用して、トレース名、タグ、ステータスなどのプロパティでトレースを検索およびフィルタリングします。また、 extract_field
引数を使用して、スパンから特定のフィールドを抽出することもできます。
- UI search
- API search
MLflow UI では、プロパティでトレースをフィルター処理するための SQL に似たクエリ言語がサポートされています。
特定の関数のトレースを検索します。
name = 'get_weather'
特定のステータスのトレースを取得します。
status = 'ERROR'
フィルターを組み合わせる:
name = 'get_weather' AND status = 'ERROR'
MLflow には、プログラムでトレースを検索するための 2 つの API ( mlflow.search_traces()
と MlflowClient.search_traces()
があります。
mlflow.search_traces()
を使用して、トレースのリストを Pandas DataFrame 形式で取得します。DataFrame 形式は、分析と評価に役立ちます。
# High-level API - returns a pandas DataFrame
traces_df = mlflow.search_traces(
filter_string="trace.name = 'agent_function' AND trace.status = 'OK'",
order_by=["timestamp DESC"],
# You can also extract specific span fields as dataframe columns
extract_fields=[
".inputs",
".outputs",
],
max_results=100
)
MlflowClient.search_traces()
を使用して、Python リスト形式でトレースのリストを取得します。
# Client API - returns Trace objects
from mlflow import MlflowClient
client = MlflowClient()
traces = client.search_traces(
experiment_ids=[experiment.experiment_id],
filter_string="tag.user_id = '12345'",
)
トレース フィルター構文の詳細については、 MLflow Tracing のドキュメント - トレースのフィルター処理を参照してください。
タグによるトレースの注釈付け
MLflow トレース タグ は、UI でトレースをフィルター処理および検索するのに役立ちます。タグは、会話 ID、ユーザー ID、Git コミット ハッシュなどのカスタム メタデータをトレースに追加できるキーと値のペアです。
進行中または完了したトレースにタグを設定するには、 MLflow API またはUIを使用します。 次の例では、 mlflow.update_current_trace()
API を使用して進行中のトレースにタグを追加します。
@mlflow.trace
def my_func(x):
mlflow.update_current_trace(tags={"fruit": "apple"})
return x + 1
トレースのタグ付けと、トレースのフィルター処理と検索に使用する方法の詳細については、 MLflow のドキュメント - トレース タグの設定に関するページを参照してください。
トレースを使用したエージェントの評価
トレースデータは、エージェントを評価するための貴重なリソースとして機能します。 モデルの実行に関する詳細な情報をキャプチャすることで、MLflow Tracingはオフライン評価に役立ちます。 トレースデータを使用して、ゴールデンデータセットに対するエージェントのパフォーマンスを評価し、問題を特定し、エージェントのパフォーマンスを向上させることができます。
%pip install -U mlflow databricks-agents
%restart_python
import mlflow
# Get the recent 50 successful traces from the experiment
traces = mlflow.search_traces(
max_results=50,
filter_string="status = 'OK'",
)
traces.drop_duplicates("request", inplace=True) # Drop duplicate requests.
traces["trace"] = traces["trace"].apply(lambda x: x.to_json()) # Convert the trace to JSON format.
# Evaluate the agent with the trace data
mlflow.evaluate(data=traces, model_type="databricks-agent")
エージェント評価の詳細については、「 評価を実行して結果を表示する」を参照してください。
推論テーブルを使用してデプロイされたエージェントを監視する
エージェントが Mosaic AI Model Serving にデプロイされた後、 推論テーブル を使用してエージェントを監視できます。
推論テーブルには、レビューアプリからのリクエスト、レスポンス、エージェントトレース、エージェントフィードバックの詳細なログが含まれています。この情報により、問題のデバッグ、パフォーマンスの監視、オフライン評価用のゴールデンデータセットの作成が可能になります。
エージェントのデプロイの推論テーブルを有効にするには、「 AI エージェントの推論テーブルを有効にする」を参照してください。
ノートブックを使用して推論テーブルをクエリし、結果を分析します。
トレースを視覚化するには、 display(<the request logs table>)
を実行し、検査する行を選択します。
# Query the inference table
df = spark.sql("SELECT * FROM <catalog.schema.my-inference-table-name>")
display(df)
次のステップ
「Agent Frameworkを使用してデプロイされたアプリの監視」を参照してください。