Training
microbatch
Малая порция данных, обрабатываемая за один шаг при gradient accumulation.
Что такое microbatch
Microbatch — маленький батч данных, обрабатываемый за один прогон вперёд (forward pass) при gradient accumulation. Градиенты от нескольких microbatch суммируются (накапливаются) перед единственным шагом оптимизатора.
По сути, microbatch = per_device_train_batch_size в терминах Hugging Face. Effective batch size = microbatch_size × gradient_accumulation_steps × num_GPUs.
Пример
# Задача: effective batch 64 на одном GPU с 10 ГБ VRAM
# per_device_batch_size=4 — максимум, умещающийся в памяти
# gradient_accumulation_steps = 64 / 4 = 16
training_args = TrainingArguments(
per_device_train_batch_size=4, # microbatch
gradient_accumulation_steps=16, # накопить 16 шагов
)
# → effective BS = 4 × 16 = 64
В контексте pipeline parallelism
В pipeline parallelism microbatch имеет специфическое значение: большой батч делится на microbatch для заполнения конвейера — пока GPU 1 обрабатывает первый microbatch, GPU 0 берёт второй. Это минимизирует «bubble» простоя конвейера.
Связанные термины
- gradient accumulation — процесс накопления gradient-ов от microbatch
- batch size — effective batch = microbatch × accumulation steps
- pipeline parallelism — другое применение microbatch
Готовы запустить GPU-задачу?
Запустить GPU-сервер