В области распределенного глубокого обучения для больших языковых моделей (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. Для моделей меньшего размера значительные улучшения при гибридном сегментировании начинаются с меньших размеров кластера, и разница продолжает увеличиваться с размером кластера.
Улучшения с 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.
Благодарности
Мы хотели бы поблагодарить Роберта Ван Дузена, Бена Снайдера, Гаутама Кумара и Луиса Квинтелу за их конструктивные отзывы и обсуждения.
Об авторах
Синьлэ Шейла Лю — это SDE в Amazon SageMaker. В свободное время она любит читать и заниматься спортом на свежем воздухе.
Сухит Кодгуле — инженер-разработчик программного обеспечения в группе AWS по искусственному интеллекту, работающий над платформами глубокого обучения. В свободное время он любит пешие прогулки, путешествия и готовку.
Виктор Чжу — инженер-программист в области распределенного глубокого обучения в Amazon Web Services. Его можно найти наслаждающимся пешими прогулками и настольными играми в районе залива Сан-Франциско.
Дерья Кавдар работает инженером-программистом в AWS. В сферу ее интересов входят глубокое обучение и оптимизация распределенного обучения.
Тэн Сюй — инженер-разработчик программного обеспечения в группе распределенного обучения в AWS AI. Он любит читать.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/distributed-training-and-efficient-scaling-with-the-amazon-sagemaker-model-parallel-and-data-parallel-libraries/
- :имеет
- :является
- :нет
- $UP
- 1
- 120
- 16
- 160
- 2022
- 2023
- 32
- 3d
- 455
- 50
- 7
- 8
- 84
- 91
- 97
- a
- в состоянии
- О нас
- ускорять
- ускоряет
- ускоритель
- Достигает
- через
- Активация
- адрес
- После
- AI
- Все
- позволяет
- вдоль
- рядом
- причислены
- Несмотря на то, что
- Amazon
- Создатель мудреца Амазонки
- Amazon Web Services
- среди
- an
- анализ
- и
- объявило
- Другой
- API
- отношение
- примерно
- МЫ
- ПЛОЩАДЬ
- около
- искусственный
- искусственный интеллект
- AS
- At
- внимание
- AWS
- Backend
- залив
- BE
- , так как:
- было
- не являетесь
- Бен
- тесты
- Преимущества
- ЛУЧШЕЕ
- Лучшая
- миллиарды
- доска
- Настольные игры
- повышение
- изоферменты печени
- горлышко бутылки
- встроенный
- by
- CAN
- случаев
- вызов
- проблемы
- изменения
- ChatGPT
- явно
- Закрыть
- Кластер
- собирательный
- COM
- комбинации
- общение
- Связь
- сообщество
- сравнимый
- сравнить
- совместим
- Конфигурация
- последовательный
- ограничения
- конструктивный
- обращайтесь
- контекст
- продолжать
- продолжающийся
- продолжается
- взносы
- Беседы
- Цена
- решающее значение
- Клиенты
- данным
- Декабрь
- глубоко
- глубокое обучение
- По умолчанию
- Степень
- демонстрировать
- убивают
- демонстрирующий
- демонстрация
- зависимость
- предназначенный
- желанный
- Несмотря на
- подробнее
- Развитие
- устройство
- разница
- различный
- инвалид
- обсуждение
- распространять
- распределенный
- распределенное обучение
- Dont
- два
- каждый
- Эффективный
- фактически
- Эффективность
- затрат
- эффективный
- эффективно
- включить
- включен
- позволяет
- позволяет
- конец
- Двигатель
- инженер
- усиление
- наслаждаясь
- Весь
- одинаково
- приравнивает
- особенно
- Даже
- пример
- исключение
- Экспонаты
- опыт
- эксперту
- Больше
- Исследование
- расширенная
- продолжается
- дополнительно
- знакомый
- в пользу
- Особенность
- Особенности
- Обратная связь
- меньше
- поле
- фигура
- Во-первых,
- Впервые
- соответствовать
- фиксированной
- гибкого
- следует
- после
- Что касается
- найденный
- каркасы
- частое
- от
- полный
- полностью
- далее
- Игры
- собирать
- получает
- получающий
- данный
- Глобальный
- ГЛОБАЛЬНО
- GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР
- Графические процессоры
- группы
- Расти
- Есть
- имеющий
- he
- ее
- здесь
- High
- его
- Как
- HTML
- HTTPS
- огромный
- Сотни
- Гибридный
- иллюстрировать
- иллюстрирует
- важную
- улучшать
- улучшение
- улучшение
- in
- включают
- В том числе
- Увеличение
- повышение
- дополнительный
- вместо
- интегрированный
- интеграции.
- Интеллекта
- интересы
- Интерфейс
- в
- вводить
- выпустили
- Представляет
- введение
- вопросы
- IT
- JPG
- держит
- Основные
- Кумар
- недостающий
- язык
- большой
- больше
- последний
- последний релиз
- запустили
- Лиды
- УЧИТЬСЯ
- изучение
- наименее
- Длина
- библиотеки
- Библиотека
- такое как
- недостатки
- Ограниченный
- Лама
- LLM
- Длинное
- Низкий
- ниже
- Память
- может быть
- миллиона
- смягчать
- смешанный
- ML
- модель
- Модели
- БОЛЕЕ
- с разными
- должен
- родной
- обязательно
- Необходимость
- следующий
- нет
- узел
- узлы
- сейчас
- номер
- номера
- Nvidia
- наблюдать
- of
- .
- on
- ONE
- только
- открытый
- с открытым исходным кодом
- операция
- оптимальный
- оптимизация
- оптимизированный
- Опция
- or
- заказ
- Другое
- в противном случае
- наши
- внешний
- за
- общий
- накладные расходы
- Параллельные
- параметры
- мимо
- сверстникам
- для
- производительность
- трубопровод
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- После
- потенциально
- Питание
- мощный
- предшествующий
- Точность
- консервирование
- давление
- предыдущий
- предварительно
- Проблема
- Прогресс
- pytorch
- вполне
- ассортимент
- Reading
- уменьшить
- снижает
- относиться
- относительный
- освободить
- остатки
- ответ
- отчету
- исследователи
- ресурс
- соответственно
- РОБЕРТ
- надежный
- время выполнения
- sagemaker
- то же
- удовлетворить
- видел
- Шкала
- масштабирование
- Сценарии
- SDP
- Во-вторых
- Раздел
- посмотреть
- Последовательность
- Услуги
- настройки
- сегментированный
- Sharding
- она
- показывать
- показанный
- Шоу
- значительный
- аналогичный
- простота
- одинарной
- Размер
- Размеры
- медленной
- небольшой
- меньше
- Software
- разработка программного обеспечения
- Инженер-программист
- некоторые
- Источник
- спецификации
- Спорт
- стабильный
- Начало
- Начало
- современное состояние
- По-прежнему
- стратегий
- предмет
- такие
- РЕЗЮМЕ
- поддержка
- Поддержка
- система
- ТАБЛИЦЫ
- команда
- техника
- снижения вреда
- Технологии
- проверенный
- чем
- спасибо
- который
- Ассоциация
- их
- Там.
- следовательно
- они
- этой
- тысячи
- Через
- пропускная способность
- время
- в
- вместе
- инструментом
- топ
- Всего
- tp
- Train
- специалистов
- Обучение
- трансформатор
- Путешествие
- огромный
- триллионы
- Поворот
- типично
- понимать
- отпирающий
- Обновление ПО
- Updates
- использование
- полезный
- через
- ценностное
- фургон
- различный
- Различная
- очень
- we
- Web
- веб-сервисы
- когда
- который
- все
- широкий
- Широкий диапазон
- Шире
- без
- работает
- работает
- Наихудший
- бы
- X
- лет
- Ты
- зефирнет