Övervaka prestanda för modeller som distribuerats till produktion
GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)
Lär dig hur du använder Azure Machine Learnings modellövervakning för att kontinuerligt spåra prestanda för maskininlärningsmodeller i produktion. Modellövervakning ger dig en bred vy över övervakningssignaler och aviseringar om potentiella problem. När du övervakar signaler och prestandamått för modeller i produktion kan du kritiskt utvärdera de inneboende riskerna med dem och identifiera blinda fläckar som kan påverka din verksamhet negativt.
I den här artikeln får du lära dig att utföra följande uppgifter:
- Konfigurera inbyggda och avancerade övervakningar för modeller som distribueras till Azure Machine Learning-slutpunkter online
- Övervaka prestandamått för modeller i produktion
- Övervaka modeller som distribueras utanför Azure Machine Learning eller distribueras till Azure Machine Learning-batchslutpunkter
- Konfigurera modellövervakning med anpassade signaler och mått
- Tolka övervakningsresultat
- Integrera Azure Machine Learning-modellövervakning med Azure Event Grid
Förutsättningar
Innan du följer stegen i den här artikeln kontrollerar du att du har följande förutsättningar:
Azure CLI och
ml
tillägget till Azure CLI. Mer information finns i Installera, konfigurera och använda CLI (v2).Viktigt!
CLI-exemplen i den här artikeln förutsätter att du använder Bash-gränssnittet (eller det kompatibla). Till exempel från ett Linux-system eller Windows-undersystem för Linux.
En Azure Machine Learning-arbetsyta. Om du inte har någon använder du stegen i Installera, konfigurera och använda CLI (v2) för att skapa en.
Rollbaserade åtkomstkontroller i Azure (Azure RBAC) används för att bevilja åtkomst till åtgärder i Azure Machine Learning. Om du vill utföra stegen i den här artikeln måste ditt användarkonto tilldelas rollen ägare eller deltagare för Azure Machine Learning-arbetsytan eller en anpassad roll som tillåter
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*
. Mer information finns i Hantera åtkomst till en Azure Machine Learning-arbetsyta.För övervakning av en modell som distribueras till en Azure Machine Learning-onlineslutpunkt (hanterad onlineslutpunkt eller Kubernetes onlineslutpunkt) måste du:
Ha en modell redan distribuerad till en Azure Machine Learning-slutpunkt online. Både hanterad onlineslutpunkt och Kubernetes onlineslutpunkt stöds. Om du inte har en modell distribuerad till en Azure Machine Learning-slutpunkt online läser du Distribuera och poängsätta en maskininlärningsmodell med hjälp av en onlineslutpunkt.
Aktivera datainsamling för din modelldistribution. Du kan aktivera datainsamling under distributionssteget för Azure Machine Learning-slutpunkter online. Mer information finns i Samla in produktionsdata från modeller som distribuerats till en realtidsslutpunkt.
Om du vill övervaka en modell som distribueras till en Azure Machine Learning-batchslutpunkt eller distribueras utanför Azure Machine Learning måste du:
- Ha ett sätt att samla in produktionsdata och registrera dem som en Azure Machine Learning-datatillgång.
- Uppdatera den registrerade datatillgången kontinuerligt för modellövervakning.
- (Rekommenderas) Registrera modellen på en Azure Machine Learning-arbetsyta för ursprungsspårning.
Viktigt!
Modellövervakningsjobb är schemalagda att köras på serverlösa Spark-beräkningspooler med stöd för följande typer av VM-instanser: Standard_E4s_v3
, Standard_E8s_v3
, Standard_E16s_v3
, Standard_E32s_v3
och Standard_E64s_v3
. Du kan välja vm-instanstypen med create_monitor.compute.instance_type
egenskapen i YAML-konfigurationen eller i listrutan i Azure Machine Learning-studio.
Konfigurera övervakning av färdiga modeller
Anta att du distribuerar din modell till produktion i en Azure Machine Learning-slutpunkt online och aktiverar datainsamling vid distributionstillfället. I det här scenariot samlar Azure Machine Learning in produktionsinferensdata och lagrar dem automatiskt i Microsoft Azure Blob Storage. Du kan sedan använda Azure Machine Learning-modellövervakning för att kontinuerligt övervaka dessa produktionsinferensdata.
Du kan använda Azure CLI, Python SDK eller studio för en inbyggd konfiguration av modellövervakning. Den färdiga modellövervakningskonfigurationen innehåller följande övervakningsfunktioner:
- Azure Machine Learning identifierar automatiskt datauppsättningen för produktionsinferens som är associerad med en Azure Machine Learning-onlinedistribution och använder datauppsättningen för modellövervakning.
- Jämförelsereferensdatauppsättningen anges som den senaste, tidigare datauppsättningen för produktionsinferens.
- Övervakningskonfigurationen innehåller och spårar automatiskt de inbyggda övervakningssignalerna: dataavvikelse, förutsägelseavvikelse och datakvalitet. För varje övervakningssignal använder Azure Machine Learning:
- den senaste datamängden för tidigare produktionsinferens som jämförelsereferensdatauppsättning.
- smarta standardvärden för mått och tröskelvärden.
- Ett övervakningsjobb schemaläggs att köras dagligen klockan 03:15 (i det här exemplet) för att hämta övervakningssignaler och utvärdera varje måttresultat mot motsvarande tröskelvärde. När ett tröskelvärde överskrids skickar Azure Machine Learning som standard ett e-postmeddelande till användaren som konfigurerar övervakaren.
Azure Machine Learning-modellövervakning används az ml schedule
för att schemalägga ett övervakningsjobb. Du kan skapa den färdiga modellövervakaren med följande CLI-kommando och YAML-definition:
az ml schedule create -f ./out-of-box-monitoring.yaml
Följande YAML innehåller definitionen för övervakning av färdiga modeller.
# 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
Konfigurera avancerad modellövervakning
Azure Machine Learning har många funktioner för kontinuerlig modellövervakning. Se Funktioner för modellövervakning för en omfattande lista över dessa funktioner. I många fall måste du konfigurera modellövervakning med avancerade övervakningsfunktioner. I följande avsnitt konfigurerar du modellövervakning med dessa funktioner:
- Användning av flera övervakningssignaler för en bred vy.
- Användning av historiska modellträningsdata eller valideringsdata som jämförelsereferensdatauppsättning.
- Övervakning av de viktigaste N-funktionerna och enskilda funktioner.
Konfigurera funktionsvikt
Funktionsvikt representerar den relativa betydelsen av varje indatafunktion för en modells utdata. Till exempel temperature
kan vara viktigare för en modells förutsägelse jämfört elevation
med . Genom att aktivera funktionsvikt kan du få insyn i vilka funktioner du inte vill driva eller ha problem med datakvaliteten i produktionen.
För att aktivera funktionsvikt med någon av dina signaler (till exempel dataavvikelse eller datakvalitet) måste du ange:
- Din träningsdatauppsättning som
reference_data
datauppsättning. - Egenskapen
reference_data.data_column_names.target_column
, som är namnet på modellens utdata/förutsägelsekolumn.
När du har aktiverat funktionsvikt visas en funktionsvikt för varje funktion som du övervakar i Azure Machine Learning-modellövervakningsstudions användargränssnitt.
Du kan använda Azure CLI, Python SDK eller studio för avancerad konfiguration av modellövervakning.
Skapa en avancerad modellövervakningskonfiguration med följande CLI-kommando och YAML-definition:
az ml schedule create -f ./advanced-model-monitoring.yaml
Följande YAML innehåller definitionen för avancerad modellövervakning.
# 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
Konfigurera prestandaövervakning av modeller
Med Azure Machine Learning-modellövervakning kan du spåra prestanda för dina modeller i produktion genom att beräkna deras prestandamått. Följande modellprestandamått stöds för närvarande:
För klassificeringsmodeller:
- Precision
- Noggrannhet
- Återkalla
För regressionsmodeller:
- Genomsnittligt absolut fel (MAE)
- Genomsnittligt kvadratfel (MSE)
- RMSE (Root Mean Squared Error)
Fler krav för övervakning av modellprestanda
Du måste uppfylla följande krav för att konfigurera modellens prestandasignal:
Ha utdata för produktionsmodellen (modellens förutsägelser) med ett unikt ID för varje rad. Om du samlar in produktionsdata med Azure Machine Learning-datainsamlaren tillhandahålls en
correlation_id
för varje slutsatsdragningsbegäran åt dig. Med datainsamlaren har du också möjlighet att logga ditt eget unika ID från ditt program.Kommentar
För prestandaövervakning av Azure Machine Learning-modeller rekommenderar vi att du loggar ditt unika ID i en egen kolumn med hjälp av Azure Machine Learning-datainsamlaren.
Ha grund sanningsdata (faktiska) med ett unikt ID för varje rad. Det unika ID:t för en viss rad ska matcha det unika ID:t för modellutdata för den specifika slutsatsdragningsbegäran. Det här unika ID:t används för att koppla din datauppsättning för grundsanningar till modellutdata.
Utan att ha grund sanningsdata kan du inte utföra prestandaövervakning av modeller. Eftersom grund sanningsdata påträffas på programnivå är det ditt ansvar att samla in dem när de blir tillgängliga. Du bör också underhålla en datatillgång i Azure Machine Learning som innehåller dessa grundläggande sanningsdata.
(Valfritt) Ha en föransluten tabelldatauppsättning med modellutdata och mark sanningsdata som redan är sammanfogade.
Övervaka prestandakrav för modeller när du använder datainsamlare
Om du använder Azure Machine Learning-datainsamlaren för att samla in produktionsinferensdata utan att ange ditt eget unika ID för varje rad som en separat kolumn, genereras en correlationid
automatiskt åt dig och inkluderas i det loggade JSON-objektet. Datainsamlaren kommer dock att batchrader som skickas inom korta tidsintervall för varandra. Batchrader hamnar inom samma JSON-objekt och har därmed samma correlationid
.
För att skilja mellan raderna i samma JSON-objekt använder Prestandaövervakning av Azure Machine Learning-modellen indexering för att fastställa ordningen på raderna i JSON-objektet. Om till exempel tre rader batchas ihop och correlationid
är , kommer rad ett att ha ett ID för test_0
, rad två har ett ID test_1
för , och rad tre har ett ID för test_2
test
. För att säkerställa att datamängden ground truth innehåller unika ID:er som matchar de insamlade utdata för produktionsinferensmodellen, måste du indexera var och en correlationid
på rätt sätt. Om ditt loggade JSON-objekt bara har en rad blir correlationid_0
det correlationid
.
För att undvika att använda den här indexeringen rekommenderar vi att du loggar ditt unika ID i en egen kolumn i Pandas DataFrame som du loggar med Azure Machine Learning-datainsamlaren. I konfigurationen för modellövervakning anger du sedan namnet på den här kolumnen för att koppla dina modelldata till dina grundsanningsdata. Så länge ID:na för varje rad i båda datauppsättningarna är desamma kan Azure Machine Learning-modellövervakning utföra modellprestandaövervakning.
Exempelarbetsflöde för övervakning av modellprestanda
Om du vill förstå begreppen som är associerade med övervakning av modellprestanda bör du överväga det här exempelarbetsflödet. Anta att du distribuerar en modell för att förutsäga om kreditkortstransaktioner är bedrägliga eller inte. Du kan följa dessa steg för att övervaka modellens prestanda:
- Konfigurera distributionen så att datainsamlaren används för att samla in modellens produktionsinferensdata (indata och utdata). Anta att utdata lagras i en kolumn
is_fraud
. - För varje rad i insamlade slutsatsdragningsdata loggar du ett unikt ID. Det unika ID:t kan komma från ditt program, eller så kan du använda
correlationid
det som Azure Machine Learning genererar unikt för varje loggat JSON-objekt. - Senare, när grund sanningsdata (eller faktiska)
is_fraud
data blir tillgängliga, loggas de också och mappas till samma unika ID som loggades med modellens utdata. - Dessa grundläggande sanningsdata
is_fraud
samlas också in, underhålls och registreras i Azure Machine Learning som en datatillgång. - Skapa en modellprestandaövervakningssignal som ansluter modellens produktionsinferens och mark sanningsdatatillgångar med hjälp av de unika ID-kolumnerna.
- Slutligen beräknar du modellens prestandamått.
När du har uppfyllt kraven för övervakning av modellprestanda kan du konfigurera modellövervakning med följande CLI-kommando och YAML-definition:
az ml schedule create -f ./model-performance-monitoring.yaml
Följande YAML innehåller definitionen för modellövervakning med produktionsinferensdata som du har samlat in.
$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
Konfigurera modellövervakning genom att hämta dina produktionsdata till Azure Machine Learning
Du kan också konfigurera modellövervakning för modeller som distribuerats till Azure Machine Learning-batchslutpunkter eller distribuerats utanför Azure Machine Learning. Om du inte har någon distribution, men du har produktionsdata, kan du använda data för att utföra kontinuerlig modellövervakning. Om du vill övervaka dessa modeller måste du kunna:
- Samla in produktionsinferensdata från modeller som distribuerats i produktion.
- Registrera produktionsinferensdata som en Azure Machine Learning-datatillgång och se till att data uppdateras kontinuerligt.
- Ange en komponent för förbearbetning av anpassade data och registrera den som en Azure Machine Learning-komponent.
Du måste ange en komponent för förbearbetning av anpassade data om dina data inte samlas in med datainsamlaren. Utan den här komponenten för förbearbetning av anpassade data vet inte Azure Machine Learning-modellövervakningssystemet hur du bearbetar dina data i tabellformat med stöd för tidsfönster.
Din anpassade förbearbetningskomponent måste ha dessa indata- och utdatasignaturer:
Indata/utdata | Signaturnamn | Typ | Beskrivning | Exempelvärde |
---|---|---|---|---|
indata | data_window_start |
literal, sträng | starttid för datafönstret i ISO8601 format. | 2023-05-01T04:31:57.012Z |
indata | data_window_end |
literal, sträng | datafönstrets sluttid i ISO8601 format. | 2023-05-01T04:31:57.012Z |
indata | input_data |
uri_folder | Insamlade produktionsinferensdata, som är registrerade som en Azure Machine Learning-datatillgång. | azureml:myproduction_inference_data:1 |
utdata | preprocessed_data |
mltable | En tabelldatauppsättning som matchar en delmängd av referensdataschemat. |
Ett exempel på en komponent för förbearbetning av anpassade data finns i custom_preprocessing i GitHub-lagringsplatsen azuremml-examples.
När du har uppfyllt de tidigare kraven kan du konfigurera modellövervakning med följande CLI-kommando och YAML-definition:
az ml schedule create -f ./model-monitoring-with-collected-data.yaml
Följande YAML innehåller definitionen för modellövervakning med produktionsinferensdata som du har samlat in.
# 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
Konfigurera modellövervakning med anpassade signaler och mått
Med Azure Machine Learning-modellövervakning kan du definiera en anpassad signal och implementera valfritt mått för att övervaka din modell. Du kan registrera den här anpassade signalen som en Azure Machine Learning-komponent. När ditt Azure Machine Learning-modellövervakningsjobb körs enligt det angivna schemat beräknas de mått som du har definierat i din anpassade signal, precis som för de fördefinierade signalerna (dataavvikelse, förutsägelseavvikelse och datakvalitet).
Om du vill konfigurera en anpassad signal som ska användas för modellövervakning måste du först definiera den anpassade signalen och registrera den som en Azure Machine Learning-komponent. Azure Machine Learning-komponenten måste ha dessa indata- och utdatasignaturer:
Signatur för komponentindata
Komponentens indataDataFrame ska innehålla följande objekt:
- En
mltable
med bearbetade data från förbearbetningskomponenten - Valfritt antal literaler, som var och en representerar ett implementerat mått som en del av den anpassade signalkomponenten. Om du till exempel har implementerat måttet
std_deviation
behöver du en indata förstd_deviation_threshold
. I allmänhet bör det finnas en indata per mått med namnet<metric_name>_threshold
.
Signaturnamn | Typ | Beskrivning | Exempelvärde |
---|---|---|---|
production_data | mltable | En tabelldatauppsättning som matchar en delmängd av referensdataschemat. | |
std_deviation_threshold | literal, sträng | Respektive tröskelvärde för det implementerade måttet. | 2 |
Signatur för komponentutdata
Komponentens utdataport bör ha följande signatur.
Signaturnamn | Typ | Beskrivning |
---|---|---|
signal_metrics | mltable | Den mltable som innehåller de beräknade måtten. Schemat definieras i nästa avsnitt signal_metrics schema. |
signal_metrics schema
Komponentutdataramen ska innehålla fyra kolumner: group
, metric_name
, metric_value
och threshold_value
.
Signaturnamn | Typ | Beskrivning | Exempelvärde |
---|---|---|---|
grupp | literal, sträng | Logisk gruppering på den översta nivån som ska tillämpas på det här anpassade måttet. | TRANSACTIONAMOUNT |
metric_name | literal, sträng | Namnet på det anpassade måttet. | std_deviation |
metric_value | numerisk | Värdet för det anpassade måttet. | 44,896.082 |
threshold_value | numerisk | Tröskelvärdet för det anpassade måttet. | 2 |
I följande tabell visas ett exempel på utdata från en anpassad signalkomponent som beräknar måttet std_deviation
:
grupp | 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 |
Ett exempel på en anpassad signalkomponentdefinition och måttberäkningskod finns i custom_signal på lagringsplatsen azureml-examples.
När du har uppfyllt kraven för att använda anpassade signaler och mått kan du konfigurera modellövervakning med följande CLI-kommando och YAML-definition:
az ml schedule create -f ./custom-monitoring.yaml
Följande YAML innehåller definitionen för modellövervakning med en anpassad signal. Några saker att märka om koden:
- Det förutsätter att du redan har skapat och registrerat din komponent med den anpassade signaldefinitionen i Azure Machine Learning.
- Den
component_id
registrerade anpassade signalkomponenten ärazureml:my_custom_signal:1.0.0
. - Om du har samlat in dina data med datainsamlaren kan du utelämna egenskapen
pre_processing_component
. Om du vill använda en förbearbetningskomponent för att förbearbeta produktionsdata som inte samlas in av datainsamlaren kan du ange dem.
# 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
Tolka övervakningsresultat
När du har konfigurerat modellövervakaren och den första körningen har slutförts kan du gå tillbaka till fliken Övervakning i Azure Machine Learning-studio för att visa resultatet.
I huvudvyn Övervakning väljer du namnet på modellövervakaren för att se översiktssidan för övervakaren. Den här sidan visar motsvarande modell, slutpunkt och distribution, tillsammans med information om de signaler som du har konfigurerat. Nästa bild visar en övervakningsinstrumentpanel som innehåller dataavvikelser och datakvalitetssignaler. Beroende på vilka övervakningssignaler du har konfigurerat kan instrumentpanelen se annorlunda ut.
Titta i avsnittet Meddelanden på instrumentpanelen för att se, för varje signal, vilka funktioner som överträdde det konfigurerade tröskelvärdet för respektive mått:
Välj data_drift för att gå till informationssidan för dataavvikelsen. På informationssidan kan du se måttvärdet för dataavvikelser för varje numerisk och kategorisk funktion som du inkluderade i din övervakningskonfiguration. När bildskärmen har fler än en körning visas en trendlinje för varje funktion.
Om du vill visa en enskild funktion i detalj väljer du namnet på funktionen för att visa produktionsdistributionen jämfört med referensdistributionen. Med den här vyn kan du också spåra drift över tid för den specifika funktionen.
Gå tillbaka till instrumentpanelen för övervakning och välj data_quality för att visa signalsidan för datakvalitet. På den här sidan kan du se null-värdefrekvenser, out-of-bounds-priser och felfrekvenser för datatyp för varje funktion som du övervakar.
Modellövervakning är en kontinuerlig process. Med Azure Machine Learning-modellövervakning kan du konfigurera flera övervakningssignaler för att få en bred överblick över prestanda för dina modeller i produktion.
Integrera Azure Machine Learning-modellövervakning med Azure Event Grid
Du kan använda händelser som genereras av Azure Machine Learning-modellövervakning för att konfigurera händelsedrivna program, processer eller CI/CD-arbetsflöden med Azure Event Grid. Du kan använda händelser via olika händelsehanterare, till exempel Azure Event Hubs, Azure-funktioner och logikappar. Baserat på den drift som identifieras av övervakarna kan du vidta åtgärder programmatiskt, till exempel genom att konfigurera en maskininlärningspipeline för att träna om en modell och distribuera den igen.
Så här kommer du igång med att integrera Azure Machine Learning-modellövervakning med Event Grid:
Följ stegen i avsnittet Konfigurera i Azure Portal. Ge händelseprenumerationen ett namn, till exempel MonitoringEvent, och välj endast rutan Kör status ändrad under Händelsetyper.
Varning
Se till att välja Kör status har ändrats för händelsetypen. Välj inte Datauppsättningsavdrift som identifierats eftersom den gäller för dataavvikelse v1 i stället för övervakning av Azure Machine Learning-modell.
Följ stegen i Filtrera och prenumerera på händelser för att konfigurera händelsefiltrering för ditt scenario. Gå till fliken Filter och lägg till följande nyckel, operator och värde under Avancerade filter:
- Nyckel:
data.RunTags.azureml_modelmonitor_threshold_breached
- Värde: har misslyckats på grund av att en eller flera funktioner bryter mot måtttrösklar
- Operator: Strängen innehåller
Med det här filtret genereras händelser när körningsstatusen ändras (från Slutförd till Misslyckad eller från Misslyckad till Slutförd) för alla övervakare på din Azure Machine Learning-arbetsyta.
- Nyckel:
Om du vill filtrera på övervakningsnivå använder du följande nyckel, operator och värde under Avancerade filter:
- Nyckel:
data.RunTags.azureml_modelmonitor_threshold_breached
- Värde:
your_monitor_name_signal_name
- Operator: Strängen innehåller
Kontrollera att
your_monitor_name_signal_name
är namnet på en signal i den specifika övervakaren som du vill filtrera händelser för. Exempel:credit_card_fraud_monitor_data_drift
För att det här filtret ska fungera måste den här strängen matcha namnet på din övervakningssignal. Du bör namnge din signal med både övervakningsnamnet och signalnamnet för det här fallet.- Nyckel:
När du har slutfört konfigurationen av händelseprenumerationen väljer du önskad slutpunkt som ska fungera som händelsehanterare, till exempel Azure Event Hubs.
När händelser har registrerats kan du visa dem från slutpunktssidan:
Du kan också visa händelser på fliken Azure Monitor Metrics :