Memantau performa model yang disebarkan ke produksi
BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)
Pelajari cara menggunakan pemantauan model Azure Pembelajaran Mesin untuk terus melacak performa model pembelajaran mesin dalam produksi. Pemantauan model memberi Anda tampilan luas tentang sinyal pemantauan dan memberi tahu Anda tentang potensi masalah. Saat Memantau sinyal dan metrik performa model dalam produksi, Anda dapat secara kritis mengevaluasi risiko melekat yang terkait dengannya dan mengidentifikasi titik buta yang dapat berdampak buruk pada bisnis Anda.
Dalam artikel ini Anda, pelajari cara melakukan tugas berikut:
- Menyiapkan out-of-box dan pemantauan tingkat lanjut untuk model yang disebarkan ke titik akhir online Azure Pembelajaran Mesin
- Memantau metrik performa untuk model dalam produksi
- Memantau model yang disebarkan di luar Azure Pembelajaran Mesin atau disebarkan ke titik akhir batch Azure Pembelajaran Mesin
- Menyiapkan pemantauan model dengan sinyal dan metrik kustom
- Menginterpretasikan hasil pemantauan
- Mengintegrasikan pemantauan model Azure Pembelajaran Mesin dengan Azure Event Grid
Prasyarat
Sebelum mengikuti langkah-langkah dalam artikel ini, pastikan Anda memiliki prasyarat berikut:
Azure CLI dan ekstensi
ml
ke Azure CLI. Untuk informasi selengkapnya, lihat Menginstal, menyiapkan, dan menggunakan CLI (v2).Penting
Contoh CLI dalam artikel ini mengasumsikan bahwa Anda menggunakan shell Bash (atau kompatibel). Misalnya, dari sistem Linux atau Subsistem Windows untuk Linux.
Ruang kerja Azure Machine Learning. Jika Anda tidak memilikinya, gunakan langkah-langkah di Pasang, siapkan, dan gunakan CLI (v2) untuk membuatnya.
Kontrol akses berbasis peran Azure (Azure RBAC) digunakan untuk memberikan akses ke operasi di Azure Machine Learning. Untuk melakukan langkah-langkah dalam artikel ini, akun pengguna Anda harus ditetapkan sebagaipemilik atau kontributor untuk ruang kerja Azure Machine Learning, atau peran khusus yang memungkinkan
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*
. Untuk informasi selengkapnya, lihat Mengelola akses ke ruang kerja Azure Machine Learning.Untuk memantau model yang disebarkan ke titik akhir online Azure Pembelajaran Mesin (titik akhir online terkelola atau titik akhir online Kubernetes), pastikan untuk:
Memiliki model yang sudah disebarkan ke titik akhir online Azure Pembelajaran Mesin. Titik akhir online terkelola dan titik akhir online Kubernetes didukung. Jika Anda tidak memiliki model yang disebarkan ke titik akhir online Azure Pembelajaran Mesin, lihat Menyebarkan dan menilai model pembelajaran mesin dengan menggunakan titik akhir online.
Aktifkan pengumpulan data untuk penyebaran model Anda. Anda dapat mengaktifkan pengumpulan data selama langkah penyebaran untuk titik akhir online Azure Pembelajaran Mesin. Untuk informasi selengkapnya, lihat Mengumpulkan data produksi dari model yang disebarkan ke titik akhir real time.
Untuk memantau model yang disebarkan ke titik akhir batch Azure Pembelajaran Mesin atau disebarkan di luar Azure Pembelajaran Mesin, pastikan untuk:
- Memiliki sarana untuk mengumpulkan data produksi dan mendaftarkannya sebagai aset data Azure Pembelajaran Mesin.
- Perbarui aset data terdaftar terus menerus untuk pemantauan model.
- (Disarankan) Daftarkan model di ruang kerja Azure Pembelajaran Mesin, untuk pelacakan silsilah data.
Penting
Pekerjaan pemantauan model dijadwalkan untuk berjalan pada kumpulan komputasi Spark tanpa server dengan dukungan untuk jenis instans VM berikut: Standard_E4s_v3
, , Standard_E8s_v3
Standard_E16s_v3
, Standard_E32s_v3
, , dan Standard_E64s_v3
. Anda dapat memilih jenis instans VM dengan create_monitor.compute.instance_type
properti dalam konfigurasi YAML Anda atau dari menu dropdown di studio Azure Pembelajaran Mesin.
Menyiapkan pemantauan model di luar kotak
Misalkan Anda menyebarkan model Anda ke produksi di titik akhir online Azure Pembelajaran Mesin dan mengaktifkan pengumpulan data pada waktu penyebaran. Dalam skenario ini, Azure Pembelajaran Mesin mengumpulkan data inferensi produksi, dan secara otomatis menyimpannya di Microsoft Azure Blob Storage. Anda kemudian dapat menggunakan pemantauan model Azure Pembelajaran Mesin untuk terus memantau data inferensi produksi ini.
Anda dapat menggunakan Azure CLI, Python SDK, atau studio untuk penyiapan pemantauan model di luar kotak. Konfigurasi pemantauan model di luar kotak menyediakan kemampuan pemantauan berikut:
- Azure Pembelajaran Mesin secara otomatis mendeteksi himpunan data inferensi produksi yang terkait dengan penyebaran online Azure Pembelajaran Mesin dan menggunakan himpunan data untuk pemantauan model.
- Himpunan data referensi perbandingan ditetapkan sebagai himpunan data inferensi produksi yang baru-baru ini.
- Penyiapan pemantauan secara otomatis mencakup dan melacak sinyal pemantauan bawaan: penyimpangan data, penyimpangan prediksi, dan kualitas data. Untuk setiap sinyal pemantauan, Azure Pembelajaran Mesin menggunakan:
- himpunan data inferensi produksi baru-baru ini yang lalu sebagai himpunan data referensi perbandingan.
- default cerdas untuk metrik dan ambang batas.
- Pekerjaan pemantauan dijadwalkan untuk berjalan setiap hari pada pukul 03.15 (untuk contoh ini) untuk memperoleh sinyal pemantauan dan mengevaluasi setiap hasil metrik terhadap ambang yang sesuai. Secara default, ketika ambang batas terlampaui, Azure Pembelajaran Mesin mengirim email pemberitahuan kepada pengguna yang menyiapkan monitor.
Pemantauan model Azure Pembelajaran Mesin digunakan az ml schedule
untuk menjadwalkan pekerjaan pemantauan. Anda dapat membuat monitor model out-of-box dengan perintah CLI dan definisi YAML berikut:
az ml schedule create -f ./out-of-box-monitoring.yaml
YAML berikut berisi definisi untuk pemantauan model di luar kotak.
# out-of-box-monitoring.yaml
$schema: http://azureml/sdk-2-0/Schedule.json
name: credit_default_model_monitoring
display_name: Credit default model monitoring
description: Credit default model monitoring setup with minimal configurations
trigger:
# perform model monitoring activity daily at 3:15am
type: recurrence
frequency: day #can be minute, hour, day, week, month
interval: 1 # #every day
schedule:
hours: 3 # at 3am
minutes: 15 # at 15 mins after 3am
create_monitor:
compute: # specify a spark compute for monitoring job
instance_type: standard_e4s_v3
runtime_version: "3.3"
monitoring_target:
ml_task: classification # model task type: [classification, regression, question_answering]
endpoint_deployment_id: azureml:credit-default:main # azureml endpoint deployment id
alert_notification: # emails to get alerts
emails:
- abc@example.com
- def@example.com
Menyiapkan pemantauan model tingkat lanjut
Azure Pembelajaran Mesin menyediakan banyak kemampuan untuk pemantauan model berkelanjutan. Lihat Kemampuan pemantauan model untuk daftar komprehensif kemampuan ini. Dalam banyak kasus, Anda perlu menyiapkan pemantauan model dengan kemampuan pemantauan tingkat lanjut. Di bagian berikut, Anda menyiapkan pemantauan model dengan kemampuan berikut:
- Penggunaan beberapa sinyal pemantauan untuk tampilan yang luas.
- Penggunaan data pelatihan model historis atau data validasi sebagai himpunan data referensi perbandingan.
- Pemantauan fitur terpenting N teratas dan fitur individual.
Mengonfigurasi kepentingan fitur
Kepentingan fitur mewakili kepentingan relatif dari setiap fitur input ke output model. Misalnya, temperature
mungkin lebih penting untuk prediksi model dibandingkan elevation
dengan . Mengaktifkan kepentingan fitur dapat memberi Anda visibilitas ke fitur mana yang tidak ingin Anda drifting atau mengalami masalah kualitas data dalam produksi.
Untuk mengaktifkan kepentingan fitur dengan salah satu sinyal Anda (seperti penyimpangan data atau kualitas data), Anda perlu menyediakan:
- Himpunan data pelatihan Anda sebagai himpunan
reference_data
data. - Properti
reference_data.data_column_names.target_column
, yang merupakan nama kolom output/prediksi model Anda.
Setelah mengaktifkan kepentingan fitur, Anda akan melihat kepentingan fitur untuk setiap fitur yang Anda pantau di antarmuka pengguna studio pemantauan model Azure Pembelajaran Mesin.
Anda dapat menggunakan Azure CLI, Python SDK, atau studio untuk penyiapan pemantauan model tingkat lanjut.
Buat penyiapan pemantauan model tingkat lanjut dengan perintah CLI dan definisi YAML berikut:
az ml schedule create -f ./advanced-model-monitoring.yaml
YAML berikut berisi definisi untuk pemantauan model tingkat lanjut.
# advanced-model-monitoring.yaml
$schema: http://azureml/sdk-2-0/Schedule.json
name: fraud_detection_model_monitoring
display_name: Fraud detection model monitoring
description: Fraud detection model monitoring with advanced configurations
trigger:
# perform model monitoring activity daily at 3:15am
type: recurrence
frequency: day #can be minute, hour, day, week, month
interval: 1 # #every day
schedule:
hours: 3 # at 3am
minutes: 15 # at 15 mins after 3am
create_monitor:
compute:
instance_type: standard_e4s_v3
runtime_version: "3.3"
monitoring_target:
ml_task: classification
endpoint_deployment_id: azureml:credit-default:main
monitoring_signals:
advanced_data_drift: # monitoring signal name, any user defined name works
type: data_drift
# reference_dataset is optional. By default referece_dataset is the production inference data associated with Azure Machine Learning online endpoint
reference_data:
input_data:
path: azureml:credit-reference:1 # use training data as comparison reference dataset
type: mltable
data_context: training
data_column_names:
target_column: DEFAULT_NEXT_MONTH
features:
top_n_feature_importance: 10 # monitor drift for top 10 features
metric_thresholds:
numerical:
jensen_shannon_distance: 0.01
categorical:
pearsons_chi_squared_test: 0.02
advanced_data_quality:
type: data_quality
# reference_dataset is optional. By default reference_dataset is the production inference data associated with Azure Machine Learning online endpoint
reference_data:
input_data:
path: azureml:credit-reference:1
type: mltable
data_context: training
features: # monitor data quality for 3 individual features only
- SEX
- EDUCATION
metric_thresholds:
numerical:
null_value_rate: 0.05
categorical:
out_of_bounds_rate: 0.03
feature_attribution_drift_signal:
type: feature_attribution_drift
# production_data: is not required input here
# Please ensure Azure Machine Learning online endpoint is enabled to collected both model_inputs and model_outputs data
# Azure Machine Learning model monitoring will automatically join both model_inputs and model_outputs data and used it for computation
reference_data:
input_data:
path: azureml:credit-reference:1
type: mltable
data_context: training
data_column_names:
target_column: DEFAULT_NEXT_MONTH
metric_thresholds:
normalized_discounted_cumulative_gain: 0.9
alert_notification:
emails:
- abc@example.com
- def@example.com
Menyiapkan pemantauan performa model
Pemantauan model Azure Pembelajaran Mesin memungkinkan Anda melacak performa model Anda dalam produksi dengan menghitung metrik performanya. Metrik performa model berikut saat ini didukung:
Untuk model klasifikasi:
- Presisi
- Akurasi
- Tarik Kembali
Untuk model regresi:
- Mean Absolute Error (MAE)
- Mean Squared Error (MSE)
- Root Mean Squared Error (RMSE)
Prasyarat lainnya untuk pemantauan performa model
Anda harus memenuhi persyaratan berikut bagi Anda untuk mengonfigurasi sinyal performa model Anda:
Memiliki data output untuk model produksi (prediksi model) dengan ID unik untuk setiap baris. Jika Anda mengumpulkan data produksi dengan pengumpul data Azure Pembelajaran Mesin,
correlation_id
disediakan untuk setiap permintaan inferensi untuk Anda. Dengan pengumpul data, Anda juga memiliki opsi untuk mencatat ID unik Anda sendiri dari aplikasi Anda.Catatan
Untuk pemantauan performa model Azure Pembelajaran Mesin, kami sarankan Anda mencatat ID unik Anda di kolomnya sendiri, menggunakan pengumpul data Azure Pembelajaran Mesin.
Memiliki data kebenaran dasar (aktual) dengan ID unik untuk setiap baris. ID unik untuk baris tertentu harus cocok dengan ID unik untuk output model untuk permintaan inferensi tertentu. ID unik ini digunakan untuk menggabungkan himpunan data kebenaran dasar Anda dengan output model.
Tanpa memiliki data kebenaran dasar, Anda tidak dapat melakukan pemantauan performa model. Karena data kebenaran dasar ditemui di tingkat aplikasi, Anda bertanggung jawab untuk mengumpulkannya saat tersedia. Anda juga harus mempertahankan aset data di Azure Pembelajaran Mesin yang berisi data kebenaran dasar ini.
(Opsional) Memiliki himpunan data tabular yang telah digabungkan sebelumnya dengan output model dan data kebenaran dasar yang sudah digabungkan.
Memantau persyaratan performa model saat menggunakan pengumpul data
Jika Anda menggunakan pengumpul data Azure Pembelajaran Mesin untuk mengumpulkan data inferensi produksi tanpa memberikan ID unik Anda sendiri untuk setiap baris sebagai kolom terpisah, correlationid
akan dibuat secara otomatis untuk Anda dan disertakan dalam objek JSON yang dicatat. Namun, pengumpul data akan mengumpulkan baris yang dikirim dalam interval waktu singkat satu sama lain. Baris batch akan berada dalam objek JSON yang sama dan dengan demikian akan memiliki correlationid
.
Untuk membedakan antara baris dalam objek JSON yang sama, pemantauan performa model Azure Pembelajaran Mesin menggunakan pengindeksan untuk menentukan urutan baris dalam objek JSON. Misalnya, jika tiga baris di-batch bersama-sama, dan correlationid
adalah test
, baris satu akan memiliki ID test_0
, baris dua akan memiliki ID test_1
, dan baris tiga akan memiliki ID .test_2
Untuk memastikan bahwa himpunan data kebenaran dasar Anda berisi ID unik yang cocok dengan output model inferensi produksi yang dikumpulkan, pastikan Anda mengindeks masing-masing correlationid
dengan tepat. Jika objek JSON Anda yang dicatat hanya memiliki satu baris, maka correlationid
akan menjadi correlationid_0
.
Untuk menghindari penggunaan pengindeksan ini, kami sarankan Anda mencatat ID unik Anda di kolomnya sendiri dalam DataFrame pandas yang Anda catat dengan pengumpul data Azure Pembelajaran Mesin. Kemudian, dalam konfigurasi pemantauan model, Anda menentukan nama kolom ini untuk menggabungkan data output model Anda dengan data kebenaran dasar Anda. Selama ID untuk setiap baris di kedua himpunan data sama, pemantauan model Azure Pembelajaran Mesin dapat melakukan pemantauan performa model.
Contoh alur kerja untuk memantau performa model
Untuk memahami konsep yang terkait dengan pemantauan performa model, pertimbangkan contoh alur kerja ini. Misalkan Anda menyebarkan model untuk memprediksi apakah transaksi kartu kredit penipuan atau tidak, Anda dapat mengikuti langkah-langkah ini untuk memantau performa model:
- Konfigurasikan penyebaran Anda untuk menggunakan pengumpul data untuk mengumpulkan data inferensi produksi model (data input dan output). Katakanlah data output disimpan dalam kolom
is_fraud
. - Untuk setiap baris data inferensi yang dikumpulkan, catat ID unik. ID unik dapat berasal dari aplikasi Anda, atau Anda dapat menggunakan
correlationid
yang dibuat secara unik oleh Azure Pembelajaran Mesin untuk setiap objek JSON yang dicatat. - Kemudian, ketika data kebenaran dasar (atau aktual)
is_fraud
tersedia, data tersebut juga akan dicatat dan dipetakan ke ID unik yang sama yang dicatat dengan output model. - Data kebenaran
is_fraud
dasar ini juga dikumpulkan, dikelola, dan didaftarkan ke Azure Pembelajaran Mesin sebagai aset data. - Buat sinyal pemantauan performa model yang menggabungkan inferensi produksi model dan aset data kebenaran dasar, menggunakan kolom ID unik.
- Terakhir, komputasi metrik performa model.
Setelah memenuhi prasyarat untuk pemantauan performa model, Anda dapat menyiapkan pemantauan model dengan perintah CLI dan definisi YAML berikut:
az ml schedule create -f ./model-performance-monitoring.yaml
YAML berikut berisi definisi untuk pemantauan model dengan data inferensi produksi yang telah Anda kumpulkan.
$schema: http://azureml/sdk-2-0/Schedule.json
name: model_performance_monitoring
display_name: Credit card fraud model performance
description: Credit card fraud model performance
trigger:
type: recurrence
frequency: day
interval: 7
schedule:
hours: 10
minutes: 15
create_monitor:
compute:
instance_type: standard_e8s_v3
runtime_version: "3.3"
monitoring_target:
ml_task: classification
endpoint_deployment_id: azureml:loan-approval-endpoint:loan-approval-deployment
monitoring_signals:
fraud_detection_model_performance:
type: model_performance
production_data:
data_column_names:
prediction: is_fraud
correlation_id: correlation_id
reference_data:
input_data:
path: azureml:my_model_ground_truth_data:1
type: mltable
data_column_names:
actual: is_fraud
correlation_id: correlation_id
data_context: actuals
alert_enabled: true
metric_thresholds:
tabular_classification:
accuracy: 0.95
precision: 0.8
alert_notification:
emails:
- abc@example.com
Menyiapkan pemantauan model dengan membawa data produksi Anda ke Azure Pembelajaran Mesin
Anda juga dapat menyiapkan pemantauan model untuk model yang disebarkan ke titik akhir batch Azure Pembelajaran Mesin atau disebarkan di luar Azure Pembelajaran Mesin. Jika Anda tidak memiliki penyebaran, tetapi Anda memiliki data produksi, Anda dapat menggunakan data untuk melakukan pemantauan model berkelanjutan. Untuk memantau model ini, Anda harus dapat:
- Kumpulkan data inferensi produksi dari model yang disebarkan dalam produksi.
- Daftarkan data inferensi produksi sebagai aset data Azure Pembelajaran Mesin, dan pastikan pembaruan data berkelanjutan.
- Sediakan komponen pra-pemrosesan data kustom dan daftarkan sebagai komponen Azure Pembelajaran Mesin.
Anda harus menyediakan komponen pra-pemrosesan data kustom jika data Anda tidak dikumpulkan dengan pengumpul data. Tanpa komponen praproses data kustom ini, sistem pemantauan model Azure Pembelajaran Mesin tidak akan tahu cara memproses data Anda menjadi bentuk tabular dengan dukungan untuk jendela waktu.
Komponen pra-pemrosesan kustom Anda harus memiliki tanda tangan input dan output ini:
Input/Output | Nama tanda tangan | Tipe | Deskripsi | Contoh nilai |
---|---|---|---|---|
input | data_window_start |
literal, string | waktu mulai jendela data dalam format ISO8601. | 2023-05-01T04:31:57.012Z |
input | data_window_end |
literal, string | waktu akhir jendela data dalam format ISO8601. | 2023-05-01T04:31:57.012Z |
input | input_data |
uri_folder | Data inferensi produksi yang dikumpulkan, yang terdaftar sebagai aset data Azure Pembelajaran Mesin. | azureml:myproduction_inference_data:1 |
output | preprocessed_data |
mltable | Himpunan data tabular, yang cocok dengan subset skema data referensi. |
Untuk contoh komponen pra-pemrosesan data kustom, lihat custom_preprocessing di repositori GitHub azuremml-examples.
Setelah memenuhi persyaratan sebelumnya, Anda dapat menyiapkan pemantauan model dengan perintah CLI dan definisi YAML berikut:
az ml schedule create -f ./model-monitoring-with-collected-data.yaml
YAML berikut berisi definisi untuk pemantauan model dengan data inferensi produksi yang telah Anda kumpulkan.
# model-monitoring-with-collected-data.yaml
$schema: http://azureml/sdk-2-0/Schedule.json
name: fraud_detection_model_monitoring
display_name: Fraud detection model monitoring
description: Fraud detection model monitoring with your own production data
trigger:
# perform model monitoring activity daily at 3:15am
type: recurrence
frequency: day #can be minute, hour, day, week, month
interval: 1 # #every day
schedule:
hours: 3 # at 3am
minutes: 15 # at 15 mins after 3am
create_monitor:
compute:
instance_type: standard_e4s_v3
runtime_version: "3.3"
monitoring_target:
ml_task: classification
endpoint_deployment_id: azureml:fraud-detection-endpoint:fraud-detection-deployment
monitoring_signals:
advanced_data_drift: # monitoring signal name, any user defined name works
type: data_drift
# define production dataset with your collected data
production_data:
input_data:
path: azureml:my_production_inference_data_model_inputs:1 # your collected data is registered as Azure Machine Learning asset
type: uri_folder
data_context: model_inputs
pre_processing_component: azureml:production_data_preprocessing:1
reference_data:
input_data:
path: azureml:my_model_training_data:1 # use training data as comparison baseline
type: mltable
data_context: training
data_column_names:
target_column: is_fraud
features:
top_n_feature_importance: 20 # monitor drift for top 20 features
metric_thresholds:
numberical:
jensen_shannon_distance: 0.01
categorical:
pearsons_chi_squared_test: 0.02
advanced_prediction_drift: # monitoring signal name, any user defined name works
type: prediction_drift
# define production dataset with your collected data
production_data:
input_data:
path: azureml:my_production_inference_data_model_outputs:1 # your collected data is registered as Azure Machine Learning asset
type: uri_folder
data_context: model_outputs
pre_processing_component: azureml:production_data_preprocessing:1
reference_data:
input_data:
path: azureml:my_model_validation_data:1 # use training data as comparison reference dataset
type: mltable
data_context: validation
metric_thresholds:
categorical:
pearsons_chi_squared_test: 0.02
alert_notification:
emails:
- abc@example.com
- def@example.com
Menyiapkan pemantauan model dengan sinyal dan metrik kustom
Dengan pemantauan model Azure Pembelajaran Mesin, Anda dapat menentukan sinyal kustom dan menerapkan metrik pilihan Anda untuk memantau model Anda. Anda dapat mendaftarkan sinyal kustom ini sebagai komponen Azure Pembelajaran Mesin. Saat pekerjaan pemantauan model Azure Pembelajaran Mesin Anda berjalan pada jadwal yang ditentukan, itu menghitung metrik yang telah Anda tentukan dalam sinyal kustom Anda, seperti halnya untuk sinyal bawaan (penyimpangan data, penyimpangan prediksi, dan kualitas data).
Untuk menyiapkan sinyal kustom yang akan digunakan untuk pemantauan model, Anda harus terlebih dahulu menentukan sinyal kustom dan mendaftarkannya sebagai komponen Azure Pembelajaran Mesin. Komponen Azure Pembelajaran Mesin harus memiliki tanda tangan input dan output ini:
Tanda tangan input komponen
DataFrame input komponen harus berisi item berikut:
mltable
Dengan data yang diproses dari komponen praproses- Sejumlah literal, masing-masing mewakili metrik yang diimplementasikan sebagai bagian dari komponen sinyal kustom. Misalnya, jika Anda telah menerapkan metrik,
std_deviation
, maka Anda akan memerlukan input untukstd_deviation_threshold
. Umumnya, harus ada satu input per metrik dengan nama<metric_name>_threshold
.
Nama tanda tangan | Tipe | Deskripsi | Contoh nilai |
---|---|---|---|
production_data | mltable | Himpunan data tabular yang cocok dengan subset skema data referensi. | |
std_deviation_threshold | literal, string | Ambang masing-masing untuk metrik yang diimplementasikan. | 2 |
Tanda tangan output komponen
Port output komponen harus memiliki tanda tangan berikut.
Nama tanda tangan | Tipe | Deskripsi |
---|---|---|
signal_metrics | mltable | Mltable yang berisi metrik yang dihitung. Skema ditentukan di bagian berikutnya signal_metrics skema. |
skema signal_metrics
DataFrame output komponen harus berisi empat kolom: group
, , metric_name
metric_value
, dan threshold_value
.
Nama tanda tangan | Tipe | Deskripsi | Contoh nilai |
---|---|---|---|
grup | literal, string | Pengelompokan logis tingkat atas yang akan diterapkan ke metrik kustom ini. | TRANSACTIONAMOUNT |
metric_name | literal, string | Nama metrik kustom. | std_deviation |
metric_value | Numerik | Nilai metrik kustom. | 44,896.082 |
threshold_value | Numerik | Ambang batas untuk metrik kustom. | 2 |
Tabel berikut ini memperlihatkan contoh output dari komponen sinyal kustom yang menghitung std_deviation
metrik:
grup | metric_value | metric_name | threshold_value |
---|---|---|---|
TRANSACTIONAMOUNT | 44,896.082 | std_deviation | 2 |
LOCALHOUR | 3.983 | std_deviation | 2 |
TRANSACTIONAMOUNTUSD | 54,004.902 | std_deviation | 2 |
DIGITALITEMCOUNT | 7.238 | std_deviation | 2 |
PHYSICALITEMCOUNT | 5.509 | std_deviation | 2 |
Untuk melihat contoh definisi komponen sinyal kustom dan kode komputasi metrik, lihat custom_signal di repositori azureml-examples.
Setelah memenuhi persyaratan untuk menggunakan sinyal dan metrik kustom, Anda dapat menyiapkan pemantauan model dengan perintah CLI dan definisi YAML berikut:
az ml schedule create -f ./custom-monitoring.yaml
YAML berikut berisi definisi untuk pemantauan model dengan sinyal kustom. Beberapa hal yang perlu diperhatikan tentang kode:
- Ini mengasumsikan bahwa Anda telah membuat dan mendaftarkan komponen Anda dengan definisi sinyal kustom di Azure Pembelajaran Mesin.
- Komponen
component_id
sinyal kustom yang terdaftar adalahazureml:my_custom_signal:1.0.0
. - Jika Anda telah mengumpulkan data dengan pengumpul data, Anda dapat menghilangkan
pre_processing_component
properti . Jika Anda ingin menggunakan komponen prapemroscesan untuk memproses data produksi yang tidak dikumpulkan oleh pengumpul data, Anda dapat menentukannya.
# custom-monitoring.yaml
$schema: http://azureml/sdk-2-0/Schedule.json
name: my-custom-signal
trigger:
type: recurrence
frequency: day # can be minute, hour, day, week, month
interval: 7 # #every day
create_monitor:
compute:
instance_type: "standard_e4s_v3"
runtime_version: "3.3"
monitoring_signals:
customSignal:
type: custom
component_id: azureml:my_custom_signal:1.0.0
input_data:
production_data:
input_data:
type: uri_folder
path: azureml:my_production_data:1
data_context: test
data_window:
lookback_window_size: P30D
lookback_window_offset: P7D
pre_processing_component: azureml:custom_preprocessor:1.0.0
metric_thresholds:
- metric_name: std_deviation
threshold: 2
alert_notification:
emails:
- abc@example.com
Menginterpretasikan hasil pemantauan
Setelah mengonfigurasi monitor model dan proses pertama selesai, Anda dapat menavigasi kembali ke tab Pemantauan di studio Azure Pembelajaran Mesin untuk melihat hasilnya.
Dari tampilan Pemantauan utama, pilih nama monitor model Anda untuk melihat halaman Ringkasan monitor. Halaman ini memperlihatkan model, titik akhir, dan penyebaran yang sesuai, bersama dengan detail mengenai sinyal yang Anda konfigurasi. Gambar berikutnya menunjukkan dasbor pemantauan yang menyertakan penyimpangan data dan sinyal kualitas data. Bergantung pada sinyal pemantauan yang Anda konfigurasi, dasbor Anda mungkin terlihat berbeda.
Lihat di bagian Pemberitahuan dasbor untuk melihat, untuk setiap sinyal, yang fiturnya melanggar ambang batas yang dikonfigurasi untuk metrik masing-masing:
Pilih data_drift untuk masuk ke halaman detail penyimpangan data. Pada halaman detail, Anda dapat melihat nilai metrik penyimpangan data untuk setiap fitur numerik dan kategoris yang Anda sertakan dalam konfigurasi pemantauan Anda. Saat monitor Anda memiliki lebih dari satu eksekusi, Anda akan melihat garis tren untuk setiap fitur.
Untuk melihat fitur individual secara rinci, pilih nama fitur untuk melihat distribusi produksi dibandingkan dengan distribusi referensi. Tampilan ini juga memungkinkan Anda melacak penyimpangan dari waktu ke waktu untuk fitur tertentu tersebut.
Kembali ke dasbor pemantauan dan pilih data_quality untuk melihat halaman sinyal kualitas data. Pada halaman ini, Anda dapat melihat tingkat nilai null, tingkat di luar batas, dan tingkat kesalahan jenis data untuk setiap fitur yang Anda pantau.
Pemantauan model adalah proses berkelanjutan. Dengan pemantauan model Azure Pembelajaran Mesin, Anda dapat mengonfigurasi beberapa sinyal pemantauan untuk mendapatkan tampilan luas tentang performa model Anda dalam produksi.
Mengintegrasikan pemantauan model Azure Pembelajaran Mesin dengan Azure Event Grid
Anda dapat menggunakan peristiwa yang dihasilkan oleh pemantauan model Azure Pembelajaran Mesin untuk menyiapkan aplikasi, proses, atau alur kerja CI/CD berbasis peristiwa dengan Azure Event Grid. Anda dapat menggunakan peristiwa melalui berbagai penanganan aktivitas, seperti Azure Event Hubs, fungsi Azure, dan aplikasi logika. Berdasarkan penyimpangan yang terdeteksi oleh monitor, Anda dapat mengambil tindakan secara terprogram, seperti dengan menyiapkan alur pembelajaran mesin untuk melatih kembali model dan menyebarkannya kembali.
Untuk mulai mengintegrasikan pemantauan model Azure Pembelajaran Mesin dengan Event Grid:
Ikuti langkah-langkah dalam lihat Menyiapkan di portal Azure. Beri nama Langganan Peristiwa Anda, seperti MonitoringEvent, dan pilih hanya kotak Jalankan status yang diubah di bawah Jenis Peristiwa.
Peringatan
Pastikan untuk memilih Jalankan status diubah untuk jenis peristiwa. Jangan pilih Penyimpangan himpunan data terdeteksi, karena berlaku untuk penyimpangan data v1, bukan pemantauan model Azure Pembelajaran Mesin.
Ikuti langkah-langkah dalam Memfilter & berlangganan peristiwa untuk menyiapkan pemfilteran peristiwa untuk skenario Anda. Navigasi ke tab Filter dan tambahkan Kunci, Operator, dan Nilai berikut ini di bawah Filter Tingkat Lanjut:
- Kunci:
data.RunTags.azureml_modelmonitor_threshold_breached
- Nilai: gagal karena satu atau beberapa fitur yang melanggar ambang batas metrik
- Operator: String berisi
Dengan filter ini, peristiwa dihasilkan saat status eksekusi berubah (dari Selesai menjadi Gagal, atau dari Gagal hingga Selesai) untuk monitor apa pun dalam ruang kerja Azure Pembelajaran Mesin Anda.
- Kunci:
Untuk memfilter di tingkat pemantauan, gunakan Kunci, Operator, dan Nilai berikut ini di bawah Filter Tingkat Lanjut:
- Kunci:
data.RunTags.azureml_modelmonitor_threshold_breached
- Nilai:
your_monitor_name_signal_name
- Operator: String berisi
Pastikan itu
your_monitor_name_signal_name
adalah nama sinyal di monitor tertentu yang ingin Anda filter peristiwanya. Contohnya,credit_card_fraud_monitor_data_drift
. Agar filter ini berfungsi, string ini harus cocok dengan nama sinyal pemantauan Anda. Anda harus memberi nama sinyal Anda dengan nama monitor dan nama sinyal untuk kasus ini.- Kunci:
Setelah menyelesaikan konfigurasi Langganan Peristiwa, pilih titik akhir yang diinginkan untuk berfungsi sebagai penanganan aktivitas Anda, seperti Azure Event Hubs.
Setelah peristiwa diambil, Anda dapat melihatnya dari halaman titik akhir:
Anda juga dapat melihat peristiwa di tab Metrik Azure Monitor: