Активация приложений, процессов или процессов CI/CD на основе событий службы "Машинное обучение Azure" (предварительная версия)
Из этой статьи вы узнаете, как настроить приложения на основе событий, процессов или рабочих процессов CI/CD на основе событий Машинное обучение Azure. Например, сообщения электронной почты об ошибках или запуск конвейера машинного обучения при обнаружении определенных условий с помощью Сетка событий Azure.
Машинное обучение Azure управляет всем жизненным циклом процесса машинного обучения, включая обучение модели, развертывание модели и мониторинг. Сетку событий можно использовать для реагирования на события Машинного обучения Azure события, такие как завершение обучающих запусков, регистрация и развертывание моделей, а также обнаружение смещения данных, с помощью современных бессерверных архитектур. Затем можно подписываться на такие события, как изменение состояния выполнения, завершение выполнения, регистрация модели, развертывание модели либо определение расхождения данных в рабочей области, и использовать эти события.
Когда следует использовать сетку событий для действий, управляемых событиями:
- отправка сообщений электронной почты при сбое выполнения и завершении выполнения;
- использование функции Azure после регистрации модели;
- потоковая передача событий от Машинного обучения Azure в различные конечные точки;
- запуск конвейера машинного обучения при обнаружении смещения.
Внимание
Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Предварительная версия предоставляется без соглашения об уровне обслуживания и не рекомендована для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
Необходимые компоненты
Чтобы использовать сетку событий, необходимо предоставить участнику или владельцу доступ к рабочей области Машинное обучение Azure, для нее вы создаете события.
Модель и типы событий
Служба "Сетка событий Azure" считывает события из таких источников, как Машинное обучение Azure и другие службы Azure. Затем эти события отправляются обработчикам событий, таким как концентраторы событий Azure, функции Azure, Logic Apps и другие. На следующей схеме показано, как сетка событий подключает источники и обработчики, но не является исчерпывающим списком поддерживаемых интеграции.
Дополнительные сведения об источниках событий и обработчиках событий см. в статье Что такое сетка событий?.
Типы событий для Машинного обучения 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. Создавать, обновлять и удалять подписки на события могут только участники или владельцы рабочей области. Фильтры могут применяться к подпискам на события во время создания подписки на событие или позже.
Перейдите к порталу Azure, выберите там новую или существующую подписку.
Выберите запись "События" в области навигации слева, а затем щелкните + Подписка на события.
Выберите вкладку "Фильтры" и прокрутите вниз до пункта "Дополнительные фильтры". Для параметров Ключ и Значениеукажите типы свойств, по которым требуется выполнить фильтрацию. Здесь можно увидеть триггеры событий, когда тип выполнения является запуском конвейера или выполнением шага конвейера.
Фильтрация по типу события: подписка на событие может указывать один или несколько типов событий Машинное обучение 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
Откройте портал Azure и перейдите к рабочей области Машинного обучения Azure.
На панели слева выберите События, а затем выберите Подписки на события.
Выберите тип события для использования.
Выберите конечную точку, в которую будет опубликовано событие. На следующем снимке экрана Концентратор событий является выбранной конечной точкой:
После подтверждения выбора нажмите кнопку "Создать". После настройки эти события будут отправлены в конечную точку.
Настройка с помощью 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, чтобы настроить сообщения электронной почты для всех событий. Настройте условия и укажите получателей, чтобы обеспечить совместную работу и осведомленность в разных командах.
На портале Azure перейдите в рабочую область Машинного обучения Azure и выберите вкладку события на панели слева. Там выберите Logic apps.
Войдите в пользовательский интерфейс приложения логики и выберите службу "Машинное обучение" в качестве типа темы.
Выберите событие, для которого нужно получать уведомления. Для примера посмотрите на снимок экрана RunCompleted.
Затем добавьте шаг для использования этого события и выполните поиск по электронной почте. Существует несколько разных учетных записей почты, которые можно использовать для получения событий. Также можно настроить условия отправки оповещений по электронной почте.
Выберите Отправить сообщение электронной почты и введите параметры. В теме можно указать Тип события и Тему, чтобы упростить фильтрацию событий. Также можно включить ссылку на страницу рабочей области для выполнения в тексте сообщения.
Чтобы сохранить это действие, выберите Сохранить как в левом углу страницы.
Пример. Триггеры переобучения данных активируют переобучение
Внимание
В этом примере используется функция смещения данных, которая становится доступной только при использовании пакета SDK машинного обучения Azure версии 1 или расширения Azure CLI версии 1 для Машинного обучения Azure. Дополнительные сведения см. в статье "Что такое Машинное обучение Azure CLI и пакет SDK версии 2".
Модели остаются устаревшими с течением времени и не остаются полезными в контексте, в котором он работает. Одним из способов определить, пора ли переучивать модель, является обнаружение смещения данных.
В этом примере показано, как использовать сетку событий с приложением логики Azure для активации повторного обучения. В этом примере конвейер Фабрики данных Azure активируется, когда происходит смещение данных между обучением модели и обслуживанием наборов данных.
Перед началом работы выполните следующие действия.
- Настройка монитора набора данных для обнаружения смещения данных (SDK/CLI версии 1) в рабочей области
- Создайте опубликованный конвейер Фабрики данных Azure.
В этом примере простой конвейер Фабрики данных используется для копирования файлов в хранилище BLOB-объектов и запуска опубликованного конвейера Машинного обучения. Дополнительные сведения об этом сценарии см. в статье о настройке Машинное обучение шага в Фабрика данных Azure.
Начните с создания приложения логики. Перейдите на портал Azure, найдите Logic Apps и выберите "Создать".
Введите необходимую информацию. Чтобы упростить работу, используйте ту же подписку и группу ресурсов, что и конвейер Фабрики данных Azure, с рабочей областью Машинного обучения Azure.
После создания приложения логики выберите "Когда происходит событие ресурса сетки событий".
Войдите и укажите сведения о событии. В разделе Имя ресурса укажите имя рабочей области. В разделе Тип события укажите DatasetDriftDetected.
Добавьте новый шаг и выполните поиск по Фабрике данных Azure. Выберите Создание конвейера.
Войдите в систему и укажите опубликованный конвейер Фабрики данных Azure, который следует запустить.
Сохраните и создайте приложение логики с помощью кнопки Сохранить в верхнем левом углу страницы. Чтобы просмотреть приложение, перейдите в рабочую область в портал Azure и выберите "События".
Теперь конвейер Фабрики данных активируется при смещении данных. Просмотрите сведения о выполнении смещения данных и конвейере машинного обучения в Студии машинного обучения Azure.
Следующие шаги
Ознакомьтесь с дополнительными сведениями о Сетке событий и попробуйте использовать события Машинного обучения Microsoft Azure.
An introduction to Azure Event Grid (Общие сведения о службе "Сетка событий Azure")