Толковый словарь по нейросетям и искусственному интеллекту
Накопление градиентов
Gradient Accumulation
Категория термина
Накопление градиентов (Gradient Accumulation) — это техника обучения нейросетей, при которой несколько мини-батчей данных последовательно проходят через модель, а вычисленные градиенты суммируются (накапливаются) перед обновлением весов. Такой подход позволяет эффективно имитировать обучение с большим размером батча, даже если видеопамять устройства ограничена и не позволяет обрабатывать его напрямую.Основная идея: вместо того чтобы обновлять веса после каждого мини-батча, модель сначала суммирует градиенты от нескольких итераций, а затем выполняет один шаг оптимизации.
🧠 Механизм работы:
- Мини-батч данных проходит через сеть, вычисляются градиенты.
- Градиенты не применяются сразу, а сохраняются и накапливаются.
- Процесс повторяется для заданного числа шагов (например, 4 мини-батча подряд).
- После накопления градиентов выполняется одно обновление весов оптимизатором.
- Градиенты обнуляются, и процесс начинается заново.
🔑 Основные особенности:
- Эффективность памяти
- Позволяет обучать модели с «эффективным» большим батчем, не увеличивая нагрузку на GPU.
- Улучшение стабильности обучения
- Большие батчи сглаживают шум в градиентах и обеспечивают более устойчивую сходимость.
- Контроль числа шагов
- Параметр «steps per accumulation» определяет, сколько мини-батчей накапливаются перед обновлением весов.
📌 Примеры применения:
- Обучение больших языковых моделей
- Используется для тренировки LLM на ограниченных GPU, где прямой большой батч невозможен.
- Компьютерное зрение
- Применяется в задачах классификации и сегментации изображений для увеличения «эффективного» размера батча.
- Обучение на видеокартах с малым количеством памяти
- Позволяет использовать даже 4–6 GB GPU для тренировки сложных моделей.
⚖️ Преимущества и недостатки:
Преимущества:- Позволяет работать с большими «эффективными» батчами на ограниченных ресурсах.
- Снижает дисперсию градиентов, повышая устойчивость обучения.
- Гибкость: легко комбинируется с любыми оптимизаторами.
- Увеличивает время одной эпохи, так как обновления происходят реже.
- Требует дополнительного контроля нормализации (например, деления градиентов на число накоплений).
- Может замедлить реакцию модели на новые данные, так как веса обновляются реже.
🧠 Связанные понятия:
- Batch Size — количество примеров, обрабатываемых за одну итерацию.
- Mini-batch Gradient Descent — метод оптимизации, на котором основано накопление градиентов.
- Mixed Precision Training — техника оптимизации памяти, часто используемая совместно с накоплением градиентов.
- Optimizer Step — обновление весов модели, выполняемое после накопления градиентов.