Important
MLflow システム テーブルは パブリック プレビュー段階です。
mlflow システム テーブルは、MLflow 追跡サービス内で管理されている実験メタデータをキャプチャします。 これらのテーブルを使用すると、特権ユーザーは、リージョン内のすべてのワークスペースで MLflow データに対して Databricks lakehouse ツールを利用できます。 テーブルを使用して、カスタム AI/BI ダッシュボードの構築、SQL アラートの設定、大規模な分析クエリの実行を行うことができます。
mlflowシステム テーブルを使用して、ユーザーは次のような質問に回答できます。
- 信頼性が最も低い実験はどれですか?
- さまざまな実験の平均 GPU 使用率は何ですか?
注
mlflow システム テーブルは、2025 年 9 月 2 日にすべてのリージョンの MLflow データの記録を開始しました。 その日付より前のデータは使用できない場合があります。
使用可能なテーブル
mlflow スキーマには、次の表が含まれています。
-
system.mlflow.experiments_latest: 実験名と論理的な削除イベントを記録します。 このデータは、MLflow UI の 実験ページ に似ています。 -
system.mlflow.runs_latest: 実行ライフサイクル情報、各実行に関連付けられているパラメーターとタグ、およびすべてのメトリックの最小値、最大値、および最新の値の集計された統計を記録します。 このデータは、 実行の検索または実行の詳細ページに似ています。 -
system.mlflow.run_metrics_history: 実行にログオンしたすべてのメトリックの名前、値、タイムスタンプ、およびステップを記録します。これは、実行からの詳細な時系列をプロットするために使用できます。 このデータは、[ 実行の詳細] ページの [メトリック] タブに似ています。
ダッシュボードを使用して実行情報をプロットする例を次に示します。
テーブル スキーマ
説明とサンプル データを含むテーブル スキーマを次に示します。
system.mlflow.experiments_latest
| 列名 | データの種類 | Description | Example | ヌラブル |
|---|---|---|---|---|
account_id |
文字列 | MLflow 実験を含むアカウントの ID | "bd59efba-4444-4444-443f-44444449203" |
いいえ |
update_time |
timestamp | 実験が最後に更新されたシステム時刻 | 2024-06-27T00:58:57.000+00:00 |
いいえ |
delete_time |
timestamp | MLflow 実験がユーザーによって論理的に削除されたシステム時刻 | 2024-07-02T12:42:59.000+00:00 |
イエス |
experiment_id |
文字列 | MLflow 実験の ID | "2667956459304720" |
いいえ |
workspace_id |
文字列 | MLflow 実験を含むワークスペースの ID | "6051921418418893" |
いいえ |
name |
文字列 | ユーザーが指定した実験の名前 | "/Users/first.last@databricks.com/myexperiment" |
いいえ |
create_time |
timestamp | 実験が作成されたシステム時刻 | 2024-06-27T00:58:57.000+00:00 |
いいえ |
system.mlflow.runs_latest
| 列名 | データの種類 | Description | Example | ヌラブル |
|---|---|---|---|---|
account_id |
文字列 | MLflow 実行を含むアカウントの ID | "bd59efba-4444-4444-443f-44444449203" |
いいえ |
update_time |
timestamp | 実行が最後に更新されたシステム時刻 | 2024-06-27T00:58:57.000+00:00 |
いいえ |
delete_time |
timestamp | MLflow 実行がユーザーによって論理的に削除されたシステム時刻 | 2024-07-02T12:42:59.000+00:00 |
イエス |
workspace_id |
文字列 | MLflow 実行を含むワークスペースの ID | "6051921418418893" |
いいえ |
run_id |
文字列 | MLflow 実行の ID | "7716d750d279487c95f64a75bff2ad56" |
いいえ |
experiment_id |
文字列 | MLflow 実行を含む MLflow 実験の ID | "2667956459304720" |
いいえ |
created_by |
文字列 | MLflow 実行を作成した Databricks プリンシパルまたはユーザーの名前 | "<user>@<___domain-name>" |
イエス |
start_time |
timestamp | MLflow の実行が開始されたときのユーザー指定の時刻 | 2024-06-27T00:58:57.000+00:00 |
いいえ |
end_time |
timestamp | MLflow の実行が終了したユーザー指定の時刻 | 2024-07-02T12:42:59.000+00:00 |
イエス |
run_name |
文字列 | MLflow 実行の名前 |
"wistful-deer-932"、"my-xgboost-training-run" |
いいえ |
status |
文字列 | MLflow 実行の実行状態 | "FINISHED" |
いいえ |
params |
map<string,string> | MLflow 実行のキー値パラメーター | {"n_layers": "5", "batch_size": "64", "optimizer": "Adam"} |
いいえ |
tags |
map<string,string> | MLflow 実行で設定されたキーと値のタグ | {"ready_for_review": "true"} |
いいえ |
aggregated_metrics |
list<struct<string、double、double、double>> | run_metrics_historyのメトリックを要約した集計ビュー | [{"metric_name": "training_accuracy", "latest_value": 0.97, "min_value": 0.8, "max_value": 1.0}, ...] |
いいえ |
aggregated_metrics.metric_name |
文字列 | メトリックのユーザー指定の名前 | "training_accuracy" |
いいえ |
aggregated_metrics.latest_value |
ダブル | この時系列 (実行、metric_name) の組み合わせのmetric_nameの最新の値run_metrics_history | 0.97 |
いいえ |
aggregated_metrics.max_value |
ダブル | この時系列 (実行、metric_name) の組み合わせのmetric_nameの最大値 (run_metrics_history)。 メトリックに対して NaN 値が記録された場合、値は NaN になります | 1.0 |
いいえ |
aggregated_metrics.min_value |
ダブル | この時系列 (実行、metric_name) の組み合わせにおけるmetric_nameの最小値 (run_metrics_history)。 メトリックに対して NaN 値が記録された場合、値は NaN になります | 0.8 |
いいえ |
system.mlflow.run_metrics_history
| 列名 | データの種類 | Description | Example | ヌラブル |
|---|---|---|---|---|
account_id |
文字列 | メトリックがログに記録された MLflow 実行を含むアカウントの ID | "bd59efba-4444-4444-443f-44444449203" |
いいえ |
insert_time |
timestamp | メトリックが挿入されたシステム時刻 | 2024-06-27T00:58:57.000+00:00 |
いいえ |
record_id |
文字列 | 同じ値を区別するメトリックの一意識別子 | "Ae1mDT5gFMSUwb+UUTuXMQ==" |
いいえ |
workspace_id |
文字列 | メトリックがログに記録された MLflow 実行を含むワークスペースの ID | "6051921418418893" |
いいえ |
experiment_id |
文字列 | メトリックがログに記録された MLflow 実行を含む MLflow 実験の ID | "2667956459304720" |
いいえ |
run_id |
文字列 | メトリックがログに記録された MLflow 実行の ID | "7716d750d279487c95f64a75bff2ad56" |
いいえ |
metric_name |
文字列 | メトリック名 | "training_accuracy" |
いいえ |
metric_time |
timestamp | メトリックが計算されたユーザー指定の時刻 | 2024-06-27T00:55:54.1231+00:00 |
いいえ |
metric_step |
bigint | メトリックがログに記録されたモデル トレーニングまたはエージェント開発のステップ (エポックなど) | 10 |
いいえ |
metric_value |
ダブル | メトリック値 | 0.97 |
いいえ |
ユーザーとのアクセスの共有
既定では、アカウント管理者のみがシステム スキーマにアクセスできます。 追加のユーザーにテーブルへのアクセス権を付与するには、アカウント管理者が、system.mlflow. スキーマに対する USE アクセス許可とSELECTアクセス許可を付与する必要があります。 「Unity Catalog の権限とセキュリティ保護可能なオブジェクト」を参照してください。
これらのテーブルにアクセスできるユーザーは、アカウント内のすべてのワークスペースのすべての MLflow 実験のメタデータを表示できます。 個々のユーザーではなく特定のグループのテーブル アクセスを構成するには、 Unity カタログのベスト プラクティスを参照してください。
すべてのユーザーにテーブルへのアクセスを許可するよりも詳細な制御が必要な場合は、カスタム条件を持つ 動的ビュー を使用して、グループに特定のアクセス権を付与できます。 たとえば、特定の実験 ID のセットからのレコードのみを表示するビューを作成できます。 カスタム ビューを構成した後、ユーザーにビューの名前を付けて、システム テーブルではなく動的ビューに対して直接クエリを実行できるようにします。
注
MLflow 実験のアクセス許可を Unity カタログのアクセス許可と直接同期することはできません。
MLflow メタデータのユース ケースの例
次のセクションでは、MLflow システム テーブルを使用して、MLflow の実験と実行に関する質問に回答する方法の例を示します。
実験の信頼性を低くするために SQL アラートを構成する
Databricks SQL アラート (ベータ) を使用すると、定期的に定期的なクエリをスケジュールし、特定の制約が満たされなくなった場合に通知を受け取ることができます。
この例では、ワークスペース内で最も頻繁に実行される実験を調べて、信頼性が低く、特別な注意が必要な可能性があるかどうかを判断するアラートを作成します。 クエリでは、 runs_latest テーブルを使用して、完了としてマークされた実験ごとの実行数を、実行の合計数で割って計算します。
注
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;[ 条件 ] フィールドで、条件を
MIN success_ratio < 0.9に設定します。 これにより、上位 20 件の実験 (実行数別) のいずれかが成功率が 90%未満の場合にアラートがトリガーされます。
さらに、条件のテスト、スケジュールの設定、通知の構成を行うことができます。 アラートの構成の詳細については、 SQL アラートの設定を参照してください。 クエリを使用した構成の例を次に示します。
サンプル クエリ
次のサンプル クエリを使用して、 Databricks SQL を使用してアカウントの MLflow アクティビティに関する情報を取得できます。 Spark で Python ノートブックなどのツールを利用することもできます。
から実行情報を取得する runs_latest
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
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
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のメトリックの概要が返されます。
実験と実行のダッシュボード
MLflow システム テーブル データの上に ダッシュボード を構築して、MLflow 実験を分析し、ワークスペース全体から実行することができます。
詳細については、システム テーブルの MLflow メタデータを使用したダッシュボードの構築に関するページを参照してください。