Управление и оптимизация затрат на Машинное обучение Azure
В этой статье показано, как управлять затратами и оптимизировать их при обучении и развертывании моделей машинного обучения для Машинное обучение Azure.
Нижеприведенные советы помогут вам управлять расходами на вычислительные ресурсы и эффективно их оптимизировать.
- Использование вычислительного кластера Машинное обучение Azure
- Настройте автоматическое масштабирование кластеров обучения
- Настройка управляемых сетевых конечных точек для автомасштабирования
- Установите квоты для своей подписки и рабочих областей
- Определите политики завершения для задачи обучения
- Используйте виртуальные машины с низким приоритетом
- Планирование автоматической остановки и запуска для вычислительных экземпляров
- Используйте зарезервированный экземпляр виртуальной машины Azure
- Проходите обучение параллельно
- Установите политики хранения и удаления данных
- Разверните ресурсы в одном регионе
- Удаление неудачных развертываний
Сведения о планировании и мониторинге затрат см. в статье "Планирование управления затратами на Машинное обучение Azure".
Внимание
Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Предварительная версия предоставляется без соглашения об уровне обслуживания. Мы не рекомендуем предварительной версии для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
Использование вычислительного кластера Машинное обучение Azure
Из-за постоянно меняющихся данных для поддержания точности моделей нужен быстрый и оптимизированный процесс их обучения и переобучения. Но непрерывное обучение влечет за собой затраты, особенно для моделей глубокого обучения на GPU.
Машинное обучение Azure пользователи могут использовать управляемый Машинное обучение Azure вычислительный кластер, также называемый AmlCompute. AmlCompute поддерживает различные параметры GPU и ЦП. AmlCompute использует внутреннее размещение от имени вашей подписки с Машинным обучением Azure. Он предоставляет тот же корпоративный уровень безопасности, соответствия и управления в облачном масштабе Azure IaaS.
Поскольку эти вычислительные пулы находятся внутри инфраструктуры IaaS Azure, можно развертывать обучение, масштабировать его и управлять им, выполняя те же требования безопасности и соответствия требованиям, что и для остальной части вашей инфраструктуры. Эти развертывания выполняются в вашей подписке и подчиняются вашим правилам управления. Дополнительные сведения см. в разделе "Планирование управления затратами на Машинное обучение Azure".
Настройка автоматического масштабирования кластеров обучения
Автоматическое масштабирование кластеров в зависимости от требований рабочей нагрузки помогает снизить затраты, так как используются только необходимые ресурсы.
Кластеры AmlCompute предназначены для динамического масштабирования в зависимости от рабочей нагрузки. Кластер можно масштабировать до настроенного максимального количества узлов. По завершении каждого задания кластер освобождает узлы и масштабируется до заданного минимального количества узлов.
Внимание
Чтобы исключить взимание оплаты при отсутствии выполняющихся заданий, установите минимальное количество узлов равным 0. Такая настройка позволяет службе Машинного обучения Azure отменять распределение узлов, когда они не используются. При любом значении больше 0 количество работающих узлов остается равным этому значению, даже если они не используются.
Можно также настроить период бездействия узла перед уменьшением числа узлов. По умолчанию время бездействия до уменьшения число узлов равно 120 секунд.
- При выполнении меньшего количества итеративных экспериментов уменьшите это время, чтобы сократить затраты.
- Если вы выполняете итеративную экспериментацию, возможно, потребуется увеличить время, чтобы не платить за постоянное масштабирование вверх и вниз после каждого изменения сценария обучения или среды.
Кластеры AmlCompute можно настроить для изменяющихся требований к рабочей нагрузке с помощью:
Настройка управляемых сетевых конечных точек для автомасштабирования
Благодаря автомасштабированию автоматически запускается именно тот объем ресурсов, который нужен для обработки нагрузки в вашем приложении. Управляемые сетевые конечные точки поддерживают автомасштабирование с помощью интеграции с функцией автомасштабирования Azure Monitor. Дополнительные сведения см. в статье "Конечные точки Online" и развертывания для вывода в режиме реального времени.
Автомасштабирование Azure Monitor поддерживает широкий набор правил:
- Масштабирование на основе метрик, например, использование >ЦП 70 %
- Масштабирование на основе расписания, например правила масштабирования для пиковых рабочих часов
- Сочетание двух
Дополнительные сведения см. в разделе "Автомасштабирование сетевых конечных точек".
Установка квот для ресурсов
AmlCompute поставляется с квотой или ограничением, конфигурацией. Эта квота выполняется по семейству виртуальных машин, например серии Dv2 или серии NCv3. Квота зависит от региона для каждой подписки. Подписки начинаются с небольших значений по умолчанию. Используйте этот параметр для управления объемом ресурсов AmlCompute, доступных для сплинирования в подписке. Дополнительные сведения см. в разделе Машинное обучение Azure Вычисление.
Кроме того, можно настроить квоту уровня рабочей области по семейству виртуальных машин для каждой рабочей области в подписке. Этот подход обеспечивает более детализированный контроль над затратами, которые могут возникнуть в каждой рабочей области, и ограничивает определенные семейства виртуальных машин. Дополнительные сведения см. в разделе "Квоты на уровне рабочей области".
Чтобы задать квоты на уровне рабочей области, выполните следующие действия.
Откройте портал Azure и выберите любую рабочую область в подписке.
Выберите "Поддержка и устранение неполадок>с использованием и квотами" в меню рабочей области.
Выберите "Просмотреть квоту", чтобы просмотреть квоты в Студия машинного обучения 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".
Установите политики хранения и удаления данных
При каждом запуске конвейера промежуточные наборы данных создаются на каждом шаге. Со временем эти промежуточные наборы данных занимают место в вашей учетной записи хранения. Рассмотрите возможность настройки политик для управления вашими данными на протяжении всего их жизненного цикла для архивации и удаления ваших наборов данных. Дополнительные сведения см. в разделе Оптимизация затрат путем автоматического управления жизненным циклом данных.
Разверните ресурсы в одном регионе
Вычисления, расположенные в разных регионах, могут столкнуться с задержкой сети и увеличением затрат на передачу данных. Затраты на сеть Azure связаны с исходящей пропускной способностью из центров обработки данных Azure. Чтобы снизить сетевые расходы, разверните все свои ресурсы в регионе. Предоставление вашей рабочей области Машинного обучения Azure и зависимых ресурсов в том же регионе, что и ваши данные, может помочь снизить затраты и повысить производительность.
В гибридных облачных сценариях, таких как те, которые используют Azure ExpressRoute, иногда могут быть более экономичными для перемещения всех ресурсов в Azure для оптимизации затрат на сеть и задержки.
Удаление неудачных развертываний
Управляемые сетевые конечные точки используют виртуальные машины для развертываний. Если вы отправили запрос на создание сетевого развертывания и произошел сбой, запрос может пройти этап при создании вычислений. В этом случае не удалось выполнить развертывание. Завершив отладку или расследование сбоя, удалите неудачные развертывания, чтобы сэкономить затраты.