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

MLflow システムテーブル リファレンス

備考

プレビュー

MLflow システムテーブルはパブリック プレビュー段階です。

mlflowシステムテーブルは、MLflow追跡サービス内で管理されるエクスペリメントメタデータをキャプチャします。これらのテーブルを使用すると、特権ユーザーは、リージョン内のすべてのワークスペースで MLflow データに対して Databricks レイクハウス ツールを利用できます。これらのテーブルを使用して、カスタム AI/BI ダッシュボードを構築したり、SQL アラートを設定したり、大規模な分析クエリを実行したりできます。

mlflowシステムテーブルを通じて、ユーザーは次のような質問に答えることができます。

  • 信頼性が最も低いエクスペリメントはどれですか?
  • さまざまなエクスペリメントの平均GPU使用率はどのくらいですか?
注記

mlflowシステムテーブルは、2025年9月2日より全地域のMLflowデータの記録を開始しました。その日以前のデータは利用できない場合があります。

使用可能なテーブル

mlflowスキーマには、次の表が含まれます。

  • system.mlflow.experiments_latest: エクスペリメント名とソフト削除イベントを記録します。 このデータは、MLflow UI のエクスペリメント ページに似ています。
  • system.mlflow.runs_latest: 実行-lifecycle 情報、各実行に関連付けられたパラメータとタグ、およびすべてのメトリクスの最小値、最大値、最新の値の集計統計を記録します。 このデータは、 実行検索または実行の詳細ページに似ています。
  • system.mlflow.run_metrics_history:実行にログオンしたすべてのメトリクスの名前、値、タイムスタンプ、ステップを記録し、実行から詳細な時系列をプロットするために使用できます。 このデータは、 実行詳細ページのメトリクスタブに似ています。

ダッシュボードを使用して実行情報をプロットする例を次に示します。

実行の詳細ダッシュボード

テーブルスキーマ

以下は、説明とサンプル データを含むテーブル スキーマです。

ER図

system.mlflow.experiments_latest

列名

データ型

説明

許容

account_id

string

エクスペリメント MLflow を含むアカウントの ID

"bd59efba-4444-4444-443f-44444449203"

No

update_time

timestamp

エクスペリメントが最後に更新されたシステム時刻

2024-06-27T00:58:57.000+00:00

No

delete_time

timestamp

エクスペリメント MLflow がユーザーによって論理的に削除されたときのシステム時刻

2024-07-02T12:42:59.000+00:00

Yes

experiment_id

string

エクスペリメント MLflow の ID

"2667956459304720"

No

workspace_id

string

エクスペリメント MLflow を含むワークスペースの ID

"6051921418418893"

No

name

string

エクスペリメントのユーザー指定名

"/Users/first.last@databricks.com/myexperiment"

No

create_time

timestamp

エクスペリメントが作成されたシステム時刻

2024-06-27T00:58:57.000+00:00

No

system.mlflow.runs_latest

列名

データ型

説明

許容

account_id

string

MLflow の実行を含むアカウントの ID

"bd59efba-4444-4444-443f-44444449203"

No

update_time

timestamp

実行が最後に更新されたシステム時刻

2024-06-27T00:58:57.000+00:00

No

delete_time

timestamp

MLflow の実行がユーザーによって論理的に削除されたときのシステム時刻

2024-07-02T12:42:59.000+00:00

Yes

workspace_id

string

MLflow の実行を含むワークスペースの ID

"6051921418418893"

No

run_id

string

MLflow 実行の ID

"7716d750d279487c95f64a75bff2ad56"

No

experiment_id

string

実行MLflowを含むエクスペリメントMLflowの ID

"2667956459304720"

No

created_by

string

MLflow の実行を作成した Databricks プリンシパルまたはユーザーの名前

"<user>@<domain-name>"

Yes

start_time

timestamp

MLflow の実行が開始されたユーザー指定の時刻

2024-06-27T00:58:57.000+00:00

No

end_time

timestamp

MLflow の実行が終了したユーザー指定の時刻

2024-07-02T12:42:59.000+00:00

Yes

run_name

string

MLflow 実行の名前

"wistful-deer-932", "my-xgboost-training-run"

No

status

string

MLflow 実行の実行状態

"FINISHED"

No

params

MAP<STRING, STRING>

MLflow 実行のキー値パラメーター

{"n_layers": "5", "batch_size": "64", "optimizer": "Adam"}

No

tags

MAP<STRING, STRING>

MLflow の実行で設定されたキー値タグ

{"ready_for_review": "true"}

No

aggregated_metrics

list<struct<文字列, double, double, double>>

メトリクスをrun_metrics_historyにまとめた集計図

[{"metric_name": "training_accuracy", "latest_value": 0.97, "min_value": 0.8, "max_value": 1.0}, ...]

No

aggregated_metrics.metric_name

string

メトリクスのユーザー指定名

"training_accuracy"

No

aggregated_metrics.latest_value

double

この (実行, metric_name) の組み合わせの時系列におけるmetric_nameの最新の値 (run_metrics_history

0.97

No

aggregated_metrics.max_value

double

run_metrics_history のこの (実行、metric_name) の組み合わせの時系列におけるmetric_nameの最大値。メトリクスにNaN値が記録された場合、その値はNaNになります

1.0

No

aggregated_metrics.min_value

double

run_metrics_history のこの (実行、metric_name) の組み合わせの時系列におけるmetric_nameの最小値。メトリクスにNaN値が記録された場合、その値はNaNになります

0.8

No

system.mlflow.run_metrics_history

列名

データ型

説明

許容

account_id

string

メトリクスがログに記録された MLflow 実行を含むアカウントの ID

"bd59efba-4444-4444-443f-44444449203"

No

insert_time

timestamp

メトリクスが挿入されたときのシステム時刻

2024-06-27T00:58:57.000+00:00

No

record_id

string

同一の値を区別するためのメトリクスの一意の識別子

"Ae1mDT5gFMSUwb+UUTuXMQ=="

No

workspace_id

string

メトリクスがログに記録された実行 MLflow を含むワークスペースの ID

"6051921418418893"

No

experiment_id

string

メトリクスがログに記録されたMLflow実行を含むMLflowエクスペリメントの ID

"2667956459304720"

No

run_id

string

メトリクスがログに記録された MLflow 実行の ID

"7716d750d279487c95f64a75bff2ad56"

No

metric_name

string

メトリクスの名前

"training_accuracy"

No

metric_time

timestamp

メトリクスがコンピュートだったときのユーザ指定時刻

2024-06-27T00:55:54.1231+00:00

No

metric_step

bigint

メトリクスがログに記録されたモデルトレーニングまたはエージェント開発のステップ(エポックなど)

10

No

metric_value

double

メトリクスの値

0.97

No

ユーザーとのアクセスの共有

デフォルトでは、アカウント管理者のみがシステムスキーマにアクセスできます。追加のユーザーにテーブルへのアクセス権を付与するには、アカウント管理者が system.mlflow. スキーマに対する USE および SELECT アクセス許可をユーザーに付与する必要があります。「 Unity Catalog の特権とセキュリティ保護可能なオブジェクト」を参照してください。

これらのテーブルにアクセスできるユーザーは、すべての MLflow エクスペリメントのメタデータを表示できます すべてのワークスペース アカウント。 個々のユーザーではなく、特定のグループに対してテーブル アクセスを構成するには、「 Unity Catalog のベスト プラクティス」を参照してください。

すべてのユーザーにテーブルへのアクセス権を付与するよりもきめ細かな制御が必要な場合は、カスタム条件を持つ 動的ビュー を使用して、グループに特定のアクセス権を付与できます。たとえば、エクスペリメント ID の特定のセットのレコードのみを表示するビューを作成できます。 カスタムビューを構成した後、ユーザーがシステムテーブルではなく動的ビューを直接照会できるように、ビューの名前をユーザーに指定します。

注記

MLflowエクスペリメント権限 Unity Catalog権限と直接同期することはできません。

MLflow メタデータの使用例

次のセクションでは、 MLflow システムテーブルを使用して、エクスペリメントと実行 MLflow に関する質問に答える方法の例を示します。

エクスペリメントの信頼性が低いように SQL アラートを設定する

Databricks SQL アラート (ベータ版) を使用すると、定期的に繰り返されるクエリをスケジュールし、特定の制約が満たされなくなった場合に通知を受け取ることができます。

この例では、最も頻繁に実行するアラートを作成する エクスペリメント あなたのワークスペース内で、信頼性が低く、特別な注意が必要かどうかを判断します。 クエリは、 runs_latest テーブルを使用して、完了としてマークされたエクスペリメントごとの実行を、実行の総数で割った値を計算します。

注記

SQLアラート機能は現在ベータ版であり、従来のアラートも使用できます。

  1. サイドバー アラートアイコン [アラート] をクリックし、[ アラートの作成 ] をクリックします。

  2. 次のクエリをコピーして、クエリ エディターに貼り付けます。

    SQL
     SELECT
    experiment_id,
    AVG(CASE WHEN status = 'FINISHED' THEN 1.0 ELSE 0.0 END) AS success_ratio,
    COUNT(status) AS run_count
    FROM system.mlflow.runs_latest
    WHERE status IS NOT NULL
    GROUP BY experiment_id
    ORDER BY run_count DESC
    LIMIT 20;
  3. [ 条件] フィールドで、条件を MIN success_ratio < 0.9に設定します。これにより、上位 20 件のエクスペリメントのいずれかの成功率が 90% 未満の場合にアラートがトリガーされます。

さらに、条件のテスト、スケジュールの設定、通知の設定を行うことができます。詳細については、 アラートの設定については、「SQLアラートの設定」を参照してください。クエリを使用した構成例を次に示します。

SQL アラート構成

サンプルクエリ

次のサンプル クエリを使用して、 Databricks SQL を使用してアカウント内の MLflow アクティビティに関する情報を取得できます。Spark で Python ノートブックなどのツールを活用することもできます。

実行情報の取得 runs_latest

SQL
SELECT
run_name,
date(start_time) AS start_date,
status,
TIMESTAMPDIFF(MINUTE, start_time, end_time) AS run_length_minutes
FROM system.mlflow.runs_latest
WHERE
experiment_id = :experiment_id
AND run_id = :run_id
LIMIT 1

これにより、指定された実行に関する情報が返されます。

クエリ結果の実行情報

エクスペリメントと実行情報を取得する experiments_latest runs_latest

SQL
SELECT
runs.run_name,
experiments.name,
date(runs.start_time) AS start_date,
runs.status,
TIMESTAMPDIFF(MINUTE, runs.start_time, runs.end_time) AS run_length_minutes
FROM system.mlflow.runs_latest runs
JOIN system.mlflow.experiments_latest experiments ON runs.experiment_id = experiments.experiment_id
WHERE
runs.experiment_id = :experiment_id
AND runs.run_id = :run_id
LIMIT 1

特定の実行の概要統計を run_metrics_history

SQL
SELECT
metric_name,
count(metric_time) AS num_data_points,
ROUND(avg(metric_value), 1) AS avg,
ROUND(max(metric_value), 1) AS max,
ROUND(min(metric_value), 1) AS min,
ROUND(PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY metric_value), 1) AS pct_25,
ROUND(PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY metric_value), 1) AS median,
ROUND(PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY metric_value), 1) AS pct_75
FROM
system.mlflow.run_metrics_history
WHERE
run_id = :run_id
GROUP BY
metric_name, run_id
LIMIT 100

これにより、指定された run_idのメトリクスのサマリーが返されます。

Query results 実行 summary メトリクス

エクスペリメントと実行のダッシュボード

システムテーブル データの上に ダッシュボード を構築して MLflow エクスペリメント と 実行 全体から MLflow を分析できます。

詳細については、「システムテーブル」の「MLflowメタデータを使用してダッシュボードを作成する」を参照してください。