Последние годы показали удивительный рост нейронных сетей глубокого обучения (DNN). Этот рост можно увидеть в более точных моделях и даже в открытии новых возможностей с генеративным ИИ: большие языковые модели (LLM), которые синтезируют естественный язык, генераторы преобразования текста в изображения и многое другое. Эти расширенные возможности DNN связаны с затратами на наличие массивных моделей, для обучения которых требуются значительные вычислительные ресурсы. Распределенное обучение решает эту проблему с помощью двух методов: параллелизм данных и параллелизм моделей. Параллелизм данных используется для масштабирования процесса обучения на несколько узлов и рабочих процессов, а параллелизм моделей разделяет модель и подгоняет ее к назначенной инфраструктуре. Создатель мудреца Амазонки распределенное обучение задания позволяют одним щелчком мыши (или одним вызовом API) настроить распределенный вычислительный кластер, обучить модель, сохранить результат в Простой сервис хранения Amazon (Amazon S3) и выключите кластер по завершении. Кроме того, SageMaker постоянно внедряет инновации в распределенное учебное пространство, запуская такие функции, как гетерогенные кластеры и распределенные обучающие библиотеки для параллелизм данных и параллелизм моделей.
Эффективное обучение в распределенной среде требует настройки гиперпараметров. Распространенным примером хорошей практики при обучении на нескольких графических процессорах является умножение размера пакета (или мини-пакета) на номер графического процессора, чтобы сохранить одинаковый размер пакета для каждого графического процессора. Однако настройка гиперпараметров часто влияет на сходимость модели. Следовательно, распределенное обучение должно сбалансировать три фактора: распределение, гиперпараметры и точность модели.
В этом посте мы исследуем влияние распределенного обучения на конвергенцию и способы его использования. Автоматическая настройка моделей Amazon SageMaker для точной настройки гиперпараметров модели для распределенного обучения с использованием параллелизма данных.
Исходный код, упомянутый в этом посте, можно найти на Репозиторий GitHub (рекомендуется экземпляр m5.xlarge).
Масштабируйте обучение с одной на распределенную среду
Параллелизм данных — это способ масштабировать процесс обучения на несколько вычислительных ресурсов и сократить время обучения. При параллелизме данных данные распределяются между вычислительными узлами, и каждый узел вычисляет градиенты на основе своего раздела и обновляет модель. Эти обновления можно выполнять с использованием одного или нескольких серверов параметров асинхронно, по принципу «один ко многим» или «все ко всем». Другим способом может быть использование алгоритма AllReduce. Например, в алгоритме Ring-AllReduce каждый узел взаимодействует только с двумя соседними узлами, тем самым сокращая общий объем передаваемых данных. Чтобы узнать больше о серверах параметров и Ring-allReduce, см. Простой запуск распределенного обучения TensorFlow с помощью Horovod или серверов параметров в Amazon SageMaker. Что касается разделения данных, если есть n вычислительных узлов, то каждый узел должен получить подмножество данных, примерно 1/n по размеру.
Чтобы продемонстрировать влияние масштабирования обучения на сходимость модели, мы проведем два простых эксперимента:
Обучение каждой модели выполнялось дважды: в одном экземпляре и распределено по нескольким экземплярам. Для распределенного обучения DNN, чтобы полностью использовать распределенные процессоры, мы умножили размер мини-пакета на количество экземпляров (четыре). В следующей таблице приведены настройки и результаты.
Тип проблемы | Классификация изображений | Бинарная классификация | ||
Модель | DNN | XGBoost | ||
Пример | мл.c4.xlarge | мл. m5.2xlarge | ||
Набор данных |
(Помеченные изображения) |
Прямой маркетинг (табличные, числовые и векторизованные категории) |
||
Метрика проверки | точность | ППК | ||
Эпохи/раунды | 20 | 150 | ||
Количество экземпляров | 1 | 4 | 1 | 3 |
Тип раздачи | Нет | Сервер параметров | Нет | ВсеСвернуть |
Время тренировки (минут) | 8 | 3 | 3 | 1 |
Окончательная оценка проверки | 0.97 | 0.11 | 0.78 | 0.63 |
Для обеих моделей время обучения сокращалось почти линейно на коэффициент распределения. Однако сходимость моделей значительно снизилась. Это поведение одинаково для двух разных моделей, разных вычислительных экземпляров, разных методов распределения и разных типов данных. Итак, почему распределение процесса обучения повлияло на точность модели?
Существует ряд теорий, пытающихся объяснить этот эффект:
- Когда тензорные обновления имеют большой размер, трафик между рабочими процессами и сервером параметров может быть перегружен. Следовательно, асинхронные серверы параметров будут иметь значительно худшую сходимость из-за задержек в обновлении весов [1].
- Увеличение размера партии может привести к переобучению и плохому обобщению, тем самым снижая точность проверки [2].
- При асинхронном обновлении параметров модели некоторые DNN могут не использовать самые последние обновленные веса модели; поэтому они будут вычислять градиенты на основе весов, которые отстают на несколько итераций. Это приводит к несвежести веса [3] и может быть вызвано рядом причин.
- Некоторые гиперпараметры зависят от модели или оптимизатора. Например, в официальной документации XGBoost говорится, что
exact
значение дляtree_mode
гиперпараметр не поддерживает распределенное обучение, поскольку XGBoost использует распределение данных с разделением строк, тогда какexact
Метод дерева работает с отсортированным форматом столбца. - Некоторые исследователи предположили, что настройка более крупного мини-пакета может привести к градиентам с меньшей стохастичностью. Это может произойти, когда функция потерь содержит локальные минимумы и седловые точки, а размер шага не изменяется, чтобы оптимизация застряла в таких локальных минимумах или седловых точках [4].
Оптимизация для распределенного обучения
Оптимизация гиперпараметров (HPO) — это процесс поиска и выбора набора гиперпараметров, оптимальных для алгоритма обучения. SageMaker Automatic Model Tuning (AMT) предоставляет HPO как управляемую услугу, выполняя несколько заданий обучения на предоставленном наборе данных. SageMaker AMT выполняет поиск в диапазонах указанных вами гиперпараметров и возвращает наилучшие значения, измеряемые выбранной вами метрикой. Вы можете использовать SageMaker AMT со встроенными алгоритмами или использовать собственные алгоритмы и контейнеры.
Однако оптимизация для распределенного обучения отличается от обычной HPO, поскольку вместо запуска одного экземпляра для каждого задания обучения каждое задание фактически запускает кластер экземпляров. Это означает большее влияние на стоимость (особенно если учесть дорогостоящие инстансы с GPU-ускорением, типичные для DNN). В дополнение к АМТ-лимиты, вы могли бы ударить Ограничения учетной записи SageMaker для одновременного количества обучающих экземпляров. Наконец, запуск кластеров может привести к дополнительным операционным издержкам из-за более длительного времени запуска. SageMaker AMT имеет специальные функции для решения этих проблем. Гиперполоса с ранней остановкой гарантирует точную настройку эффективных конфигураций гиперпараметров и автоматическую остановку неэффективных конфигураций. Это позволяет эффективно использовать время обучения и снижает ненужные расходы. Кроме того, SageMaker AMT полностью поддерживает использование спотовых инстансов Amazon EC2, что позволяет оптимизировать стоимость обучения до 90% над экземплярами по требованию. Что касается длительного времени запуска, SageMaker AMT автоматически повторно использует обучающие экземпляры в каждом задании настройки, тем самым сокращая среднее время запуска каждого задания. тренировочная работа в 20 раз. Кроме того, вы должны следовать Лучшие практики АМТ, такие как выбор соответствующих гиперпараметров, их соответствующих диапазонов и масштабов, а также наилучшего количества одновременных заданий обучения, а также установка случайного начального числа для воспроизведения результатов.
В следующем разделе мы увидим эти функции в действии, когда мы настроим, запустим и проанализируем задание AMT, используя пример XGBoost, который мы обсуждали ранее.
Настройка, запуск и анализ задания настройки
Как упоминалось ранее, исходный код можно найти на Репо GitHub. На шагах 1–5 мы загружаем и подготавливаем данные, создаем xgb3
оценщик (распределенный оценщик XGBoost настроен на использование трех экземпляров), запустите обучающие задания и наблюдайте за результатами. В этом разделе мы описываем, как настроить задание настройки для этого оценщика, предполагая, что вы уже выполнили шаги 1–5.
Задание настройки вычисляет оптимальные гиперпараметры для запускаемых им обучающих заданий, используя метрику для оценки производительности. Ты можешь настроить собственную метрику, который SageMaker будет анализировать на основе регулярного выражения, которое вы настроите, и отправит в stdout
или используйте показатели Встроенные алгоритмы SageMaker. В этом примере мы используем встроенная целевая метрика XGBoost, поэтому нам не нужно настраивать регулярное выражение. Чтобы оптимизировать конвергенцию модели, мы оптимизируем на основе метрики проверки AUC:
Мы настраиваем семь гиперпараметров:
- num_round - Количество раундов для прокачки во время тренировки.
- ОП – Уменьшение размера шага, используемое в обновлениях для предотвращения переобучения.
- альфа – член регуляризации L1 по весам.
- min_child_weight – Минимальная сумма веса экземпляра (гессен), необходимая в дочернем элементе. Если шаг разделения дерева приводит к листовому узлу с суммой весов экземпляров меньше, чем
min_child_weight
, процесс построения отказывается от дальнейшего разделения. - Максимальная глубина – Максимальная глубина дерева.
- colsample_bylevel – Соотношение подвыборки столбцов для каждого разделения на каждом уровне. Эта подвыборка выполняется один раз для каждого нового уровня глубины, достигнутого в дереве.
- colsample_bytree – Соотношение подвыборки столбцов при построении каждого дерева. Для каждого построенного дерева подвыборка происходит один раз.
Чтобы узнать больше о гиперпараметрах XGBoost, см. Гиперпараметры XGBoost. Следующий код показывает семь гиперпараметров и их диапазоны:
Далее предоставляем конфигурация для стратегии Hyperband и настройка объекта тюнера с помощью SageMaker SDK. HyperbandStrategyConfig
может использовать два параметра: max_resource
(необязательно) для максимального количества итераций, которые будут использоваться для задания обучения для достижения цели, и min_resource
– минимальное количество итераций, которое должно быть использовано заданием обучения перед остановкой обучения. Мы используем HyperbandStrategyConfig
настроить StrategyConfig
, который позже используется определением задания настройки. См. следующий код:
Теперь мы создаем HyperparameterTuner
объект, которому мы передаем следующую информацию:
- Оценщик XGBoost, настроенный на запуск с тремя экземплярами
- Имя и определение объективной метрики
- Наши диапазоны гиперпараметров
- Настройка конфигураций ресурсов, таких как общее количество заданий обучения и количество заданий обучения, которые могут выполняться параллельно.
- Настройки гиперполосы (стратегия и конфигурация, которые мы настроили на последнем шаге)
- Ранняя остановка (
early_stopping_type
) установлен вOff
Почему мы отключили раннюю остановку? Задания обучения можно остановить досрочно, если они вряд ли улучшат объективную метрику задания настройки гиперпараметров. Это может помочь сократить время вычислений и избежать переобучения модели. Однако Hyperband использует расширенный встроенный механизм для применения ранней остановки. Следовательно, параметр early_stopping_type
должен быть установлен на Off
при использовании внутренней функции ранней остановки Hyperband. См. следующий код:
Наконец, мы запускаем задание автоматической настройки модели, вызывая метод соответствовать метод. Если вы хотите запустить задание асинхронно, установите wait
в False
, Смотрите следующий код:
Вы можете следить за ходом выполнения задания и сводкой на консоли SageMaker. На панели навигации в разделе Обучение, выберите Задания по настройке гиперпараметров, затем выберите соответствующее задание по настройке. На следующем снимке экрана показано задание настройки с подробными сведениями о состоянии и производительности заданий обучения.
Когда работа по настройке завершена, мы можем просмотреть результаты. В примере с записной книжкой показано, как извлекать результаты с помощью SageMaker SDK. Во-первых, мы исследуем, как работа по настройке увеличила сходимость модели. Вы можете прикрепить HyperparameterTuner
объект, используя имя задания, и вызовите описывать метод. Метод возвращает словарь, содержащий метаданные и результаты задания настройки.
В следующем коде мы получаем значение наиболее эффективной учебной работы, измеряемое нашей объективной метрикой (проверка AUC):
Результат составляет 0.78 в AUC на проверочном наборе. Это значительное улучшение по сравнению с исходной версией 0.63!
Далее, давайте посмотрим, как быстро прошла наша учебная работа. Для этого мы используем ГиперпараметрTuningJobAnalytics метод в SDK для получения результатов о задании настройки и считывания во фрейм данных Pandas для анализа и визуализации:
Давайте посмотрим, сколько времени ушло на обучение в среднем по стратегии Hyperband:
Среднее время заняло около 1 минуты. Это согласуется с механизмом стратегии Hyperband, который предотвращает неэффективные обучающие задания на ранней стадии. Что касается стоимости, работа по настройке стоила нам в общей сложности 30 минут обучения. Ожидается, что без ранней остановки Hyperband общая оплачиваемая продолжительность обучения составит 90 минут (30 заданий * 1 минута на задание * 3 экземпляра на задание). Это в три раза больше экономии! Наконец, мы видим, что задание по настройке выполнило 30 заданий обучения и заняло в общей сложности 12 минут. Это почти на 50% меньше ожидаемого времени (30 заданий/4 задания параллельно * 3 минуты на задание).
Заключение
В этом посте мы описали некоторые наблюдаемые проблемы конвергенции при обучении моделей в распределенных средах. Мы увидели, что SageMaker AMT с использованием Hyperband решает основные проблемы, связанные с оптимизацией данных при параллельном распределенном обучении: конвергенция (которая улучшилась более чем на 10%), операционная эффективность (задание по настройке заняло на 50 % меньше времени, чем последовательное, неоптимизированное задание). потрачено) и экономической эффективности (30 против 90 оплачиваемых минут рабочего времени обучения). В следующей таблице представлены наши результаты:
Метрика улучшения | Реализация без настройки/наивной настройки модели | SageMaker Hyperband Автоматическая настройка модели | Измеренное улучшение |
Качество модели (Измеряется при проверке AUC) |
0.63 | 0.78 | 15% |
Цена (измеряется оплачиваемыми минутами обучения) |
90 | 30 | 66% |
Эксплуатационная эффективность (измеряется по общему времени работы) |
24 | 12 | 50% |
Чтобы точно настроить масштабирование (размер кластера), вы можете повторить задание по настройке с несколькими конфигурациями кластера и сравнить результаты, чтобы найти оптимальные гиперпараметры, удовлетворяющие скорости и точности модели.
Мы включили шаги для достижения этого в последнем разделе ноутбук.
Рекомендации
[1] Лиан, Сянжу и др. «Асинхронный децентрализованный параллельный стохастический градиентный спуск». Международная конференция по машинному обучению. ПМЛР, 2018.
[2] Кескар, Нитиш Шириш и др. «О крупносерийном обучении для глубокого обучения: разрыв в обобщении и резкие минимумы». Препринт arXiv arXiv: 1609.04836 (2016).
[3] Дай, Вэй и др. «К пониманию влияния устаревания в распределенном машинном обучении». Препринт arXiv arXiv: 1810.03264 (2018).
[4] Дофин, Ян Н. и др. «Выявление и решение проблемы седловой точки в многомерной невыпуклой оптимизации». Достижения в нейронных системах обработки информации 27 (2014).
Об авторе
Ури Розенберг — технический менеджер, специалист по искусственному интеллекту и машинному обучению в Европе, на Ближнем Востоке и в Африке. Находясь в Израиле, Ури работает над тем, чтобы предоставить корпоративным клиентам возможность проектировать, создавать и управлять рабочими нагрузками машинного обучения в любом масштабе. В свободное время он любит кататься на велосипеде, ходить в походы и жаловаться на подготовку данных.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Автомобили / электромобили, Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- Смещения блоков. Модернизация права собственности на экологические компенсации. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/effectively-solve-distributed-training-convergence-issues-with-amazon-sagemaker-hyperband-automatic-model-tuning/
- :имеет
- :является
- :нет
- $UP
- 1
- 10
- 100
- 12
- 15%
- 20
- 200
- 2014
- 2016
- 2018
- 24
- 27
- 30
- 7
- 8
- 9
- 90
- a
- О нас
- Учетная запись
- точность
- точный
- Достигать
- Действие
- на самом деле
- дополнение
- Дополнительно
- адрес
- адреса
- продвинутый
- влиять на
- Африка
- AI
- AL
- алгоритм
- алгоритмы
- Альфа
- уже
- причислены
- удивительный
- Amazon
- Amazon EC2
- Создатель мудреца Амазонки
- Amazon Web Services
- среди
- an
- анализ
- аналитика
- анализировать
- и
- Другой
- API
- Применить
- соответствующий
- примерно
- МЫ
- AS
- At
- прикреплять
- Атакующий
- Автоматический
- автоматически
- в среднем
- избежать
- AWS
- Баланс
- основанный
- BE
- , так как:
- до
- поведение
- за
- ЛУЧШЕЕ
- Лучшая
- между
- большой
- стимулирование
- изоферменты печени
- строить
- Здание
- встроенный
- by
- расчет
- призывают
- вызова
- CAN
- Может получить
- возможности
- категории
- вызванный
- изменение
- заряженный
- ребенок
- Выберите
- Выбирая
- нажмите на
- Кластер
- код
- Column
- Колонки
- как
- Общий
- сравнить
- полный
- Вычисление
- Обеспокоенность
- параллельный
- Конференция
- Конфигурация
- Конфигурации
- настроить
- Рассматривать
- последовательный
- Консоли
- строительство
- Контейнеры
- содержит
- непрерывно
- Сближение
- Цена
- дорогостоящий
- Расходы
- может
- Создайте
- изготовленный на заказ
- Клиенты
- DAI
- данным
- Подготовка данных
- децентрализованная
- глубоко
- глубокое обучение
- определение
- задержки
- демонстрировать
- глубина
- описывать
- описано
- Проект
- назначенный
- подробнее
- DID
- различный
- обсуждается
- распределенный
- распределенное обучение
- распределительный
- распределение
- do
- документации
- не
- сделанный
- Dont
- вниз
- скачать
- Падение
- два
- продолжительность
- в течение
- Е & Т
- каждый
- Ранее
- Рано
- легко
- восток
- эффект
- фактически
- затрат
- эффективный
- работает
- расширение прав и возможностей
- включить
- позволяет
- обеспечивает
- Предприятие
- корпоративные клиенты
- Окружающая среда
- средах
- особенно
- Эфир (ETH)
- Европе
- оценивать
- Даже
- Каждая
- исследовать
- пример
- ожидаемый
- Эксперименты
- Объяснять
- Больше
- извлечение
- фактор
- факторы
- Фэшн
- БЫСТРО
- быстрее
- Особенность
- Особенности
- несколько
- в заключение
- Найдите
- Во-первых,
- соответствовать
- следовать
- после
- Что касается
- формат
- найденный
- 4
- КАДР
- от
- полностью
- функция
- далее
- Более того
- разрыв
- генеративный
- Генеративный ИИ
- генераторы
- получить
- получающий
- дает
- хорошо
- GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР
- Графические процессоры
- градиенты
- большой
- Рост
- происходить
- Есть
- имеющий
- he
- помощь
- пеший туризм
- его
- Удар
- Как
- How To
- Однако
- HTML
- HTTP
- HTTPS
- Настройка гиперпараметра
- ICS
- if
- изображений
- Влияние
- Воздействие
- улучшать
- улучшенный
- улучшение
- in
- включены
- расширились
- информация
- Инфраструктура
- начальный
- пример
- вместо
- в нашей внутренней среде,
- в
- вводить
- выпустили
- Израиль
- вопросы
- IT
- итерации
- ЕГО
- работа
- Джобс
- Сохранить
- язык
- большой
- больше
- Фамилия
- новее
- запуск
- запускает
- запуск
- вести
- Лиды
- УЧИТЬСЯ
- изучение
- Меньше
- уровень
- библиотеки
- такое как
- локальным
- Длинное
- дольше
- от
- машина
- обучение с помощью машины
- сделанный
- Главная
- управляемого
- менеджер
- многих
- массивный
- максимальный
- Май..
- означает
- измеренный
- механизм
- упомянутый
- Метаданные
- метод
- методы
- метрический
- Метрика
- средняя
- Ближний Восток
- может быть
- минимальный
- минут
- минут
- ML
- модель
- Модели
- БОЛЕЕ
- самых
- с разными
- умноженная
- должен
- имя
- натуральный
- Естественный язык
- Навигация
- Необходимость
- необходимый
- потребности
- сетей
- нервный
- нейронные сети
- Новые
- следующий
- нет
- узел
- узлы
- ноутбук
- номер
- объект
- цель
- наблюдать
- наблюдается
- of
- от
- Официальный представитель в Грузии
- .
- on
- On-Demand
- консолидировать
- ONE
- только
- открытие
- работать
- оперативный
- оптимальный
- оптимизация
- Оптимизировать
- оптимизирующий
- or
- заказ
- наши
- внешний
- за
- общий
- собственный
- панд
- хлеб
- Параллельные
- параметр
- параметры
- pass
- для
- производительность
- Часть
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Точка
- пунктов
- состояния потока
- возможности,
- возможно
- После
- практика
- подготовка
- Подготовить
- предотвращать
- Проблема
- процесс
- обработка
- процессоры
- Прогресс
- предложило
- обеспечивать
- при условии
- приводит
- случайный
- соотношение
- достиг
- Читать
- причины
- последний
- Управление по борьбе с наркотиками (DEA)
- уменьшить
- Цена снижена
- снижает
- снижение
- С уважением
- соответствующие
- повторять
- требовать
- требуется
- исследователи
- ресурс
- Полезные ресурсы
- результат
- Итоги
- Возвращает
- обзоре
- туры
- РЯД
- Run
- Бег
- sagemaker
- Автоматическая настройка модели SageMaker
- то же
- Сохранить
- видел
- говорит
- SC
- Шкала
- Весы
- масштабирование
- SDK
- поиск
- Раздел
- посмотреть
- семя
- видел
- выбор
- Серверы
- обслуживание
- Услуги
- набор
- установка
- настройки
- установка
- семь
- острый
- должен
- показывать
- показанный
- Шоу
- выключать
- значительный
- существенно
- просто
- одинарной
- Размер
- So
- РЕШАТЬ
- некоторые
- Источник
- исходный код
- Space
- специалист
- конкретный
- скорость
- раскол
- расколы
- Спотовая торговля
- Начало
- Начало
- ввод в эксплуатацию
- Статус:
- Шаг
- Шаги
- остановившийся
- остановка
- Останавливает
- диск
- Стратегия
- такие
- пострадали
- РЕЗЮМЕ
- поддержка
- Поддержка
- ТАБЛИЦЫ
- приняты
- принимает
- Технический
- снижения вреда
- tensorflow
- срок
- terms
- чем
- который
- Ассоциация
- Источник
- их
- Их
- тогда
- Там.
- тем самым
- следовательно
- Эти
- они
- этой
- те
- три
- Через
- время
- раз
- в
- приняли
- Всего
- трафик
- Train
- специалистов
- Обучение
- переводы
- дерево
- стараться
- Дважды
- два
- Типы
- типичный
- под
- понимание
- вряд ли
- ненужный
- обновление
- Updates
- обновление
- URI
- us
- использование
- используемый
- использования
- через
- использовать
- Проверка
- ценностное
- Наши ценности
- визуализация
- vs
- хотеть
- законопроект
- Путь..
- we
- Web
- веб-сервисы
- вес
- пошел
- когда
- в то время как
- , которые
- зачем
- Википедия.
- будете
- в
- без
- рабочие
- работает
- хуже
- бы
- XGBoost
- лет
- являетесь
- ВАШЕ
- зефирнет