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

Перенесення стану оптимізатора на ЦП і NVMe

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

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

Огляд

It lets people train far larger models than their GPU's memory would otherwise allow.

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

Коли ви тренуєте нейронну мережу за допомогою такого оптимізатора, як Адам, кожен параметр несе додатковий багаж: дві поточні статистики (імпульс і дисперсія), а також копію ваги з повною точністю та її градієнт. У тренуванні зі змішаною точністю це може становити приблизно 16 байтів на параметр, що заважає 2 байтам для самої ваги. Розвантаження переміщує цей багаж з GPU. Розвантаження процесора передає стани оптимізатора в звичайну системну оперативну пам’ять через шину PCIe, тоді як розвантаження NVMe переносить їх на швидкісні твердотільні диски. Ця техніка, яку популяризували ZeRO-Infinity та ZeRO-Offload від DeepSpeed, обмінює необроблену швидкість на потужність, дозволяючи одному графічному процесору або невеликому кластеру точно налаштовувати моделі з мільярдами параметрів.

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

Ключовим моментом є перекриття переміщення даних з обчисленнями. Стани оптимізатора знаходяться в CPU/NVMe; під час зворотного проходу розділи попередньо вибираються через PCIe безпосередньо перед тим, як вони знадобляться, а сам крок оптимізатора часто виконується на ЦП. ZeRO-Offload зберігає головні ваги float32 і моменти Адама на ЦП, тому на ГП залишаються лише прямі та зворотні обчислення. NVMe додає багаторівневий кеш, щоб стани масштабу терабайт переносилися на диск, а гарячі розділи залишалися в оперативній пам’яті.

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

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

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

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

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

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

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

Майбутнє перенесення стану оптимізатора на процесор і NVMe

Оскільки пам’ять графічного процесора зростає, багаторівневе розвантаження стає стандартом, а не екзотикою. Очікуйте тіснішої інтеграції з швидшими з’єднаннями, як-от пули пам’яті NVLink-C2C і CXL, які розмивають межі CPU-GPU, а також розумніші планувальники, які передбачають, які стани попередньо вибирати. Архітектури уніфікованої пам’яті, такі як Grace Hopper, зменшують покарання за PCIe, а фреймворки прагнуть зробити багаторівневе розвантаження майже прозорим, щоб любителі могли точно налаштовувати великі моделі на скромному обладнанні.

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

Точне налаштування LLM із 13 мільярдами параметрів на одному споживчому графічному процесорі 24 ГБ за допомогою DeepSpeed ​​ZeRO-Offload для переміщення станів Адама в оперативну пам’ять ЦП.

Невелика дослідницька лабораторія тренує модель із кількома мільярдами параметрів на кількох графічних процесорах шляхом передачі станів оптимізатора на диски NVMe за допомогою ZeRO-Infinity.

Конфігурації Hugging Face Accelerate дозволяють розвантажувати ЦП, щоб користувачі могли виконувати повні завдання тонкого налаштування, які інакше призвели б до помилок браку пам’яті.

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

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

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

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

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

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

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 Optimizer State Offloading to CPU and NVMe 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 Optimizer State Offloading to CPU and NVMe?

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

Яка основна мета перенесення станів оптимізатора на ЦП або NVMe?

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

Для оптимізатора Adam зі змішаною точністю, які дані зазвичай споживають НАЙБІЛЬШЕ пам’яті на параметр?

Адам зберігає імпульс, дисперсію та основну вагу повної точності, що становить приблизно 16 байт на параметр, що набагато більше, ніж 2-байтова вага напівточності.

Яка функція фреймворка популяризувала масштабне розвантаження оптимізатора?

ZeRO-Offload і ZeRO-Infinity від DeepSpeed ​​представили та популяризували стани оптимізатора розвантаження для ЦП і NVMe у масштабі.

Яка основна вартість продуктивності при розвантаженні на ЦП або NVMe?

Переміщення станів за межі GPU означає передачу даних через PCIe або NVMe, що повільніше, ніж пам’ять на GPU, тому пропускна здатність падає, якщо не накладається на обчислення.

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

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