Bagikan melalui


Referensi tabel sistem MLflow

Penting

Tabel sistem MLflow berada di Pratinjau Umum.

Tabel mlflow sistem menangkap metadata eksperimen yang dikelola dalam layanan pelacakan MLflow. Tabel ini memungkinkan pengguna istimewa untuk memanfaatkan alat Databricks lakehouse pada data MLflow mereka di semua ruang kerja di wilayah tersebut. Anda dapat menggunakan tabel untuk membangun dasbor AI/BI kustom, menyiapkan pemberitahuan SQL, atau melakukan kueri analitik skala besar.

mlflow Melalui tabel sistem, pengguna dapat menjawab pertanyaan seperti:

  • Eksperimen mana yang memiliki keandalan terendah?
  • Apa pemanfaatan GPU rata-rata di berbagai eksperimen?

Nota

Tabel mlflow sistem mulai merekam data MLflow dari semua wilayah pada 2 September 2025. Data dari sebelum tanggal tersebut mungkin tidak tersedia.

Tabel yang tersedia

mlflow Skema menyertakan tabel berikut:

  • system.mlflow.experiments_latest: Mencatat nama eksperimen dan peristiwa penghapusan sementara. Data ini mirip dengan halaman eksperimen di MLflow UI.
  • system.mlflow.runs_latest: Mencatat informasi siklus hidup eksekusi, param dan tag yang terkait dengan setiap eksekusi, dan statistik agregat nilai min, maks, dan terbaru dari semua metrik. Data ini mirip dengan halaman detail pencarian atau eksekusi yang dijalankan.
  • system.mlflow.run_metrics_history: Mencatat nama, nilai, tanda waktu, dan langkah dari semua metrik yang masuk saat dijalankan, yang dapat digunakan untuk memplot timeseries terperinci dari eksekusi. Data ini mirip dengan tab metrik pada halaman detail eksekusi.

Berikut ini adalah contoh merencanakan informasi eksekusi menggunakan dasbor:

menjalankan dasbor detail

Skema tabel

Di bawah ini adalah skema tabel dengan deskripsi dan contoh data.

Diagram ER

system.mlflow.experiments_latest

Nama kolom Jenis data Description Example Bisa bernilai null
account_id string ID akun yang berisi eksperimen MLflow "bd59efba-4444-4444-443f-44444449203" Tidak.
update_time stempel waktu Waktu sistem ketika eksperimen terakhir diperbarui 2024-06-27T00:58:57.000+00:00 Tidak.
delete_time stempel waktu Waktu sistem ketika eksperimen MLflow dihapus sementara oleh pengguna 2024-07-02T12:42:59.000+00:00 Yes
experiment_id string ID eksperimen MLflow "2667956459304720" Tidak.
workspace_id string ID ruang kerja yang berisi eksperimen MLflow "6051921418418893" Tidak.
name string Nama eksperimen yang disediakan pengguna "/Users/first.last@databricks.com/myexperiment" Tidak.
create_time stempel waktu Waktu sistem ketika eksperimen dibuat 2024-06-27T00:58:57.000+00:00 Tidak.

system.mlflow.runs_latest

Nama kolom Jenis data Description Example Bisa bernilai null
account_id string ID akun yang berisi eksekusi MLflow "bd59efba-4444-4444-443f-44444449203" Tidak.
update_time stempel waktu Waktu sistem ketika eksekusi terakhir diperbarui 2024-06-27T00:58:57.000+00:00 Tidak.
delete_time stempel waktu Waktu sistem ketika eksekusi MLflow dihapus sementara oleh pengguna 2024-07-02T12:42:59.000+00:00 Yes
workspace_id string ID ruang kerja yang berisi eksekusi MLflow "6051921418418893" Tidak.
run_id string ID eksekusi MLflow "7716d750d279487c95f64a75bff2ad56" Tidak.
experiment_id string ID eksperimen MLflow yang berisi eksekusi MLflow "2667956459304720" Tidak.
created_by string Nama prinsipal atau pengguna Databricks yang membuat eksekusi MLflow "<user>@<domain-name>" Yes
start_time stempel waktu Waktu yang ditentukan pengguna saat MLflow berjalan dimulai 2024-06-27T00:58:57.000+00:00 Tidak.
end_time stempel waktu Waktu yang ditentukan pengguna saat MLflow berjalan berakhir 2024-07-02T12:42:59.000+00:00 Yes
run_name string Nama eksekusi MLflow "wistful-deer-932", "my-xgboost-training-run" Tidak.
status string Status eksekusi eksekusi MLflow "FINISHED" Tidak.
params string peta<, string> Parameter nilai kunci dari eksekusi MLflow {"n_layers": "5", "batch_size": "64", "optimizer": "Adam"} Tidak.
tags string peta<, string> Tag nilai kunci yang diatur pada eksekusi MLflow {"ready_for_review": "true"} Tidak.
aggregated_metrics daftar<string struct<, double, double, double>> Tampilan agregat yang meringkas metrik di run_metrics_history [{"metric_name": "training_accuracy", "latest_value": 0.97, "min_value": 0.8, "max_value": 1.0}, ...] Tidak.
aggregated_metrics.metric_name string Nama metrik yang ditentukan pengguna "training_accuracy" Tidak.
aggregated_metrics.latest_value dua kali lipat Nilai terbaru metric_name dalam rangkaian waktu kombinasi ini (jalankan, metric_name) dalam run_metrics_history 0.97 Tidak.
aggregated_metrics.max_value dua kali lipat Nilai maksimum metric_name dalam rangkaian waktu kombinasi ini (jalankan, metric_name) dalam run_metrics_history. Jika ada nilai NaN yang dicatat untuk metrik, nilainya adalah NaN 1.0 Tidak.
aggregated_metrics.min_value dua kali lipat Nilai minimum metric_name dalam rangkaian waktu kombinasi ini (jalankan, metric_name) dalam run_metrics_history. Jika ada nilai NaN yang dicatat untuk metrik, nilainya adalah NaN 0.8 Tidak.

system.mlflow.run_metrics_history

Nama kolom Jenis data Description Example Bisa bernilai null
account_id string ID akun yang berisi eksekusi MLflow tempat metrik dicatat "bd59efba-4444-4444-443f-44444449203" Tidak.
insert_time stempel waktu Waktu sistem ketika metrik dimasukkan 2024-06-27T00:58:57.000+00:00 Tidak.
record_id string Pengidentifikasi unik metrik untuk membedakan antara nilai yang identik "Ae1mDT5gFMSUwb+UUTuXMQ==" Tidak.
workspace_id string ID ruang kerja yang berisi eksekusi MLflow tempat metrik dicatat "6051921418418893" Tidak.
experiment_id string ID eksperimen MLflow yang berisi eksekusi MLflow tempat metrik dicatat "2667956459304720" Tidak.
run_id string ID eksekusi MLflow tempat metrik dicatat "7716d750d279487c95f64a75bff2ad56" Tidak.
metric_name string Nama metrik "training_accuracy" Tidak.
metric_time stempel waktu Waktu yang ditentukan pengguna saat metrik dihitung 2024-06-27T00:55:54.1231+00:00 Tidak.
metric_step bigint Langkah (misalnya, epoch) pelatihan model atau pengembangan agen tempat metrik dicatat 10 Tidak.
metric_value dua kali lipat Nilai metrik 0.97 Tidak.

Berbagi akses dengan pengguna

Secara default, hanya admin akun yang memiliki akses ke skema sistem. Untuk memberi pengguna tambahan akses ke tabel, admin akun harus memberi mereka izin dan SELECT USE pada system.mlflow. skema. Lihat Hak istimewa Unity Catalog dan objek yang dapat diamankan.

Setiap pengguna yang memiliki akses ke tabel ini dapat melihat metadata di semua eksperimen MLflow untuk semua ruang kerja di akun. Untuk mengonfigurasi akses tabel untuk grup tertentu daripada pengguna individual, lihat Praktik terbaik Katalog Unity.

Jika Anda memerlukan kontrol yang lebih halus daripada memberi semua pengguna akses ke tabel, Anda dapat menggunakan tampilan dinamis dengan kriteria kustom untuk memberikan akses tertentu kepada grup. Misalnya, Anda dapat membuat tampilan yang hanya menampilkan rekaman dari sekumpulan ID eksperimen tertentu. Setelah mengonfigurasi tampilan kustom, berikan nama tampilan kepada pengguna Anda sehingga mereka dapat mengkueri tampilan dinamis daripada tabel sistem secara langsung.

Nota

Anda tidak dapat langsung menyinkronkan izin eksperimen MLflow dengan izin Katalog Unity.

Contoh kasus penggunaan metadata MLflow

Bagian berikut memberikan contoh bagaimana Anda dapat menggunakan tabel sistem MLflow untuk menjawab pertanyaan tentang eksperimen dan eksekusi MLflow Anda.

Mengonfigurasi pemberitahuan SQL untuk keandalan eksperimen rendah

Menggunakan peringatan Databricks SQL (Pratinjau Umum), Anda dapat menjadwalkan kueri terjadwal yang berulang dan akan diberi tahu jika batasan tertentu tidak lagi terpenuhi.

Contoh ini membuat pemberitahuan yang memeriksa eksperimen yang paling sering dijalankan dalam ruang kerja Anda untuk menentukan apakah mereka mengalami keandalan rendah dan mungkin memerlukan perhatian khusus. Kueri menggunakan runs_latest tabel untuk menghitung eksekusi per eksperimen yang ditandai sebagai selesai, dibagi dengan jumlah total eksekusi.

Nota

Fitur Pemberitahuan SQL saat ini berada di Pratinjau Umum, dan Anda juga dapat menggunakan pemberitahuan warisan .

  1. Klik Pemberitahuan Ikon Pemberitahuan di bar samping dan klik Buat Pemberitahuan.

  2. Salin dan tempel kueri berikut ini di editor kueri.

     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. Di bidang Kondisi , atur kondisi ke MIN success_ratio < 0.9. Ini akan memicu pemberitahuan jika salah satu dari 20 eksperimen teratas (berdasarkan jumlah eksekusi) memiliki rasio keberhasilan kurang dari 90%.

Selain itu, Anda dapat menguji kondisi, mengatur jadwal, dan mengonfigurasi pemberitahuan. Untuk informasi selengkapnya tentang mengonfigurasi pemberitahuan, lihat menyiapkan pemberitahuan SQL. Di bawah ini adalah contoh konfigurasi menggunakan kueri.

Konfigurasi pemberitahuan SQL

Contoh pertanyaan

Anda dapat menggunakan kueri sampel berikut untuk mendapatkan informasi tentang aktivitas MLflow di akun Anda menggunakan Databricks SQL. Anda juga dapat memanfaatkan alat seperti notebook Python dengan Spark.

Dapatkan informasi eksekusi dari 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

Ini mengembalikan informasi tentang eksekusi yang diberikan:

Informasi eksekusi hasil kueri

Mendapatkan eksperimen dan menjalankan informasi dari experiments_latest dan 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

Dapatkan statistik ringkasan untuk eksekusi tertentu 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

Ini mengembalikan ringkasan metrik untuk yang diberikan run_id:

Hasil kueri menjalankan metrik ringkasan

Dasbor untuk eksperimen dan eksekusi

Anda dapat membangun dasbor di atas data tabel sistem MLflow untuk menganalisis eksperimen MLflow Anda dan berjalan dari seluruh ruang kerja.

Untuk detail selengkapnya, lihat Membangun dasbor dengan metadata MLflow dalam tabel sistem