Bagikan melalui


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:

  • 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:

  • 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_v3Standard_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 elevationdengan . 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:

  1. 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.
  2. 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.
  3. 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.
  4. Data kebenaran is_fraud dasar ini juga dikumpulkan, dikelola, dan didaftarkan ke Azure Pembelajaran Mesin sebagai aset data.
  5. Buat sinyal pemantauan performa model yang menggabungkan inferensi produksi model dan aset data kebenaran dasar, menggunakan kolom ID unik.
  6. 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 untuk std_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_namemetric_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 adalah azureml: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.

    Cuplikan layar memperlihatkan dasbor pemantauan.

  • 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.

    Cuplikan layar memperlihatkan halaman detail sinyal penyimpangan data.

  • 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.

    Cuplikan layar memperlihatkan detail penyimpangan data untuk fitur individual.

  • 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.

    Cuplikan layar memperlihatkan halaman detail sinyal kualitas data.

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:

  1. 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.

  2. 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.

  3. 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.

  4. Setelah menyelesaikan konfigurasi Langganan Peristiwa, pilih titik akhir yang diinginkan untuk berfungsi sebagai penanganan aktivitas Anda, seperti Azure Event Hubs.

  5. Setelah peristiwa diambil, Anda dapat melihatnya dari halaman titik akhir:

    Cuplikan layar memperlihatkan peristiwa yang ditampilkan dari halaman titik akhir.

Anda juga dapat melihat peristiwa di tab Metrik Azure Monitor:

Cuplikan layar memperlihatkan peristiwa yang ditampilkan dari tab metrik Azure Monitor.