Распределенное обучение и эффективное масштабирование с помощью библиотек Amazon SageMaker Parallel Model и Data Parallel | Веб-сервисы Amazon

Распределенное обучение и эффективное масштабирование с помощью библиотек Amazon SageMaker Parallel Model и Data Parallel | Веб-сервисы Amazon

В области распределенного глубокого обучения для больших языковых моделей (LLM) произошел огромный прогресс, особенно после выпуска ChatGPT в декабре 2022 года. LLM продолжают расти в размерах с миллиардами или даже триллионами параметров, и часто они не будут из-за ограничений памяти вписываются в одно ускорительное устройство, такое как графический процессор, или даже в один узел, такой как ml.p5.32xlarge. Клиентам, обучающим LLM, часто приходится распределять свою рабочую нагрузку между сотнями или даже тысячами графических процессоров. Обеспечение обучения в таком масштабе остается проблемой в распределенном обучении, а эффективное обучение в такой большой системе является еще одной не менее важной проблемой. За последние годы сообщество распределенного обучения внедрило 3D-параллелизм (параллелизм данных, конвейерный параллелизм и тензорный параллелизм) и другие методы (такие как параллелизм последовательностей и экспертный параллелизм) для решения таких проблем.

В декабре 2023 года Amazon объявила о выпуске Параллельная библиотека моделей SageMaker 2.0 (SMP), который обеспечивает высочайшую эффективность обучения больших моделей вместе с Библиотека параллелизма распределенных данных SageMaker (СМДДП). Этот выпуск представляет собой значительное обновление версии 1.x: SMP теперь интегрирован с PyTorch с открытым исходным кодом. Полностью сегментированный параллелизм данных (FSDP) API, который позволяет использовать знакомый интерфейс при обучении больших моделей и совместим с Трансформаторный двигатель (TE), впервые открывая методы тензорного параллелизма наряду с FSDP. Чтобы узнать больше о выпуске, см. Параллельная библиотека моделей Amazon SageMaker теперь ускоряет рабочие нагрузки PyTorch FSDP до 20 %..

В этой статье мы рассмотрим преимущества производительности Создатель мудреца Амазонки (включая SMP и SMDDP), а также о том, как можно использовать библиотеку для эффективного обучения больших моделей в SageMaker. Мы демонстрируем производительность SageMaker с помощью тестов на кластерах ml.p4d.24xlarge до 128 экземпляров и смешанной точности FSDP с bfloat16 для модели Llama 2. Мы начинаем с демонстрации эффективности почти линейного масштабирования для SageMaker, за которым следует анализ вклада каждой функции для достижения оптимальной пропускной способности и заканчиваем эффективным обучением с последовательностями различной длины до 32,768 XNUMX посредством тензорного параллелизма.

Почти линейное масштабирование с помощью SageMaker

Чтобы сократить общее время обучения моделей LLM, сохранение высокой пропускной способности при масштабировании до больших кластеров (тысячи графических процессоров) имеет решающее значение, учитывая накладные расходы на связь между узлами. В этом посте мы демонстрируем надежную и почти линейную эффективность масштабирования (путем изменения количества графических процессоров для фиксированного общего размера задачи) на экземплярах p4d, вызывающих как SMP, так и SMDDP.

В этом разделе мы демонстрируем почти линейное масштабирование SMP. Здесь мы обучаем модели Llama 2 различных размеров (параметры 7B, 13B и 70B), используя фиксированную длину последовательности 4,096, серверную часть SMDDP для коллективной связи, включенный TE, глобальный размер пакета 4 миллиона, с 16–128 узлами p4d. . В следующей таблице приведены наши оптимальные конфигурации и производительность обучения (модель TFLOP в секунду).

Размер модели Количество узлов Тфлопс* СДП* тп* разгрузить* Эффективность масштабирования
7B 16 136.76 32 1 N 100.0%
32 132.65 64 1 N 97.0%
64 125.31 64 1 N 91.6%
128 115.01 64 1 N 84.1%
13B 16 141.43 32 1 Y 100.0%
32 139.46 256 1 N 98.6%
64 132.17 128 1 N 93.5%
128 120.75 128 1 N 85.4%
70B 32 154.33 256 1 Y 100.0%
64 149.60 256 1 N 96.9%
128 136.52 64 2 N 88.5%

*При заданном размере модели, длине последовательности и количестве узлов мы показываем глобально оптимальную пропускную способность и конфигурации после изучения различных комбинаций sdp, tp и активации разгрузки.

В предыдущей таблице приведены оптимальные значения пропускной способности в зависимости от степени параллельности сегментированных данных (sdp) (обычно используется гибридное сегментирование FSDP вместо полного сегментирования, более подробная информация представлена ​​в следующем разделе), степени тензорной параллельности (tp) и изменений значения разгрузки активации. демонстрация почти линейного масштабирования для SMP вместе с SMDDP. Например, учитывая размер модели Llama 2 7B и длину последовательности 4,096, общая эффективность масштабирования достигает 97.0%, 91.6% и 84.1% (относительно 16 узлов) при 32, 64 и 128 узлах соответственно. Эффективность масштабирования стабильна для моделей разных размеров и незначительно увеличивается по мере увеличения размера модели.

SMP и SMDDP также демонстрируют аналогичную эффективность масштабирования для других длин последовательностей, таких как 2,048 и 8,192.

Производительность параллельной библиотеки модели SageMaker 2.0: Llama 2 70B

Размеры моделей в последние годы продолжали расти, наряду с частыми обновлениями производительности в сообществе LLM. В этом разделе мы иллюстрируем производительность в SageMaker для модели Llama 2, используя фиксированный размер модели 70B, длину последовательности 4,096 и общий размер пакета 4 миллиона. Для сравнения с глобально оптимальной конфигурацией и пропускной способностью из предыдущей таблицы (с серверной частью SMDDP, обычно гибридным сегментированием FSDP и TE), следующая таблица распространяется на другие оптимальные пропускные способности (возможно, с тензорным параллелизмом) с дополнительными спецификациями для распределенной серверной части (NCCL и SMDDP). , стратегии сегментирования FSDP (полное сегментирование и гибридное сегментирование), а также включение или отключение TE (по умолчанию).

Размер модели Количество узлов TFLOPS Конфигурация TFLOP №3 Улучшение TFLOP по сравнению с базовым уровнем
. . Полное шардинг NCCL: #0 Полное шардинг SMDDP: #1 Гибридное шардинг SMDDP: #2 Гибридное шардинг SMDDP с TE: #3 СДП* тп* разгрузить* №0 → №1 №1 → №2 №2 → №3 №0 → №3
70B 32 150.82 149.90 150.05 154.33 256 1 Y -0.6% 0.1% 2.9% 2.3%
64 144.38 144.38 145.42 149.60 256 1 N 0.0% 0.7% 2.9% 3.6%
128 68.53 103.06 130.66 136.52 64 2 N 50.4% 26.8% 4.5% 99.2%

*При заданном размере модели, длине последовательности и количестве узлов мы показываем глобально оптимальную пропускную способность и конфигурацию после изучения различных комбинаций sdp, tp и активации разгрузки.

Последняя версия SMP и SMDDP поддерживает множество функций, включая встроенный PyTorch FSDP, расширенное и более гибкое гибридное сегментирование, интеграцию механизма преобразования, тензорный параллелизм и оптимизированную работу коллективного сбора данных. Чтобы лучше понять, как SageMaker обеспечивает эффективное распределенное обучение для LLM, мы исследуем дополнительный вклад SMDDP и следующего SMP. Основные особенности:

  • Улучшение SMDDP по сравнению с NCCL с полным сегментированием FSDP
  • Замена полного сегментирования FSDP гибридным сегментированием, что снижает затраты на связь и повышает пропускную способность.
  • Дальнейшее повышение пропускной способности с помощью TE, даже если тензорный параллелизм отключен.
  • При более низких настройках ресурсов разгрузка активации может обеспечить возможность обучения, которое в противном случае было бы невозможно или было бы очень медленным из-за высокой нехватки памяти.

Полное шардинг FSDP: улучшение SMDDP по сравнению с NCCL

Как показано в предыдущей таблице, когда модели полностью сегментированы с помощью FSDP, хотя пропускная способность NCCL (TFLOP #0) и SMDDP (TFLOP #1) сопоставима на 32 или 64 узлах, при переходе от NCCL к SMDDP наблюдается огромное улучшение на 50.4%. на 128 узлах.

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

Гибридное шардинг FSDP для снижения затрат на связь

В SMP 1.0 мы запустили параллелизм сегментированных данных, метод распределенного обучения на базе собственной разработки Amazon. МиКС технологии. В SMP 2.0 мы представляем гибридное сегментирование SMP — расширяемый и более гибкий метод гибридного сегментирования, который позволяет сегментировать модели между подмножеством графических процессоров вместо всех обучающих графических процессоров, как в случае полного сегментирования FSDP. Это полезно для моделей среднего размера, которые не нужно сегментировать по всему кластеру, чтобы удовлетворить ограничения памяти для каждого графического процессора. Это приводит к тому, что кластеры имеют более одной реплики модели и каждый графический процессор взаимодействует с меньшим количеством узлов во время выполнения.

Гибридное сегментирование SMP обеспечивает эффективное сегментирование модели в более широком диапазоне: от минимального уровня сегментирования без проблем с нехваткой памяти до всего размера кластера (что соответствует полному сегментированию).

На следующем рисунке для простоты показана зависимость пропускной способности от sdp при tp = 1. Хотя оно не обязательно совпадает с оптимальным значением tp для полного сегментирования NCCL или SMDDP в предыдущей таблице, цифры довольно близки. Это ясно подтверждает ценность перехода с полного сегментирования на гибридное при большом размере кластера в 128 узлов, что применимо как к NCCL, так и к SMDDP. Для моделей меньшего размера значительные улучшения при гибридном сегментировании начинаются с меньших размеров кластера, и разница продолжает увеличиваться с размером кластера.

Распределенное обучение и эффективное масштабирование с помощью библиотек Amazon SageMaker Parallel Model и Data Parallel | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Улучшения с TE

TE предназначен для ускорения обучения LLM на графических процессорах NVIDIA. Несмотря на то, что FP8 не используется, поскольку он не поддерживается экземплярами p4d, мы все равно видим значительное ускорение с помощью TE на p4d.

Помимо MiCS, обученного с помощью бэкэнда SMDDP, TE обеспечивает последовательное повышение пропускной способности во всех размерах кластера (единственным исключением является полное сегментирование на 128 узлах), даже когда тензорный параллелизм отключен (степень тензорного параллелизма равна 1).

Для меньших размеров модели или различной длины последовательности повышение TE стабильно и нетривиально и находится в диапазоне примерно 3–7.6%.

Разгрузка активации при низких настройках ресурсов

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

Например, как мы видели ранее, хотя Llama 2 с размером модели 13B и длиной последовательности 4,096 способен оптимально обучаться как минимум с 32 узлами с контрольной точкой активации и без разгрузки активации, наилучшая пропускная способность достигается при разгрузке активации, когда она ограничена 16. узлы.

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

Более длинные последовательности желательны для длинных разговоров и контекста и привлекают больше внимания в сообществе LLM. Поэтому в следующей таблице мы сообщаем о различной пропускной способности длинных последовательностей. В таблице показана оптимальная производительность обучения Llama 2 в SageMaker с различной длиной последовательности от 2,048 до 32,768. При длине последовательности 32,768 32 встроенное обучение FSDP невозможно с 4 узлами при общем размере пакета в XNUMX миллиона.

. . . TFLOPS
Размер модели Длина последовательности Количество узлов Родной FSDP и NCCL СМП и СМДПП Улучшение СМП
7B 2048 32 129.25 138.17 6.9%
4096 32 124.38 132.65 6.6%
8192 32 115.25 123.11 6.8%
16384 32 100.73 109.11 8.3%
32768 32 Не Доступно 82.87 .
13B 2048 32 137.75 144.28 4.7%
4096 32 133.30 139.46 4.6%
8192 32 125.04 130.08 4.0%
16384 32 111.58 117.01 4.9%
32768 32 Не Доступно 92.38 .
*: Макс . . . . 8.3%
*: медиана . . . . 5.8%

Когда размер кластера велик и при фиксированном глобальном размере пакета обучение некоторых моделей может оказаться невозможным с помощью встроенного PyTorch FSDP из-за отсутствия встроенного конвейера или поддержки тензорного параллелизма. В предыдущей таблице, учитывая глобальный размер пакета 4 миллиона, 32 узла и длину последовательности 32,768 0.5, эффективный размер пакета на один графический процессор равен 2 (например, tp = 1 с размером пакета XNUMX), что в противном случае было бы невозможно без введения тензорный параллелизм.

Заключение

В этом посте мы продемонстрировали эффективное обучение LLM с помощью SMP и SMDDP на экземплярах p4d, приписав вклад нескольким ключевым функциям, таким как улучшение SMDDP по сравнению с NCCL, гибкое гибридное сегментирование FSDP вместо полного сегментирования, интеграция TE и включение тензорного параллелизма в пользу длинные последовательности. После тестирования в широком диапазоне настроек с различными моделями, размерами моделей и длинами последовательностей он продемонстрировал надежную, почти линейную эффективность масштабирования — до 128 экземпляров p4d в SageMaker. Таким образом, SageMaker продолжает оставаться мощным инструментом для исследователей и практиков LLM.

Чтобы узнать больше, см. Библиотека параллелизма моделей SageMaker v2или свяжитесь с командой SMP по адресу sm-model-parallel-feedback@amazon.com.

Благодарности

Мы хотели бы поблагодарить Роберта Ван Дузена, Бена Снайдера, Гаутама Кумара и Луиса Квинтелу за их конструктивные отзывы и обсуждения.


Об авторах

Распределенное обучение и эффективное масштабирование с помощью библиотек Amazon SageMaker Parallel Model и Data Parallel | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Синьлэ Шейла Лю — это SDE в Amazon SageMaker. В свободное время она любит читать и заниматься спортом на свежем воздухе.

Распределенное обучение и эффективное масштабирование с помощью библиотек Amazon SageMaker Parallel Model и Data Parallel | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Сухит Кодгуле — инженер-разработчик программного обеспечения в группе AWS по искусственному интеллекту, работающий над платформами глубокого обучения. В свободное время он любит пешие прогулки, путешествия и готовку.

Распределенное обучение и эффективное масштабирование с помощью библиотек Amazon SageMaker Parallel Model и Data Parallel | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Виктор Чжу — инженер-программист в области распределенного глубокого обучения в Amazon Web Services. Его можно найти наслаждающимся пешими прогулками и настольными играми в районе залива Сан-Франциско.

Распределенное обучение и эффективное масштабирование с помощью библиотек Amazon SageMaker Parallel Model и Data Parallel | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Дерья Кавдар работает инженером-программистом в AWS. В сферу ее интересов входят глубокое обучение и оптимизация распределенного обучения.

Распределенное обучение и эффективное масштабирование с помощью библиотек Amazon SageMaker Parallel Model и Data Parallel | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Тэн Сюй — инженер-разработчик программного обеспечения в группе распределенного обучения в AWS AI. Он любит читать.

Отметка времени:

Больше от Машинное обучение AWS