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

Компроміси від повторного обчислення активації

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

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

Огляд

It trades extra compute for the ability to train larger models or longer sequences on the same hardware.

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

Зворотне розповсюдження вимагає активації прямого проходу для обчислення градієнтів, тому за замовчуванням виходи кожного шару зберігаються — величезна вартість пам’яті, яка зростає разом із розміром моделі, розміром пакету та довжиною послідовності. Повторне обчислення активації зберігає лише кілька тензорів «контрольних точок» (часто лише межі шарів), а решту відкидає. Під час зворотного проходу він повторно запускає прямі обчислення між контрольними точками, щоб відновити скасовані активації на вимогу. Класичним результатом є те, що з контрольними точками, розміщеними на кожному sqrt(N) шарі, пам’ять зменшується приблизно до O(sqrt(N)), додаючи приблизно один додатковий прохід вперед (~33% більше обчислень). Вибіркові варіанти повторно обчислюють лише дешеві, але важкі для пам’яті операції (як-от звернення уваги чи відключення), водночас кешуючи дорогі, отримуючи більшу частину економії пам’яті за значно менших витрат на повторне обчислення.

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

Основним компромісом є пам’ять проти FLOP. Повне переобчислення приблизно додає один додатковий прохід вперед за крок (~30-40% повільніше), але може скоротити активаційну пам’ять на порядок. Розумним кроком є ​​вибіркова контрольна точка: визначте операції, які потребують великого обсягу пам’яті, але дешеві для обчислень (softmax, layernorm, GELU, показники уваги) і повторно обчислюйте лише їх, зберігаючи результати дорогих GEMM у кеш-пам’яті, мінімізуючи витрати обчислень.

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

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

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

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

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

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

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

Майбутнє компромісів із повторним обчисленням активації

Повторне обчислення стає все більш автоматизованим і вибірковим. Фреймворки тепер профілюють пам’ять кожної операції та вартість FLOP для вибору оптимальних контрольних точок і поєднують повторне обчислення з розвантаженням активації на CPU/NVMe та стратегіями паралелізму. Оскільки довжина контексту та розміри моделі постійно зростають, очікуйте політик, керованих компілятором (у PyTorch, JAX/XLA), які автоматично вибирають рішення щодо повторного обчислення для кожної операції, а також тіснішого перекриття повторного обчислення зі зв’язком, щоб додаткові FLOP були частково приховані.

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

Навчання великого трансформатора, який інакше не підійшов би, шляхом контрольних точок кожного шарового блоку

Використання torch.utils.checkpoint PyTorch для обгортання блоків трансформаторів і скорочення пам’яті активації

Вибіркове повторне обчислення уваги/softmax у Megatron-LM для збереження пам’яті з мінімальним уповільненням

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

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

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

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

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

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

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 Activation Recomputation Tradeoffs 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

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

SmoothQuant і квантування активації

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

What is Activation Recomputation Tradeoffs?

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

Що компенсує повторне обчислення активації для збереження пам’яті?

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

Чому активації прямого проходу взагалі зазвичай зберігаються?

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

Приблизно скільки додаткового обчислення зазвичай додає повторне обчислення повної активації?

Повне повторне обчислення повторює прямі обчислення під час проходу назад, додаючи приблизно один додатковий прохід вперед — приблизно на 30-40% більше обчислень.

Яка ідея вибіркового (не повного) повторного обчислення?

Вибіркове повторне обчислення націлено на операції, які використовують багато пам’яті, але мало обчислень (наприклад, softmax або layernorm), одночасно кешуючи дорогі результати GEMM, щоб мінімізувати марні FLOP.

Який додатковий метод часто поєднується з повторним обчисленням, щоб зберегти ще більше пам’яті?

Розвантаження активації переміщує деякі активації до пам’яті CPU/NVMe і часто поєднується з повторним обчисленням і паралелізмом для додаткової економії пам’яті.