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.
AI Runtime terintegrasi dengan MLflow untuk menyediakan alat pelacakan eksperimen, observabilitas, dan debugging. MLflow menyediakan satu tempat untuk parameter, metrik, metrik sistem GPU, log, dan artefak dari sebuah run, baik Anda mengembangkan di notebook, mengirimkan beban kerja dengan databricks air CLI, atau menjadwalkan pekerjaan.
Apa yang disediakan MLflow
Eksperimen MLflow mengelompokkan run pelatihan terkait, dan setiap run menyediakan catatan persisten tentang konfigurasi pelatihan dan hasilnya.
- Metrik dan parameter: Catat loss pelatihan, metrik evaluasi, tingkat pembelajaran, dan hiperparameter, lalu bandingkan antar run.
- Metrik sistem: Lihat pemanfaatan GPU, CPU, dan memori untuk run yang dikelola pada tab metrik Sistem .
- Tampilan Log: Lihat output driver untuk beban kerja yang didukung job pada tab Log run. Lihat Lihat log di tab MLflow Logs.
- Artefak dan model: Simpan file model, konfigurasi, dan output lain bersama run. Gunakan volume Unity Catalog untuk artefak besar atau tahan lama.
- Berbagi dan berkolaborasi: Berikan akses ke sebuah eksperimen agar pengguna workspace lain dapat melihat dan membandingkan run-nya. Lihat Mengatur jalannya pelatihan dengan eksperimen MLflow.
- Integrasi kerangka kerja: Gunakan integrasi MLflow dengan Hugging Face Transformers, PyTorch Lightning, dan pustaka lain yang didukung.
Untuk beban kerja berbasis job, seperti beban kerja yang dikirimkan dengan databricks air run, run pekerjaan Azure Databricks melengkapi MLflow dengan mencatat status eksekusi, komputasi, percobaan, dan output driver.
Cara run MLflow dibuat
Bagaimana Anda memulai atau bergabung dengan run MLflow tergantung pada bagaimana Anda memulai beban kerja:
| Bagaimana Anda menjalankan beban kerja | Bagaimana run MLflow dimulai | Cara memilih eksperimen |
|---|---|---|
Databricks CLI (databricks air run) |
Setiap percobaan secara otomatis menciptakan run. | Tetapkan experiment_name di workload YAML. |
Notebook dengan Databricks AI Runtime SDK (.distributed()) |
Setiap panggilan secara otomatis membuat run. | Panggil mlflow.set_experiment() sebelum .distributed(), atau atur MLFLOW_EXPERIMENT_NAME. |
| Kode berjalan langsung di notebook terlampir | Tidak ada run yang dibuat secara otomatis. Gunakan mlflow.start_run() atau autolog. |
Panggil mlflow.set_experiment() di notebook. |
Terjadwal ai_runtime_task |
Tugas membuat run secara otomatis. | Atur experiment dalam konfigurasi tugas. Lihat tugas AI Runtime. |
Setelah kode Anda dimulai atau bergabung dengan run yang benar, gunakan API pelacakan MLflow untuk merekam data pelatihan khusus. Untuk framework yang didukung, Anda dapat menggunakan autologging daripada menambahkan panggilan logging individual. Untuk pola deep learning, lihat alur kerja deep learning MLflow 3.
Gunakan praktik berikut saat mengonfigurasi pelacakan MLflow:
- Atur
stepke nilai bermakna seperti batch global atau epoch. Catat secara berkala, bukan setiap batch. MLflow membatasi jumlah langkah metrik per run. Lihat Batas sumber daya. - Untuk pelatihan terdistribusi, catat metrik dari rank 0 saja sehingga setiap nilai dicatat satu kali.
- Untuk alur kerja notebook, gunakan jalur eksperimen absolut, seperti
/Users/<username>/my-experimentatau/Workspace/Shared/<team>/my-experiment. Tempatkan eksperimen yang ingin Anda bagikan ke dalam folder workspace bersama. - Simpan checkpoint besar dan tahan lama dalam volume Unity Catalog. Untuk pola checkpoint, lihat Tingkatkan performa pelatihan dan ketahanan pada AI Runtime.
Nota
Gunakan MLflow 3.7 dan ke atas untuk contoh di halaman ini.
Lacak beban kerja Databricks CLI
Saat Anda mengirimkan beban kerja dengan databricks air run, AI Runtime membuat run job Azure Databricks untuk detail eksekusi dan run MLflow untuk data eksperimen. Pengiriman asli dan upaya ulangnya berbagi satu run tugas, sementara setiap upaya membuat run MLflow terpisah dalam eksperimen yang sama sehingga Anda dapat membandingkan upaya.
Metrik GPU, CPU, dan sistem memori secara otomatis ditangkap untuk setiap run yang dikelola dan muncul di tab metrik Sistem MLflow.
Konfigurasikan dan masuk ke proses berjalan
Gunakan workload YAML untuk memilih eksperimen dan secara opsional mengonfigurasi nama run dan lokasi artefak. Contoh berikut menunjukkan bidang MLflow yang dibutuhkan:
experiment_name: my-training
mlflow_run_name: baseline-lr3e5
mlflow_artifact_location: /Volumes/main/default/mlflow-artifacts/my-training
Untuk persyaratan field, default, dan nilai yang didukung, lihat referensi Workload YAML.
AI Runtime mengekspos ID run yang dikelola melalui MLFLOW_RUN_ID. Untuk mencatat parameter, metrik, dan artefak Anda sendiri ke run tersebut, buka kembali dengan API pelacakan MLflow:
import os
import mlflow
# Log from rank 0 only because all nodes share the same MLFLOW_RUN_ID.
if os.environ.get("RANK", "0") == "0":
with mlflow.start_run(run_id=os.environ["MLFLOW_RUN_ID"]):
mlflow.log_param("learning_rate", 3e-4)
for step, loss in enumerate(training_losses):
mlflow.log_metric("train_loss", loss, step=step)
Temukan run dan log
Log tersedia melalui Databricks CLI dan halaman run MLflow. Gunakan perintah berikut untuk menemukan beban kerja, memeriksa beban kerja, dan melakukan streaming atau mengunduh log:
databricks air list --all-status
databricks air get <job-run-id>
databricks air logs <job-run-id>
databricks air logs <job-run-id> --node 2
databricks air logs <job-run-id> --download-to ./logs/
Lacak beban kerja notebook
Dari notebook, Anda dapat menjalankan kode langsung di sesi terlampir atau menjalankan pelatihan terdistribusi melalui @distributed dekorator dari Databricks AI Runtime SDK.
Jalankan kode langsung di notebook
Kode yang dijalankan langsung di notebook terlampir tidak secara otomatis membuat MLflow run. Pilih eksperimen, lalu mulai run atau aktifkan autologging:
import mlflow
mlflow.set_experiment("/Users/<username>/my-experiment")
with mlflow.start_run(run_name="baseline"):
train()
Untuk mengaktifkan autologging PyTorch Lightning, gunakan pola berikut:
mlflow.pytorch.autolog()
with mlflow.start_run(run_name="lightning-baseline"):
trainer.fit(model, datamodule=datamodule)
Untuk Hugging Face Transformers, konfigurasikan TrainingArguments sebagai berikut:
from transformers import TrainingArguments
args = TrainingArguments(
output_dir="/Volumes/<catalog>/<schema>/<volume>/checkpoints",
report_to="mlflow",
run_name="llama7b-sft-lr3e5",
logging_steps=50,
)
Gunakan Databricks AI Runtime SDK
Untuk pelatihan terdistribusi dari notebook, gunakan dekorator @distributed dari Databricks AI Runtime SDK (databricks-sdk-air). SDK tersedia di bawah namespace databricks.air di lingkungan GPU versi 6 ke atas, atau sebagai serverless_gpu di lingkungan GPU versi 5 dan ke bawah.
from databricks.air import distributed
@distributed()
def train():
# Training code
...
train.distributed()
Setiap panggilan .distributed() secara otomatis membuat run MLflow. Eksperimen defaultnya adalah /Users/{WORKSPACE_USER}/{notebook-name}. Untuk memilih eksperimen lain, atur sebelum Anda memanggil .distributed():
mlflow.set_experiment("/Users/<username>/my-experiment")
train.distributed()
Saat Anda memanggil .distributed() di dalam run aktif, AI Runtime membuat run anak bersarang:
with mlflow.start_run() as parent_run:
train.distributed()
Untuk melanjutkan run sebelumnya, atur MLFLOW_RUN_ID sebelum .distributed():
import os
os.environ["MLFLOW_RUN_ID"] = "<previous-run-id>"
train.distributed()
Gunakan tautan run di output sel atau panel Eksperimen notebook untuk membuka run MLflow.
Lihat log
- Output notebook: Keluaran standar dan error dari kode pelatihan muncul di output sel notebook.
-
Log MLflow: Untuk beban kerja notebook yang didukung job seperti
.distributed(remote=True)panggilan, tab Log MLflow menampilkan output dari eksekusi job terkait.
Pantau sumber daya GPU langsung
Panel sumber daya GPU notebook menampilkan pemanfaatan GPU langsung, memori, dan suhu untuk beban kerja single-node dan multi-node. Gunakan tab metrik Sistem MLflow saat Anda membutuhkan catatan persisten yang terkait dengan sebuah run.
Untuk membuka panel, hubungkan notebook ke AI Runtime, lalu klik GPU resources di panel sisi kanan.
Panel mengambil metrik setiap 10 detik dan menyimpan riwayat hingga 2 jam. Klik Segarkan untuk mengambil nilai terbaru. Setelah 5 menit tidak aktif, panel dijeda. Buka kembali item tersebut untuk melanjutkan pemantauan.
Lihat log di tab MLflow Logs
tab Logs pada halaman run MLflow menampilkan output dari beban kerja AI Runtime yang didukung oleh job. Untuk membukanya, buka halaman run dan klik Logs.
Untuk run baru, tab Logs menggantikan file log yang sebelumnya disimpan di tab Artefak run, yang sudah tidak digunakan lagi. Run yang dibuat sebelumnya menyimpan file log mereka di tab Artefak .
Dari tab Logs , Anda dapat:
- Pencarian: Tampilkan hanya baris yang mengandung istilah pencarian.
- Filter berdasarkan node, level, dan rentang waktu: Pilih satu node dari beban kerja multi-node, tampilkan hanya info, peringatan, atau baris error, atau persempit tampilan ke rentang waktu tertentu.
- Ikuti beban kerja yang sedang berjalan: Saat run aktif, output baru muncul saat tiba. Gulir ke atas untuk menjeda mengikuti.
- Salin dan unduh: Salin baris yang dimuat, atau unduh setiap baris yang sesuai dengan filter saat ini.
Retensi log
Log tersedia di tab Log selama 60 hari.
Mengatasi masalah akses ke log
Tab Logs pada halaman run MLflow menampilkan output secara streaming dari run Azure Databricks yang terkait. Akses ke eksperimen MLflow tidak berarti akses ke job tersebut.
Jika tab menunjukkan Anda tidak memiliki akses ke log ini, mintalah pengguna dengan izin Can Manage atau admin workspace untuk memberi Anda izin setidaknya Can View untuk job tersebut. Lihat Mengontrol akses ke pekerjaan.
Batas global di Azure Databricks
Lihat Batas sumber daya.