Manajemen siklus hidup ML menggunakan MLflow
Artikel ini menjelaskan bagaimana MLflow digunakan dalam Databricks untuk manajemen siklus hidup pembelajaran mesin. Ini juga mencakup contoh yang memperkenalkan setiap komponen MLflow dan tautan ke konten yang menjelaskan bagaimana komponen ini dihosting dalam Azure Databricks.
Manajemen siklus hidup ML di Databricks disediakan oleh MLflow terkelola. Azure Databricks menyediakan versi MLflow yang dikelola dan dihosting sepenuhnya yang terintegrasi dengan fitur keamanan perusahaan, ketersediaan tinggi, dan fitur ruang kerja Azure Databricks lainnya seperti manajemen percobaan dan menjalankan serta pengambilan revisi notebook.
Pengguna pertama kali harus dimulai dengan Memulai eksperimen MLflow, yang menunjukkan API pelacakan MLflow dasar.
Apa itu MLflow?
MLflow adalah platform sumber terbuka untuk mengelola siklus hidup pembelajaran mesin ujung-ke-ujung. Ini memiliki komponen utama berikut:
- Pelacakan: Memungkinkan Anda melacak percobaan untuk merekam dan membandingkan parameter dan hasil.
- Model: Memungkinkan Anda untuk mengelola dan menerapkan model dari berbagai pustaka ML ke berbagai platform penyajian dan inferensi model.
- Proyek: Memungkinkan Anda mengemas kode ML dalam bentuk yang dapat digunakan kembali, direproduksi untuk dibagikan dengan ilmuwan data lain atau ditransfer ke produksi.
- Registri Model: Memungkinkan Anda memusatkan toko model untuk mengelola transisi tahap siklus hidup penuh model: dari penahapan ke produksi, dengan kemampuan untuk membuat versi dan anotasi. Databricks menyediakan versi terkelola Dari Registri Model di Unity Catalog.
- Model Melayani: Memungkinkan Anda menghosting model MLflow sebagai titik akhir REST. Databricks menyediakan antarmuka terpadu untuk menyebarkan, mengatur, dan mengkueri model AI yang dilayani.
MLflow mendukung Java, Python, R, dan REST API.
Data MLflow dienkripsi oleh Azure Databricks menggunakan kunci yang dikelola platform. Enkripsi menggunakan kunci yang dikelola pelanggan untuk layanan terkelola tidak didukung.
Pelacakan MLflow
MLflow di Azure Databricks menawarkan pengalaman terintegrasi untuk melacak dan mengamankan eksekusi pelatihan untuk pembelajaran mesin dan model pembelajaran mendalam.
Manajemen siklus hidup model
Registri Model MLflow adalah repositori model terpusat dan UI serta set API yang memungkinkan Anda mengelola siklus hidup penuh Model MLflow. Databricks menyediakan versi MLflow Model Registry yang dihosting di Unity Catalog. Unity Catalog menyediakan tata kelola model terpusat, akses lintas ruang kerja, silsilah data, dan penyebaran. Untuk detail tentang mengelola siklus hidup model di Unity Catalog, lihat Mengelola siklus hidup model di Unity Catalog.
Jika ruang kerja Anda tidak diaktifkan untuk Unity Catalog, Anda dapat menggunakan Registri Model Ruang Kerja.
Konsep Registri Model
- Model: Model MLflow yang dicatat dari eksperimen atau eksekusi yang dicatat dengan salah satu metode
mlflow.<model-flavor>.log_model
esensi model. Setelah model dicatat, Anda dapat mendaftarkannya dengan Registri Model. - Model terdaftar: Model MLflow yang telah terdaftar dengan Registri Model. Model terdaftar memiliki nama unik, versi, silsilah model, dan metadata lainnya.
- Versi model: Versi model terdaftar. Ketika model baru ditambahkan ke Registri Model, ia ditambahkan sebagai Versi 1. Setiap model yang terdaftar dengan nama model yang sama menambah nomor versi.
- Alias model: Alias adalah referensi bernama yang dapat diubah ke versi tertentu dari model terdaftar. Penggunaan umum alias adalah untuk menentukan versi model mana yang disebarkan di lingkungan tertentu dalam alur kerja pelatihan model Anda atau untuk menulis beban kerja inferensi yang menargetkan alias tertentu. Misalnya, Anda dapat menetapkan alias "Juara" dari model terdaftar "Deteksi Penipuan" Anda ke versi model yang harus melayani sebagian besar lalu lintas produksi, lalu menulis beban kerja inferensi yang menargetkan alias tersebut (yaitu, membuat prediksi menggunakan versi "Champion").
- Tahap model (hanya registri model ruang kerja): Versi model dapat ditetapkan satu atau beberapa tahap. MLflow menyediakan tahapan yang telah ditentukan sebelumnya untuk kasus penggunaan umum: Tidak ada, Penahapan, Produksi, dan Diarsipkan. Dengan izin yang sesuai, Anda dapat mentransisikan versi model antar tahapan atau Anda dapat meminta transisi tahap model. Tahapan versi model tidak digunakan dalam Unity Catalog.
- Deskripsi: Anda dapat membuat anotasi niat model, termasuk deskripsi dan informasi relevan apa pun yang berguna untuk tim seperti deskripsi algoritma, himpunan data yang digunakan, atau metodologi.
Contoh buku catatan
Untuk contoh yang menggambarkan cara menggunakan Registri Model untuk membangun aplikasi pembelajaran mesin yang memperkirakan output daya harian dari wind farm, lihat yang berikut ini:
Penyebaran model
Mosaic AI Model Serving menyediakan antarmuka terpadu untuk menyebarkan, mengatur, dan mengkueri model AI. Setiap model yang Anda layani tersedia sebagai REST API yang dapat Anda integrasikan ke dalam aplikasi web atau klien Anda.
Penyajian model mendukung penyajian:
- Model kustom. Ini adalah model Python yang dimas dalam format MLflow. Mereka dapat didaftarkan baik di Katalog Unity atau di registri model ruang kerja. Contohnya termasuk model transformator scikit-learn, XGBoost, PyTorch, dan Hugging Face.
- Model terbuka canggih yang disediakan oleh FOUNDATION Model API. Model ini adalah arsitektur model fondasi yang dikumpulkan yang mendukung inferensi yang dioptimalkan. Model dasar, seperti Meta-Llama-3.1-70B-Instruct, BGE-Large, dan Mistral-7B tersedia untuk digunakan segera dengan harga bayar per token , dan beban kerja yang memerlukan jaminan performa dan varian model yang disempurnakan dapat digunakan dengan throughput yang disediakan.
- Model eksternal. Ini adalah model yang dihosting di luar Databricks. Contohnya termasuk model AI generatif seperti, GPT-4 OpenAI, Claude Anthropic, dan lainnya. Titik akhir yang melayani model eksternal dapat diatur secara terpusat dan pelanggan dapat menetapkan batas tarif dan kontrol akses untuk mereka.
Anda juga dapat menyebarkan model MLflow untuk inferensi offline, lihat Menyebarkan model untuk inferensi batch.