Число объектов на одно обновление весов: влияет на скорость, память и качество обобщения.
Ключевые тезисы
- Большие батчи ускоряют эпоху, но требуют пропорционально большего lr.
- Малые батчи дают регуляризующий шум.
- Gradient accumulation имитирует большой батч на ограниченной памяти.
Подробный разбор
2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.
1Что меняется с размером батча
Скорость, память, шум и обобщение.
- Память растёт линейно: активации всех слоёв хранятся для каждого объекта батча.
- Скорость эпохи растёт: GPU лучше загружается большими матрицами.
- Число обновлений падает — приходится увеличивать lr.
- Обобщение может ухудшиться из-за потери полезного шума.
# Эффективный батч 512 при памяти на 64
accum = 8
for i, batch in enumerate(loader):
loss = model(batch) / accum
loss.backward()
if (i + 1) % accum == 0:
optimizer.step()
optimizer.zero_grad()2Правила масштабирования
Как менять learning rate вместе с батчем.
- Линейное правило: увеличили батч в раз — увеличьте lr в раз (работает до умеренных размеров).
- Корневое правило: — часто устойчивее для адаптивных оптимизаторов.
- При больших батчах обязателен warmup, иначе первые шаги разрушают инициализацию.
- После некоторого размера батча прирост скорости прекращается — это точка «критического батча».
Связанные темы
Оптимизаторы
Optimization85%
Оптимизация · ОсновыПоиск параметров, минимизирующих функцию потерь. Свойства задачи — выпуклость, гладкость, обусловленность — определяют, насколько это просто.
Optimizers85%
Оптимизаторы · Глубокое обучениеПравила обновления весов по градиенту: от чистого SGD до адаптивных методов.
Gradient Descent85%
Градиентный спуск · Оптимизация обученияИтеративный шаг против градиента функции потерь — базовый алгоритм обучения.
SGD85%
Стохастический градиентный спуск · Оптимизация обученияГрадиент оценивается по мини-батчу: быстрее, шумнее и, как оказалось, полезнее для обобщения.
Momentum85%
Момент · Оптимизация обученияНакопление экспоненциального среднего градиентов — движение по инерции сквозь колебания.
Adam85%
Adam · Оптимизация обученияАдаптивный метод: хранит средние градиента и его квадрата, подбирая шаг для каждого параметра.
AdamW85%
AdamW · Оптимизация обученияAdam с корректно отделённым weight decay — регуляризация применяется к весам, а не к градиенту.
RMSProp85%
RMSProp · Оптимизация обученияНормирует шаг на скользящее среднее квадратов градиента, выравнивая масштаб обновлений.
Learning Rate Scheduling85%
Расписание скорости обучения · Оптимизация обученияИзменение шага по ходу обучения: большой в начале для исследования, малый в конце для точной настройки.