Мониторинг производительности моделей, развернутых в рабочей среде
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)
Узнайте, как использовать мониторинг модели Машинное обучение Azure для непрерывного отслеживания производительности моделей машинного обучения в рабочей среде. Мониторинг моделей предоставляет широкий обзор сигналов мониторинга и оповещений о потенциальных проблемах. При мониторинге сигналов и метрик производительности моделей в рабочей среде можно критически оценить внутренние риски, связанные с ними, и определить слепые пятна, которые могут негативно повлиять на ваш бизнес.
В этой статье вы узнаете, как выполнить следующие задачи:
- Настройка нестандартного и расширенного мониторинга для моделей, развернутых в Машинное обучение Azure сетевых конечных точек
- Мониторинг метрик производительности для моделей в рабочей среде
- Мониторинг моделей, развернутых вне Машинное обучение Azure или развернутых в Машинное обучение Azure конечных точках пакетной службы
- Настройка мониторинга модели с помощью пользовательских сигналов и метрик
- Интерпретация результатов мониторинга
- Интеграция мониторинга моделей Машинное обучение Azure с Сетка событий Azure
Необходимые компоненты
Перед выполнением действий, описанных в этой статье, убедитесь, что выполнены следующие необходимые условия:
Azure CLI и расширение
ml
для Azure CLI. Дополнительные сведения см. в разделе Установка, настройка и использование CLI (версия 2).Внимание
В примерах CLI в этой статье предполагается, что вы используете оболочку Bash (или совместимый вариант). Например, из системы Linux или подсистемы Windows для Linux.
Рабочая область Машинного обучения Azure. Если у вас ее нет, выполните действия, описанные в разделе Установка, настройка и использование CLI (версия 2), чтобы создать ее.
Управление доступом на основе ролей Azure (Azure RBAC) используется для предоставления доступа к операциям в Машинном обучении Azure. Чтобы выполнить действия, описанные в этой статье, учетной записи пользователя должна быть назначена роль владельца или участника для рабочей области Машинного обучения Azure либо пользовательская роль с разрешением
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*
. Дополнительные сведения см. в статье Управление доступом к рабочей области Машинного обучения Azure.Для мониторинга модели, развернутой в Машинное обучение Azure веб-конечной точке (управляемой сетевой конечной точке или веб-конечной точке Kubernetes), обязательно выполните следующее:
У вас уже развернута модель в Машинное обучение Azure веб-конечной точке. Поддерживаются как управляемая конечная точка в Сети, так и конечная точка Kubernetes. Если у вас нет модели, развернутой в Машинное обучение Azure интернет-конечной точке, см. статью "Развертывание и оценка модели машинного обучения с помощью сетевой конечной точки".
Включите сбор данных для развертывания модели. Вы можете включить сбор данных на этапе развертывания для Машинное обучение Azure сетевых конечных точек. Дополнительные сведения см. в статье Сбор рабочих данных из моделей, развернутых в конечной точке в режиме реального времени.
Для мониторинга модели, развернутой в Машинное обучение Azure пакетной конечной точке или развернутой вне Машинное обучение Azure, обязательно выполните следующее:
- Есть средства для сбора рабочих данных и регистрации их в качестве Машинное обучение Azure ресурса данных.
- Постоянно обновляйте зарегистрированный ресурс данных для мониторинга моделей.
- (Рекомендуется) Зарегистрируйте модель в рабочей области Машинное обучение Azure для отслеживания происхождения.
Внимание
Задания мониторинга моделей запланированы на выполнение в бессерверных пулах вычислений Spark с поддержкой следующих типов экземпляров виртуальных машин: Standard_E4s_v3
, , Standard_E8s_v3
Standard_E16s_v3
, Standard_E32s_v3
и Standard_E64s_v3
. Можно выбрать тип экземпляра виртуальной машины со свойством create_monitor.compute.instance_type
в конфигурации YAML или в раскрывающемся списке Студия машинного обучения Azure.
Настройка встроенного мониторинга модели
Предположим, что вы развертываете модель в рабочей среде в Машинное обучение Azure конечную точку в сети и включаете сбор данных во время развертывания. В этом сценарии Машинное обучение Azure собирает данные вывода в рабочей среде и автоматически сохраняет их в Microsoft Хранилище BLOB-объектов Azure. Затем можно использовать мониторинг модели Машинное обучение Azure для непрерывного мониторинга этих рабочих данных вывода.
Вы можете использовать Azure CLI, пакет SDK для Python или студию для настройки встроенного мониторинга моделей. Конфигурация мониторинга модели вне коробки предоставляет следующие возможности мониторинга:
- Машинное обучение Azure автоматически обнаруживает рабочий набор данных вывода, связанный с Машинное обучение Azure онлайн-развертыванием, и использует набор данных для мониторинга моделей.
- Эталонный набор данных сравнения задается как недавний, прошлый рабочий набор данных вывода.
- Настройка мониторинга автоматически включает и отслеживает встроенные сигналы мониторинга: смещение данных, смещение прогнозов и качество данных. Для каждого сигнала мониторинга используется Машинное обучение Azure:
- последний, прошлый рабочий набор данных вывода в качестве эталонного набора данных сравнения.
- интеллектуальные значения по умолчанию для метрик и пороговых значений.
- Задание мониторинга планируется выполнять ежедневно в 3:15 утра (в этом примере) для получения сигналов мониторинга и оценки каждого результата метрики с соответствующим пороговым значением. По умолчанию при превышении порогового значения Машинное обучение Azure отправляет пользователю сообщение электронной почты оповещений, настроив монитор.
Машинное обучение Azure мониторинг модели используется az ml schedule
для планирования задания мониторинга. Вы можете создать встроенный монитор модели с помощью следующей команды CLI и определения YAML:
az ml schedule create -f ./out-of-box-monitoring.yaml
Следующий YAML содержит определение для встроенного мониторинга модели.
# 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
Настройка расширенного мониторинга моделей
Машинное обучение Azure предоставляет множество возможностей для непрерывного мониторинга моделей. Полный список этих возможностей см. в разделе "Возможности мониторинга моделей". Во многих случаях необходимо настроить мониторинг моделей с расширенными возможностями мониторинга. В следующих разделах вы настроили мониторинг модели с этими возможностями:
- Использование нескольких сигналов мониторинга для широкого представления.
- Использование данных обучения исторических моделей или данных проверки в качестве эталонного набора данных сравнения.
- Мониторинг основных функций N и отдельных функций.
Настройка важности компонентов
Важность функции представляет относительную важность каждой входной функции для выходных данных модели. Например, temperature
может быть более важным для прогнозирования модели по сравнению с elevation
. Включение важности функций позволяет узнать, какие функции не требуется дрейфовать или иметь проблемы с качеством данных в рабочей среде.
Чтобы включить важность функции с любым из ваших сигналов (например, смещение данных или качество данных), необходимо предоставить следующее:
- Обучающий
reference_data
набор данных в качестве набора данных. - Свойство
reference_data.data_column_names.target_column
, которое является именем выходного или прогнозирующего столбца модели.
После включения важности функций вы увидите важность функции для каждой функции, которую вы отслеживаете в пользовательском интерфейсе студии мониторинга моделей Машинное обучение Azure.
Вы можете использовать Azure CLI, пакет SDK для Python или студию для расширенной настройки мониторинга моделей.
Создайте расширенную настройку мониторинга моделей с помощью следующей команды CLI и определения YAML:
az ml schedule create -f ./advanced-model-monitoring.yaml
Следующий YAML содержит определение для расширенного мониторинга моделей.
# 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
Настройка мониторинга производительности модели
Машинное обучение Azure мониторинг модели позволяет отслеживать производительность моделей в рабочей среде, вычисляя их метрики производительности. В настоящее время поддерживаются следующие метрики производительности модели:
Для моделей классификации:
- Точность
- Правильность
- Отзыв
Для моделей регрессии:
- Средняя абсолютная погрешность (MAE)
- Среднеквадратическая погрешность (СКП)
- Корень среднеквадратической погрешности (RMSE)
Дополнительные предварительные требования для мониторинга производительности модели
Для настройки сигнала производительности модели необходимо выполнить следующие требования:
Имеют выходные данные для рабочей модели (прогнозы модели) с уникальным идентификатором для каждой строки. При сборе рабочих данных с помощью сборщика
correlation_id
данных Машинное обучение Azure предоставляется для каждого запроса вывода. При использовании сборщика данных также можно регистрировать собственный уникальный идентификатор из приложения.Примечание.
Для мониторинга производительности модели Машинное обучение Azure рекомендуется записывать уникальный идентификатор в собственный столбец с помощью сборщика данных Машинное обучение Azure.
Укажите данные истинной истины (фактические) с уникальным идентификатором для каждой строки. Уникальный идентификатор для заданной строки должен соответствовать уникальному идентификатору выходных данных модели для этого конкретного запроса вывода. Этот уникальный идентификатор используется для объединения набора данных конечной истины с выходными данными модели.
Не имея данных о действительности, вы не можете выполнять мониторинг производительности модели. Так как данные на уровне приложения встречаются на уровне приложения, это ваша ответственность за сбор данных по мере его доступности. Кроме того, следует поддерживать ресурс данных в Машинное обучение Azure, который содержит эти данные истинной истины.
(Необязательно) Предварительно присоединенный табличный набор данных с выходными данными модели и данными истины, уже объединенными.
Мониторинг требований к производительности модели при использовании сборщика данных
Если вы используете сборщик данных Машинное обучение Azure для сбора данных вывода рабочей среды без предоставления собственного уникального идентификатора для каждой строки в качестве отдельного столбца, correlationid
будет автоматически создан для вас и включен в объект JSON в журнале. Однако сборщик данных будет пакетные строки , отправляемые в течение коротких интервалов времени друг от друга. Пакетные строки будут содержаться в одном объекте JSON и таким образом будут иметь то же самое correlationid
.
Чтобы различать строки в одном объекте JSON, Машинное обучение Azure мониторинг производительности модели использует индексирование для определения порядка строк в объекте JSON. Например, если три строки объединяются вместе, а correlationid
test
строка одна будет иметь идентификаторtest_0
, строка две будут иметь идентификатор, а три строки будут иметь идентификаторtest_1
test_2
. Чтобы обеспечить наличие уникальных идентификаторов, которые соответствуют собранным выходным данным модели вывода рабочей среды, убедитесь, что вы индексируете каждый correlationid
из них соответствующим образом. Если зарегистрированный объект JSON имеет только одну строку, то correlationid
будет correlationid_0
.
Чтобы избежать использования этого индексирования, рекомендуется регистрировать уникальный идентификатор в собственном столбце в кадре данных pandas, который вы регистрируете с помощью сборщика данных Машинное обучение Azure. Затем в конфигурации мониторинга модели укажите имя этого столбца, чтобы объединить выходные данные модели с данными истинной истины. Если идентификаторы для каждой строки в обоих наборах данных одинаковы, Машинное обучение Azure мониторинг модели может выполнять мониторинг производительности модели.
Пример рабочего процесса для производительности модели мониторинга
Чтобы понять понятия, связанные с мониторингом производительности модели, рассмотрим этот пример рабочего процесса. Предположим, что вы развертываете модель для прогнозирования того, являются ли транзакции кредитной карты мошенническими или нет, вы можете выполнить следующие действия, чтобы отслеживать производительность модели:
- Настройте развертывание для сбора данных сборщика данных для сбора рабочих данных модели (входных и выходных данных). Предположим, что выходные данные хранятся в столбце
is_fraud
. - Для каждой строки собранных данных вывода регистрируются уникальные идентификаторы. Уникальный идентификатор может поступать из приложения или использовать
correlationid
этот Машинное обучение Azure уникально генерируется для каждого зарегистрированного объекта JSON. - Позже, когда данные о действительности (или фактические)
is_fraud
становятся доступными, они также регистрируются и сопоставляются с тем же уникальным идентификатором, который был зарегистрирован с выходными данными модели. - Эти данные об истинной действительности
is_fraud
также собираются, поддерживаются и регистрироваться в Машинное обучение Azure в качестве ресурса данных. - Создайте сигнал мониторинга производительности модели, который объединяет производственные ресурсы данных модели и ресурсы данных истинной истины, используя уникальные столбцы идентификаторов.
- Наконец, вычислить метрики производительности модели.
После выполнения предварительных требований для мониторинга производительности модели можно настроить мониторинг модели с помощью следующей команды CLI и определения YAML:
az ml schedule create -f ./model-performance-monitoring.yaml
Следующий YAML содержит определение для мониторинга моделей с собранными данными вывода рабочей среды.
$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
Настройка мониторинга модели путем привлечения рабочих данных к Машинное обучение Azure
Вы также можете настроить мониторинг моделей, развернутых для Машинное обучение Azure конечных точек пакетной службы или развернутых вне Машинное обучение Azure. Если у вас нет развертывания, но у вас есть рабочие данные, можно использовать эти данные для непрерывного мониторинга моделей. Для мониторинга этих моделей необходимо иметь возможность:
- Сбор данных вывода рабочей среды из моделей, развернутых в рабочей среде.
- Зарегистрируйте данные вывода в рабочей среде в качестве Машинное обучение Azure ресурса данных и убедитесь в непрерывном обновлении данных.
- Предоставьте пользовательский компонент предварительной обработки данных и зарегистрируйте его в качестве компонента Машинное обучение Azure.
Необходимо предоставить пользовательский компонент предварительной обработки данных, если данные не собираются с сборщиком данных. Без этого компонента предварительной обработки данных система мониторинга модели Машинное обучение Azure не будет знать, как обрабатывать данные в табличной форме с поддержкой периода времени.
Пользовательский компонент предварительной обработки должен иметь следующие входные и выходные подписи:
Ввод-вывод | Имя подписи | Тип | Описание | Пример значения |
---|---|---|---|---|
input | data_window_start |
литерал, строка | Время запуска окна данных в формате ISO8601. | 2023-05-01T04:31:57.012Z |
input | data_window_end |
литерал, строка | Время окончания окна данных в формате ISO8601. | 2023-05-01T04:31:57.012Z |
input | input_data |
uri_folder | Собранные данные вывода рабочей среды, зарегистрированные в качестве Машинное обучение Azure ресурса данных. | azureml:myproduction_inference_data:1 |
output | preprocessed_data |
mltable | Табличный набор данных, соответствующий подмножество схемы эталонных данных. |
Пример пользовательского компонента предварительной обработки данных см . в custom_preprocessing репозитория GitHub в azuremml-examples.
После выполнения предыдущих требований можно настроить мониторинг модели с помощью следующей команды CLI и определения YAML:
az ml schedule create -f ./model-monitoring-with-collected-data.yaml
Следующий YAML содержит определение для мониторинга моделей с собранными данными вывода рабочей среды.
# 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
Настройка мониторинга модели с помощью пользовательских сигналов и метрик
С помощью мониторинга модели Машинное обучение Azure можно определить пользовательский сигнал и реализовать любую метрику для мониторинга модели. Этот пользовательский сигнал можно зарегистрировать как компонент Машинное обучение Azure. Когда задание мониторинга модели Машинное обучение Azure выполняется по указанному расписанию, оно вычисляет метрики, определенные в пользовательском сигнале, так же, как и для предварительно созданных сигналов (смещение данных, смещение прогнозов и качество данных).
Чтобы настроить пользовательский сигнал для мониторинга модели, необходимо сначала определить пользовательский сигнал и зарегистрировать его в качестве компонента Машинное обучение Azure. Компонент Машинное обучение Azure должен иметь следующие входные и выходные подписи:
Входная подпись компонента
Входной кадр данных компонента должен содержать следующие элементы:
- С
mltable
обработанными данными из компонента предварительной обработки - Любое количество литералом, каждое из которых представляет реализованную метрику в составе пользовательского компонента сигнала. Например, если вы реализовали метрику,
std_deviation
вам потребуется входные данныеstd_deviation_threshold
. Как правило, для каждой метрики должно быть одно входное значение с именем<metric_name>_threshold
.
Имя подписи | Тип | Описание | Пример значения |
---|---|---|---|
production_data | mltable | Табличный набор данных, соответствующий подмножество схемы эталонных данных. | |
std_deviation_threshold | литерал, строка | Соответствующее пороговое значение для реализованной метрики. | 2 |
Сигнатура вывода компонента
Выходной порт компонента должен иметь следующую подпись.
Имя подписи | Тип | Описание |
---|---|---|
signal_metrics | mltable | Mltable, содержащий вычисляемые метрики. Схема определена в следующем разделе signal_metrics схеме. |
схема signal_metrics
Выходной кадр данных компонента должен содержать четыре столбца: group
, metric_name
, metric_value
и threshold_value
.
Имя подписи | Тип | Описание | Пример значения |
---|---|---|---|
group | литерал, строка | Логическое группирование верхнего уровня, применяемое к этой пользовательской метрике. | TRANSACTIONAMOUNT |
metric_name | литерал, строка | Имя пользовательской метрики. | std_deviation |
metric_value | числовой | Значение пользовательской метрики. | 44,896.082 |
threshold_value | числовой | Пороговое значение для пользовательской метрики. | 2 |
В следующей таблице показан пример выходных данных пользовательского компонента сигнала, вычисляющего std_deviation
метрику:
group | 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 |
Чтобы просмотреть пример определения компонента пользовательского сигнала и вычислительного кода метрик, см . custom_signal в репозитории azureml-examples.
После удовлетворения требований к использованию пользовательских сигналов и метрик можно настроить мониторинг модели с помощью следующей команды CLI и определения YAML:
az ml schedule create -f ./custom-monitoring.yaml
Следующий YAML содержит определение для мониторинга моделей с пользовательским сигналом. Некоторые моменты, которые следует заметить о коде:
- Предполагается, что вы уже создали и зарегистрировали компонент с помощью определения пользовательского сигнала в Машинное обучение Azure.
- Зарегистрированный
component_id
компонент пользовательского сигнала .azureml:my_custom_signal:1.0.0
- Если вы собрали данные с сборщиком данных, можно опустить
pre_processing_component
свойство. Если вы хотите использовать компонент предварительной обработки для предварительной обработки рабочих данных, не собранных сборщиком данных, его можно указать.
# 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
Интерпретация результатов мониторинга
После настройки монитора модели и завершения первого запуска вы можете вернуться на вкладку "Мониторинг" в Студия машинного обучения Azure, чтобы просмотреть результаты.
В главном представлении мониторинга выберите имя монитора модели, чтобы просмотреть страницу обзора монитора. На этой странице показана соответствующая модель, конечная точка и развертывание, а также сведения о настроенных сигналах. На следующем рисунке показана панель мониторинга, включающая сигналы смещения данных и качества данных. В зависимости от настроенных сигналов мониторинга панель мониторинга может выглядеть по-разному.
Просмотрите раздел "Уведомления" панели мониторинга, чтобы просмотреть каждый сигнал, который имеет нарушение заданного порогового значения для соответствующих метрик:
Выберите data_drift, чтобы перейти на страницу сведений о смещениях данных. На странице сведений можно увидеть значение метрик смещения данных для каждой числовой и категориальной функции, включенной в конфигурацию мониторинга. Если монитор имеет несколько запусков, вы увидите линию тренда для каждой функции.
Чтобы просмотреть отдельную функцию подробно, выберите имя функции для просмотра рабочего распределения по сравнению с эталонным распределением. Это представление также позволяет отслеживать смещение с течением времени для этой конкретной функции.
Вернитесь на панель мониторинга и выберите data_quality , чтобы просмотреть страницу сигнала о качестве данных. На этой странице вы увидите значения NULL, скорости вне границ и частоту ошибок типа данных для каждой функции, которую вы отслеживаете.
Мониторинг модели — это непрерывный процесс. С помощью мониторинга модели Машинное обучение Azure можно настроить несколько сигналов мониторинга, чтобы получить широкое представление о производительности моделей в рабочей среде.
Интеграция мониторинга моделей Машинное обучение Azure с Сетка событий Azure
События, созданные Машинное обучение Azure мониторингом модели, можно использовать для настройки рабочих процессов, управляемых событиями, процессами или CI/CD с помощью Сетка событий Azure. События можно использовать с помощью различных обработчиков событий, таких как Центры событий Azure, функции Azure и приложения логики. На основе смещения, обнаруженного мониторами, можно выполнять действия программным способом, например путем настройки конвейера машинного обучения для повторного обучения модели и повторного развертывания.
Чтобы приступить к интеграции мониторинга моделей Машинное обучение Azure с сеткой событий, выполните приведенные ниже действия.
Выполните действия, описанные в разделе "Настройка" в портал Azure. Присвойте подписке на события имя, например MonitoringEvent, и выберите только поле "Состояние запуска" в разделе "Типы событий".
Предупреждение
Не забудьте выбрать состояние запуска для типа события. Не выбирайте обнаружение смещения набора данных, так как оно относится к дрейфу данных версии 1, а не Машинное обучение Azure мониторинг модели.
Выполните действия, описанные в разделе "Фильтр и подписка на события", чтобы настроить фильтрацию событий для вашего сценария. Перейдите на вкладку "Фильтры" и добавьте следующий ключ, оператор и значение в разделе "Дополнительные фильтры".
- Ключ:
data.RunTags.azureml_modelmonitor_threshold_breached
- Значение: произошел сбой из-за одного или нескольких функций, которые нарушают пороговые значения метрик
- Оператор: Строка содержит
С помощью этого фильтра события создаются при изменении состояния выполнения (с "Завершено" до "Не удалось" или "Не выполнено") для любого монитора в рабочей области Машинное обучение Azure.
- Ключ:
Чтобы отфильтровать на уровне мониторинга, используйте следующий ключ, оператор и значение в разделе расширенных фильтров:
- Ключ:
data.RunTags.azureml_modelmonitor_threshold_breached
- Значение:
your_monitor_name_signal_name
- Оператор: Строка содержит
Убедитесь, что
your_monitor_name_signal_name
это имя сигнала в определенном мониторе, для которого требуется отфильтровать события. Например,credit_card_fraud_monitor_data_drift
. Для работы этого фильтра эта строка должна соответствовать имени сигнала мониторинга. Вы должны назовите сигнал как именем монитора, так и именем сигнала для этого случая.- Ключ:
После завершения настройки подписки на события выберите нужную конечную точку, которая будет служить обработчиком событий, например Центры событий Azure.
После записи событий их можно просмотреть на странице конечной точки:
Вы также можете просматривать события на вкладке метрик Azure Monitor:
Связанный контент
- Сбор данных из моделей в рабочей среде (предварительная версия)
- Сбор рабочих данных из моделей, развернутых для вывода в режиме реального времени
- Планирование схемы YAML для мониторинга моделей (предварительная версия) cli (версия 2)
- Мониторинг моделей для создания приложений искусственного интеллекта