Інформація про дані Платона.
Вертикальний пошук і штучний інтелект.

Розподілене навчання та ефективне масштабування за допомогою Amazon SageMaker Model Parallel і Data Parallel Libraries | Веб-сервіси Amazon

Дата:

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

У грудні 2023 року Amazon оголосила про випуск Паралельна бібліотека моделі SageMaker 2.0 (SMP), який досягає найсучаснішої ефективності у навчанні великих моделей разом із Розподілена бібліотека паралелізму даних SageMaker (SMDDP). Цей випуск є значним оновленням 1.x: SMP тепер інтегровано з PyTorch з відкритим кодом Повністю розділені дані паралельно (FSDP) API, який дозволяє використовувати знайомий інтерфейс під час навчання великих моделей і сумісний з Трансформаторний двигун (TE), вперше відкриваючи методи тензорного паралелізму разом із FSDP. Щоб дізнатися більше про випуск, див Бібліотека паралельних моделей Amazon SageMaker тепер прискорює робочі навантаження PyTorch FSDP до 20%.

У цій публікації ми досліджуємо переваги продуктивності Amazon SageMaker (включаючи 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. . У наведеній нижче таблиці підсумовано нашу оптимальну конфігурацію та ефективність навчання (модель TFLOPs за секунду).

Розмір моделі Кількість вузлів TFLOPs* sdp* tp* розвантажити* Ефективність масштабування
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 Конфігурація TFLOPs #3 Покращення TFLOP порівняно з базовим рівнем
. . Повне сегментування NCCL: №0 Повне шардинг SMDDP: #1 Гібридне сегментування SMDDP: №2 Гібридне сегментування SMDDP з TE: №3 sdp* tp* розвантажити* №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 забезпечує ефективне розподілене навчання для магістрів права, ми досліджуємо додаткові внески від SMDDP і наступного SMP основні особливості:

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

Повне сегментування FSDP: покращення SMDDP порівняно з NCCL

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

При менших розмірах моделей ми спостерігаємо послідовні та значні покращення SMDDP порівняно з NCCL, починаючи з менших розмірів кластерів, оскільки SMDDP здатний ефективно пом’якшувати вузьке місце зв’язку.

Гібридне сегментування FSDP для зменшення витрат на зв’язок

У SMP 1.0 ми запустили паралелізм сегментованих даних, метод розподіленого навчання, розроблений власною компанією Amazon MiCS технології. У SMP 2.0 ми представляємо гібридне сегментування SMP, розширювану та більш гнучку техніку гібридного шардингу, яка дозволяє сегментувати моделі серед підмножини графічних процесорів замість усіх навчальних графічних процесорів, як це стосується повного шардингу FSDP. Це корисно для моделей середнього розміру, які не потребують шардингу по всьому кластеру, щоб задовольнити обмеження пам’яті на GPU. Це призводить до того, що кластери мають більше однієї репліки моделі, і кожен GPU спілкується з меншою кількістю однорангових пристроїв під час виконання.

Гібридне сегментування 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 SMP і SMDDP Покращення SMP
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%

Коли розмір кластера великий і враховується фіксований глобальний розмір пакету, деяке навчання моделі може бути неможливим за допомогою власного FSDP PyTorch, оскільки відсутній вбудований конвеєр або підтримка тензорного паралелізму. У попередній таблиці, враховуючи глобальний розмір пакета 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 за адресою [захищено електронною поштою].

Подяки

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


Про авторів

Сіньле Шейла Лю є SDE в Amazon SageMaker. У вільний час вона захоплюється читанням і спортом на природі.

Сухіт Кодгуле є інженером із розробки програмного забезпечення в групі штучного інтелекту AWS, яка працює над фреймворками глибокого навчання. У вільний час захоплюється пішим туризмом, подорожами та кулінарією.

Віктор Жу є інженером-програмістом із розподіленого глибокого навчання в Amazon Web Services. Його можна знайти в піших прогулянках і настільних іграх у районі затоки Сан-Франциско.

Деря Цавдар працює інженером-програмістом в AWS. Її інтереси включають глибоке навчання та оптимізацію розподіленого навчання.

Тен Сюй є інженером із розробки програмного забезпечення в групі розподіленого навчання в AWS AI. Він любить читати.

spot_img

Остання розвідка

spot_img

Зв'яжіться з нами!

Привіт! Чим я можу вам допомогти?