Повністю розділені дані паралельно
Fully Sharded Data Parallel (FSDP) — це методика розподіленого навчання, яка розділяє параметри моделі, градієнти та стани оптимізатора між багатьма графічним процесором, щоб кожен пристрій зберігав лише фрагмент.
Огляд
It makes training huge models possible on hardware that could never fit the whole model in one GPU's memory.
Глибоке занурення
Традиційний паралелізм даних зберігає повну копію моделі на кожному GPU, що витрачає пам’ять і обмежує розмір моделі. FSDP, популяризований PyTorch Meta та натхненний ZeRO Microsoft, натомість розподіляє три речі на пристрої: параметри, градієнти та стани оптимізатора. Під час прямого проходу кожен графічний процесор тимчасово збирає повні ваги для рівня, який він обчислює, за допомогою збірки всіх даних, запускає обчислення, а потім негайно звільняє зібрану копію. Зворотний перехід працює аналогічно, після чого слід зменшення розсіювання, яке розподіляє градієнтні фрагменти назад до їхніх графічних процесорів. Оскільки кожен пристрій постійно зберігає лише частину моделі, використання пам’яті падає приблизно лінійно з кількістю графічних процесорів, що дозволяє командам тренувати моделі з десятками чи сотнями мільярдів параметрів.
Технічне розуміння
FSDP замінює додатковий зв’язок на економію пам’яті. Ваги кожного шару реконструюються на вимогу за допомогою збору всіх даних безпосередньо перед використанням і відкидаються одразу після, тоді як градієнти об’єднуються та розділяються за допомогою зменшення-розсіювання. Зв’язок може накладатися на обчислення шляхом попередньої вибірки параметрів наступного рівня під час роботи поточного рівня, приховуючи значну частину затримки мережі. Налаштування деталізації шардингу (політика упаковки) збалансовує обсяг пам’яті та накладні витрати на зв’язок.
Стратегічний вплив
Вартість і бюджет
Архітектурні рішення збільшують продуктивність і експлуатаційні витрати протягом багатьох років.
Чіткіші рішення
Технічна освіта допомагає командам вибрати правильний стек, а не лише найновіший.
Контроль якості
Кращий інженерний вибір зменшує проблеми з надійністю у виробництві.
Майбутнє повністю розділених паралельних даних
FSDP стає стандартним для відкритого навчання великої моделі, а FSDP2 у PyTorch покращує зручність використання та сегментування за параметрами. Очікуйте тіснішої інтеграції з тензорним і конвеєрним паралелізмом для моделей із трильйонами параметрів, кращою підтримкою змішаної точності та fp8, а також розумнішою автоматичною упаковкою, яка вибирає для вас межі сегментування. Оскільки з’єднання між графічним процесором, такі як NVLink і InfiniBand, стають швидшими, вартість зв’язку шардингу продовжує зменшуватися, що робить його практичним у все більших масштабах.
Реалізація в реальному світі
Точне налаштування моделі Llama із 70 мільярдами параметрів на 8 графічних процесорах, які окремо не можуть підтримувати повну вагу.
Попереднє навчання великих мовних моделей у лабораторіях штучного інтелекту шляхом розподілу станів оптимізатора (які домінують у пам’яті в Адамі) на сотні прискорювачів.
Дослідники використовують оболонку FSDP від PyTorch для навчання трансформаторів зору в університетському кластері, не купуючи флагманських графічних процесорів на 80 ГБ.
Поєднання FSDP із bfloat16 зі змішаною точністю, щоб приблизно вдвічі зменшити обсяг пам’яті та прискорити пропускну здатність навчання на мультимодальних моделях.
Ризики та огорожі
Оптимізація одного тесту може приховати ширші слабкі сторони системи.
Витрати на інфраструктуру та обслуговування часто недооцінюються.
Прогалини в безпеці та спостережуваності можуть зростати в міру ускладнення систем.
Дорожня карта впровадження
Визначте цільові показники затримки, якості та вартості перед впровадженням.
Тест за реалістичних умов навантаження та даних.
Моніторинг інструментів на наявність помилок, дрейфу та впливу користувача.
Перед масштабуванням підготуйте шляхи відкату та реагування на інциденти.
Продовжуйте досліджувати
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 Fully Sharded Data Parallel 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
Наступний посібник
Паралелізм даних
Часті запитання
What is Fully Sharded Data Parallel?
Fully Sharded Data Parallel (FSDP) — це методика розподіленого навчання, яка розділяє параметри моделі, градієнти та стани оптимізатора між багатьма графічним процесором, щоб кожен пристрій зберігав лише фрагмент. Це робить можливим навчання величезних моделей на обладнанні, яке ніколи не зможе вмістити всю модель в пам’ять одного GPU.
Що FSDP розподіляє між GPU, а стандартний паралелізм даних НІ?
FSDP розподіляє параметри моделі, градієнти та стани оптимізатора на пристрої, тоді як стандартний паралелізм даних відтворює повну модель на кожному GPU.
Яку колективну операцію використовує FSDP для реконструкції повних ваг шару безпосередньо перед його обчисленням?
Перед запуском шару FSDP виконує збірку даних, щоб тимчасово зібрати повні параметри з усіх сегментів, а потім звільняє їх.
Чому FSDP звільняє зібрані повні ваги відразу після обчислення рівня?
Постійне утримання лише фрагмента та тимчасове набирання повної ваги — це те, що зберігає використання пам’яті низьким і приблизно пропорційним одній частині моделі.
Яким попереднім підходом до оптимізації пам’яті в основному був натхненний FSDP?
Шардинг параметрів, градієнтів і станів оптимізатора FSDP точно відповідає ідеям, представленим у ZeRO Microsoft з бібліотеки DeepSpeed.
Як FSDP приховує значну частину затримки мережі від збору ваг?
FSDP попередньо вибирає параметри наступного рівня, поки поточний рівень ще обчислюється, перекриваючи зв’язок зі збором з корисною роботою.