Мониторинг Машинного обучения Azure

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

Совет

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

Если вы хотите отслеживать сведения, созданные моделями, развернутыми в сетевых конечных точках, см. статью Мониторинг сетевых конечных точек.

Общие сведения об Azure Monitor

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

Начните со статьи Мониторинг ресурсов Azure с помощью Azure Monitor, в которой описаны следующие понятия:

  • Общие сведения об Azure Monitor
  • затраты, связанные с мониторингом;
  • данные мониторинга, собираемые в Azure;
  • настройка сбора данных;
  • стандартные средства Azure для анализа данных мониторинга и оповещения.

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

Совет

Сведения о затратах, связанных с Azure Monitor, см. в статье "Мониторинг использования и оценка затрат на Azure Monitor". О том, сколько времени потребуется для отображения данных в Azure Monitor, см. в статье "Сроки приема данных журналов в Azure Monitor".

Мониторинг данных Машинного обучения Azure

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

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

Сбор и маршрутизация

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

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

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

Важно!

Для включения этих параметров требуются дополнительные службы Azure (учетная запись хранения, концентратор событий или Log Analytics), что может привести к увеличению затрат. Рассчитать оценочную стоимость можно с помощью калькулятора цен Azure.

Для Машинного обучения Azure можно настроить следующие журналы:

Категория Описание
AmlComputeClusterEvent События из вычислительных кластеров Машинного обучения Azure.
AmlComputeClusterNodeEvent (не рекомендуется) События из узлов вычислительного кластера Машинного обучения Azure.
AmlComputeJobEvent События из заданий, выполняемых в вычислительной среде Машинного обучения Azure.
AmlComputeCpuGpuUtilization Журналы использования ЦП и ГП вычислительных ресурсов служб ML.
AmlRunStatusChangedEvent Изменения состояния выполнения ML.
ModelsChangeEvent События при доступе к модели Машинного обучения (создание и удаление).
ModelsReadEvent События при чтении модели Машинного обучения.
ModelsActionEvent События при доступе к модели Машинного обучения.
DeploymentReadEvent События при считывании развертывания модели.
DeploymentEventACI События при развертывании модели в ACI (очень большое количество элементов).
DeploymentEventAKS События при развертывании модели в AKS (очень большое количество элементов).
InferencingOperationAKS События для операции вывода или связанной операции с типом вычислений AKS.
InferencingOperationACI События для операции вывода или связанной операции с типом вычислений ACI.
EnvironmentChangeEvent События при конфигурации окружения машинного обучения (создание или удаление).
EnvironmentReadEvent События при чтении конфигурации окружения машинного обучения (очень большое количество элементов).
DataLabelChangeEvent События при создании или удалении меток данных или их проектов.
DataLabelReadEvent События при чтении меток данных или их проектов.
ComputeInstanceEvent События при доступе к вычислительному экземпляру Машинного (очень большое количество элементов).
DataStoreChangeEvent События при создании или удалении хранилища данных Машинного обучения.
DataStoreReadEvent События при чтении хранилища данных Машинного обучения.
DataSetChangeEvent События при создании или удалении хранилища данных Машинного обучения.
DataSetReadEvent События при чтении хранилища данных Машинного обучения.
PipelineChangeEvent События при создании или удалении проекта, конечной точки или модуля конвейера Машинного обучения.
PipelineReadEvent События при чтении проекта, конечной точки или модуля конвейера Машинного обучения.
RunEvent События при создании или удалении экспериментов Машинного обучения.
RunReadEvent События при чтении экспериментов Машинного обучения.

Примечание

Начиная с февраля 2022 г. категорию AmlComputeClusterNodeEvent не рекомендуется использовать. Вместо нее рекомендуется использовать категорию AmlComputeClusterEvent.

Примечание

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

Собираемые метрики и журналы обсуждаются в следующих разделах.

Анализ метрик

Для анализа метрик Машинного обучения Azure вместе с метриками из других служб Azure можно открыть пункт Метрики меню Azure Monitor. Подробные сведения об использовании этого средства см. в статье Начало работы с обозревателем метрик Azure.

Список собираемых метрик платформы см. в разделе "Метрики" справочника по данным мониторинга Машинного обучения Azure.

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

Обозреватель метрик с выбранной рабочей областью службы

Для справки можно просмотреть список всех метрик ресурсов, поддерживаемых Azure Monitor.

Совет

Данные метрик Azure Monitor доступны в течение 90 дней, но при создании диаграмм визуализацию можно выполнить только за 30 дней. Например, если требуется визуализировать 90-дневный период, его необходимо разбить на три диаграммы по 30 дней.

Фильтрация и разбиение

Для метрик, поддерживающих измерения, можно применять фильтры по значению измерения — например, по числу активных ядер в кластере с именем cpu-cluster.

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

Дополнительные сведения о фильтрации и разбиении см. в статье "Расширенные возможности обозревателя метрик Azure".

анализ журналов;

Для использования Azure Monitor Log Analytics необходимо создать диагностическую конфигурацию и включить параметр Отправлять сведения в Log Analytics. Дополнительные сведения см. в разделе Сбор и маршрутизация.

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

Таблица Описание
AmlComputeClusterEvent События из вычислительных кластеров Машинного обучения Azure.
AmlComputeClusterNodeEvent (не рекомендуется) События из узлов вычислительного кластера Машинного обучения Azure.
AmlComputeJobEvent События из заданий, выполняемых в вычислительной среде Машинного обучения Azure.
AmlComputeInstanceEvent События при доступе к вычислительному экземпляру Машинного обучения (чтение/запись). Категория включает такие события: ComputeInstanceEvent (часто выполняемое).
AmlDataLabelEvent События при доступе к меткам данных или их проектам (чтение, создание или удаление). Категория включает такие события: DataLabelReadEvent, DataLabelChangeEvent.
AmlDataSetEvent События при доступе к зарегистрированному или незарегистрированному набору данных Машинного обучения (чтение, создание или удаление). Категория включает такие события: DataSetReadEvent, DataSetChangeEvent.
AmlDataStoreEvent События при доступе к хранилищу данных Машинного обучения (чтение, создание или удаление). Категория включает такие события: DataStoreReadEvent, DataStoreChangeEvent.
AmlDeploymentEvent События, происходящие при развертывании модели в ACI или AKS. Категория включает такие события: DeploymentReadEvent, DeploymentEventACI, DeploymentEventAKS.
AmlInferencingEvent События для операции вывода или связанной операции с типом вычислений AKS или ACI. Категория включает такие события: InferencingOperationACI (часто выполняемое),InferencingOperationAKS (часто выполняемое).
AmlModelsEvent События при доступе к модели Машинного обучения (чтение, создание или удаление). Включает события, возникающие при выполнении упаковки моделей и ресурсов в готовые к сборке пакеты. Категория включает такие события: ModelsReadEvent, ModelsActionEvent.
AmlPipelineEvent События при доступе к черновику, конечной точке или модулю конвейера Машинного обучения (чтение, создание или удаление). Категория включает такие события: PipelineReadEvent, PipelineChangeEvent.
AmlRunEvent События при доступе к экспериментам Машинного обучения (чтение, создание или удаление). Категория включает такие события: RunReadEvent, RunEvent.
AmlEnvironmentEvent События, возникающие при конфигурации окружения машинного обучения (чтение, создание или удаление). Категория включает такие события: EnvironmentReadEvent (часто выполняемое), EnvironmentChangeEvent.

Примечание

Начиная с февраля 2022 г. таблицу AmlComputeClusterNodeEvent не рекомендуется использовать. Вместо нее рекомендуется использовать таблицу AmlComputeClusterEvent.

Важно!

Если выбрать в меню Машинного обучения Azure пункт Журналы, откроется Log Analytics с текущей рабочей областью в качестве области запроса. Это означает, что запросы к журналам будут содержать данные только из этого ресурса. Если требуется выполнить запрос, включающий данные из других баз данных или служб Azure, выберите в меню Azure Monitor пункт Журналы. Подробные сведения см. в статье Область запросов журнала и временной диапазон в Azure Monitor Log Analytics.

Подробные сведения о журналах и метриках см. в "Справочнике по данным мониторинга Машинного обучения Azure".

Примеры запросов Kusto

Важно!

Если выбрать в меню службы пункт Журналы, откроется Log Analytics с текущей рабочей областью Машинного обучения Azure в качестве области запроса. Это означает, что запросы к журналам будут содержать данные только из этого ресурса. Если требуется выполнить запрос, включающий данные из других рабочих областей или служб Azure, выберите пункт Журналы в меню Azure Monitor. Подробные сведения см. в статье Область запросов журнала и временной диапазон в Azure Monitor Log Analytics.

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

  • Получение невыполненных заданий за последние пять дней:

    AmlComputeJobEvent
    | where TimeGenerated > ago(5d) and EventType == "JobFailed"
    | project  TimeGenerated , ClusterId , EventType , ExecutionState , ToolType
    
  • Получение записей о задании с определенным именем:

    AmlComputeJobEvent
    | where JobName == "automl_a9940991-dedb-4262-9763-2fd08b79d8fb_setup"
    | project  TimeGenerated , ClusterId , EventType , ExecutionState , ToolType
    
  • Получение событий кластера за последние пять дней для кластеров с размером виртуальной машины Standard_D1_V2:

    AmlComputeClusterEvent
    | where TimeGenerated > ago(4d) and VmSize == "STANDARD_D1_V2"
    | project  ClusterName , InitialNodeCount , MaximumNodeCount , QuotaAllocated , QuotaUtilized
    
  • Получение распределений узлов кластера за последние восемь дней:

    AmlComputeClusterEvent
    | where TimeGenerated > ago(8d) and TargetNodeCount  > CurrentNodeCount
    | project TimeGenerated, ClusterName, CurrentNodeCount, TargetNodeCount
    

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

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

    AmlComputeClusterEvent
    | where TimeGenerated > ago(1d)
    | summarize avgRunningNodes=avg(TargetNodeCount), maxRunningNodes=max(TargetNodeCount)
             by Workspace=tostring(split(_ResourceId, "/")[8]), ClusterName, ClusterType, VmSize, VmPriority
    

Создание панели мониторинга рабочей области с помощью шаблона

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

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

видны узлы

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

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

Тип оповещения Условие Описание
Неудачные развертывания модели Тип агрегирования: сумма, оператор: больше, пороговое значение: 0 Когда не удалось произвести развертывание одной или нескольких моделей
Процент использования квоты Тип агрегирования: среднее, оператор: больше, пороговое значение: 90 Когда квота выбрана более чем на 90 %
Недоступные для использования узлы Тип агрегирования: сумма, оператор: больше, пороговое значение: 0 Когда есть один или несколько неиспользуемых узлов

Дальнейшие действия