MLOps: Manajemen model, penyebaran, dan pemantauan dengan Azure Machine Learning
BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)
Python SDK azure-ai-ml v2 (saat ini)
Dalam artikel ini, pelajari tentang praktik operasi pembelajaran mesin (MLOps) di Azure Pembelajaran Mesin untuk tujuan mengelola siklus hidup model Anda. Menerapkan praktik MLOps dapat meningkatkan kualitas dan konsistensi solusi pembelajaran mesin Anda.
Apa itu MLOps?
MLOps didasarkan pada prinsip dan praktik DevOps yang meningkatkan efisiensi alur kerja. Prinsip-prinsip ini termasuk integrasi, pengiriman, dan penyebaran berkelanjutan. MLOps menerapkan prinsip-prinsip ini ke siklus hidup pembelajaran mesin, dengan tujuan:
- Eksperimen dan pengembangan model yang lebih cepat.
- Penyebaran model ke produksi yang lebih cepat.
- Jaminan kualitas dan pelacakan silsilah data yang menyeluruh.
MLOps menyediakan kemampuan berikut untuk proses pembelajaran mesin:
- Buat alur pembelajaran mesin yang dapat direproduksi. Gunakan alur pembelajaran mesin untuk menentukan langkah-langkah yang dapat diulangi dan dapat digunakan kembali untuk penyiapan, pelatihan, dan proses penilaian data.
- Buat lingkungan perangkat lunak yang dapat digunakan kembali. Gunakan lingkungan ini untuk melatih dan menyebarkan model.
- Mendaftar, mengemas, dan menyebarkan model dari mana saja. Lacak metadata terkait yang diperlukan untuk menggunakan model.
- Tangkap data tata kelola untuk siklus hidup pembelajaran mesin end-to-end. Informasi silsilah data yang tercatat dapat mencakup pelaku yang menerbitkan model dan alasan perubahan dilakukan. Ini juga dapat mencakup kapan model disebarkan atau digunakan dalam produksi.
- Beri tahu dan ingatkan terkait peristiwa dalam siklus hidup pembelajaran mesin. Peristiwa termasuk penyelesaian eksperimen, pendaftaran model, penyebaran model, dan deteksi penyimpangan data.
- Pantau aplikasi untuk masalah terkait operasional dan pembelajaran mesin. Bandingkan input model antara pelatihan dan inferensi. Jelajahi metrik khusus model. Sediakan pemantauan dan pemberitahuan tentang infrastruktur pembelajaran mesin Anda.
- Mengotomatiskan siklus hidup pembelajaran mesin end-to-end dengan pembelajaran mesin dan alur Azure. Gunakan alur untuk sering menguji dan memperbarui model. Anda dapat secara berkelanjutan meluncurkan model pembelajaran mesin baru beserta aplikasi dan layanan Anda yang lain.
Untuk informasi selengkapnya tentang MLOps, lihat Operasi pembelajaran mesin.
Membuat alur pembelajaran mesin yang dapat direproduksi
Gunakan alur Azure Pembelajaran Mesin untuk menyatukan semua langkah dalam proses pelatihan model Anda. Alur pembelajaran mesin dapat berisi langkah-langkah yang mencakup persiapan data, ekstraksi fitur, penyetelan hiperparameter, dan evaluasi model.
Jika Anda menggunakan perancang Azure Pembelajaran Mesin untuk membuat alur pembelajaran mesin, Anda dapat mengkloning alur untuk melakukan iterasi atas desainnya tanpa kehilangan versi lama Anda. Untuk mengkloning alur kapan saja di perancang, buka sudut kanan atas untuk memilih ...>Kloning.
Untuk informasi selengkapnya tentang alur Azure Pembelajaran Mesin, lihat Alur pembelajaran mesin.
Membuat lingkungan perangkat lunak yang dapat digunakan kembali
Dengan menggunakan lingkungan Azure Pembelajaran Mesin, Anda dapat melacak dan mereproduksi dependensi perangkat lunak proyek saat berevolusi. Anda dapat menggunakan lingkungan untuk memastikan build dapat direproduksi tanpa konfigurasi perangkat lunak manual.
Lingkungan menjelaskan dependensi pip dan conda untuk proyek Anda. Anda dapat menggunakan lingkungan untuk pelatihan dan penyebaran model. Untuk informasi selengkapnya tentang lingkungan, lihat Apa itu lingkungan Azure Pembelajaran Mesin?.
Mendaftar, mengemas, dan menyebarkan model dari mana saja
Bagian berikut membahas cara mendaftar, mengemas, dan menyebarkan model.
Mendaftarkan dan melacak model pembelajaran mesin
Dengan pendaftaran model, Anda dapat menyimpan dan membuat versi model di cloud Azure, di ruang kerja Anda. Registri model memudahkan untuk mengatur dan melacak model terlatih Anda.
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 mendaftarkan file sebagai model tunggal di ruang kerja Azure Pembelajaran Mesin Anda. Setelah pendaftaran, Anda kemudian dapat mengunduh atau menyebarkan model terdaftar dan menerima semua file komponen.
Anda dapat mengidentifikasi model terdaftar berdasarkan nama dan versi. Setiap kali Anda mendaftarkan model dengan nama yang sama dengan model yang ada, registri akan meningkatkan nomor versi. Anda dapat memberikan tag metadata selama pendaftaran dan menggunakan tag ini saat mencari model. Azure Pembelajaran Mesin mendukung model apa pun yang dapat dimuat dengan menggunakan Python 3.5.2 atau yang lebih tinggi.
Tip
Anda juga dapat mendaftarkan model yang dilatih di luar Azure Machine Learning.
Penting
- Saat Anda menggunakan opsi Filter menurut
Tags
pada halaman Model studio Azure Pembelajaran Mesin, alih-alih menggunakanTagName : TagValue
, gunakanTagName=TagValue
tanpa spasi. - Anda tidak dapat menghapus model terdaftar yang sedang digunakan dalam penyebaran aktif.
Untuk informasi selengkapnya tentang cara menggunakan model di Azure Pembelajaran Mesin, lihat Bekerja dengan model di Azure Pembelajaran Mesin.
Model paket dan debug
Sebelum Anda menyebarkan model ke dalam produksi, model perlu dikemas ke dalam gambar Docker. Dalam kebanyakan kasus, pembuatan gambar secara otomatis terjadi di latar belakang selama penyebaran; namun, Anda dapat menentukan gambar secara manual.
Ini berguna untuk terlebih dahulu menyebarkan ke lingkungan pengembangan lokal Anda sehingga Anda dapat memecahkan masalah dan men-debug sebelum menyebarkan ke cloud. Praktik ini dapat membantu Anda menghindari masalah dengan penyebaran Anda ke Azure Pembelajaran Mesin. Untuk informasi selengkapnya tentang cara mengatasi masalah penyebaran umum, lihat Cara memecahkan masalah titik akhir online.
Mengonversi dan mengoptimalkan model
Anda dapat mengonversi model Anda ke Open Neural Network Exchange (ONNX) untuk mencoba meningkatkan performa. Biasanya, mengonversi ke ONNX dapat menggandakan performa.
Untuk informasi selengkapnya tentang ONNX dengan Azure Machine Learning, lihat artikel Membuat dan mempercepat model pembelajaran mesin.
Terapkan model
Anda dapat menyebarkan model pembelajaran mesin terlatih sebagai titik akhir di cloud atau secara lokal. Penyebaran menggunakan CPU dan GPU untuk inferensi.
Saat menyebarkan model sebagai titik akhir, Anda perlu menyediakan item berikut:
- Model yang digunakan untuk menilai data yang dikirimkan ke layanan atau perangkat.
- Skripentri 1. Skrip ini menerima permintaan, menggunakan model untuk menilai data, dan menampilkan respons.
- Lingkungan2 yang menjelaskan dependensi pip dan conda yang diperlukan oleh model dan skrip entri.
- Aset lain apa pun, seperti teks dan data yang diperlukan oleh model dan skrip entri.
Anda juga memberikan konfigurasi platform penyebaran target. Misalnya, jenis keluarga komputer virtual (VM), memori yang tersedia, dan jumlah inti. Saat gambar dibuat, komponen yang diperlukan oleh Azure Pembelajaran Mesin, seperti aset yang diperlukan untuk menjalankan layanan web, juga ditambahkan.
1,2 Saat Anda menyebarkan model MLflow, Anda tidak perlu menyediakan skrip entri, juga dikenal sebagai skrip penilaian. Anda juga tidak perlu menyediakan lingkungan untuk penyebaran. Untuk informasi selengkapnya tentang menyebarkan model MLflow, lihat Panduan untuk menyebarkan model MLflow.
Penilaian batch
Skor batch didukung melalui titik akhir batch. Untuk informasi selengkapnya tentang penilaian batch, lihat Titik akhir batch.
Penilaian real-time
Anda dapat menggunakan model Anda dengan titik akhir online untuk penilaian real time. Titik akhir online dapat menggunakan target komputasi berikut:
- Titik akhir online terkelola
- Azure Kubernetes Service
- Lingkungan pengembangan lokal
Untuk menyebarkan model ke titik akhir, Anda harus menyediakan item berikut:
- Model atau ansambel model.
- Dependensi yang diperlukan untuk menggunakan model. Misalnya, skrip yang menerima permintaan dan memanggil model dan dependensi conda.
- Konfigurasi penyebaran yang menjelaskan cara dan tempat untuk menyebarkan model.
Untuk informasi selengkapnya tentang penyebaran untuk penilaian real time, lihat Menyebarkan titik akhir online.
Peluncuran terkontrol untuk titik akhir online
Saat menyebarkan ke titik akhir online, Anda dapat menggunakan peluncuran terkontrol untuk mengaktifkan skenario berikut:
- Buat beberapa versi titik akhir untuk penyebaran.
- Lakukan pengujian A/B dengan perutean lalu lintas ke penyebaran yang berbeda dalam titik akhir.
- Beralih antar penyebaran titik akhir dengan memperbarui persentase lalu lintas dalam konfigurasi titik akhir.
Untuk informasi selengkapnya tentang penyebaran menggunakan peluncuran terkontrol, lihat Melakukan peluncuran penyebaran baru yang aman untuk inferensi real time.
Analitik
Microsoft Power BI mendukung penggunaan model pembelajaran mesin untuk analitik data. Untuk informasi selengkapnya, lihat Integrasi Azure Pembelajaran Mesin di Power BI.
Menangkap data tata kelola yang diperlukan untuk MLOps
Azure Pembelajaran Mesin memberi Anda kemampuan untuk melacak jejak audit end-to-end dari semua aset pembelajaran mesin Anda dengan menggunakan metadata. Contohnya:
- Aset data Azure Pembelajaran Mesin membantu Anda melacak, membuat profil, dan data versi.
- Interpretabilitas model memungkinkan Anda menjelaskan model Anda, memenuhi kepatuhan terhadap peraturan, dan memahami bagaimana model sampai pada hasil untuk input tertentu.
- Riwayat Pekerjaan Azure Pembelajaran Mesin menyimpan rekam jepret kode, data, dan komputasi yang digunakan untuk melatih model.
- Registri model Azure Pembelajaran Mesin menangkap semua metadata yang terkait dengan model Anda. Misalnya, eksperimen mana yang melatih model, tempat model disebarkan, dan jika penyebaran model sehat.
- Integrasi dengan Azure memungkinkan Anda bertindak atas peristiwa, seperti pendaftaran model, penyebaran, penyimpangan data, dan peristiwa pelatihan (pekerjaan), dalam siklus hidup pembelajaran mesin.
Tip
Meskipun beberapa informasi tentang model dan aset data diambil secara otomatis, Anda dapat menambahkan lebih banyak informasi dengan menggunakan tag. Saat mencari model terdaftar dan aset data di ruang kerja, Anda dapat menggunakan tag sebagai filter.
Beri tahu, otomatiskan, dan ingatkan terkait peristiwa dalam siklus hidup pembelajaran mesin
Azure Pembelajaran Mesin menerbitkan peristiwa utama ke Azure Event Grid, yang dapat digunakan untuk memberi tahu dan mengotomatiskan peristiwa dalam siklus hidup pembelajaran mesin. Untuk informasi selengkapnya tentang cara menyiapkan proses berbasis peristiwa berdasarkan peristiwa Azure Pembelajaran Mesin, lihat CI/CD kustom dan alur kerja berbasis peristiwa.
Mengotomatiskan siklus hidup pembelajaran mesin
Anda dapat menggunakan GitHub dan Azure Pipelines untuk membuat proses integrasi berkelanjutan yang melatih model. Dalam skenario umum, ketika ilmuwan data memeriksa perubahan pada repositori Git proyek, Azure Pipelines memulai pekerjaan pelatihan. Hasil pekerjaan 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 alur tersebut bekerja dengan Azure Pipeline. Ekstensi ini menyediakan penyempurnaan berikut untuk Azure Pipelines:
- Memungkinkan pemilihan ruang kerja ketika Anda menentukan koneksi layanan.
- Memungkinkan alur rilis dipicu oleh model terlatih yang dibuat dalam alur pelatihan.
Untuk informasi selengkapnya tentang menggunakan Azure Pipelines dengan Pembelajaran Mesin, lihat Menggunakan Azure Pipelines dengan Azure Pembelajaran Mesin.