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

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

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

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

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

Внимание

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

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

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

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

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

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

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

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

Внимание

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

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

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

Кластеры AmlCompute можно настроить для изменяющихся требований к рабочей нагрузке с помощью:

Настройка управляемых сетевых конечных точек для автомасштабирования

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

Azure Монитор автомасштабирования поддерживает широкий набор правил:

  • Масштабирование на основе метрик, например, загрузка центрального процессора >70 %
  • Масштабирование на основе расписания, например правила масштабирования для пиковых рабочих часов
  • Сочетание двух

Дополнительные сведения см. в разделе "Автомасштабирование сетевых конечных точек".

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

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

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

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

  1. Откройте Azure portal и выберите любую рабочую область в подписке.

  2. Выберите "Поддержка + устранение неполадок">"Использование + квоты" в меню рабочей области.

  3. Выберите Просмотр квот, чтобы просмотреть квоты в Azure Machine Learning Studio.

  4. На этой странице вы можете найти подписку и регион, чтобы задать квоты.

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

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

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

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

  • timeout Задайте свойство в конфигурации задания limits команды, чтобы управлять максимальной продолжительностью выполнения, которая может длиться на выбранных вычислительных ресурсах — локальных или удаленных облачных вычислениях.
  • Для настройки гиперпараметров определите политику раннего завершения из политики Bandit, политики остановки Median или политики выбора Truncation. Для дальнейшего управления очисткой гиперпараметров используйте такие параметры, как max_total_trials или timeout. Дополнительные сведения см. в разделе «Политика раннего завершения».
  • Для автоматического машинного обучения установите аналогичные политики завершения, используя флаг enable_early_termination. Вы также можете использовать такие свойства, как trial_timeout_minutes и timeout_minutes, чтобы управлять максимальной продолжительностью пробной версии или всего эксперимента. Дополнительные сведения см. в разделе "Условия выхода".

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

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

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

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

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

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

  • Включите завершение работы при бездействии (предварительная версия), чтобы сэкономить на затратах, когда виртуальная машина находится в простое в течение указанного периода времени. См. Настройка выключения при бездействии.
  • Настройте расписание для автоматического запуска и остановки вычислительного экземпляра (предварительная версия), если не используется для экономии затрат. См. статью "Расписание автоматического запуска и остановки".

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

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

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

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

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

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

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

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

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

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

Удаление неудачных развертываний

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