Поделиться через


Мониторинг производительности моделей, развернутых в рабочей среде

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)

Узнайте, как использовать мониторинг модели Машинное обучение Azure для непрерывного отслеживания производительности моделей машинного обучения в рабочей среде. Мониторинг моделей предоставляет широкий обзор сигналов мониторинга и оповещений о потенциальных проблемах. При мониторинге сигналов и метрик производительности моделей в рабочей среде можно критически оценить внутренние риски, связанные с ними, и определить слепые пятна, которые могут негативно повлиять на ваш бизнес.

В этой статье вы узнаете, как выполнить следующие задачи:

  • Настройка нестандартного и расширенного мониторинга для моделей, развернутых в Машинное обучение Azure сетевых конечных точек
  • Мониторинг метрик производительности для моделей в рабочей среде
  • Мониторинг моделей, развернутых вне Машинное обучение Azure или развернутых в Машинное обучение Azure конечных точках пакетной службы
  • Настройка мониторинга модели с помощью пользовательских сигналов и метрик
  • Интерпретация результатов мониторинга
  • Интеграция мониторинга моделей Машинное обучение Azure с Сетка событий Azure

Необходимые компоненты

Перед выполнением действий, описанных в этой статье, убедитесь, что выполнены следующие необходимые условия:

  • Управление доступом на основе ролей Azure (Azure RBAC) используется для предоставления доступа к операциям в Машинном обучении Azure. Чтобы выполнить действия, описанные в этой статье, учетной записи пользователя должна быть назначена роль владельца или участника для рабочей области Машинного обучения Azure либо пользовательская роль с разрешением Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. Дополнительные сведения см. в статье Управление доступом к рабочей области Машинного обучения Azure.

  • Для мониторинга модели, развернутой в Машинное обучение Azure веб-конечной точке (управляемой сетевой конечной точке или веб-конечной точке Kubernetes), обязательно выполните следующее:

  • Для мониторинга модели, развернутой в Машинное обучение Azure пакетной конечной точке или развернутой вне Машинное обучение Azure, обязательно выполните следующее:

    • Есть средства для сбора рабочих данных и регистрации их в качестве Машинное обучение Azure ресурса данных.
    • Постоянно обновляйте зарегистрированный ресурс данных для мониторинга моделей.
    • (Рекомендуется) Зарегистрируйте модель в рабочей области Машинное обучение Azure для отслеживания происхождения.

Внимание

Задания мониторинга моделей запланированы на выполнение в бессерверных пулах вычислений Spark с поддержкой следующих типов экземпляров виртуальных машин: Standard_E4s_v3, , Standard_E8s_v3Standard_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_1test_2. Чтобы обеспечить наличие уникальных идентификаторов, которые соответствуют собранным выходным данным модели вывода рабочей среды, убедитесь, что вы индексируете каждый correlationid из них соответствующим образом. Если зарегистрированный объект JSON имеет только одну строку, то correlationid будет correlationid_0.

Чтобы избежать использования этого индексирования, рекомендуется регистрировать уникальный идентификатор в собственном столбце в кадре данных pandas, который вы регистрируете с помощью сборщика данных Машинное обучение Azure. Затем в конфигурации мониторинга модели укажите имя этого столбца, чтобы объединить выходные данные модели с данными истинной истины. Если идентификаторы для каждой строки в обоих наборах данных одинаковы, Машинное обучение Azure мониторинг модели может выполнять мониторинг производительности модели.

Пример рабочего процесса для производительности модели мониторинга

Чтобы понять понятия, связанные с мониторингом производительности модели, рассмотрим этот пример рабочего процесса. Предположим, что вы развертываете модель для прогнозирования того, являются ли транзакции кредитной карты мошенническими или нет, вы можете выполнить следующие действия, чтобы отслеживать производительность модели:

  1. Настройте развертывание для сбора данных сборщика данных для сбора рабочих данных модели (входных и выходных данных). Предположим, что выходные данные хранятся в столбце is_fraud.
  2. Для каждой строки собранных данных вывода регистрируются уникальные идентификаторы. Уникальный идентификатор может поступать из приложения или использовать correlationid этот Машинное обучение Azure уникально генерируется для каждого зарегистрированного объекта JSON.
  3. Позже, когда данные о действительности (или фактические) is_fraud становятся доступными, они также регистрируются и сопоставляются с тем же уникальным идентификатором, который был зарегистрирован с выходными данными модели.
  4. Эти данные об истинной действительности is_fraud также собираются, поддерживаются и регистрироваться в Машинное обучение Azure в качестве ресурса данных.
  5. Создайте сигнал мониторинга производительности модели, который объединяет производственные ресурсы данных модели и ресурсы данных истинной истины, используя уникальные столбцы идентификаторов.
  6. Наконец, вычислить метрики производительности модели.

После выполнения предварительных требований для мониторинга производительности модели можно настроить мониторинг модели с помощью следующей команды 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 с сеткой событий, выполните приведенные ниже действия.

  1. Выполните действия, описанные в разделе "Настройка" в портал Azure. Присвойте подписке на события имя, например MonitoringEvent, и выберите только поле "Состояние запуска" в разделе "Типы событий".

    Предупреждение

    Не забудьте выбрать состояние запуска для типа события. Не выбирайте обнаружение смещения набора данных, так как оно относится к дрейфу данных версии 1, а не Машинное обучение Azure мониторинг модели.

  2. Выполните действия, описанные в разделе "Фильтр и подписка на события", чтобы настроить фильтрацию событий для вашего сценария. Перейдите на вкладку "Фильтры" и добавьте следующий ключ, оператор и значение в разделе "Дополнительные фильтры".

    • Ключ: data.RunTags.azureml_modelmonitor_threshold_breached
    • Значение: произошел сбой из-за одного или нескольких функций, которые нарушают пороговые значения метрик
    • Оператор: Строка содержит

    С помощью этого фильтра события создаются при изменении состояния выполнения (с "Завершено" до "Не удалось" или "Не выполнено") для любого монитора в рабочей области Машинное обучение Azure.

  3. Чтобы отфильтровать на уровне мониторинга, используйте следующий ключ, оператор и значение в разделе расширенных фильтров:

    • Ключ: data.RunTags.azureml_modelmonitor_threshold_breached
    • Значение: your_monitor_name_signal_name
    • Оператор: Строка содержит

    Убедитесь, что your_monitor_name_signal_name это имя сигнала в определенном мониторе, для которого требуется отфильтровать события. Например, credit_card_fraud_monitor_data_drift. Для работы этого фильтра эта строка должна соответствовать имени сигнала мониторинга. Вы должны назовите сигнал как именем монитора, так и именем сигнала для этого случая.

  4. После завершения настройки подписки на события выберите нужную конечную точку, которая будет служить обработчиком событий, например Центры событий Azure.

  5. После записи событий их можно просмотреть на странице конечной точки:

    Снимок экрана: события, отображаемые на странице конечной точки.

Вы также можете просматривать события на вкладке метрик Azure Monitor:

Снимок экрана: события, отображаемые на вкладке метрик Azure Monitor.