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
:実行にログオンしたすべてのメトリクスの名前、値、タイムスタンプ、ステップを記録し、実行から詳細な時系列をプロットするために使用できます。 このデータは、 実行詳細ページのメトリクスタブに似ています。
ダッシュボードを使用して実行情報をプロットする例を次に示します。
テーブルスキーマ
以下は、説明とサンプル データを含むテーブル スキーマです。
system.mlflow.experiments_latest
列名 | データ型 | 説明 | 例 | 許容 |
---|---|---|---|---|
| string | エクスペリメント MLflow を含むアカウントの ID |
| No |
| timestamp | エクスペリメントが最後に更新されたシステム時刻 |
| No |
| timestamp | エクスペリメント MLflow がユーザーによって論理的に削除されたときのシステム時刻 |
| Yes |
| string | エクスペリメント MLflow の ID |
| No |
| string | エクスペリメント MLflow を含むワークスペースの ID |
| No |
| string | エクスペリメントのユーザー指定名 |
| No |
| timestamp | エクスペリメントが作成されたシステム時刻 |
| No |
system.mlflow.runs_latest
列名 | データ型 | 説明 | 例 | 許容 |
---|---|---|---|---|
| string | MLflow の実行を含むアカウントの ID |
| No |
| timestamp | 実行が最後に更新されたシステム時刻 |
| No |
| timestamp | MLflow の実行がユーザーによって論理的に削除されたときのシステム時刻 |
| Yes |
| string | MLflow の実行を含むワークスペースの ID |
| No |
| string | MLflow 実行の ID |
| No |
| string | 実行MLflowを含むエクスペリメントMLflowの ID |
| No |
| string | MLflow の実行を作成した Databricks プリンシパルまたはユーザーの名前 |
| Yes |
| timestamp | MLflow の実行が開始されたユーザー指定の時刻 |
| No |
| timestamp | MLflow の実行が終了したユーザー指定の時刻 |
| Yes |
| string | MLflow 実行の名前 |
| No |
| string | MLflow 実行の実行状態 |
| No |
| MAP<STRING, STRING> | MLflow 実行のキー値パラメーター |
| No |
| MAP<STRING, STRING> | MLflow の実行で設定されたキー値タグ |
| No |
| list<struct<文字列, double, double, double>> | メトリクスをrun_metrics_historyにまとめた集計図 |
| No |
| string | メトリクスのユーザー指定名 |
| No |
| double | この (実行, metric_name) の組み合わせの時系列におけるmetric_nameの最新の値 (run_metrics_history |
| No |
| double | run_metrics_history のこの (実行、metric_name) の組み合わせの時系列におけるmetric_nameの最大値。メトリクスにNaN値が記録された場合、その値はNaNになります |
| No |
| double | run_metrics_history のこの (実行、metric_name) の組み合わせの時系列におけるmetric_nameの最小値。メトリクスにNaN値が記録された場合、その値はNaNになります |
| No |
system.mlflow.run_metrics_history
列名 | データ型 | 説明 | 例 | 許容 |
---|---|---|---|---|
| string | メトリクスがログに記録された MLflow 実行を含むアカウントの ID |
| No |
| timestamp | メトリクスが挿入されたときのシステム時刻 |
| No |
| string | 同一の値を区別するためのメトリクスの一意の識別子 |
| No |
| string | メトリクスがログに記録された実行 MLflow を含むワークスペースの ID |
| No |
| string | メトリクスがログに記録されたMLflow実行を含むMLflowエクスペリメントの ID |
| No |
| string | メトリクスがログに記録された MLflow 実行の ID |
| No |
| string | メトリクスの名前 |
| No |
| timestamp | メトリクスがコンピュートだったときのユーザ指定時刻 |
| No |
| bigint | メトリクスがログに記録されたモデルトレーニングまたはエージェント開発のステップ(エポックなど) |
| No |
| double | メトリクスの値 |
| No |
ユーザーとのアクセスの共有
デフォルトでは、アカウント管理者のみがシステムスキーマにアクセスできます。追加のユーザーにテーブルへのアクセス権を付与するには、アカウント管理者が system.mlflow.
スキーマに対する USE および SELECT アクセス許可をユーザーに付与する必要があります。「 Unity Catalog の特権とセキュリティ保護可能なオブジェクト」を参照してください。
これらのテーブルにアクセスできるユーザーは、すべての MLflow エクスペリメントのメタデータを表示できます すべてのワークスペース アカウント。 個々のユーザーではなく、特定のグループに対してテーブル アクセスを構成するには、「 Unity Catalog のベスト プラクティス」を参照してください。
すべてのユーザーにテーブルへのアクセス権を付与するよりもきめ細かな制御が必要な場合は、カスタム条件を持つ 動的ビュー を使用して、グループに特定のアクセス権を付与できます。たとえば、エクスペリメント ID の特定のセットのレコードのみを表示するビューを作成できます。 カスタムビューを構成した後、ユーザーがシステムテーブルではなく動的ビューを直接照会できるように、ビューの名前をユーザーに指定します。
MLflowエクスペリメント権限 Unity Catalog権限と直接同期することはできません。
MLflow メタデータの使用例
次のセクションでは、 MLflow システムテーブルを使用して、エクスペリメントと実行 MLflow に関する質問に答える方法の例を示します。
エクスペリメントの信頼性が低いように SQL アラートを設定する
Databricks SQL アラート (ベータ版) を使用すると、定期的に繰り返されるクエリをスケジュールし、特定の制約が満たされなくなった場合に通知を受け取ることができます。
この例では、最も頻繁に実行するアラートを作成する エクスペリメント あなたのワークスペース内で、信頼性が低く、特別な注意が必要かどうかを判断します。 クエリは、 runs_latest
テーブルを使用して、完了としてマークされたエクスペリメントごとの実行を、実行の総数で割った値を計算します。
SQLアラート機能は現在ベータ版であり、従来のアラートも使用できます。
-
サイドバー
[アラート] をクリックし、[ アラートの作成 ] をクリックします。
-
次のクエリをコピーして、クエリ エディターに貼り付けます。
SQLSELECT
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メタデータを使用してダッシュボードを作成する」を参照してください。