Batch

Batch — количество обучающих примеров (сэмплов), которые нейронная сеть обрабатывает одновременно за одну итерацию перед обновлением своих внутренних параметров (весов).

Это один из самых критических гиперпараметров, определяющих эффективность тренировочного процесса, требования к аппаратному обеспечению и финальное качество модели.

Математическая механика Batch

Существует три основных стратегии подачи данных в оптимизатор:

  1. Пакетный режим (Batch Gradient Descent): Весь датасет (N сэмплов) подается сразу. Весы обновляются один раз за эпоху. Это дает самый точный градиент, но требует колоссального объема памяти и крайне медленно на стандартных GPU.
  2. Стохастический режим (Stochastic GD): Размер батча равен 1. Модель учится на каждом примере отдельно. Это создает очень «шумный» сигнал обновления, который помогает избегать локальных минимумов, но делает траекторию обучения нестабильной.
  3. Мини-батчи (Mini-batch SGD): Компромиссный вариант. Данные разбиваются на группы от 8 до 4096 элементов. Именно этот подход является индустриальным стандартом сегодня.

Почему параллелизм побеждает последовательную обработку

Современные ускорители (GPU/TPU) спроектированы как массивно-параллельные вычислители.

  • Если модель обрабатывает 1 изображение, 99% тензорных ядер простаивают.
  • Если подать батч из 256 изображений, матрица активаций заполняется полностью. Ядра выполняют операцию Matrix_Multiplication(Activation_Batch, Weights) максимально эффективно.

Увеличение размера Batch позволяет лучше утилизировать пропускную способность памяти (Memory Bandwidth) и вычислительные блоки чипа, снижая долю накладных расходов на запуск инструкций.

Влияние Batch Size на процесс обучения

Выбор числа примеров в пакете напрямую меняет физику оптимизации ландшафта функции потерь.

Статистика против шума

Градиент, вычисленный на большом батче (например, 1024), является более точным приближением истинного градиента всего датасета. Обучение становится плавным и стабильным (как спуск с пологой горы). Маленький батч (например, 16) дает зашумленную оценку направления движения. Этот шум работает как регуляризатор, позволяя модели «выпрыгивать» из мелких локальных ям и плоских плато, что иногда способствует лучшей генерализации.

Динамика нормы обучения (Learning Rate)

Существует эмпирическое правило масштабирования: если вы увеличиваете размер батча в k раз, норму обучения также следует увеличить примерно в k раз (Linear Scaling Rule). Это связано с тем, что при больших батчах веса обновляются реже (раз в N примеров вместо одного), поэтому каждый шаг должен быть весомее, чтобы компенсировать редкость обновлений.

Проблема «Обобщающего разрыва» (Generalization Gap)

Исследования (в частности, работы Хсю-Танга Чена и коллег) показали, что экстремально большие батчи часто приводят к ухудшению качества модели на тестовых данных, даже если ошибка на обучении минимальна. Считается, что при огромных размерах пакетов модель перестает видеть разнообразие данных и начинает «переобучаться» под статистические особенности конкретных мини-групп. Для борьбы с этим применяют техники вроде Ghost Batch Normalization.

Аппаратные ограничения

Размер Batch — главный потребитель видеопамяти (VRAM) во время обучения. Потребление складывается из нескольких факторов:

  1. Активации: Каждый слой сохраняет результаты вычислений для обратного прохода. Чем больше батч, тем выше тензоры активаций.
  2. Оптимизатор состояния: Adam хранит дополнительные копии весов (моменты первого и второго порядка). При использовании ZeRO оптимизаторов или FSDP это потребление может расти кратно.
  3. Смешанная точность: Использование FP16/BF16 вдвое снижает затраты на хранение активаций по сравнению с FP32.

Если исследователь хочет удвоить контекстное окно языковой модели или увеличить разрешение картинок, ему почти всегда приходится пропорционально уменьшать Batch Size, чтобы вместиться в лимит GPU (например, 80 ГБ на H100).

Специфика инференса (работы готовой модели)

В режиме эксплуатации (когда модель уже обучена и отвечает пользователям) понятие батча сохраняется, но логика меняется:

  • Static Batching (Статический батчинг): Система ждет накопления запросов (например, 32 штук) и отправляет их все разом в GPU. Это дает максимальную загрузку железа и низкую стоимость запроса, но увеличивает задержку (latency) для первого пользователя.
  • Dynamic Batching (Динамический батчинг): Алгоритм шедуллера группирует пришедшие запросы «на лету» с таймаутом. Если за 10 мс пришло 5 запросов, они улетают вместе.
  • Batch Size = 1: Используется в системах высокочастотной торговли или автопилотах, где важна абсолютная минимальная задержка ответа, а экономия ресурсов вторична.

Современные подходы к управлению данными

В контексте современных LLM (Large Language Models) классического батчинга по примерам стало недостаточно. Появились новые концепции:

  1. Gradient Accumulation: Если нам нужен эффективный размер батча 2048, но в GPU влезает только 64, мы можем сделать 32 последовательных шага (Forward+Backward), накапливая градиенты в памяти, и обновить веса только в конце. С точки зрения математики это эквивалентно большому батчу, но экономит память под активации.
  2. Micro-batching в распределенном обучении: При использовании Data Parallelism датасет делится между копиями модели. Чтобы синхронизировать их через AllReduce без перегрузки сетевых коммутаторов InfiniBand, используют микро-батчи внутри общего пакета узла.
  3. Variable Sequence Lengths: В обработке текста примеры имеют разную длину. Инженеры используют методы динамического паддинга (dynamic padding) и упаковку промптов (packing), чтобы минимизировать пустые значения в батче и максимизировать плотность полезной информации.

Batch — это рычаг управления эффективностью системы.

  • Для исследователя: Маленький Batch — стабильность и лучшая обобщающая способность; большой Batch — скорость экспериментов.
  • Для инженера дата-центра: Максимально возможный Batch — это способ снизить себестоимость каждого токена и выжать максимум терафлопс из дорогостоящего кластера NVIDIA B200 или Google TPU v5p.

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

Начнем диалог

Начните масштабирование сегодня

Свяжитесь с нашими экспертами для подбора оптимальной конфигурации оборудования и расчета стоимости аренды под ваши задачи ИИ.

Локация: г.Москва, вн.тер.г., ш. Очаковское, д.28, стр.2
GPU-серверы Высокоплотные вычисления
Облачная аренда Быстрый старт ИИ моделей
Enterprise SLA Гарантированная доступность
Низкая задержка Оптимальные сетевые трассы