Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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:
Skema tabel
Di bawah ini adalah skema tabel dengan deskripsi dan contoh data.
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 .
Klik Pemberitahuan
di bar samping dan klik Buat Pemberitahuan.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;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.
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:
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:
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