プログラムでトレースを検索する
mlflow.search_traces()を使用して、プログラムでトレースを検索および分析します。この関数は、 MLflowトラッキング サーバー、推論テーブル、またはUnity Catalogテーブルに保存されているトレースをクエリできます。 トレースのサブセットを選択して分析したり、評価データセットを作成したりできます。
mlflow.search_traces() API
def mlflow.search_traces(
experiment_ids: list[str] | None = None,
filter_string: str | None = None,
max_results: int | None = None,
order_by: list[str] | None = None,
extract_fields: list[str] | None = None,
run_id: str | None = None,
return_type: Literal['pandas', 'list'] | None = None,
model_id: str | None = None,
sql_warehouse_id: str | None = None,
include_spans: bool = True,
locations: list[str] | None = None,
) -> pandas.DataFrame | list[Trace]
mlflow.search_traces()使用すると、いくつかのディメンションに沿ってデータをフィルタリングおよび選択できます。
- クエリ文字列でフィルタリングする
- 場所によるフィルター: 体験、実行、モデル、またはUnity Catalogスキーマ
- データの制限: 結果の最大数、範囲を含めるか除外するか
- 戻り値の形式を調整する: データ形式、データの順序
search_traces() Pandas DataFrameまたはTraceオブジェクトのリストを返します。これをさらに分析したり、評価データセットに再構成したりできます。 これらの戻り値の型のスキーマの詳細を参照してください。
詳細については、 mlflow.search_traces() API ドキュメントを参照してください。
mlflow.search_traces()問題
カテゴリー |
| 説明 | 例 |
|---|---|---|---|
クエリ文字列でフィルタリング |
| サポートされているフィルターや比較演算子を含む検索クエリ構文を参照してください。 |
|
場所でフィルタリング |
| この引数には、フィルタリング用のエクスペリメント ID またはUnity Catalog |
|
| MLflow 実行 ID |
| |
| MLflow モデル ID |
| |
データを制限する |
| 返されるトレースの最大数(行) |
|
| 結果にスパンを含めるか除外します。スパンはトレースの詳細を含み、結果のサイズがはるかに大きくなる可能性があります。 |
| |
戻り値の形式 |
| 構文とサポートされているキーを参照してください。 |
|
| この関数は、 Pandas DataFrameまたは |
| |
非推奨 |
| 代わりに | |
| 代わりに、返された DataFrame 内のフィールドを選択するか、オブジェクトをトレースします。 | ||
| 代わりに |
おすすめの方法
キーワード引数
mlflow.search_traces()では常にキーワード (名前付き) 引数を使用します。位置引数は許可されますが、関数引数は進化しています。
良い実践例: mlflow.search_traces(filter_string="attributes.status = 'OK'")
悪い習慣: mlflow.search_traces([], "attributes.status = 'OK'")
filter_string落とし穴
mlflow.search_traces()のfilter_string引数を使用して検索する場合は、次の点に注意してください。
- 接頭辞を使用する:
attributes.、tags.、またはmetadata. - タグ名または属性名にドットが含まれている場合はバッククォートを使用します:
tags.`mlflow.traceName` - 一重引用符のみを使用してください:
'value'使用しないでください"value" - 時刻には日付ではなく Unix タイムスタンプ (ミリ秒) を使用します:
1749006880539 - ANDのみ使用: ORはサポートされません
詳細については、検索クエリ構文を参照してください。
SQLウェアハウス統合
mlflow.search_traces() オプションでDatabricks SQLウェアハウスを使用して、推論テーブルまたはUnity Catalogテーブルの大規模なトレース データセットのパフォーマンスを向上させることができます。 MLFLOW_TRACING_SQL_WAREHOUSE_ID環境変数を使用してSQLウェアハウス ID を指定します。
大規模なトレース データセットのパフォーマンスを向上させるために、Databricks SQL ウェアハウスを使用してトレース クエリを実行します。
import os
os.environ['MLFLOW_TRACING_SQL_WAREHOUSE_ID'] = 'fa92bea7022e81fb'
# Use SQL warehouse for better performance
traces = mlflow.search_traces(
filter_string="attributes.status = 'OK'",
locations=['my_catalog.my_schema'],
)
ページネーション
mlflow.search_traces() 結果をメモリ内に返すので、結果セットが小さい場合に適しています。大きな結果セットを処理するには、ページ区切りをサポートしているMlflowClient.search_traces()を使用します。
次のステップ
- チュートリアル: プログラムによるトレースの検索- 一連の簡単な例を実行する
mlflow.search_traces() - チュートリアル: ユーザーと環境のトレースと分析- トレースにコンテキスト メタデータを追加し、結果を分析する例を実行します。
- 例: トレースの分析- トレース分析のさまざまな例を参照します
- 評価データセットの構築 - クエリされたトレースをテストデータセットに変換します