MLOps: Manajemen model, penyebaran, silsilah data, dan pemantauan dengan Azure Machine Learning v1

BERLAKU UNTUK:Ekstensi ml Azure CLI v1Python SDK azureml v1

Dalam artikel ini, pelajari cara menerapkan praktik Pembelajaran Mesin Operations (MLOps) di Azure Pembelajaran Mesin untuk tujuan mengelola siklus hidup model Anda. Menerapkan praktik MLOps dapat meningkatkan kualitas dan konsistensi solusi pembelajaran mesin Anda.

Penting

Item dalam artikel ini yang ditandai sebagai "pratinjau" saat ini dalam pratinjau publik. Versi pratinjau disediakan tanpa perjanjian tingkat layanan, dan tidak disarankan untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Apa itu MLOps?

Operasi Pembelajaran Mesin (MLOps) didasarkan pada prinsip dan praktik DevOps yang meningkatkan efisiensi alur kerja. Misalnya, integrasi, pengiriman, dan penyebaran berkelanjutan. MLOps menerapkan prinsip-prinsip ini pada proses pembelajaran mesin, dengan tujuan:

  • Eksperimen dan pengembangan model yang lebih cepat
  • Penyebaran model ke produksi yang lebih cepat
  • Jaminan kualitas dan pelacakan silsilah data end-to-end

MLOps di Azure Machine Learning

Azure Machine Learning menyediakan kemampuan MLOps berikut:

  • Membuat alur ML yang dapat direproduksi. Alur Pembelajaran Mesin memungkinkan Anda menentukan langkah-langkah berulang dan dapat digunakan kembali untuk proses persiapan, pelatihan, dan penilaian data.
  • Membuat lingkungan perangkat lunak yang dapat digunakan kembali untuk melatih dan menyebarkan model.
  • Mendaftar, mengemas, dan menyebarkan model dari mana saja. Anda juga dapat melacak metadata terkait yang diperlukan untuk menggunakan model.
  • Menangkap data tata kelola untuk siklus hidup ML ujung-ke-ujung. Informasi silsilah data yang tercatat dapat termasuk siapa yang menerbitkan model, mengapa perubahan dibuat, dan kapan model disebarkan atau digunakan dalam produksi.
  • Memberi tahu dan memperingatkan peristiwa dalam siklus hidup ML. Misalnya, penyelesaian eksperimen, pendaftaran model, penyebaran model, dan deteksi pergeseran data.
  • Memantau aplikasi ML untuk masalah operasional dan terkait ML. Membandingkan input model antara pelatihan dan inferensi, menjelajahi metrik khusus model, dan memberikan pemantauan dan peringatan pada infrastruktur ML Anda.
  • Mengotomatiskan siklus hidup ML ujung-ke-ujung dengan Azure Machine Learning dan Azure Pipeline. Menggunakan alur memungkinkan Anda untuk sering memperbarui model, menguji model baru, dan terus meluncurkan model ML baru bersama aplikasi dan layanan lainnya.

Untuk informasi selengkapnya tentang MLOps, lihat Machine Learning DevOps (MLOps).

Membuat alur ML yang dapat direproduksi

Gunakan alur ML dari Azure Machine Learning untuk menyatukan semua langkah yang terlibat dalam proses pelatihan model Anda.

Alur ML dapat berisi langkah-langkah dari persiapan data untuk menampilkan ekstraksi hingga penyetelan hyperparameter hingga evaluasi model. Untuk informasi selengkapnya, lihat Alur ML.

Jika Anda menggunakan Desainer untuk membuat alur ML, Anda dapat kapan saja mengeklik "..." di kanan atas halaman Desainer lalu pilih Kloning. Mengkloning alur memungkinkan Anda untuk mengiterasi desain alur tanpa kehilangan versi lama Anda.

Membuat lingkungan perangkat lunak yang dapat digunakan kembali

Lingkungan Pembelajaran Mesin Azure memungkinkan Anda melacak dan mereproduksi dependensi perangkat lunak proyek saat berkembang. Lingkungan memungkinkan Anda untuk memastikan bahwa build dapat direproduksi tanpa konfigurasi perangkat lunak manual.

Lingkungan menjelaskan dependensi pip dan Conda untuk proyek Anda, dan dapat digunakan untuk pelatihan dan penyebaran model. Untuk informasi selengkapnya, lihat Apa itu lingkungan Azure Machine Learning.

Mendaftar, mengemas, dan menyebarkan model dari mana saja

Mendaftarkan dan melacak model ML

Pendaftaran model memungkinkan Anda menyimpan dan membuat versi model di cloud Azure, dalam ruang kerja Anda. Registri model memudahkan untuk mengatur dan melacak model terlatih Anda.

Tip

Model terdaftar adalah kontainer logis untuk satu atau beberapa file yang membentuk model Anda. Misalnya, jika Anda memiliki model yang disimpan dalam beberapa file, Anda dapat mendaftarkannya sebagai satu model di ruang kerja Azure Machine Learning Anda. Setelah pendaftaran, Anda kemudian dapat mengunduh atau menyebarkan model terdaftar, dan menerima semua file yang terdaftar.

Model terdaftar diidentifikasi berdasarkan nama dan versi. Setiap kali Anda mendaftarkan model dengan nama yang sama dengan yang sudah ada, registri akan meningkatkan versinya. Tag metadata tambahan dapat diberikan selama pendaftaran. Tag ini kemudian digunakan saat mencari model. Azure Machine Learning mendukung model apa pun yang dapat dimuat menggunakan Python 3.5.2 atau yang lebih tinggi.

Tip

Anda juga dapat mendaftarkan model yang dilatih di luar Azure Machine Learning.

Anda tidak dapat menghapus model terdaftar yang sedang digunakan dalam penyebaran aktif. Untuk informasi selengkapnya, lihat bagian mendaftarkan model dari Menyebarkan model.

Penting

Jika menggunakan opsi Filter menurut Tags di halaman Model Azure Machine Learning Studio, alih-alih menggunakan TagName : TagValue pelanggan harus menggunakan TagName=TagValue (tanpa spasi)

Model paket dan debug

Sebelum menyebarkan model ke produksi, model dikemas ke dalam citra Docker. Dalam kebanyakan kasus, pembuatan citra terjadi secara otomatis di latar belakang selama penyebaran. Anda dapat menentukan citra secara manual.

Jika mengalami masalah dengan penyebaran, Anda dapat menggunakan lingkungan pengembangan lokal untuk pemecahan masalah dan proses debug.

Untuk informasi selengkapnya, lihat Menyebarkan model dan Pemecahan masalah penyebaran.

Mengonversi dan mengoptimalkan model

Mengonversi model Anda ke Open Neural Network Exchange (ONNX) dapat meningkatkan performa. Rata-rata, konversi ke ONNX dapat menghasilkan peningkatan performa 2x.

Untuk informasi selengkapnya tentang ONNX dengan Azure Machine Learning, lihat artikel Membuat dan mempercepat model ML.

Menggunakan model

Model pembelajaran mesin terlatih disebarkan sebagai layanan web di cloud atau lokal. Penyebaran menggunakan CPU, GPU, atau field-programmable gate array (FPGA) untuk inferensi. Anda juga bisa menggunakan model dari Power BI.

Saat menggunakan model sebagai layanan web, Anda menyediakan item berikut:

  • Model yang digunakan untuk menilai data yang dikirim ke layanan/perangkat.
  • Skrip entri. Skrip ini menerima permintaan, menggunakan model untuk menilai data, dan mengembalikan respons.
  • Lingkungan Azure Machine Learning yang menjelaskan dependensi pip dan Conda yang diperlukan oleh model dan skrip entri.
  • Setiap aset tambahan seperti teks, data, dll. yang diperlukan oleh model dan skrip entri.

Anda juga memberikan konfigurasi platform penyebaran target. Misalnya, jenis keluarga VM, memori yang tersedia, dan jumlah core jika menyebarkan ke Azure Kubernetes Service.

Saat citra dibuat, komponen yang diperlukan oleh Azure Machine Learning juga ditambahkan. Contohnya, aset yang diperlukan untuk menjalankan layanan web.

Penilaian batch

Penilaian batch didukung melalui alur ML. Untuk informasi selengkapnya, lihat Prediksi batch tentang big data.

Layanan web real-time

Anda bisa menggunakan model Anda di layanan web dengan target komputasi berikut:

  • Azure Container Instance
  • Azure Kubernetes Service
  • Lingkungan pengembangan lokal

Untuk menyebarkan model sebagai layanan web, Anda harus menyediakan item berikut:

  • Model atau ansambel model.
  • Dependensi yang diperlukan untuk menggunakan model. Misalnya, skrip yang menerima permintaan dan memanggil model, dependensi conda, dll.
  • Konfigurasi penyebaran yang menjelaskan cara dan tempat untuk menyebarkan model.

Untuk informasi selengkapnya, lihat Menyebarkan model.

Analitik

Microsoft Power BI mendukung penggunaan model pembelajaran mesin untuk analitik data. Untuk informasi selengkapnya, lihat Integrasi Azure Machine Learning di Power BI (pratinjau).

Menangkap data tata kelola yang diperlukan untuk MLOps

Azure Pembelajaran Mesin memberi Anda kemampuan untuk melacak jejak audit end-to-end dari semua aset ML Anda dengan menggunakan metadata.

  • Azure Pembelajaran Mesin terintegrasi dengan Git untuk melacak informasi tempat repositori/cabang/penerapan kode Anda berasal.
  • Azure Pembelajaran Mesin Datasets membantu Anda melacak, membuat profil, dan data versi.
  • Interpretabilitas memungkinkan Anda untuk menjelaskan model, memenuhi kepatuhan pada peraturan, dan memahami bagaimana model sampai pada hasil untuk input yang diberikan.
  • Riwayat Azure Pembelajaran Mesin Run menyimpan rekam jepret kode, data, dan komputasi yang digunakan untuk melatih model.
  • Azure Pembelajaran Mesin Model Registry menangkap semua metadata yang terkait dengan model Anda (eksperimen mana yang melatihnya, tempat metadata tersebut disebarkan, jika penyebarannya sehat).
  • Integrasi dengan Azure memungkinkan Anda bertindak pada peristiwa dalam siklus hidup ML. Misalnya, pendaftaran model, penyebaran, pergeseran data, dan peristiwa pelatihan (eksekusi).

Tip

Meskipun beberapa informasi tentang model dan himpunan data ditangkap secara otomatis, Anda dapat menambahkan informasi tambahan dengan menggunakan tag. Ketika mencari model dan himpunan data terdaftar di ruang kerja, Anda dapat menggunakan tag sebagai filter.

Mengaitkan himpunan data dengan model terdaftar adalah langkah opsional. Untuk informasi tentang mereferensikan himpunan data saat mendaftarkan model, lihat referensi kelas Model.

Memberi tahu, mengotomatiskan, dan memperingatkan peristiwa dalam siklus hidup ML

Azure Pembelajaran Mesin menerbitkan peristiwa utama ke Azure Event Grid, yang dapat digunakan untuk memberi tahu dan mengotomatiskan peristiwa dalam siklus hidup ML. Untuk informasi lebih lanjut, lihat dokumen ini.

Memantau masalah operasional & ML

Pemantauan memungkinkan Anda memahami data apa yang dikirim ke model, dan prediksi yang dikembalikannya.

Informasi ini membantu Anda memahami bagaimana model digunakan. Data input yang dikumpulkan mungkin juga berguna dalam melatih versi model yang akan datang.

Untuk informasi selengkapnya, lihat Cara mengaktifkan pengumpulan data model.

Melatih kembali model Anda pada data baru

Sering kali, Anda ingin memvalidasi model, memperbaruinya, atau bahkan melatihnya kembali dari awal, saat Anda menerima informasi baru. Terkadang, menerima data baru adalah bagian yang diharapkan dari domain. Di lain waktu, seperti yang dibahas dalam Deteksi pergeseran data (pratinjau) pada himpunan data, performa model dapat menurun jika mengalami hal-hal seperti perubahan pada sensor tertentu, perubahan data alami seperti efek musiman, atau pergeseran fitur dalam kaitannya dengan fitur lain.

Tidak ada jawaban universal untuk "Bagaimana saya tahu apakah saya harus melatih kembali?" tetapi alat peristiwa dan pemantauan Azure Pembelajaran Mesin yang sebelumnya dibahas adalah titik awal yang baik untuk otomatisasi. Setelah Anda memutuskan untuk melatih kembali, Anda harus:

  • Melakukan praproses data Anda menggunakan proses otomatis yang dapat diulang
  • Melatih model baru Anda
  • Bandingkan output model baru dengan model lama Anda
  • Menggunakan kriteria yang telah ditentukan untuk memilih apakah akan mengganti model lama Anda

Tema langkah-langkah di atas adalah bahwa pelatihan ulang Anda harus otomatis, bukan ad hoc. Alur Azure Machine Learning adalah jawaban yang baik untuk membuat alur kerja yang berkaitan dengan persiapan, pelatihan, validasi, dan penyebaran data. Baca Melatih kembali model dengan desainer Azure Machine Learning untuk melihat bagaimana alur dan desainer Azure Machine Learning masuk ke dalam skenario pelatihan ulang.

Mengotomatiskan siklus hidup ML

Anda dapat menggunakan GitHub dan Azure Pipeline untuk membuat proses integrasi berkelanjutan yang melatih model. Dalam skenario umum, ketika Ilmuwan Data memeriksa perubahan repo Git untuk proyek, Azure Pipeline akan memulai pelatihan. Hasil eksekusi kemudian dapat diperiksa untuk melihat karakteristik performa model yang dilatih. Anda juga dapat membuat alur yang menyebarkan model sebagai layanan web.

Ekstensi Azure Machine Learning memudahkan untuk bekerja dengan Azure Pipeline. Ini memberikan penyempurnaan berikut ke Azure Pipeline:

  • Memfungsikan pemilihan ruang kerja ketika menentukan koneksi layanan.
  • Memungkinkan alur rilis dipicu oleh model terlatih yang dibuat dalam alur pelatihan.

Untuk informasi selengkapnya tentang menggunakan Azure Pipeline dengan Azure Machine Learning, lihat tautan berikut:

Anda juga dapat menggunakan Azure Data Factory untuk membuat alur penyerapan data yang menyiapkan data untuk digunakan dengan pelatihan. Untuk informasi selengkapnya, lihat Alur penyerapan data.

Langkah berikutnya

Pelajari selengkapnya dengan membaca dan menjelajahi sumber daya berikut: