Технічний КЕРІВНИЦТВО

Паралелізм даних

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

2 хвилини читанняОстаннє оновлення

Огляд

It is the workhorse technique that lets teams scale to dozens or thousands of accelerators.

Глибоке занурення

У паралелізмі даних кожен GPU зберігає ідентичну копію ваг моделі, але обробляє окрему міні-групу навчальних прикладів. Кожен пристрій незалежно обчислює прохід вперед і назад, створюючи власний набір градієнтів. Перед оновленням вагових коефіцієнтів градієнти усереднюються для всіх графічних процесорів за допомогою операції зв’язку з усім скороченням, тож кожна репліка залишається синхронізованою та поводиться так, ніби вона тренується на одній великій об’єднаній партії. Це значно збільшує пропускну здатність: 8 графічних процесорів можуть пережовувати приблизно у 8 разів більше даних за крок. Заковика в тому, що кожен графічний процесор повинен відповідати всій моделі, її градієнтам і стану оптимізатора в пам’яті, тому звичайний паралелізм даних не допомагає, коли модель занадто велика для одного пристрою.

Технічне розуміння

Ключовою операцією є all-reduce, яка підсумовує градієнти між пристроями та перерозподіляє результат. Ring all-reduce, який використовується такими бібліотеками, як NCCL і Horovod, передає градієнтні фрагменти по логічному кільцю, тому загальний зв’язок не залежить від кількості GPU. DistributedDataParallel PyTorch перекриває цей зв’язок із зворотним проходом, запускаючи градієнтну синхронізацію для ранніх шарів, тоді як наступні шари все ще обчислюються, приховуючи значну частину затримки мережі.

Стратегічний вплив

Вартість і бюджет

Архітектурні рішення збільшують продуктивність і експлуатаційні витрати протягом багатьох років.

Чіткіші рішення

Технічна освіта допомагає командам вибрати правильний стек, а не лише найновіший.

Контроль якості

Кращий інженерний вибір зменшує проблеми з надійністю у виробництві.

Майбутнє паралелізму даних

Чистий паралелізм даних все частіше поєднується з шардингом і паралелізмом моделей у гібридні стратегії «nD паралелізму» для моделей із трильйонами параметрів. Очікуйте розумнішого градієнтного стиснення, асинхронного та перекритого зв’язку, а також повного зменшення з урахуванням топології, яке використовує швидкий NVLink у межах вузла та повільніший InfiniBand між вузлами. У міру того, як кластери ростуть, зниження співвідношення зв’язку та обчислень залишається головним інженерним завданням для забезпечення зайнятості тисяч графічних процесорів.

Реалізація в реальному світі

Навчання класифікатора зображень ResNet на 8 графічних процесорах на одному сервері за допомогою PyTorch DistributedDataParallel, кожен графічний процесор обробляє 32 із пакету з 256 зображень.

Масштабування попереднього навчання BERT на сотнях графічних процесорів за допомогою Horovod, використовуючи кільцеве повне зменшення для синхронізації градієнтів на кожному кроці.

Точне налаштування моделі рекомендацій у кластері з кількома вузлами, де кожен вузол обробляє різні фрагменти взаємодії користувача.

Використання MirroredStrategy від TensorFlow для розподілу навчання моделі бачення на кількох графічних процесорах на одній робочій станції з мінімальними змінами коду.

Ризики та огорожі

Оптимізація одного тесту може приховати ширші слабкі сторони системи.

Витрати на інфраструктуру та обслуговування часто недооцінюються.

Прогалини в безпеці та спостережуваності можуть зростати в міру ускладнення систем.

Дорожня карта впровадження

1

Визначте цільові показники затримки, якості та вартості перед впровадженням.

2

Тест за реалістичних умов навантаження та даних.

3

Моніторинг інструментів на наявність помилок, дрейфу та впливу користувача.

4

Перед масштабуванням підготуйте шляхи відкату та реагування на інциденти.

Продовжуйте досліджувати

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Data Parallelism quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Розпочати вікторину

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Наступний посібник

Управління даними AI

Часті запитання

What is Data Parallelism?

Паралелізм даних тренує одну модель швидше, тиражуючи її на багатьох графічних процесорах, причому кожен графічний процесор обробляє окремий фрагмент пакету даних. Це техніка «робочої конячки», яка дозволяє командам масштабуватися до десятків або тисяч прискорювачів.

У стандартному паралелізмі даних, що містить кожен GPU?

Кожен GPU зберігає повну копію моделі та обробляє окрему частину пакету даних, що робить його паралелізмом «даних», а не паралелізмом моделі.

Яка операція зв’язку забезпечує синхронізацію реплік моделей на кожному кроці?

Після кожного зворотного проходу градієнти комбінуються на всіх пристроях за допомогою all-reduce (зазвичай підсумовуються, а потім усереднюються), щоб кожна репліка застосовувала одне й те саме оновлення.

Яке основне обмеження паралелізму простих даних?

Оскільки кожен графічний процесор містить повну копію всього, паралелізм даних нічим не допомагає, коли модель просто занадто велика, щоб поміститися на одному пристрої.

Чому ring all-reduce привабливий для великої кількості GPU?

Ring all-reduce пропускає порції градієнта навколо логічного кільця, тому загальна пропускна здатність, яку надсилає кожен графічний процесор, залишається незмінною незалежно від кількості графічних процесорів.

Як PyTorch DistributedDataParallel приховує затримку зв’язку?

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