ДаліНаступний посібник
Зникаючі та розривні градієнти
технічний
Технічний КЕРІВНИЦТВО
Накопичення градієнта дає змогу імітувати великий розмір партії в обмеженій пам’яті графічного процесора, підсумовуючи градієнти кількох невеликих міні-пакетів перед оновленням ваг.
Послухайте цей посібникШІ-розказаний · ~2 min
It is the standard workaround for training big models when memory is the bottleneck.
Зазвичай етап навчання обробляє одну партію, обчислює градієнти та негайно оновлює параметри. З накопиченням градієнта ви виконуєте кілька проходів вперед і назад на менших мікро-пакетах, додаючи їхні градієнти разом у буферах параметрів, і викликаєте крок оптимізатора (і обнулюєте градієнти) лише після N мікро-пакетів. Ефективний розмір пакету стає розміром мікропакета, помноженого на N, навіть якщо пікова пам’ять містить лише один мікропакет активацій. Це важливо, тому що багато рецептів навчання передбачають великі партії для стабільної статистики, а також тому, що такі моделі, як великі трансформатори, не можуть вмістити повну цільову партію на одному пристрої. Заковика: статистика пакетної нормалізації обчислюється для мікропакета, тому норми шару або норми групи краще поєднуються з накопиченням, і ви повинні правильно масштабувати втрати, щоб підтримувати ефективну швидкість навчання.
Точне налаштування великої мовної моделі на одному споживацькому графічному процесорі шляхом накопичення понад 8 або 16 мікропакетів для досягнення ефективного пакету із сотень.
Навчання бачення з високою роздільною здатністю або моделей сегментації, де підходить навіть партія з 2, але для рецепту потрібна ефективна партія з 32.
Тренажер для обіймів обличчя та PyTorch Lightning розкривають параметр gradient_accumulation_steps, який регулярно використовується в налаштуваннях обмеженої пам’яті VRAM.
Відтворення результатів великої партії паперу на меншому обладнанні шляхом узгодження ефективного розміру партії через накопичення.
Накопичення градієнта залишатиметься важелем за замовчуванням, оскільки розміри моделей випереджають пам’ять одного пристрою. Він все частіше поєднується зі змішаною точністю, контрольними точками активації, шардингом ZeRO та паралелізмом конвеєрів у таких структурах, як DeepSpeed і FSDP. Очікуйте більш жорсткої автоматизації, коли бібліотеки автоматично налаштовують кроки накопичення відповідно до бюджету пам’яті, і збереження важливості точного налаштування великих моделей на скромному апаратному забезпеченні, включаючи споживчі графічні процесори, де це розблокує навчання, яке інакше було б неможливо.
Безплатний розсилок
Три перевірені історії про ШІ щоробочого ранку, написані простою мовою. Безплатно назавжди, без реклами.
Один лист щотижня з понеділка по п'ятницю. Відписатися в один клік. Ми ніколи не продаємо та не передаємо вашу адресу.
Перевір себе
Миттєва зворотна связь на кожну відповідь та сертифікат із перевіреним ідентифікатором, яким можна поділитися, після проходження курсу.
Підтримайте безплатну освіту у сфері ШІ. AI Understanding — це некомерційна організація 501(c)(3) — без реклами, без платних стін, назавжди. Зробіть пожертву
Накопичення градієнта дає змогу імітувати великий розмір партії в обмеженій пам’яті графічного процесора, підсумовуючи градієнти кількох невеликих міні-пакетів перед оновленням ваг. Це стандартний обхідний шлях для навчання великих моделей, коли пам’ять є вузьким місцем.
Підсумовуючи градієнти кількох мікро-серій перед оновленням, ви імітуєте велику серію, не зберігаючи її в пам’яті відразу.
Accumulate gradients across N micro-batches, call optimizer.step() once for the effective batch, then clear gradients before the next window; begin training with cleared buffers.
Batch-norm обчислює статистику для кожної мікропартії, тому норма шару або групи дозволяє уникнути невідповідності з малими мікропартіями.
Batch-dependent forward computations break exact equivalence.
Продовжуйте вчитися
Інші посібники, вибрані для цієї теми
ДаліНаступний посібник
Зникаючі та розривні градієнти
технічний