Активация приложений, процессов или процессов CI/CD на основе событий службы "Машинное обучение Azure" (предварительная версия)

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

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

Когда следует использовать сетку событий для действий, управляемых событиями:

  • отправка сообщений электронной почты при сбое выполнения и завершении выполнения;
  • использование функции Azure после регистрации модели;
  • потоковая передача событий от Машинного обучения Azure в различные конечные точки;
  • запуск конвейера машинного обучения при обнаружении смещения.

Внимание

Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Предварительная версия предоставляется без соглашения об уровне обслуживания и не рекомендована для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

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

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

Модель и типы событий

Служба "Сетка событий Azure" считывает события из таких источников, как Машинное обучение Azure и другие службы Azure. Затем эти события отправляются обработчикам событий, таким как концентраторы событий Azure, функции Azure, Logic Apps и другие. На следующей схеме показано, как сетка событий подключает источники и обработчики, но не является исчерпывающим списком поддерживаемых интеграции.

Функциональная модель Сетки событий Azure

Дополнительные сведения об источниках событий и обработчиках событий см. в статье Что такое сетка событий?.

Типы событий для Машинного обучения Azure

Машинное обучение Azure предоставляет события в различных точках жизненного цикла машинного обучения:

Тип события Описание
Microsoft.MachineLearningServices.RunCompleted Вызывается после завершения эксперимента машинного обучения.
Microsoft.MachineLearningServices.ModelRegistered (предварительная версия) Вызывается при регистрации модели машинного обучения в рабочей области.
Microsoft.MachineLearningServices.ModelDeployed (предварительная версия) Вызывается при завершении развертывания службы вывода с одной или несколькими моделями.
Microsoft.MachineLearningServices.DatasetDriftDetected (предварительная версия) Вызывается при завершении задания обнаружения смещения данных для двух наборов данных.
Microsoft.MachineLearningServices.RunStatusChanged Вызывается при изменении состояния выполнения.

Фильтр и подписка на события

Эти события публикуются с помощью Сетки событий Azure. В портал Azure, PowerShell или Azure CLI можно легко подписаться на события, указав один или несколько типов событий и условия фильтрации.

При настройке событий можно применять фильтры только для запуска на конкретных данных событий. В следующем примере для событий изменения состояния выполнения можно фильтровать по типам запуска. Событие активируется только при выполнении условий. Дополнительные сведения о данных событий, которые можно отфильтровать, см. в схеме сетки событий Машинное обучение Azure.

Подписки на события службы "Машинное обучение Azure" защищаются с помощью управления доступом на основе ролей (RBAC) Azure. Создавать, обновлять и удалять подписки на события могут только участники или владельцы рабочей области. Фильтры могут применяться к подпискам на события во время создания подписки на событие или позже.

  1. Перейдите к порталу Azure, выберите там новую или существующую подписку.

  2. Выберите запись "События" в области навигации слева, а затем щелкните + Подписка на события.

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

    события фильтра

  • Фильтрация по типу события: подписка на событие может указывать один или несколько типов событий Машинное обучение Azure.

  • Фильтрация по теме события: Сетка событий Azure поддерживает фильтры субъектов на основе начала и заканчивается совпадениями, чтобы события с соответствующим субъектом были доставлены подписчику. Другие события машинного обучения имеют другой формат темы.

    Тип события Формат темы Образец темы
    Microsoft.MachineLearningServices.RunCompleted experiments/{ExperimentId}/runs/{RunId} experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94
    Microsoft.MachineLearningServices.ModelRegistered (предварительная версия) models/{modelName}:{modelVersion} models/sklearn_regression_model:3
    Microsoft.MachineLearningServices.ModelDeployed (предварительная версия) endpoints/{serviceId} endpoints/my_sklearn_aks
    Microsoft.MachineLearningServices.DatasetDriftDetected (предварительная версия) datadrift/{data.DataDriftId}/run/{data.RunId} datadrift/4e694bf5-712e-4e40-b06a-d2a2755212d4/run/my_driftrun1_1550564444_fbbcdc0f
    Microsoft.MachineLearningServices.RunStatusChanged experiments/{ExperimentId}/runs/{RunId} experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94
  • Расширенная фильтрация: Сетка событий Azure также поддерживает расширенную фильтрацию на основе опубликованной схемы событий. Сведения о схеме событий Машинного обучение Azure можно найти в разделе Схема событий службы "Сетка событий Azure" для Машинного обучение Azure. Для Microsoft.MachineLearningServices.ModelRegistered события, чтобы отфильтровать значение тега модели:

    --advanced-filter data.ModelTags.key1 StringIn ('value1')
    

    Дополнительные сведения о том, как применять фильтры, см. в разделе Фильтрация событий для сетки событий.

Использование событий Машинного обучения

Приложения, которые обрабатывают события Машинного обучения, должны следовать нескольким рекомендациям.

  • Так как в один обработчик событий можно настроить маршрутизацию событий из нескольких подписок, не следует предполагать, что события поступают из определенного источника. Но необходимо проверять тему сообщения, чтобы убедиться, что оно поступает из ожидаемой рабочей области машинного обучения.
  • Подобным образом убедитесь, что вы готовы к обработке этого типа событий (eventType), а также не следует предполагать, что все получаемые события будут иметь ожидаемый тип.
  • Так как сообщения могут поступать не по порядку и после некоторой задержки, используйте поля ETag, чтобы понять, являются ли сведения об объектах актуальными. Используйте поля sequencer для понимания последовательности событий для каждого отдельного объекта.
  • Игнорируйте поля, которые вам непонятны. Такой подход поможет обеспечить устойчивость к новым функциям, которые могут быть добавлены в будущем.
  • Операции Машинного обучения Azure, которые завершились сбоем или отменены, не активируют событие. Например, если развертывание модели завершается сбоем, Microsoft.MachineLearningServices.ModelDeployed не будет запущено. При проектировании приложений рекомендуется использовать такой режим сбоя. Вы всегда можете использовать пакет SDK, CLI или портал Машинного обучения Azure, чтобы проверить состояние операции и ознакомиться с подробными причинами сбоя.

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

  • Функции Azure
  • Приложения логики Azure
  • Центры событий Azure
  • Конвейеры фабрики данных Azure
  • Универсальные веб-перехватчики, которые могут размещаться на платформе Azure или в другом месте

Настройка на портале Azure

  1. Откройте портал Azure и перейдите к рабочей области Машинного обучения Azure.

  2. На панели слева выберите События, а затем выберите Подписки на события.

    Снимок экрана: выбор подписки на события.

  3. Выберите тип события для использования.

    Снимок экрана: форма создания подписки на событие.

  4. Выберите конечную точку, в которую будет опубликовано событие. На следующем снимке экрана Концентратор событий является выбранной конечной точкой:

    На снимке экрана показана область

После подтверждения выбора нажмите кнопку "Создать". После настройки эти события будут отправлены в конечную точку.

Настройка с помощью CLI

Можно либо установить последнюю версию Azure CLI, либо использовать Azure Cloud Shell, предоставляемый в рамках подписки Azure.

Чтобы установить расширение Сетки событий, выполните следующую команду в CLI:

az extension add --name eventgrid

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

# Select the Azure subscription that contains the workspace
az account set --subscription "<name or ID of the subscription>"

# Subscribe to the machine learning workspace. This example uses EventHub as a destination. 
az eventgrid event-subscription create --name {eventGridFilterName} \
  --source-resource-id /subscriptions/{subId}/resourceGroups/{RG}/providers/Microsoft.MachineLearningServices/workspaces/{wsName} \
  --endpoint-type eventhub \
  --endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.EventHub/namespaces/n1/eventhubs/EH1 \
  --included-event-types Microsoft.MachineLearningServices.ModelRegistered \
  --subject-begins-with "models/mymodelname"

Примеры

Пример. Отправка оповещений электронной почты

Используйте Azure Logic Apps, чтобы настроить сообщения электронной почты для всех событий. Настройте условия и укажите получателей, чтобы обеспечить совместную работу и осведомленность в разных командах.

  1. На портале Azure перейдите в рабочую область Машинного обучения Azure и выберите вкладку события на панели слева. Там выберите Logic apps.

    Снимок экрана выбор пункта Logic Apps.

  2. Войдите в пользовательский интерфейс приложения логики и выберите службу "Машинное обучение" в качестве типа темы.

    На снимке экрана показано диалоговое окно

  3. Выберите событие, для которого нужно получать уведомления. Для примера посмотрите на снимок экрана RunCompleted.

    Снимок экрана: Служба машинного обучения как тип ресурса.

  4. Затем добавьте шаг для использования этого события и выполните поиск по электронной почте. Существует несколько разных учетных записей почты, которые можно использовать для получения событий. Также можно настроить условия отправки оповещений по электронной почте.

    На снимке экрана показано диалоговое окно

  5. Выберите Отправить сообщение электронной почты и введите параметры. В теме можно указать Тип события и Тему, чтобы упростить фильтрацию событий. Также можно включить ссылку на страницу рабочей области для выполнения в тексте сообщения.

    Чтобы сохранить это действие, выберите Сохранить как в левом углу страницы.

    На снимке экрана показано диалоговое окно

Пример. Триггеры переобучения данных активируют переобучение

Внимание

В этом примере используется функция смещения данных, которая становится доступной только при использовании пакета SDK машинного обучения Azure версии 1 или расширения Azure CLI версии 1 для Машинного обучения Azure. Дополнительные сведения см. в статье "Что такое Машинное обучение Azure CLI и пакет SDK версии 2".

Модели остаются устаревшими с течением времени и не остаются полезными в контексте, в котором он работает. Одним из способов определить, пора ли переучивать модель, является обнаружение смещения данных.

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

Перед началом работы выполните следующие действия.

В этом примере простой конвейер Фабрики данных используется для копирования файлов в хранилище BLOB-объектов и запуска опубликованного конвейера Машинного обучения. Дополнительные сведения об этом сценарии см. в статье о настройке Машинное обучение шага в Фабрика данных Azure.

Снимок экрана: обучающий конвейер Фабрики данных Azure.

  1. Начните с создания приложения логики. Перейдите на портал Azure, найдите Logic Apps и выберите "Создать".

    search-logic-app

  2. Введите необходимую информацию. Чтобы упростить работу, используйте ту же подписку и группу ресурсов, что и конвейер Фабрики данных Azure, с рабочей областью Машинного обучения Azure.

    На снимке экрана показана область создания приложения логики.

  3. После создания приложения логики выберите "Когда происходит событие ресурса сетки событий".

    На снимке экрана показан конструктор Logic Apps с разделом

  4. Войдите и укажите сведения о событии. В разделе Имя ресурса укажите имя рабочей области. В разделе Тип события укажите DatasetDriftDetected.

    Снимок экрана: элемент типа события

  5. Добавьте новый шаг и выполните поиск по Фабрике данных Azure. Выберите Создание конвейера.

    На снимке экрана показана область

  6. Войдите в систему и укажите опубликованный конвейер Фабрики данных Azure, который следует запустить.

    На снимке экрана показана область

  7. Сохраните и создайте приложение логики с помощью кнопки Сохранить в верхнем левом углу страницы. Чтобы просмотреть приложение, перейдите в рабочую область в портал Azure и выберите "События".

    На снимке экрана показаны события с выделенным приложением логики.

Теперь конвейер Фабрики данных активируется при смещении данных. Просмотрите сведения о выполнении смещения данных и конвейере машинного обучения в Студии машинного обучения Azure.

Снимок экрана: конечные точки конвейера.

Следующие шаги

Ознакомьтесь с дополнительными сведениями о Сетке событий и попробуйте использовать события Машинного обучения Microsoft Azure.