Обучение моделей 64 просмотра

Batch Size

Batch Size / Micro Batch / Global Batch

Batch Size — количество примеров, обрабатываемых за одну итерацию обучения. В распределённом обучении: micro batch (на GPU), gradient accumulation steps и global batch (суммарный).

Три уровня batch size

Global Batch Size = micro_batch × grad_accum_steps × num_gpus

Пример:
  micro_batch = 4       (помещается в VRAM одного GPU)
  grad_accum_steps = 8  (8 forward/backward до optimizer.step)
  num_gpus = 32

  Global Batch Size = 4 × 8 × 32 = 1024
Уровень Определение Ограничение
Micro Batch На 1 GPU за 1 forward pass VRAM
Gradient Accumulation Micro-batch до обновления весов Скорость сходимости
Global Batch Суммарный за 1 optimizer step Качество обучения

Влияние на обучение

Маленький global batch (~32-256):
- Лучше обобщение (generalization)
- Шумные градиенты → регуляризация
- Медленно на кластере

Большой global batch (~1K-10K):
- Быстрее (больше GPU-утилизация)
- Стабильнее градиенты
- Может ухудшить generalization
- Требует warm-up learning rate

Gradient Accumulation

accumulation_steps = 8
optimizer.zero_grad()

for i, batch in enumerate(dataloader):
    loss = model(batch) / accumulation_steps
    loss.backward()

    if (i + 1) % accumulation_steps == 0:
        optimizer.step()
        optimizer.zero_grad()

Для LLM pretraining

Фаза Типичный Global Batch
Pretraining 1M-4M токенов
SFT 128-512 примеров
DPO/RLHF 64-256 пар
LoRA 32-128 примеров

Связанные термины

Попробуйте на практике

Арендуйте GPU и запустите ML-модели в Intelion Cloud

Начать работу