Bagikan melalui


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 atau TrainValidationSplit 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

Dapatkan buku catatan

Setelah Anda melakukan tindakan di sel terakhir di notebook, UI MLflow Anda akan ditampilkan:

MLlib-MLflow demo