Melacak ML dan eksekusi pelatihan pembelajaran mendalam

Komponen pelacakan MLflow memungkinkan Anda mencatat properti sumber, parameter, metrik, tag, dan artefak yang terkait dengan pelatihan pembelajaran mesin atau model pembelajaran mendalam. Untuk memulai MLflow, coba salah satu tutorial mulai cepat MLflow.

Pelacakan MLflow dengan eksperimen dan eksekusi

Pelacakan MLflow didasarkan pada dua konsep, eksperimen dan eksekusi:

Catatan

Mulai 27 Maret 2024, MLflow memberlakukan batas kuota pada jumlah total parameter, tag, dan langkah metrik untuk semua eksekusi yang ada dan baru, dan jumlah total eksekusi untuk semua eksperimen yang ada dan baru, lihat Batas sumber daya. Jika Anda mencapai eksekusi per kuota eksperimen, Databricks menyarankan Anda menghapus eksekusi yang tidak lagi Anda perlukan menggunakan API eksekusi penghapusan di Python. Jika Anda mencapai batas kuota lain, Databricks merekomendasikan untuk menyesuaikan strategi pengelogan Anda agar tetap di bawah batas. Jika Anda memerlukan peningkatan hingga batas ini, hubungi tim akun Databricks Anda dengan penjelasan singkat tentang kasus penggunaan Anda, mengapa pendekatan mitigasi yang disarankan tidak berfungsi, dan batas baru yang Anda minta.

API Pelacakan MLflow mencatat parameter, metrik, tag, dan artefak dari eksekusi model. API Pelacakan berkomunikasi dengan server pelacakan MLflow. Saat Anda menggunakan Databricks, server pelacakan yang dihosting Databricks mencatat data. Server pelacakan MLflow yang dihosting memiliki API Python, Java, dan R.

Catatan

MLflow diinstal pada kluster ML Databricks Runtime. Untuk menggunakan MLflow pada kluster Databricks Runtime, Anda harus menginstal pustaka mlflow. Untuk petunjuk tentang penginstalan pustaka ke kluster, lihat Menginstal pustaka di kluster. Paket khusus yang harus diinstal untuk MLflow adalah:

  • Untuk Python, pilih Sumber Pustaka PyPI dan masukkan mlflow di bidang Paket.
  • Untuk R, pilih Sumber Pustaka CRAN dan masukkan mlflow di bidang Paket.
  • Untuk Scala, instal dua paket ini:
    • Pilih Sumber Pustaka Maven dan masukkan org.mlflow:mlflow-client:1.11.0 di bidang Koordinat.
    • Pilih Sumber Pustaka PyPI dan masukkan mlflow di bidang Paket.

Tempat eksekusi MLflow dicatat

Semua eksekusi MLflow dicatat ke eksperimen aktif, yang dapat diatur menggunakan salah satu cara berikut:

Jika tidak ada eksperimen aktif yang ditetapkan, eksekusi akan dicatat ke eksperimen notebook.

Untuk mencatatkan hasil eksperimen Anda ke server pelacakan MLflow yang dihosting dari jauh selain server yang digunakan untuk menjalankan eksperimen Anda, tetapkan URI pelacakan agar merujuk pada ruang kerja jarak jauh dengan mlflow.set_tracking_uri(), dan tetapkan jalur menuju eksperimen Anda pada ruang kerja jarak jauh menggunakan mlflow.set_experiment().

mlflow.set_tracking_uri(<uri-of-remote-workspace>)
mlflow.set_experiment("path to experiment in remote workspace")

Jika Anda menjalankan eksperimen secara lokal dan ingin mencatat hasil eksperimen ke server Databricks MLflow Tracking, berikan instans ruang kerja Databricks Anda (DATABRICKS_HOST) dan token akses pribadi Databricks (DATABRICKS_TOKEN). Selanjutnya, Anda dapat mengatur URI pelacakan untuk mereferensikan ruang kerja dengan mlflow.set_tracking_uri(), dan mengatur jalur ke eksperimen Anda dengan menggunakan mlflow.set_experiment(). Lihat Melakukan autentikasi token akses pribadi Azure Databricks untuk detail tentang tempat menemukan nilai untuk DATABRICKS_HOST variabel lingkungan dan DATABRICKS_TOKEN .

Contoh kode berikut menunjukkan pengaturan nilai-nilai ini:


os.environ["DATABRICKS_HOST"] = "https://dbc-1234567890123456.cloud.databricks.com" # set to your server URI
os.environ["DATABRICKS_TOKEN"] = "dapixxxxxxxxxxxxx"

mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/your-experiment")

Buku catatan contoh pengelogan

Notebook ini menunjukkan cara mencatat eksekusi ke eksperimen notebook dan ke eksperimen ruang kerja. Hanya eksekusi MLflow yang dimulai di dalam notebook yang dapat dicatat ke eksperimen notebook. Eksekusi MLflow yang diluncurkan dari notebook atau dari API dapat dicatat ke percobaan ruang kerja. Untuk informasi tentang menampilkan eksekusi yang dicatat, lihat Melihat eksperimen notebook dan Melihat eksperimen ruang kerja.

Mencatat notebook eksekusi MLflow

Dapatkan buku catatan

Anda dapat menggunakan API MLflow Python, Java atau Scala, dan R untuk memulai eksekusi dan merekam data eksekusi. Untuk detailnya, lihat contoh notebook MLflow.

Mengakses server pelacakan MLflow dari luar Azure Databricks

Anda juga dapat menulis dan membaca dari server pelacakan dari luar Azure Databricks, misalnya menggunakan CLI MLflow. Lihat Mengakses server pelacakan MLflow dari luar Azure Databricks.

Menganalisis eksekusi MLflow secara terprogram

Anda dapat mengakses MLflow yang menjalankan data secara terprogram menggunakan dua API DataFrame berikut:

Contoh ini menunjukkan cara menggunakan klien MLflow Python untuk membangun dasbor yang memvisualisasikan perubahan metrik evaluasi dari waktu ke waktu, melacak jumlah eksekusi yang dimulai oleh pengguna tertentu, dan mengukur jumlah total eksekusi di semua pengguna:

Mengapa metrik dan output pelatihan model dapat bervariasi

Banyak algoritma yang digunakan dalam ML memiliki elemen acak, seperti pengambilan sampel atau kondisi awal acak dalam algoritma itu sendiri. Saat Anda melatih model menggunakan salah satu algoritma ini, hasilnya mungkin tidak sama dengan setiap eksekusi, bahkan jika Anda memulai eksekusi dengan kondisi yang sama. Banyak pustaka menawarkan mekanisme penyemaian untuk memperbaiki kondisi awal untuk elemen stochastic ini. Namun, mungkin ada sumber variasi lain yang tidak dikontrol oleh benih. Beberapa algoritma sensitif terhadap urutan data, dan algoritma ML terdistribusi juga dapat dipengaruhi oleh bagaimana data dipartisi. Umumnya variasi ini tidak signifikan dan tidak penting dalam proses pengembangan model.

Untuk mengontrol variasi yang disebabkan oleh perbedaan urutan dan pemartisian, gunakan partisi ulang fungsi PySpark dan sortWithinPartitions.

Contoh pelacakan MLflow

Notebook berikut menunjukkan cara melatih beberapa jenis model dan melacak data pelatihan di MLflow dan cara menyimpan data pelacakan di Delta Lake.