Mengumpulkan data dari model dalam produksi
BERLAKU UNTUK: Python SDK azureml v1
Artikel ini menunjukkan cara mengumpulkan data dari model Azure Machine Learning yang disebarkan pada kluster Azure Kubernetes Service (AKS). Data yang dikumpulkan kemudian disimpan di penyimpanan Azure Blob.
Setelah pengumpulan diaktifkan, data yang Anda kumpulkan membantu Anda:
Memantau penyimpangan data pada data produksi yang Anda kumpulkan.
Menganalisis data yang dikumpulkan menggunakan Power BI atau Azure Databricks
Membuat keputusan yang lebih baik tentang kapan harus melatih kembali atau mengoptimalkan model Anda.
Melatih kembali model Anda dengan data yang dikumpulkan.
Batasan
- Fitur pengumpulan data model hanya dapat bekerja dengan gambar Ubuntu 18.04.
Penting
Pada 10/03/2023, gambar Ubuntu 18.04 sekarang tidak digunakan lagi. Dukungan untuk gambar Ubuntu 18.04 akan dihilangkan mulai Januari 2023 ketika mencapai EOL pada 30 April 2023.
Fitur MDC tidak kompatibel dengan gambar lain selain Ubuntu 18.04, yang tidak tersedia setelah gambar Ubuntu 18.04 tidak digunakan lagi.
Informasi mMore yang dapat Anda lihat:
Catatan
Fitur pengumpulan data saat ini dalam pratinjau, fitur pratinjau apa pun tidak disarankan untuk beban kerja produksi.
Data yang dikumpulkan dan ke mana perginya
Data berikut dapat dikumpulkan:
Data input model dari layanan web yang disebarkan dalam kluster AKS. Audio suara, gambar, dan video tidak dikumpulkan.
Prediksi model menggunakan data input produksi.
Catatan
Pra-agregasi dan pra-kalkulasi pada data ini saat ini bukan bagian dari layanan pengumpulan.
Output disimpan dalam penyimpanan Blob. Karena data ditambahkan ke penyimpanan Blob, Anda dapat memilih alat favorit Anda untuk mengeksekusi analisis.
Jalur ke data output dalam blob mengikuti sintaks ini:
/modeldata/<subscriptionid>/<resourcegroup>/<workspace>/<webservice>/<model>/<version>/<designation>/<year>/<month>/<day>/data.csv
# example: /modeldata/1a2b3c4d-5e6f-7g8h-9i10-j11k12l13m14/myresourcegrp/myWorkspace/aks-w-collv9/best_model/10/inputs/2018/12/31/data.csv
Catatan
Dalam versi Azure Machine Learning SDK untuk Python yang lebih lama dari versi 0.1.0a16, argumen designation
diberi nama identifier
. Jika Anda mengembangkan kode dengan versi yang lebih lama, Anda harus memperbaruinya.
Prasyarat
Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
Ruang kerja Azure Machine Learning, direktori lokal yang berisi skrip Anda, dan Azure Machine Learning SDK untuk Python harus dipasang. Untuk mempelajari cara memasangnya, lihat Cara mengonfigurasi lingkungan pengembangan.
Anda memerlukan model pembelajaran mesin terlatih untuk disebarkan ke AKS. Jika Anda tidak memiliki model, lihat tutorial Melatih model klasifikasi gambar.
Anda memerlukan kluster AKS. Untuk informasi tentang cara membuatnya dan menyebarkannya, lihat Menyebarkan model pembelajaran mesin ke Azure.
Siapkan lingkungan Anda dan pasang Azure Machine Learning Monitoring SDK.
Gunakan gambar docker berdasarkan Ubuntu 18.04, yang dikirim dengan
libssl 1.0.0
, dependensi penting modeldatacollector. Anda dapat merujuk ke gambar bawaan.
Mengaktifkan pengumpulan data
Anda dapat mengaktifkan pengumpulan data terlepas dari model yang Anda sebarkan melalui Azure Machine Learning atau alat lainnya.
Untuk mengaktifkan pengumpulan data, Anda perlu:
Membuka file penilaian.
Menambahkan kode berikut ke bagian atas file:
from azureml.monitoring import ModelDataCollector
Mendeklarasikan variabel pengumpulan data Anda dalam fungsi
init
:global inputs_dc, prediction_dc inputs_dc = ModelDataCollector("best_model", designation="inputs", feature_names=["feat1", "feat2", "feat3", "feat4", "feat5", "feat6"]) prediction_dc = ModelDataCollector("best_model", designation="predictions", feature_names=["prediction1", "prediction2"])
CorrelationId adalah parameter opsional. Anda tidak perlu menggunakannya jika model Anda tidak memerlukannya. Penggunaan CorrelationId membantu Anda lebih mudah memetakan dengan data lain, seperti LoanNumber atau CustomerId.
Parameter Identifier nanti digunakan untuk membangun struktur folder di blob Anda. Anda dapat menggunakannya untuk membedakan data mentah dari data yang diproses.
Tambahkan baris kode berikut ke fungsi
run(input_df)
:data = np.array(data) result = model.predict(data) inputs_dc.collect(data) #this call is saving our input data into Azure Blob prediction_dc.collect(result) #this call is saving our prediction data into Azure Blob
Pengumpulan data tidak otomatis diatur ke true saat Anda menyebarkan layanan di AKS. Perbarui file konfigurasi Anda, seperti dalam contoh berikut:
aks_config = AksWebservice.deploy_configuration(collect_model_data=True)
Anda juga dapat mengaktifkan Application Insights untuk pemantauan layanan dengan mengubah konfigurasi ini:
aks_config = AksWebservice.deploy_configuration(collect_model_data=True, enable_app_insights=True)
Untuk membuat gambar baru dan menyebarkan model pembelajaran mesin, lihat Menyebarkan model pembelajaran mesin ke Azure.
Tambahkan paket pip 'Azure-Monitoring' ke dependensi konda lingkungan layanan web:
env = Environment('webserviceenv')
env.python.conda_dependencies = CondaDependencies.create(conda_packages=['numpy'],pip_packages=['azureml-defaults','azureml-monitoring','inference-schema[numpy-support]'])
Menonaktifkan pengumpulan data
Anda dapat berhenti mengumpulkan data kapan saja. Gunakan kode Python untuk menonaktifkan pengumpulan data.
## replace <service_name> with the name of the web service
<service_name>.update(collect_model_data=False)
Memvalidasi dan menganalisis data Anda
Anda dapat memilih alat preferensi Anda untuk menganalisis data yang dikumpulkan di penyimpanan Blob Anda.
Mengakses data blob dengan cepat
Masuk ke portal Microsoft Azure.
Buka ruang kerja Anda.
Pilih Penyimpanan.
Ikuti jalur ke data output blob dengan sintaks ini:
/modeldata/<subscriptionid>/<resourcegroup>/<workspace>/<webservice>/<model>/<version>/<designation>/<year>/<month>/<day>/data.csv # example: /modeldata/1a2b3c4d-5e6f-7g8h-9i10-j11k12l13m14/myresourcegrp/myWorkspace/aks-w-collv9/best_model/10/inputs/2018/12/31/data.csv
Menganalisis data model menggunakan Power BI
Unduh dan buka Power BI Desktop.
Pilih Dapatkan Data dan pilih Azure Blob Storage.
Tambahkan nama akun penyimpanan Anda dan masukkan kunci penyimpanan Anda. Anda bisa menemukan informasi ini dengan memilih Pengaturan>Kunci akses di dalam blob Anda.
Pilih kontainer data model dan pilih Edit.
Di editor kueri, klik di bawah kolom Nama dan tambahkan akun penyimpanan Anda.
Masukkan jalur model Anda ke dalam filter. Jika Anda hanya ingin menganalisis file dari tahun atau bulan tertentu, cukup perluas jalur filter. Misalnya, untuk hanya menganalisis data bulan Maret, gunakan jalur filter ini:
/modeldata/<subscriptionid>/<resourcegroupname>/<workspacename>/<webservicename>/<modelname>/<modelversion>/<designation>/<year>/3
Filter data yang relevan bagi Anda berdasarkan nilai Nama. Jika Anda menyimpan prediksi dan input, Anda perlu membuat kueri untuk masing-masing.
Pilih panah ganda ke bawah di samping judul kolom Konten untuk menggabungkan file.
Pilih OK. Data dimuat sebelumnya.
Pilih Tutup dan Terapkan.
Jika Anda menambahkan input dan prediksi, tabel Anda secara otomatis diurutkan berdasarkan nilai RequestId.
Mulai membangun laporan kustom pada data model Anda.
Menganalisis data model menggunakan Azure Databricks
Membuat ruang kerja Azure Databricks.
Buka ruang kerja Databricks Anda.
Di ruang kerja Databricks Anda, pilih Unggah Data.
Pilih Buat Tabel Baru dan pilih Sumber Data Lain>Azure Blob Storage>Buat Tabel di Buku Catatan.
Perbarui lokasi data Anda. Berikut adalah contoh:
file_location = "wasbs://mycontainer@storageaccountname.blob.core.windows.net/*/*/data.csv" file_type = "csv"
Ikuti langkah-langkah pada templat untuk menampilkan dan menganalisis data Anda.
Langkah berikutnya
Deteksi penyimpangan data pada data yang telah Anda kumpulkan.