Apache Spark MLlib dan pelacakan MLflow otomatis
Catatan
Pelacakan MLflow otomatis MLlib tidak digunakan lagi pada kluster yang menjalankan Databricks Runtime 10.1 ML ke atas, dan dinonaktifkan secara default pada kluster yang menjalankan Databricks Runtime 10.2 ML ke atas. Sebagai gantinya, gunakan MLflow PySpark ML autologging dengan memanggil mlflow.pyspark.ml.autolog()
, yang diaktifkan secara default dengan Databricks Autologging.
Untuk menggunakan pelacakan MLflow otomatis MLlib lama di Databricks Runtime 10.2 ML atau lebih tinggi, aktifkan dengan mengatur konfigurasi Sparkspark.databricks.mlflow.trackMLlib.enabled true
dan spark.databricks.mlflow.autologging.enabled false
.
MLflow adalah platform sumber terbuka untuk mengelola siklus hidup pembelajaran mesin ujung-ke-ujung. MLflow mendukung pelacakan untuk penyetelan model pembelajaran mesin di Python, R, dan Scala. Hanya untuk notebook Python, Databricks Runtime merilis catatan versi dan kompatibilitas dan Databricks Runtime untuk Pembelajaran Mesin mendukung pelacakan MLflow otomatisuntuk penyetelan model Apache Spark MLlib.
Dengan pelacakan MLflow otomatis MLlib, saat Anda menjalankan kode penyetelan yang menggunakan CrossValidator
atau TrainValidationSplit
, hiperparameter dan metrik evaluasi secara otomatis masuk ke MLflow. Tanpa pelacakan MLflow otomatis, Anda harus melakukan panggilan API eksplisit untuk masuk ke MLflow.
Mengelola eksekusi MLflow
Hasil penyetelan log CrossValidator
atau TrainValidationSplit
sebagai eksekusi MLflow bersarang:
- Eksekusi utama atau induk: Informasi untuk
CrossValidator
atauTrainValidationSplit
dicatat ke eksekusi utama. Jika sudah ada eksekusi aktif, informasi dicatat ke eksekusi aktif ini dan eksekusi aktif tidak dihentikan. Jika tidak ada eksekusi aktif, MLflow membuat eksekusi baru, mencatatnya, dan mengakhiri eksekusi sebelum kembali. - Eksekusi turunan: Setiap pengaturan hiperparameter yang diuji dan metrik evaluasi yang sesuai dicatat ke eksekusi turunan di bawah eksekusi utama.
Saat memanggil fit()
, Databricks merekomendasikan pengelolaan eksekusi MLflow aktif; yaitu, membungkus panggilan ke fit()
dalam pernyataan "with mlflow.start_run():
".
Ini memastikan bahwa informasi dicatat di bawah eksekusi utama MLflow sendiri, dan membuatnya lebih mudah mencatat tag, parameter, atau metrik tambahan untuk eksekusi tersebut.
Catatan
Ketika fit()
dipanggil beberapa kali dalam eksekusi MLflow aktif yang sama, beberapa eksekusi tersebut ke jalur utama yang sama dicatat. Untuk mengatasi konflik nama untuk parameter dan tag MLflow, MLflow menambahkan UUID ke nama dengan konflik.
Notebook Python berikut menunjukkan pelacakan MLflow otomatis.
Notebook pelacakan MLflow otomatis
Setelah Anda melakukan tindakan di sel terakhir di notebook, UI MLflow Anda akan ditampilkan: