YOLO Vision 2026:
Назад к глоссарию Ultralytics

Gradient Accumulation

Узнай, как накопление градиентов позволяет использовать большие эффективные размеры батчей при ограниченном объеме памяти GPU, с практическими рекомендациями по обучению в PyTorch и Ultralytics YOLO.

Накопление градиентов — это метод обучения, который суммирует градиенты из нескольких небольших батчей, называемых микробатчами, перед выполнением одного обновления весов модели. Он приближает обучение к большему размеру батча, когда доступная видеопамять GPU не может вместить весь батч целиком. Это делает градиентный спуск, требующий много памяти, практичным без изменения архитектуры модели или уменьшения разрешения входных данных.

Как работает накопление градиентов#

Во время обычного обучения каждый батч проходит три основных этапа: вычисление потерь, использование обратного распространения ошибки для расчета градиентов и вызов оптимизатора для обновления весов модели. Затем градиенты очищаются перед следующим батчем.

Накопление градиентов откладывает обновление оптимизатора. Каждый микробатч выполняет прямой и обратный проход, но его градиенты остаются в памяти и добавляются к градиентам из последующих микробатчей. Такое поведение естественным образом следует из операции обратного прохода PyTorch, которая аккумулирует значения в поле градиента каждого параметра.

После настроенного количества шагов накопления:

  1. Оптимизатор обновляет веса модели.
  2. Градиенты сбрасываются с помощью операции вроде Optimizer.zero_grad.
  3. Начинается новое окно накопления.

Эффективный размер батча равен:

microbatch size x accumulation steps x number of training devices

Например, микробатч из 4 изображений, накопленный за 8 шагов, ведет себя примерно как батч из 32 изображений на одном GPU. С четырьмя GPU глобальный эффективный размер батча становится равным 128.

Влияние на память, скорость и процесс обучения#

Накопление градиентов снижает пиковый объем памяти, необходимый для активаций, поскольку через сеть за раз проходит только один микробатч. Оно существенно не уменьшает память, используемую параметрами модели, градиентами или состоянием оптимизатора.

Оно также обычно не ускоряет обучение. Обработка восьми микробатчей по-прежнему требует восьми прямых и обратных проходов, а меньшие батчи могут использовать GPU менее эффективно. Основное преимущество заключается в том, чтобы поместить желаемый эффективный батч в ограниченный объем памяти. Вторичное преимущество может проявляться при распределенном обучении, где реализации могут избегать синхронизации градиентов до конца окна накопления, используя такие функции, как DistributedDataParallel no_sync.

Ручная реализация обычно делит потери каждого микробатча на количество шагов накопления, чтобы результирующий градиент представлял собой среднее значение, а не сумму. Высокоуровневые тренеры могут обрабатывать нормализацию автоматически, поэтому применение дополнительного масштабирования может привести к некорректным обновлениям.

Накопление может приблизить поведение к истинному большому батчу, но результаты не всегда идентичны. Статистика пакетной нормализации рассчитывается по отдельным микробатчам, в то время как стохастические операции и порядок чисел с плавающей запятой также могут привносить различия. Поэтому скорость обучения может потребовать проверки, а не автоматического масштабирования.

Связанные методы и ключевые различия#

Накопление градиентов часто путают с другими методами управления памятью или стабильности:

  • Контрольные точки градиента (Gradient checkpointing) уменьшают объем памяти под активации путем повторного вычисления выбранных операций прямого прохода во время обратного распространения. Документация PyTorch по контрольным точкам активации описывает этот компромисс между вычислениями и памятью. Накопление же делит большой батч на более мелкие микробатчи.
  • Смешанная точность сохраняет или вычисляет выбранные операции с типами данных пониженной точности. Она может уменьшить потребление памяти и улучшить пропускную способность, в то время как накопление меняет частоту обновления параметров оптимизатора. Эти методы можно комбинировать, следуя правильному рабочему процессу накопления при автоматической смешанной точности.
  • Клиппинг градиентов ограничивает величину градиентов, чтобы снизить нестабильность из-за необычно крупных обновлений. Он не создает больший эффективный батч. При сочетании с накоплением клиппинг обычно должен происходить после того, как градиент полностью накоплен, с использованием такой операции, как clip_grad_norm.

Реальные приложения#

В сегментации медицинских изображений высокого разрешения на GPU с 12 ГБ памяти могут поместиться только два крупных скана за раз. Накопление градиентов по восьми микробатчам дает эффективный батч из 16 изображений, сохраняя при этом разрешение, необходимое для идентификации мелких анатомических структур. Компромиссом здесь является более длинный интервал между обновлениями оптимизатора.

Для аэрофотообнаружения объектов команда инженеров может проводить обучение на четырех GPU с шестью изображениями на устройство и четырьмя шагами накопления. Эффективный глобальный батч составляет 96 изображений. Это позволяет стабилизировать обновления для сцен, содержащих много мелких транспортных средств или зданий, удерживая каждое устройство в пределах лимита памяти. Команды могут управлять облачными экспериментами, наборами данных и запусками обучения через облачное обучение Ultralytics Platform.

Накопление градиентов с Ultralytics YOLO#

Рабочий процесс обучения моделей в Ultralytics определяет поведение накопления на основе физической настройки batch и номинальной настройки nbs. С параметрами batch=4 и nbs=64 тренер ориентируется на номинальный батч из 64, откладывая обновления оптимизатора на несколько микробатчей.

from ultralytics import YOLO

# Load a pretrained YOLO26 detection model
model = YOLO("yolo26n.pt")

# Use a small physical batch and a larger nominal batch
results = model.train(
    data="coco8.yaml",
    epochs=10,
    batch=4,
    nbs=64,
)

Высокоуровневый тренер управляет обратным распространением, накоплением, шагами оптимизатора и очисткой градиентов. Его поведение документировано в справочнике Ultralytics BaseTrainer. На практике выбирай наибольший микробатч, который надежно помещается в память, рассчитывай предполагаемый эффективный батч и сравнивай результаты валидации при изменении шагов накопления, скорости обучения или количества устройств.

Explore solutions

Real-time AI that works with your team

ИИ в робототехнике

Делай свои машины умнее с помощью моделей Ultralytics YOLO. ИИ машинного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.
Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

Создавай решения для здравоохранения с помощью моделей Ultralytics YOLO. ИИ для зрения в медицине ускоряет анализ медицинских изображений, делает диагностику более точной, а мониторинг пациентов — эффективнее.
Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.
Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.
Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.
Узнать больше
Real-time AI that works with your team

ИИ в робототехнике

Делай свои машины умнее с помощью моделей Ultralytics YOLO. ИИ машинного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.
Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

Создавай решения для здравоохранения с помощью моделей Ultralytics YOLO. ИИ для зрения в медицине ускоряет анализ медицинских изображений, делает диагностику более точной, а мониторинг пациентов — эффективнее.
Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.
Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.
Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.
Узнать больше
Real-time AI that works with your team

ИИ в робототехнике

Делай свои машины умнее с помощью моделей Ultralytics YOLO. ИИ машинного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.
Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

Создавай решения для здравоохранения с помощью моделей Ultralytics YOLO. ИИ для зрения в медицине ускоряет анализ медицинских изображений, делает диагностику более точной, а мониторинг пациентов — эффективнее.
Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.
Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.
Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.
Узнать больше

Давай строить будущее ИИ вместе!

Начни свой путь в будущее машинного обучения