Использование виртуальных машин с низким приоритетом для пакетных развертываний

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

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

Совет

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

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

Как пакетное развертывание работает с виртуальными машинами с низким приоритетом

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

  • Задания пакетного развертывания используют виртуальные машины с низким приоритетом, выполняя Машинное обучение Azure вычислительные кластеры, созданные с низкоприоритетными виртуальными машинами. После того как развертывание связано с кластером виртуальных машин с низким приоритетом, все задания, созданные таким развертыванием, используют виртуальные машины с низким приоритетом. Конфигурация для каждого задания невозможна.
  • Задания пакетного развертывания автоматически ищут целевое число виртуальных машин в доступном вычислительном кластере на основе количества задач для отправки. Если виртуальные машины предварительно или недоступны, задания пакетного развертывания пытаются заменить потерянную емкость путем очереди неудачных задач в кластер.
  • Низкоприоритетные виртуальные машины имеют отдельную квоту виртуального ЦП, которая отличается от одной для выделенных виртуальных машин. Ядра с низким приоритетом в каждом регионе имеют ограничение по умолчанию 100 до 3000 в зависимости от вашей подписки. Количество ядер с низким приоритетом для каждой подписки можно увеличить, и оно является одним значением в разных семействах виртуальных машин. См. Машинное обучение Azure квоты вычислений.

Рекомендации и варианты использования

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

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

Ограничения

  • После того как развертывание связано с кластером виртуальных машин с низким приоритетом, все задания, созданные таким развертыванием, используют виртуальные машины с низким приоритетом. Конфигурация для каждого задания невозможна.
  • Перепланирование выполняется на мини-пакетном уровне независимо от хода выполнения. Возможность контрольных точек не предоставляется.

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

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

Создание пакетных развертываний, использующих виртуальные машины с низким приоритетом

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

Примечание.

После того как развертывание связано с кластером виртуальных машин с низким приоритетом, все задания, созданные таким развертыванием, используют виртуальные машины с низким приоритетом. Конфигурация для каждого задания невозможна.

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

Создайте определение YAML вычислений, например следующее, low-pri-cluster.yml:

$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json 
name: low-pri-cluster
type: amlcompute
size: STANDARD_DS3_v2
min_instances: 0
max_instances: 2
idle_time_before_scale_down: 120
tier: low_priority

Создайте вычислительные ресурсы с помощью следующей команды:

az ml compute create -f low-pri-cluster.yml

После создания нового вычисления можно создать или обновить развертывание, чтобы использовать новый кластер:

Чтобы создать или обновить развертывание в новом вычислительном кластере, создайте YAML файл конфигурации endpoint.yml:

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier@latest
compute: azureml:low-pri-cluster
resources:
  instance_count: 2
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 2
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 300

Затем создайте развертывание с помощью следующей команды:

az ml batch-endpoint create -f endpoint.yml

Просмотр и мониторинг размещения сделки узлов

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

  • Замещенные узлы
  • Предварительно подготовленные ядра

Чтобы просмотреть эти метрики в портал Azure:

  1. Перейдите к рабочей области Машинное обучение Azure в портал Azure.
  2. В разделе Мониторинг щелкните Метрики.
  3. Выберите нужные показатели из списка Показатель.

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