Ultralytics YOLO27:
Назад к глоссарию Ultralytics

Gradient Accumulation

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

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

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

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

Накопление градиентов откладывает обновление оптимизатором. Каждый микропакет проходит прямой и обратный проход, но его градиенты остаются в памяти и добавляются к градиентам последующих микропакетов. Такое поведение естественным образом следует из операции backward в 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.

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

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

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

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

  • Контрольные точки градиентов уменьшают объём памяти для активаций, повторно вычисляя выбранные операции прямого прохода во время обратного распространения. В документации 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

Компьютерное зрение для аэрофотоснимков

Компьютерное зрение для аэрофотоснимков

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

Компьютерное зрение в аэрокосмической отрасли

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

Защити каждый объект с помощью моделей Ultralytics YOLO. Компьютерное зрение обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Узнать больше
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

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

Компьютерное зрение в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI обеспечивает инспекцию посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складах в реальном времени.
Узнать больше
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с помощью моделей Ultralytics YOLO. Vision AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения клиентов.
Узнать больше
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Vision AI в здравоохранении обеспечивает более быструю обработку медицинских изображений, более точную диагностику и интеллектуальный мониторинг пациентов.
Узнать больше
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Vision AI обеспечивает контроль качества, обнаружение дефектов, соблюдение требований к PPE и автоматизацию сборочной линии.
Узнать больше
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Vision AI повышает безопасность дорог, эффективность систем помощи водителю и уровень автоматизации автомобилей, делая дороги умнее.
Узнать больше
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Добавь Vision AI в умное сельское хозяйство с моделями Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание поголовья и точное земледелие для более высоких и эффективных урожаев.
Узнать больше
Компьютерное зрение для аэрофотоснимков

Компьютерное зрение для аэрофотоснимков

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

Компьютерное зрение в аэрокосмической отрасли

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

Защити каждый объект с помощью моделей Ultralytics YOLO. Компьютерное зрение обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Узнать больше
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

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

Компьютерное зрение в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI обеспечивает инспекцию посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складах в реальном времени.
Узнать больше
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с помощью моделей Ultralytics YOLO. Vision AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения клиентов.
Узнать больше
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Vision AI в здравоохранении обеспечивает более быструю обработку медицинских изображений, более точную диагностику и интеллектуальный мониторинг пациентов.
Узнать больше
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Vision AI обеспечивает контроль качества, обнаружение дефектов, соблюдение требований к PPE и автоматизацию сборочной линии.
Узнать больше
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Vision AI повышает безопасность дорог, эффективность систем помощи водителю и уровень автоматизации автомобилей, делая дороги умнее.
Узнать больше
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Добавь Vision AI в умное сельское хозяйство с моделями Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание поголовья и точное земледелие для более высоких и эффективных урожаев.
Узнать больше
Компьютерное зрение для аэрофотоснимков

Компьютерное зрение для аэрофотоснимков

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

Компьютерное зрение в аэрокосмической отрасли

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

Защити каждый объект с помощью моделей Ultralytics YOLO. Компьютерное зрение обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Узнать больше
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

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

Компьютерное зрение в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI обеспечивает инспекцию посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складах в реальном времени.
Узнать больше
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с помощью моделей Ultralytics YOLO. Vision AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения клиентов.
Узнать больше
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Vision AI в здравоохранении обеспечивает более быструю обработку медицинских изображений, более точную диагностику и интеллектуальный мониторинг пациентов.
Узнать больше
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Vision AI обеспечивает контроль качества, обнаружение дефектов, соблюдение требований к PPE и автоматизацию сборочной линии.
Узнать больше
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Vision AI повышает безопасность дорог, эффективность систем помощи водителю и уровень автоматизации автомобилей, делая дороги умнее.
Узнать больше
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Добавь Vision AI в умное сельское хозяйство с моделями Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание поголовья и точное земледелие для более высоких и эффективных урожаев.
Узнать больше

Давай вместе создавать будущее AI!

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