Толковый словарь по нейросетям и искусственному интеллекту
Шаг накопления градиента
Категория термина
Шаг накопления градиента (Gradient Accumulation Step) — это техника обучения нейросетей, при которой градиенты накапливаются в течение нескольких батчей перед обновлением параметров модели. Это позволяет эффективно использовать большие модели и ограниченную видеопамять, имитируя больший размер батча без необходимости загружать все данные сразу.
🧠 Механизм работы:
- Модель получает подбатч данных и вычисляет градиенты ошибки через обратное распространение.
- Градиенты сохраняются, но веса модели ещё не обновляются.
- Процесс повторяется для нескольких подбатчей, накапливая градиенты.
- После заданного числа шагов накопления (Gradient Accumulation Steps) градиенты суммируются и выполняется один шаг обновления параметров модели.
🔑 Основные особенности:
- Позволяет использовать большую эффективную размерность батча без увеличения памяти GPU.
- Уменьшает шум градиентов, улучшая стабильность обучения.
- Часто применяется при тренировке больших трансформеров и других глубоких моделей.
- Требует точного отслеживания количества шагов накопления для корректного масштабирования градиентов.
📌 Примеры применения:
- Обучение больших трансформеров (GPT, BERT) на ограниченной видеопамяти.
- Обработка высокоразмерных изображений в CNN без уменьшения качества батча.
- NLP-задачи с длинными последовательностями, где один батч может превышать доступную память.
- Обучение GAN с большим разрешением изображений, когда стандартный батч не помещается в память GPU.
⚖️ Преимущества и недостатки:
Преимущества:
- Позволяет имитировать большие батчи без необходимости в больших GPU.
- Повышает стабильность градиентов и обучение модели.
- Удобно комбинируется с различными оптимизаторами и LR schedulers.
Недостатки:
- Увеличивает время одного шага обновления параметров.
- Требует корректного масштабирования градиентов для сохранения стабильности.
- Может усложнить логику обучения и отладку модели.
🧠 Связанные понятия:
- Gradient Accumulation — общий механизм накопления градиентов перед обновлением весов.
- Mini-Batch Gradient Descent — метод, где градиенты вычисляются на небольших батчах без накопления.
- Optimizer Step — обновление параметров модели после накопления градиентов.
- Effective Batch Size — размер батча, фактически используемый после учёта шагов накопления.
💡 Вывод:
Шаг накопления градиента (Gradient Accumulation Step) позволяет эффективно обучать большие модели на ограниченных ресурсах, улучшая стабильность градиентов и имитируя работу с большими батчами без необходимости загружать всё сразу в память GPU.