Mengatur MLOps dengan menggunakan Azure Databricks

Azure Databricks

Ide solusi

Artikel ini menjelaskan ide solusi. Arsitek cloud Anda dapat menggunakan panduan ini untuk membantu memvisualisasikan komponen utama untuk implementasi umum arsitektur ini. Gunakan artikel ini sebagai titik awal untuk merancang solusi yang dirancang dengan baik yang selaras dengan persyaratan spesifik beban kerja Anda.

Artikel ini menyediakan arsitektur dan proses operasi pembelajaran mesin (MLOps) yang menggunakan Azure Databricks. Proses ini mendefinisikan cara standar untuk memindahkan model pembelajaran mesin dan alur dari pengembangan ke produksi, dengan opsi untuk menyertakan proses otomatis dan manual.

Sistem

Diagram yang memperlihatkan solusi untuk menggunakan Azure Databricks untuk MLOps.

Unduh file Visio arsitektur ini.

Alur kerja

Solusi ini menyediakan proses MLOps yang kuat yang menggunakan Azure Databricks. Semua elemen dalam arsitektur dapat dicolokkan, sehingga Anda dapat mengintegrasikan layanan Azure dan pihak ketiga lainnya di seluruh arsitektur sesuai kebutuhan. Arsitektur dan deskripsi ini diadaptasi dari e-book The Big Book of MLOps. E-book ini menjelajahi arsitektur yang dijelaskan di sini secara lebih rinci.

  • Kontrol sumber: Repositori kode proyek ini mengatur buku catatan, modul, dan alur. Ilmuwan data membuat cabang pengembangan untuk menguji pembaruan dan model baru. Kode dikembangkan di notebook atau di IDEs, didukung oleh Git, dengan integrasi Databricks Repos untuk disinkronkan dengan ruang kerja Azure Databricks Anda. Kontrol sumber mempromosikan alur pembelajaran mesin dari pengembangan, melalui penahapan (untuk pengujian), hingga produksi (untuk penyebaran).

  • Lakehouse - data produksi: Ilmuwan data bekerja di lingkungan pengembangan, di mana mereka memiliki akses baca-saja ke data produksi. (Atau, data dapat dicerminkan atau diredaksikan.) Mereka juga memiliki akses baca/tulis ke lingkungan penyimpanan dev untuk pengembangan dan eksperimen. Kami merekomendasikan arsitektur Lakehouse untuk data, tempat data disimpan dalam Azure Data Lake Storage dalam format Delta Lake . Kontrol akses ditentukan dengan passthrough kredensial Microsoft Entra atau kontrol akses tabel.

Pengembangan

Di lingkungan pengembangan, ilmuwan dan insinyur data mengembangkan alur pembelajaran mesin.

  1. Analisis data eksploratif (EDA): Ilmuwan data mengeksplorasi data dalam proses interaktif dan berulang. Pekerjaan ad hoc ini mungkin tidak disebarkan ke penahapan atau produksi. Alat mungkin mencakup Databricks SQL, dbutils.data.summarize, dan AutoML.

  2. Pelatihan model dan alur pembelajaran mesin lainnya: Alur pembelajaran mesin dikembangkan sebagai kode modular di notebook atau IDEs. Misalnya, alur pelatihan model membaca data dari Penyimpanan Fitur dan tabel Lakehouse lainnya. Melatih dan menyetel parameter dan metrik model log ke server pelacakan MLflow. API Penyimpanan Fitur mencatat model akhir. Log ini menautkan model, inputnya, dan kode pelatihan.

  3. Kode penerapan: Untuk mempromosikan alur kerja pembelajaran mesin menuju produksi, ilmuwan data menerapkan kode untuk fiturisasi, pelatihan, dan alur lainnya ke kontrol sumber.

Staging

Di lingkungan penahapan, infrastruktur CI menguji perubahan pada alur pembelajaran mesin di lingkungan yang menilik produksi.

  1. Permintaan penggabungan: Saat permintaan penggabungan (atau tarik) dikirimkan terhadap cabang penahapan (utama) proyek dalam kontrol sumber, alat integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) seperti Azure DevOps menjalankan pengujian.

  2. Pengujian unit dan CI: Pengujian unit berjalan di infrastruktur CI, dan pengujian integrasi menjalankan alur kerja end-to-end di Azure Databricks. Jika pengujian lulus, kode berubah bergabung.

  3. Membangun cabang rilis: Ketika teknisi pembelajaran mesin siap untuk menyebarkan alur pembelajaran mesin yang diperbarui ke produksi, mereka dapat membangun rilis baru. Alur penyebaran di alat CI/CD menyebarkan ulang alur yang diperbarui sebagai alur kerja baru.

Produksi

Teknisi pembelajaran mesin mengelola lingkungan produksi, di mana alur pembelajaran mesin langsung melayani aplikasi akhir. Alur utama dalam tabel fitur refresh produksi, melatih dan menyebarkan model baru, menjalankan inferensi atau penyajian, dan memantau performa model.

  1. Refresh tabel fitur: Alur ini membaca data, menghitung fitur, dan menulis ke tabel Penyimpanan Fitur . Ini berjalan terus menerus dalam mode streaming, berjalan sesuai jadwal, atau dipicu.

  2. Pelatihan model: Dalam produksi, pelatihan model atau pelatihan ulang alur dipicu atau dijadwalkan untuk melatih model baru pada data produksi terbaru. Model didaftarkan ke MLflow Model Registry.

  3. Penyebaran berkelanjutan: Mendaftarkan versi model baru memicu alur CD, yang menjalankan pengujian untuk memastikan bahwa model akan berkinerja baik dalam produksi. Saat model lulus pengujian, kemajuannya dilacak di Registri Model melalui transisi tahap model. Webhook registri dapat digunakan untuk otomatisasi. Pengujian dapat mencakup pemeriksaan kepatuhan, pengujian A/B untuk membandingkan model baru dengan model produksi saat ini, dan pengujian infrastruktur. Hasil pengujian dan metrik dicatat dalam tabel Lakehouse. Anda dapat secara opsional memerlukan sign-off manual sebelum model ditransisikan ke produksi.

  4. Penyebaran model: Saat model memasuki produksi, model disebarkan untuk penilaian atau penyajian. Mode penyebaran yang paling umum adalah:

    • Penilaian batch atau streaming: Untuk latensi menit atau lebih lama, batch dan streaming adalah opsi yang paling hemat biaya. Alur penilaian membaca data terbaru dari Penyimpanan Fitur, memuat versi model produksi terbaru dari Registri Model, dan melakukan inferensi dalam pekerjaan Databricks. Ini dapat menerbitkan prediksi ke tabel Lakehouse, koneksi Java Database Connectivity (JDBC), file datar, antrean pesan, atau sistem hilir lainnya.
    • Penyajian online (REST API): Untuk kasus penggunaan latensi rendah, penyajian online umumnya diperlukan. MLflow dapat menyebarkan model ke MLflow Model Serving di Azure Databricks, sistem penyajian penyedia cloud, dan sistem lainnya. Dalam semua kasus, sistem penyajian diinisialisasi dengan model produksi terbaru dari Model Registry. Untuk setiap permintaan, ia mengambil fitur dari Penyimpanan Fitur online dan membuat prediksi.
  5. Pemantauan: Alur kerja berkelanjutan atau berkala memantau data input dan prediksi model untuk drift, performa, dan metrik lainnya. Tabel Langsung Delta dapat menyederhanakan otomatisasi alur pemantauan, menyimpan metrik dalam tabel Lakehouse. Databricks SQL, Power BI, dan alat lain dapat membaca dari tabel tersebut untuk membuat dasbor dan pemberitahuan.

  6. Pelatihan ulang: Arsitektur ini mendukung pelatihan ulang manual dan otomatis. Pekerjaan pelatihan ulang terjadwal adalah cara term mudah untuk menjaga model tetap segar.

Komponen

  • Data Lakehouse. Arsitektur Lakehouse menyaingkan elemen data lake dan gudang data terbaik, memberikan manajemen dan performa data yang biasanya ditemukan di gudang data dengan penyimpanan objek fleksibel bernilai rendah yang ditawarkan oleh data lake.
    • Delta Lake adalah pilihan yang direkomendasikan untuk format data sumber terbuka untuk lakehouse. Azure Databricks menyimpan data di Data Lake Storage dan menyediakan mesin kueri berkinerja tinggi.
  • MLflow adalah proyek sumber terbuka untuk mengelola siklus hidup pembelajaran mesin end-to-end. Ini adalah komponen utamanya:
    • Pelacakan memungkinkan Anda melacak eksperimen untuk merekam dan membandingkan parameter, metrik, dan artefak model.
      • Databricks Autologging memperluas pencatatan otomatis MLflow untuk melacak eksperimen pembelajaran mesin, secara otomatis mencatat parameter model, metrik, file, dan informasi silsilah data.
    • Model MLflow memungkinkan Anda menyimpan dan menyebarkan model dari pustaka pembelajaran mesin apa pun ke berbagai platform penyajian model dan inferensi.
    • Model Registry menyediakan penyimpanan model terpusat untuk mengelola transisi tahap siklus hidup model dari pengembangan ke produksi.
    • Model Melayani memungkinkan Anda menghosting model MLflow sebagai titik akhir REST.
  • Azure Databricks. Azure Databricks menyediakan layanan MLflow terkelola dengan fitur keamanan perusahaan, ketersediaan tinggi, dan integrasi dengan fitur ruang kerja Azure Databricks lainnya.
    • Databricks Runtime for Pembelajaran Mesin mengotomatiskan pembuatan kluster yang dioptimalkan untuk pembelajaran mesin, menginstal pustaka pembelajaran mesin populer seperti TensorFlow, PyTorch, dan XGBoost selain Azure Databricks untuk alat Pembelajaran Mesin seperti Klien AutoML dan Penyimpanan Fitur.
    • Penyimpanan Fitur adalah repositori fitur terpusat. Ini memungkinkan berbagi fitur dan penemuan, dan membantu menghindari kecondongan data antara pelatihan model dan inferensi.
    • Databricks SQL. Databricks SQL memberikan pengalaman sederhana untuk kueri SQL pada data Lakehouse, dan untuk visualisasi, dasbor, dan pemberitahuan.
    • Databricks Repos menyediakan integrasi dengan penyedia Git Anda di ruang kerja Azure Databricks, menyederhanakan pengembangan kolaboratif notebook atau kode dan integrasi IDE.
    • Alur kerja dan pekerjaan menyediakan cara untuk menjalankan kode non-interaktif di kluster Azure Databricks. Untuk pembelajaran mesin, pekerjaan menyediakan otomatisasi untuk persiapan data, fiturisasi, pelatihan, inferensi, dan pemantauan.

Alternatif

Anda dapat menyesuaikan solusi ini dengan infrastruktur Azure Anda. Penyesuaian umum meliputi:

  • Beberapa ruang kerja pengembangan yang berbagi ruang kerja produksi umum.
  • Bertukar satu atau beberapa komponen arsitektur untuk infrastruktur Anda yang sudah ada. Misalnya, Anda dapat menggunakan Azure Data Factory untuk mengatur pekerjaan Databricks.
  • Mengintegrasikan dengan alat CI/CD yang ada melalui REST API Git dan Azure Databricks.

Detail skenario

MLOps membantu mengurangi risiko kegagalan dalam pembelajaran mesin dan sistem AI dan untuk meningkatkan efisiensi kolaborasi dan alat. Untuk pengenalan MLOps dan gambaran umum arsitektur ini, lihat Merancang MLOps di Lakehouse.

Dengan menggunakan arsitektur ini, Anda dapat:

  • Hubungkan pemangku kepentingan bisnis Anda dengan tim pembelajaran mesin dan ilmu data. Arsitektur ini memungkinkan ilmuwan data menggunakan notebook dan IDEs untuk pengembangan. Ini memungkinkan pemangku kepentingan bisnis untuk melihat metrik dan dasbor di Databricks SQL, semuanya dalam arsitektur Lakehouse yang sama.
  • Buat infrastruktur pembelajaran mesin Anda menjadi pusat data. Arsitektur ini memperlakukan data pembelajaran mesin (data dari rekayasa fitur, pelatihan, inferensi, dan pemantauan) sama seperti data lainnya. Ini menggunakan kembali alat untuk alur produksi, dasbor, dan pemrosesan data umum lainnya untuk pemrosesan data pembelajaran mesin.
  • Menerapkan MLOps dalam modul dan alur. Seperti halnya aplikasi perangkat lunak apa pun, alur dan kode modularisasi dalam arsitektur ini memungkinkan pengujian komponen individual dan mengurangi biaya refaktor di masa mendatang.
  • Otomatiskan proses MLOps Anda sesuai kebutuhan. Dalam arsitektur ini, Anda dapat mengotomatiskan langkah-langkah untuk meningkatkan produktivitas dan mengurangi risiko kesalahan manusia, tetapi tidak setiap langkah perlu diotomatisasi. Azure Databricks mengizinkan UI dan proses manual selain API untuk otomatisasi.

Kemungkinan kasus penggunaan

Arsitektur ini berlaku untuk semua jenis pembelajaran mesin, pembelajaran mendalam, dan analitik tingkat lanjut. Teknik pembelajaran mesin /AI umum yang digunakan dalam arsitektur ini meliputi:

  • Pembelajaran mesin klasik, seperti model linier, model berbasis pohon, dan peningkatan.
  • Pembelajaran mendalam modern, seperti TensorFlow dan PyTorch.
  • Analitik kustom, seperti statistik, metode Bayesian, dan analitik grafik.

Arsitektur ini mendukung data kecil (mesin tunggal) dan data besar (komputasi terdistribusi dan dipercepat GPU). Dalam setiap tahap arsitektur, Anda dapat memilih sumber daya komputasi dan pustaka untuk beradaptasi dengan data dan dimensi masalah Anda.

Arsitektur ini berlaku untuk semua jenis industri dan kasus penggunaan bisnis. Pelanggan Azure Databricks yang menggunakan arsitektur ini dan serupa mencakup organisasi kecil dan besar di industri seperti ini:

  • Barang konsumen dan layanan ritel
  • Layanan keuangan
  • Layanan kesehatan dan ilmu hayat
  • Teknologi informasi

Misalnya, lihat situs web Databricks.

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

Kontributor lainnya:

Untuk melihat profil LinkedIn non-publik, masuk ke LinkedIn.

Langkah berikutnya