Управление и оптимизация затрат на Машинное обучение Azure

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

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

  • Настройте автоматическое масштабирование кластеров обучения
  • Установите квоты для своей подписки и рабочих областей
  • Определите политики завершения для задачи обучения
  • Используйте виртуальные машины с низким приоритетом
  • Планирование автоматической остановки и запуска для вычислительных экземпляров
  • Используйте зарезервированный экземпляр виртуальной машины Azure
  • Обучайтесь на месте
  • Проходите обучение параллельно
  • Установите политики хранения и удаления данных
  • Разверните ресурсы в одном регионе

Для получения информации о планировании и мониторинге затрат см. руководство по управлению затратами для Машинного обучения Microsoft Azure.

Важно!

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

Использование вычислительного кластера Машинного обучения Azure (AmlCompute)

Из-за постоянно меняющихся данных для поддержания точности моделей нужен быстрый и оптимизированный процесс их обучения и переобучения. Но непрерывное обучение влечет за собой затраты, особенно для моделей глубокого обучения на GPU.

Пользователи Машинного обучения Azure могут использовать управляемый вычислительный кластер Машинного обучения Azure, также называемый AmlCompute. AmlCompute поддерживает различные параметры GPU и ЦП. AmlCompute использует внутреннее размещение от имени вашей подписки с Машинным обучением Azure. На корпоративном уровне этот кластер обеспечивает такую же безопасность, соответствие нормативам и управление, что и вся облачная инфраструктура IaaS Azure.

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

Настройка автоматического масштабирования кластеров обучения

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

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

Важно!

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

Можно также настроить период бездействия узла перед уменьшением числа узлов. По умолчанию время бездействия до уменьшения число узлов равно 120 секунд.

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

Кластеры AmlCompute можно настроить на портале Azure в соответствии с изменением требований рабочей нагрузки, используя класс пакета SDK AmlCompute, интерфейс командной строки AmlCompute, интерфейсы REST API.

Установка квот для ресурсов

AmlCompute поставляется с конфигурацией квот (или ограничений) . Эта квота связана с семейством виртуальных машин (например, серия Dv2, серия NCv3) и для каждой подписки зависит от региона. Подписки начинаются с небольших значений по умолчанию для начала работы, этот параметр позволяет управлять объемом ресурсов Amlcompute, доступных для использования в вашей подписке.

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

Чтобы задать квоты на уровне рабочей области, войдите на портал Azure. Выберите любую рабочую область в своей подписке, а затем выберите Использование + квоты на левой панели. Затем перейдите на вкладку Настройка квот, чтобы просмотреть квоты. Для задания квоты нужны привилегии в области действия подписки, так как этот параметр влияет на несколько рабочих областей.

Настройка политик автотерминации заданий

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

Вот несколько доступных вариантов.

  • Определите параметр, называющийся max_run_duration_seconds, в конфигурации выполнения RunConfiguration, чтобы определить максимальную продолжительность выполнения в зависимости от выбранного типа вычислений (локальные или удаленные облачные вычисления).
  • Для настройки гиперпараметров определите политику раннего завершения из политики Bandit, политики остановки Median или политики выбора Truncation. Для дальнейшего управления очисткой гиперпараметров используйте такие параметры, как max_total_runs или max_duration_minutes.
  • Для автоматизированного машинного обучения настройте аналогичные политики завершения с помощью флага enable_early_stopping. Также используйте такие свойства, как iteration_timeout_minutes и experiment_timeout_minutes для управления максимальной длительностью задания или для всего эксперимента.

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

Azure позволяет использовать избыточную производительность в качестве виртуальных машин с низким приоритетом в масштабируемых наборах виртуальных машин, пакетной службе и службе машинного обучения. Эти выделения являются вытесняемыми, но их стоимость меньше, чем у выделенных виртуальных машин. Как правило, для пакетных рабочих нагрузок рекомендуется использовать виртуальные машины с низким приоритетом. Их также следует использовать там, где выполнение можно восстановить после прерывания либо с помощью повторной отправки (для пакетного вывода), либо с помощью перезапуска (для глубокого обучения с помощью контрольных точек).

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

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

Настройка расписания для вычислительных экземпляров

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

Использование зарезервированных экземпляров

Другим способом экономии на вычислительных ресурсах является зарезервированный экземпляр виртуальной машины Azure. Это предложение позволяет зафиксировать условия на один или три года. Скидки при этом достигают 72 % цены с оплатой по мере использования и применяются прямо к ежемесячному счету за использование Azure.

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

Проходите обучение параллельно

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

Установите политики хранения и удаления данных

Каждый раз, когда выполняется конвейер, на каждом шаге создаются промежуточные наборы данных. Со временем эти промежуточные наборы данных занимают место в вашей учетной записи хранения. Рассмотрите возможность настройки политик для управления вашими данными на протяжении всего их жизненного цикла для архивации и удаления ваших наборов данных. Дополнительные сведения см. в статье Оптимизация затрат за счет автоматизации уровней доступа к Хранилищу BLOB-объектов Azure.

Разверните ресурсы в одном регионе

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

Для сценариев работы в гибридном облаке, подобных тем, которые используют ExpressRoute, иногда может быть более рентабельным переместить все ресурсы в Azure для оптимизации сетевых затрат и задержки.

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