Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)
Python SDK azure-ai-ml версии 2 (current)
В Машинном обучении Azure можно использовать мониторинг моделей для непрерывного отслеживания производительности моделей машинного обучения в рабочей среде. Мониторинг моделей обеспечивает широкий обзор сигналов мониторинга. Он также оповещает вас о потенциальных проблемах. При мониторинге сигналов и метрик производительности моделей в рабочей среде можно критически оценить внутренние риски ваших моделей. Вы также можете определить слепые пятна, которые могут негативно повлиять на ваш бизнес.
В этой статье показано, как выполнить следующие задачи:
- Настройка встроенного и расширенного мониторинга для моделей, развернутых в сетевых конечных точках Машинного обучения Azure
- Мониторинг метрик производительности для моделей в рабочей среде
- Мониторинг моделей, развернутых вне Машинное обучение Azure или развернутых в Машинное обучение Azure конечных точках пакетной службы
- Настройка пользовательских сигналов и метрик для использования в мониторинге моделей
- Интерпретация результатов мониторинга
- Интеграция мониторинга моделей Машинное обучение Azure с Сетка событий Azure
Необходимые компоненты
Azure CLI и
ml
расширение для Azure CLI, установленные и настроенные. Для получения дополнительной информации смотрите Установка и настройка интерфейса командной строки (v2).Оболочка Bash или совместимая оболочка, например оболочка в системе Linux или подсистеме Windows для Linux. В примерах Azure CLI в этой статье предполагается, что вы используете этот тип оболочки.
Рабочая область Машинного обучения Azure. Инструкции по созданию рабочей области см. в разделе "Настройка".
Учетная запись пользователя, которая имеет по крайней мере одну из следующих ролей управления доступом на основе ролей Azure (Azure RBAC):
- Роль владельца рабочей области Машинного обучения Azure
- Роль участника для рабочей области Машинного обучения Azure
- Пользовательская роль с
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*
разрешениями
Дополнительные сведения см. в статье "Управление доступом к рабочим областям Azure машинного обучения".
Для мониторинга управляемой веб-конечной точки машинного обучения Azure или конечной точки Kubernetes в Сети:
Модель, развернутая на конечной точке онлайн-сервиса Машинного обучения Azure. Поддерживаются управляемые сетевые конечные точки и сетевые конечные точки Kubernetes. Инструкции по развертыванию модели в конечной точке Машинного обучения Azure см. в статье "Развертывание и оценка модели машинного обучения с помощью сетевой конечной точки".
Включение сбора данных для развертывания модели. Вы можете включить сбор данных на этапе развертывания для Машинное обучение Azure сетевых конечных точек. Дополнительные сведения см. в статье Сбор данных о производстве из моделей, развернутых для инференции в режиме реального времени.
Для мониторинга модели, развернутой в конечной точке пакетной службы машинного обучения Azure или развернутой за пределами Машинного обучения Azure:
- Средство сбора рабочих данных и его регистрации в качестве ресурса данных машинного обучения Azure
- Средство непрерывного обновления зарегистрированного ресурса данных для мониторинга моделей
- (Рекомендуется) Регистрация модели в рабочей области Машинного обучения Azure для отслеживания происхождения
Настройка бессерверного пула вычислений Spark
Задания мониторинга моделей запланированы на выполнение в бессерверных пулах вычислений Spark. Поддерживаются следующие типы экземпляров виртуальных машин Azure:
- Standard_E4s_v3
- Standard_E8s_v3
- Standard_E16s_v3
- Standard_E32s_v3
- Standard_E64s_v3
Чтобы указать тип экземпляра виртуальной машины при выполнении процедур, описанных в этой статье, сделайте следующее:
При создании монитора с помощью Azure CLI используется файл конфигурации YAML. В этом файле установите значение create_monitor.compute.instance_type
на требуемый тип.
Настройка встроенного мониторинга модели
Рассмотрим сценарий, в которой вы развертываете свою модель на онлайн-эндпоинте Машинного обучения Azure и включаете сбор данных во время процесса развертывания. В этом случае Azure Machine Learning собирает данные вывода из рабочей среды и автоматически сохраняет их в Azure Blob Storage. Мониторинг модели машинного обучения Azure можно использовать для непрерывного мониторинга этих рабочих данных вывода.
Вы можете использовать Azure CLI, пакет SDK для Python или студию для настройки встроенного мониторинга моделей. Конфигурация мониторинга модели вне коробки предоставляет следующие возможности мониторинга:
- Машинное обучение Azure автоматически обнаруживает рабочий ресурс данных вывода, связанный с развертыванием Машинного обучения Azure, и использует ресурс данных для мониторинга моделей.
- Ресурс ссылочных данных сравнения задается как недавний, прошлый рабочий ресурс данных вывода.
- Настройка мониторинга автоматически включает и отслеживает следующие встроенные сигналы мониторинга: смещение данных, смещение прогнозов и качество данных. Для каждого сигнала мониторинга используется Машинное обучение Azure:
- Последний, прошлый рабочий ресурс вывода данных в качестве эталонного ресурса данных сравнения.
- Интеллектуальные значения по умолчанию для метрик и пороговых значений.
- Задание мониторинга настроено для выполнения в обычном расписании. Эта задача получает сигналы мониторинга и оценивает каждое значение метрики в сравнении с соответствующим пороговым значением. По умолчанию при превышении порогового значения Машинное обучение Azure отправляет пользователю, настроившему монитор, оповещение по электронной почте.
Чтобы настроить встроенный мониторинг модели, выполните следующие действия.
В Azure CLI вы используете az ml schedule
для планирования задания мониторинга.
Создайте определение мониторинга в ФАЙЛЕ YAML. Пример определения вне поля см. в следующем коде YAML, который также доступен в репозитории azureml-examples.
Прежде чем использовать это определение, настройте значения, чтобы соответствовать вашей среде. Для
endpoint_deployment_id
используйте значение в форматеazureml:<endpoint-name>:<deployment-name>
.# 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: - [email protected] - [email protected]
Выполните следующую команду, чтобы создать модель:
az ml schedule create -f ./out-of-box-monitoring.yaml
Настройка расширенного мониторинга моделей
Машинное обучение Azure предоставляет множество возможностей для непрерывного мониторинга моделей. Полный список этих функций см. в разделе "Возможности мониторинга моделей". Во многих случаях необходимо настроить мониторинг моделей, поддерживающий расширенные задачи мониторинга. В следующем разделе приведены несколько примеров расширенного мониторинга.
- Использование нескольких сигналов мониторинга для общего обзора
- Использование данных обучения исторических моделей или данных проверки в качестве ресурса ссылочных данных сравнения
- Мониторинг наиболее важных функций N и отдельных функций
Настройка важности компонентов
Важность функции представляет относительную важность каждой входной функции для выходных данных модели. Например, температура может быть более важной для прогнозирования модели, чем повышение. При включении важности признаков, можно получить представление о том, для каких признаков нежелательны дрейф или проблемы с качеством данных в рабочей среде.
Чтобы включить значимость признаков с любым из ваших сигналов, таких как смещение данных или качество данных, вам необходимо предоставить:
- Ресурс обучающих данных в качестве
reference_data
ресурса данных. - Свойство
reference_data.data_column_names.target_column
, которое является именем выходного столбца модели или столбца прогнозирования.
После включения важности функций вы увидите важность функции для каждой функции, отслеживаемой в студии машинного обучения Azure.
Вы можете включить или отключить оповещения для каждого сигнала, задав alert_enabled
свойство при использовании пакета SDK для Python или Azure CLI.
Вы можете использовать Azure CLI, пакет SDK для Python или студию для настройки расширенного мониторинга моделей.
Создайте определение мониторинга в ФАЙЛЕ YAML. Пример расширенного определения см. в следующем коде YAML, который также доступен в репозитории azureml-examples.
Прежде чем использовать это определение, настройте следующие параметры и все остальные параметры в соответствии с потребностями вашей среды:
- Для
endpoint_deployment_id
используйте значение в форматеazureml:<endpoint-name>:<deployment-name>
. - Для
path
ссылочных разделов входных данных используйте значение в форматеazureml:<reference-data-asset-name>:<version>
. - Для
target_column
используйте имя выходного столбца, который содержит значения, предсказанные моделью, напримерDEFAULT_NEXT_MONTH
. - Для
features
перечислите такие функции, какSEX
,EDUCATION
, иAGE
, которые вы хотите использовать в расширенном сигнале качества данных. - Под
emails
перечислите адреса электронной почты, которые вы хотите использовать для уведомлений.
# 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 alert_enabled: true 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 alert_enabled: true 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 alert_enabled: true metric_thresholds: normalized_discounted_cumulative_gain: 0.9 alert_notification: emails: - [email protected] - [email protected]
- Для
Выполните следующую команду, чтобы создать модель:
az ml schedule create -f ./advanced-model-monitoring.yaml
Настройка мониторинга производительности модели
При использовании мониторинга модели машинного обучения Azure можно отслеживать производительность моделей в рабочей среде, вычисляя их метрики производительности. В настоящее время поддерживаются следующие метрики производительности модели:
- Для моделей классификации:
- Точность
- Правильность
- Отзыв
- Для моделей регрессии:
- Средняя абсолютная ошибка (MAE)
- Средняя квадратная ошибка (MSE)
- Ошибка с квадратом корня (RMSE)
Предварительные требования для мониторинга производительности модели
Выходные данные для рабочей модели (прогнозы модели) с уникальным идентификатором для каждой строки. Если вы используете сборщик данных машинного обучения Azure для сбора производственных данных, идентификатор корреляции предоставляется для каждого запроса на вывод данных. Сборщик данных также предлагает возможность регистрации вашего уникального идентификатора из приложения.
Примечание.
Для мониторинга производительности модели машинного обучения Azure, мы рекомендуем использовать сборщик данных Azure Machine Learning для записи вашего уникального идентификатора в отдельный столбец.
Данные эталонной истины с уникальным идентификатором для каждой строки. Уникальный идентификатор для заданной строки должен соответствовать уникальному идентификатору выходных данных модели для конкретного запроса вывода. Этот уникальный идентификатор используется для объединения вашего набора истинных данных с выходными данными модели.
Если у вас нет данных истинных значений, вы не можете отслеживать производительность модели. Истинные данные находятся на уровне приложения, поэтому ваша ответственность — собирать их по мере их доступности. Кроме того, следует поддерживать ресурс данных в Машинное обучение Azure, который содержит эти данные истинной истины.
(Необязательно) Предварительно присоединенный табличный ресурс данных с выходными данными модели и данными истины, уже объединенными.
Требования к мониторингу производительности модели при использовании сборщика данных
Машинное обучение Azure создает идентификатор корреляции для вас при выполнении следующих критериев:
- Вы используете Сборщик данных машинного обучения Azure для сбора данных инференса в рабочей среде.
- Вы не предоставляете собственный уникальный идентификатор для каждой строки в виде отдельного столбца.
Созданный идентификатор корреляции включается в объект JSON в журнале. Однако сборщик данных пакетирует строки, отправляемые в течение короткого интервала времени друг от друга. Пакетные строки попадают в тот же объект JSON. В каждом объекте все строки имеют одинаковый идентификатор корреляции.
Чтобы различать строки в объекте JSON, мониторинг производительности модели машинного обучения Azure использует индексирование для определения порядка строк в объекте. Например, если пакет содержит три строки и идентификатор корреляции test
, то первая строка имеет идентификатор test_0
, вторая строка имеет идентификатор test_1
, а третья строка имеет идентификатор test_2
. Чтобы сопоставить уникальные идентификаторы эталонных данных с идентификаторами собранных данных выходных данных инференции производственной модели, примените индекс к каждому идентификатору корреляции соответствующим образом. Если зарегистрированный объект JSON имеет только одну строку, используйте correlationid_0
в качестве значения correlationid
.
Чтобы избежать использования этого индексирования, мы рекомендуем записывать ваш уникальный идентификатор в отдельный столбец. Поместите этот столбец в кадр данных Pandas, в который сборщик данных Azure Machine Learning записывает журналы. В конфигурации мониторинга моделей можно указать имя этого столбца, чтобы объединить выходные данные модели с данными эталонной истинности. Если идентификаторы для каждой строки в обоих ресурсах данных одинаковы, мониторинг модели машинного обучения Azure может выполнять мониторинг производительности модели.
Пример рабочего процесса для производительности модели мониторинга
Чтобы понять понятия, связанные с мониторингом производительности модели, рассмотрим следующий пример рабочего процесса. Она применяется к сценарию, в котором развертывается модель для прогнозирования мошеннических транзакций кредитной карты:
- Настройте развертывание для сбора данных сборщика данных для сбора рабочих данных модели (входных и выходных данных). Сохраните выходные данные в столбце с именем
is_fraud
. - Для каждой строки собранных данных вывода регистрируются уникальные идентификаторы. Уникальный идентификатор может поступать из вашего приложения, или вы можете использовать значение
correlationid
, которое Azure Machine Learning создает для каждого JSON-объекта, зарегистрированного в системе. - Когда доступны действительные (или фактические)
is_fraud
данные, регистрируйте и сопоставляйте каждую строку с таким же уникальным идентификатором, который зарегистрирован для соответствующей строки в выходных данных модели. - Зарегистрируйте актив данных в Машинном обучении Azure и используйте его для сбора и поддержания эталонных данных
is_fraud
. - Создайте сигнал мониторинга производительности модели, который использует уникальные столбцы идентификаторов для объединения данных прогнозов модели в рабочем режиме и фактических данных.
- Вычислить метрики производительности модели.
После удовлетворения предварительных требований для мониторинга производительности модели выполните следующие действия, чтобы настроить мониторинг модели:
Создайте определение мониторинга в ФАЙЛЕ YAML. В следующем примере спецификации определяется мониторинг модели с данными производства вывода. Прежде чем использовать это определение, настройте следующие параметры и все остальные параметры в соответствии с потребностями вашей среды:
- Для
endpoint_deployment_id
этого используйте значение в форматеazureml:<endpoint-name>:<deployment-name>
. - Для каждого
path
значения в разделе входных данных используйте значение в форматеazureml:<data-asset-name>:<version>
. -
prediction
Для значения используйте имя выходного столбца, содержащего значения, прогнозируемые моделью. - Для значения
actual
используйте имя столбца истинных значений, содержащего фактические значения, предсказуемые моделью. - Для значений
correlation_id
используйте имена столбцов, используемых для объединения выходных данных и эталонных данных. - В разделе
emails
перечислите адреса электронной почты, которые вы хотите использовать для уведомлений.
# model-performance-monitoring.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: input_data: path: azureml:credit-default-main-model_outputs:1 type: mltable 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: ground_truth alert_enabled: true metric_thresholds: tabular_classification: accuracy: 0.95 precision: 0.8 alert_notification: emails: - [email protected]
- Для
Выполните следующую команду, чтобы создать модель:
az ml schedule create -f ./model-performance-monitoring.yaml
Настройка мониторинга моделей рабочих данных
Вы также можете отслеживать модели, развернутые в конечных точках пакетной службы машинного обучения Azure или развертываемых за пределами Машинного обучения Azure. Если у вас нет развертывания, но у вас есть рабочие данные, можно использовать эти данные для непрерывного мониторинга моделей. Для мониторинга этих моделей необходимо иметь возможность:
- Сбор данных вывода рабочей среды из моделей, развернутых в рабочей среде.
- Зарегистрируйте данные вывода в рабочей среде в качестве Машинное обучение Azure ресурса данных и убедитесь в непрерывном обновлении данных.
- Предоставьте пользовательский компонент предварительной обработки данных и зарегистрируйте его в качестве компонента Машинного обучения Azure, если сборщик данных не используется для сбора данных. Без этого настраиваемого компонента предварительной обработки данных система мониторинга модели машинного обучения Azure не может обрабатывать ваши данные в табличной форме, поддерживающей временные окна.
Пользовательский компонент предварительной обработки должен иметь следующие входные и выходные подписи:
Входные или выходные данные | Имя подписи | Тип | Описание | Пример значения |
---|---|---|---|---|
ввод | data_window_start |
литерал, строка | Время начала окна данных в формате ISO8601 | 2023-05-01T04:31:57.012Z |
ввод | data_window_end |
литерал, строка | Время окончания окна данных в формате ISO8601 | 2023-05-01T04:31:57.012Z |
ввод | input_data |
папка URI | Собранные данные предсказаний в рабочей среде, зарегистрированные в качестве информационного ресурса машинного обучения Azure | azureml:myproduction_inference_data:1 |
результат | preprocessed_data |
mltable | Объект табличных данных, соответствующий подмножеству схемы эталонных данных |
Пример пользовательского компонента предварительной обработки данных см . в custom_preprocessing репозитория GitHub в azuremml-examples.
Инструкции по регистрации компонента Машинного обучения Azure см. в разделе "Регистрация компонента" в рабочей области.
После регистрации рабочих данных и компонента предварительной обработки можно настроить мониторинг модели.
Создайте файл YAML определения мониторинга, аналогичный приведенному ниже. Прежде чем использовать это определение, настройте следующие параметры и все остальные параметры в соответствии с потребностями вашей среды:
- Для
endpoint_deployment_id
используйте значение в форматеazureml:<endpoint-name>:<deployment-name>
. - Для
pre_processing_component
используйте значение в форматеazureml:<component-name>:<component-version>
. Укажите точную версию, например1.0.0
, не1
. - Для каждого из них
path
используйте значение в форматеazureml:<data-asset-name>:<version>
. -
target_column
Для значения используйте имя выходного столбца, содержащего значения, прогнозируемые моделью. - В разделе
emails
, перечислите адреса электронной почты, которые вы хотите использовать для уведомлений.
# 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.0.0 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 alert_enabled: true metric_thresholds: numerical: 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.0.0 reference_data: input_data: path: azureml:my_model_validation_data:1 # use training data as comparison reference dataset type: mltable data_context: validation alert_enabled: true metric_thresholds: categorical: pearsons_chi_squared_test: 0.02 alert_notification: emails: - [email protected] - [email protected]
- Для
Выполните следующую команду, чтобы создать модель.
az ml schedule create -f ./model-monitoring-with-collected-data.yaml
Настройка мониторинга модели с помощью пользовательских сигналов и метрик
При использовании мониторинга модели машинного обучения 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 |
литерал, строка | Логическое группирование верхнего уровня, применяемое к пользовательской метрике | СУММАТРАНЗАКЦИИ |
metric_name |
литерал, строка | Имя пользовательской метрики | стандартное отклонение |
metric_value |
числовой | Значение пользовательской метрики | 44,896.082 |
threshold_value |
числовой | Пороговое значение для пользовательской метрики | 2 |
В следующей таблице показаны примеры выходных данных пользовательского компонента сигнала, вычисляющего std_deviation
метрику:
группа | значение метрики | metric_name | пороговое_значение |
---|---|---|---|
СУММА ТРАНЗАКЦИИ | 44,896.082 | стандартное_отклонение | 2 |
Местное время | 3.983 | стандартное_отклонение | 2 |
СуммаТранзакцииUSD | 54.004,902 | стандартное отклонение | 2 |
DIGITALITEMCOUNT | 7.238 | стандартное отклонение | 2 |
ФИЗИЧЕСКОЕ КОЛИЧЕСТВО ПРЕДМЕТОВ | 5.509 | стандартное_отклонение | 2 |
Чтобы просмотреть пример определения пользовательского компонента сигнала и вычислительного кода метрик, см. custom_signal в репозитории azureml-examples.
Инструкции по регистрации компонента Машинного обучения Azure см. в разделе "Регистрация компонента" в рабочей области.
После создания и регистрации пользовательского компонента сигнала в Машинном обучении Azure выполните следующие действия, чтобы настроить мониторинг моделей:
Создайте определение мониторинга в файле YAML, аналогичном следующему. Прежде чем использовать это определение, настройте следующие параметры и все остальные параметры в соответствии с потребностями вашей среды:
- Для
component_id
этого используйте значение в форматеazureml:<custom-signal-name>:1.0.0
. - В
path
разделе входных данных используйте значение в форматеazureml:<production-data-asset-name>:<version>
. - Для
pre_processing_component
:- При использовании сборщика данных для сбора данных можно опустить
pre_processing_component
свойство. - Если вы не используете сборщик данных и хотите использовать компонент для предварительной обработки рабочих данных, используйте значение в формате
azureml:<custom-preprocessor-name>:<custom-preprocessor-version>
.
- При использовании сборщика данных для сбора данных можно опустить
- Укажите в
emails
адреса электронной почты, которые вы хотите использовать для уведомлений.
# custom-monitoring.yaml $schema: http://azureml/sdk-2-0/Schedule.json name: my-custom-signal trigger: type: recurrence frequency: day # Possible frequency values include "minute," "hour," "day," "week," and "month." interval: 7 # Monitoring runs every day when you use the value 1. 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: - [email protected]
- Для
Выполните следующую команду, чтобы создать модель:
az ml schedule create -f ./custom-monitoring.yaml
Интерпретация результатов мониторинга
После настройки монитора модели и завершения первого запуска можно просмотреть результаты в студии машинного обучения Azure.
В студии в разделе "Управление" выберите "Мониторинг". На странице "Мониторинг" выберите имя монитора модели, чтобы просмотреть ее страницу обзора. На этой странице показана модель мониторинга, конечная точка и развертывание. Он также содержит подробные сведения о настроенных сигналах. На следующем рисунке показана страница обзора мониторинга, включающая сигналы смещения данных и качества данных.
Просмотрите раздел "Уведомления" на странице обзора. В этом разделе вы увидите функцию для каждого сигнала, который нарушает настроенный порог для соответствующей метрики.
В разделе "Сигналы" выберите data_drift , чтобы просмотреть подробные сведения о сигнале смещения данных. На странице сведений можно увидеть значение метрик смещения данных для каждой числовой и категориальной функции, в которую входит конфигурация мониторинга. Если монитор имеет несколько запусков, вы увидите линию тренда для каждой функции.
На странице сведений выберите имя отдельной функции. Откроется подробный вид, показывающий распределение производства по сравнению с эталонным распределением. Это представление также можно использовать для отслеживания смещения с течением времени для функции.
Вернитесь на страницу обзора мониторинга. В разделе "Сигналы" выберите data_quality , чтобы просмотреть подробные сведения об этом сигнале. На этой странице вы можете увидеть частоту пустых значений, частоту выходов за пределы и частоту ошибок типа данных для каждой отслеживаемой характеристики.
Мониторинг модели — это непрерывный процесс. При использовании мониторинга модели машинного обучения Azure можно настроить несколько сигналов мониторинга, чтобы получить широкое представление о производительности моделей в рабочей среде.
Интеграция мониторинга модели машинного обучения Azure с сеткой событий
При использовании сетки событий можно настроить события, созданные мониторингом модели машинного обучения Azure, для активации приложений, процессов и рабочих процессов CI/CD. События можно использовать с помощью различных обработчиков событий, таких как Центры событий Azure, Функции Azure и Azure Logic Apps. При обнаружении смещения мониторы могут выполнять действия программным способом, например запуск конвейера машинного обучения для повторного обучения модели и повторного развертывания.
Чтобы интегрировать мониторинг модели машинного обучения Azure с сеткой событий, выполните действия, описанные в следующих разделах.
Создание системного раздела
Если системный раздел сетки событий не используется для мониторинга, создайте его. Инструкции см. в статье "Создание, просмотр и управление системной сеткой событий" на портале Azure.
Создание подписки на событие
На портале Azure перейдите в рабочую область Машинного обучения Azure.
Выберите События, а затем выберите Подписка на события.
Рядом с именем введите имя подписки на события, например MonitoringEvent.
В разделе Типы событий выберите только изменение состояния выполнения.
Предупреждение
Выберите только Изменение состояния запуска для типа события. Не выбирайте обнаружение смещения набора данных, которое относится к дрейфу данных версии 1, а не мониторингу модели машинного обучения Azure.
Перейдите на вкладку "Фильтры". В разделе "Дополнительные фильтры" выберите "Добавить новый фильтр" и введите следующие значения:
- В разделе "Ключ" введите данные. RunTags.azureml_modelmonitor_threshold_breached.
- Под Оператор выберите Строка содержит.
- В поле "Значение" введите ошибку, вызванную одной или несколькими характеристиками, нарушающими пороговые значения метрик.
При использовании этого фильтра события создаются при изменении состояния выполнения любого монитора в рабочей области машинного обучения Azure. Состояние выполнения может измениться с завершенного на неудачное или с неудачного на завершенное.
Чтобы отфильтровать на уровне мониторинга, снова нажмите кнопку "Добавить новый фильтр ", а затем введите следующие значения:
- Под Ключ введите data.RunTags.azureml_modelmonitor_threshold_breached.
- В разделе Оператор выберите Строка содержит.
- В разделе "Значение" введите имя сигнала монитора, для которого требуется отфильтровать события, например credit_card_fraud_monitor_data_drift. Имя, которое вы вводите, должно соответствовать имени сигнала мониторинга. Любой сигнал, используемый в фильтрации, должен иметь имя в формате
<monitor-name>_<signal-description>
, включающее имя монитора и описание сигнала.
Перейдите на вкладку Основные. Настройте конечную точку, которая будет служить обработчиком событий, например, Центры событий.
Выберите Создать, чтобы создать подписку на события.
Просмотреть события
После записи событий их можно просмотреть на странице конечной точки обработчика событий:
Вы также можете просматривать события на вкладке метрик Azure Monitor: