Siklus hidup pembelajaran mesin

Halaman ini menjelaskan proses menyeluruh untuk membawa proyek pembelajaran mesin (ML) dari penentuan ruang lingkup awal ke tahap produksi, dan menjaganya agar tetap berkinerja baik seiring waktu. Kode, data, dan model melewati tiga tahap luas: pengembangan, penahapan, dan produksi. Setiap tahap memiliki tujuan dan persyaratan yang berbeda:

  1. Cakupan kasus penggunaan dan tentukan keberhasilan
  2. Menjelajahi dan memahami data
  3. Menyiapkan data dan fitur
  4. Melatih model dan melacak eksperimen
  5. Mengevaluasi
  6. Mendaftarkan, mentahapkan, dan menguji model
  7. Terapkan ke lingkungan produksi
  8. Memantau dan melatih ulang

1. Cakupan kasus penggunaan dan tentukan keberhasilan

Sebelum membangun apa pun, sepakati terlebih dahulu apa yang harus dilakukan model dan bagaimana Anda akan mengetahui bahwa model tersebut berfungsi dengan baik.

  • Apa target prediksi, dan kelas masalah ML apa yang menyiratkan: klasifikasi, regresi, prakiraan, rekomendasi, peringkat, deteksi anomali, atau sesuatu yang lain?
  • Data input apa yang tersedia, dan apakah cukup untuk mempelajari pola target?
  • Metrik apa yang menentukan keberhasilan: akurasi, AUC, presisi di K, atau KPI bisnis?
  • Apa persyaratan penyajian dan produksi: latensi, throughput, dan kesegaran data?
  • Pemangku kepentingan mana yang harus menandatangani penyebaran produksi? Apa persyaratan mereka terkait kemampuan untuk dijelaskan?

Persyaratan sebelumnya tidak menentukan metode ML tertentu. Anda mungkin mulai membuat model dengan pendekatan yang lebih sederhana, seperti pohon peningkat gradien, lalu memutuskan bahwa metode pembelajaran mendalam yang lebih canggih diperlukan.

2. Jelajahi dan pahami data

Sebelum menyiapkan fitur atau melatih model, jelajahi data untuk memahami struktur, kualitas, dan hubungannya dengan target prediksi. Analisis data eksploratif (EDA) adalah proses meringkas dan memvisualisasikan himpunan data ke distribusi permukaan, korelasi, nilai yang hilang, dan outlier yang membentuk keputusan pemodelan hilir.

Sejak awal, tentukan bagaimana memverifikasi bahwa Anda memiliki data uji yang valid yang tidak digunakan untuk pelatihan. Bahkan selama EDA, berhati-hatilah membuat keputusan pemodelan berdasarkan data pengujian Anda.

EDA menjawab pertanyaan yang menjadi dasar bagi tahapan siklus hidup selanjutnya:

  • Input mana yang paling prediktif dari target, dan apakah salah satunya tidak tersedia pada waktu penyajian?
  • Apakah ada nilai yang hilang, outlier, atau distribusi miring yang memerlukan pembersihan atau transformasi?
  • Apakah himpunan data cukup besar, dan cukup representatif, untuk mempelajari pola target?

Azure Databricks menyederhanakan EDA dengan alat interaktif, kolaboratif, dan bantuan AI. Jelajahi data Anda menggunakan obrolan bahasa alami, UI, atau kode, dan berkolaborasi melalui pengeditan bersama real time dan berbagi kode berbasis Git:

  • Notebook menyediakan ruang kolaboratif untuk eksplorasi, visualisasi, dan dokumentasi.
  • Dasbor menawarkan eksplorasi berbasis SQL dan visualisasi.
  • Genie Chat menyediakan antarmuka bahasa alami halaman penuh untuk mengajukan pertanyaan data.
  • Genie Code dapat melakukan EDA otomatis sepenuhnya atau bertindak sebagai asisten interaktif.

3. Menyiapkan data dan fitur

Dengan data yang dipahami, ubah sumber mentah dan transformasi yang diidentifikasi selama EDA menjadi fitur untuk model ML. Menilai alur data Anda untuk pelatihan dan penyajian, termasuk kecepatan, volume, kesegaran, dan kepemilikan sumber data. Batas antara rekayasa data (menyiapkan dan mengubah data) dan rekayasa fitur (turunan input ML) adalah fuzzy. Pada Azure Databricks, rekayasa data dan ML berbagi platform dan lapisan tata kelola yang sama di Unity Catalog, sehingga data yang disiapkan oleh satu tim dapat segera tersedia sebagai fitur untuk yang lain, tanpa pergerakan data atau alur duplikat.

Cari definisi data dan fitur yang ada:

  • Jelajahi data dan fitur yang tersedia di Unity Catalog. Jika organisasi Anda memiliki model terkait, gunakan silsilah Katalog Unity untuk menemukan sumber data dan fitur yang digunakan untuk model tersebut.
  • Pencarian ruang kerja dapat membantu Anda menemukan data, model, atau aplikasi yang diatur yang sudah ada.

Buat dan kelola aset baru sesuai kebutuhan:

  • Lihat Rekayasa data dengan Databricks untuk informasi selengkapnya tentang alat untuk penyerapan dan rekayasa data, termasuk Lakeflow Designer untuk pengalaman tanpa kode yang dibantu AI.
  • Gunakan Penyimpanan Fitur untuk menentukan dan mengelola fitur sebagai aset yang dapat digunakan kembali dan diatur. Definisi fitur yang sama digunakan dalam pelatihan dan produksi, dengan dukungan untuk ingesti data secara batch dan real-time serta penyajian secara batch dan real-time.

Gunakan Kode Genie untuk mempercepat penemuan dan persiapan data dengan menelusuri Katalog Unity untuk menemukan tabel yang relevan, menyarankan transformasi fitur, dan menghasilkan kode pemula untuk penyerapan dan alur fitur.

4. Melatih model dan melacak eksperimen

Aplikasi ilmu data dan ML menggunakan banyak pendekatan yang berbeda, yang masing-masing memiliki persyaratan sendiri untuk algoritma dan pustaka ML, persyaratan komputasi, dan alur kerja. Azure Databricks menyediakan lingkungan dan komputasi yang fleksibel untuk beban kerja yang berbeda, dengan pelacakan eksperimen terpadu di bawah MLflow.

Lingkungan dan komputasi

Secara default, gunakan komputasi tanpa server untuk notebook interaktif dan pekerjaan otomatis. Komputasi tanpa server dimulai secara instan dan meningkatkan dan menurunkan skala secara otomatis dengan beban kerja Anda.

Untuk akselerasi GPU, lampirkan GPU ke komputasi tanpa server Anda, yang kemudian menggunakan Runtime AI, lingkungan yang telah dikonfigurasi sebelumnya untuk pelatihan dan inferensi GPU.

Untuk beban kerja CPU dan GPU, Anda juga dapat menggunakan komputasi klasik dengan Databricks Runtime untuk Pembelajaran Mesin.

Sesuaikan salah satu lingkungan sebelumnya dengan pustaka ML Anda. Dengan lingkungan yang sering kali sangat disesuaikan untuk aplikasi ML, manfaatkan pelacakan MLflow untuk merekam dependensi, memverifikasi reproduksi, dan menghindari kemiringan penyajian pelatihan.

Pelacakan MLflow

Gunakan MLflow yang dikelola Azure Databricks untuk melacak metadata model eksperimen dan pengelogan Anda:

Mulai menggunakan pemodelan

Genie Code dapat menghasilkan notebook ML lengkap dari deskripsi tugas prediksi dalam bahasa alami, termasuk pemilihan fitur dari Feature Store, pelatihan ML, dan pelacakan dengan MLflow.

Lihat juga sumber daya untuk penyetelan hyperparameter, contoh pelatihan model, dan Ray di Databricks.

Untuk pembelajaran mendalam dan pelatihan ML klasik yang dipercepat GPU, lihat contoh notebook untuk Runtime AI.

5. Evaluasi

Selama pengembangan, tentukan metrik evaluasi kualitas berdasarkan persyaratan dari cakupan:

  • Metrik dasar Anda mungkin merupakan metrik ML umum seperti akurasi, AUC, RMSE, atau metrik khusus domain.
  • Evaluasi Anda mungkin juga mencakup metrik turunan, seperti bias dan kewajaran di seluruh segmen populasi, yang diukur dengan membandingkan metrik dasar di seluruh segmen data Anda.

Tentukan metrik menggunakan pustaka atau kerangka kerja ML yang Anda pilih, menggunakan modul metrik bawaan MLflow, atau logika kustom Anda. Untuk semua metrik, metrik log di MLflow berjalan untuk menautkannya ke model yang sesuai. Metrik yang Anda tentukan selama pengembangan dan pelatihan dapat digunakan kembali nanti sebagai metrik untuk pemantauan produksi.

6. Mendaftarkan, mentahapkan, dan menguji model

Setelah melatih model atau alur ML, daftarkan ke MLflow Model Registry di Unity Catalog untuk menyederhanakan tata kelola dan manajemen saat Anda mempromosikan model menuju produksi. Model yang terdaftar memiliki beberapa versi, dan setiap versi ditautkan ke proses pelatihan asli yang menghasilkannya. Versi model memungkinkan alur kerja deployment yang aman: Anda dapat menguji versi baru di lingkungan staging sebelum menaikkannya ke produksi, mengembalikan model ke versi sebelumnya jika kualitas menurun, dan menyimpan jejak audit lengkap mengenai apa yang diterapkan dan kapan.

Sebelum versi model baru digunakan untuk menangani traffic produksi, uji versi tersebut di lingkungan staging dalam kondisi yang realistis:

  • Beri label versi model kandidat dengan alias (Staging, Production) untuk memberi sinyal status siklus hidup tanpa mengganti nama artefak.
  • Jalankan pengujian integrasi pada infrastruktur staging: pastikan endpoint penyajian berjalan, latensi memenuhi persyaratan, dan output valid serta sesuai format.
  • Lakukan pengujian A/B atau pengujian shadow pada data produksi untuk memvalidasi kinerja sebelum peralihan penuh.
  • Dapatkan persetujuan akhir dari pemangku kepentingan berdasarkan hasil evaluasi.

Deskripsi ini terlalu menyederhanakan praktik deployment dan operasional ML (MLOps). Pelajari detail selengkapnya tentang MLOps di alur kerja MLOps di Azure Databricks.

7. Menerapkan ke produksi

Setelah validasi di lingkungan staging, naikkan dan deploy model ke produksi untuk menghasilkan prediksi bagi input di dunia nyata. Azure Databricks mendukung dua pola penyajian utama:

  • Penyajian real-time: Terapkan model sebagai endpoint REST berlatensi rendah menggunakan Model Serving untuk kasus penggunaan yang memerlukan pengambilan keputusan berlatensi rendah, seperti pencegatan penipuan saat transaksi, personalisasi real-time, atau penetapan harga dinamis.
  • Inferensi batch: ai_query memberikan inferensi batch yang efisien untuk model kustom yang disebarkan sebagai titik akhir Model Serving. Anda juga dapat menggunakan kode kustom dengan Apache Spark UDF (misalnya) atau mlflow.pyfunc untuk inferensi batch. Alur batch menulis hasil ke tabel Delta untuk aplikasi hilir, dasbor, atau alur. Pola ini menangani prakiraan harian, refresh rekomendasi malam hari, dan pekerjaan berkala lainnya.

Kedua pola menggunakan artefak model terlatih yang sama. Latih sekali, lalu terapkan ke pemrosesan batch atau penyajian real-time dari versi terdaftar yang sama, dengan tata kelola dan jejak asal-usul yang sama.

Kode Genie dapat menghasilkan kode untuk penyebaran dan membantu memecahkan masalah penyajian, menjelaskan perilaku titik akhir, dan mempercepat iterasi ketika model harus diperbarui atau disebarkan ulang.

8. Pantau dan pelatihan ulang

Sistem ML produksi dapat menurun dari waktu ke waktu saat pergeseran perilaku pengguna atau alur data berubah. Terus memantau data produksi dan prediksi model Anda:

  • Catat input dan output dari model yang telah Anda deploy. Untuk penyajian real time, tabel inferensi menyediakan pengelogan otomatis tanpa perubahan pada kode model Anda. Untuk penyajian batch, pipeline Anda membaca data dari dan menulis data ke tabel Delta yang dikelola oleh Unity Catalog.
  • Masukkan log ini ke dalam pemantauan kualitas data, yang melacak kualitas data, penyimpangan fitur, dan distribusi prediksi dari waktu ke waktu. Jika Anda memiliki data kebenaran dasar atau umpan balik, Anda dapat menggabungkan data ini dengan log penyajian untuk menghitung metrik kualitas prediksi.
  • Gunakan antarmuka pengguna pemantauan dan pemberitahuan deteksi anomali untuk memicu eskalasi atau pelatihan ulang sebelum kualitas terasa menurun.

Pelajari selengkapnya tentang ML produksi di alur kerja MLOps pada Azure Databricks.

Sumber daya tambahan