Что делать, когда число фиксировано: снизить точность, накопить , пересчитать , разгрузить загрузчик данных.
Ключевые тезисы
- FP16/BF16 с loss scaling включает Tensor Cores и вдвое сокращает трафик памяти.
- Gradient accumulation даёт большой эффективный без роста памяти и без лишних синхронизаций AllReduce.
- Activation checkpointing меняет память на вычисления: пересчитываются в обратном проходе вместо хранения.
Подробный разбор
| Приём | Что даёт | Чем платим |
|---|---|---|
| BF16/FP16 | 1.5–3× скорости, вдвое меньше памяти | loss scaling для FP16, с редкими слоями |
| Gradient accumulation | большой эффективный без роста памяти | больше шагов между обновлениями |
| Activation checkpointing | память падает в разы | +20–30% вычислений |
| Быстрый загрузчик данных | перестаёт ждать данные | память CPU и воркеры |
Gradient accumulation важен и для : обмен (AllReduce) происходит только на шаге обновления, поэтому накопление за K микробатчей сокращает число синхронизаций в K раз при том же эффективном батче.
scaler = torch.amp.GradScaler()
accum = 8
for i, batch in enumerate(loader):
with torch.autocast("cuda", dtype=torch.bfloat16):
loss = model(batch) / accum
scaler.scale(loss).backward()
if (i + 1) % accum == 0:
scaler.step(optimizer); scaler.update(); optimizer.zero_grad(set_to_none=True)Прежде чем оптимизировать, измерьте MFU (model FLOPs utilization) — долю пиковой производительности карты, которую реально использует обучение. Значение в 10–20% почти всегда означает, что ждёт данные или сеть, а не считает.
Видеолекции
Записи университетских курсов, где эта тема звучит. Тайм-кодов у них нет, поэтому открываются они с начала.
Связанные темы
Обучение на GPU
GPU Architecture85%
Архитектура GPU · Вычислительная инфраструктураТысячи простых ядер, сгруппированных в мультипроцессоры, и иерархия памяти, в которую упирается почти любое ускорение.
AI Accelerators85%
Ускорители: GPU, TPU, NPU · Вычислительная инфраструктураЧем специализированный чип отличается от универсальной видеокарты и когда эта разница окупается.
GPU in PyTorch85%
GPU в PyTorch · Вычислительная инфраструктураКак проверить доступность ускорителя, разложить тензоры по устройствам и понять, куда ушла видеопамять.
Distributed Training85%
Распределённое обучение · Вычислительная инфраструктураКак разложить обучение на несколько GPU: копиями модели по данным, шардами состояния или разрезанием самой модели.
Collective Operations85%
Коллективные операции · Вычислительная инфраструктураAllReduce, Broadcast, AllGather — примитивы, которыми процессы обучения обмениваются тензорами.
Cluster Networking85%
Сеть кластера · Вычислительная инфраструктураТопология соединений и скорость обмена, которые определяют, доедет ли обучение до линейного ускорения.
Mixed Precision85%
Смешанная точность · Оптимизация обученияОбучение в fp16 или bf16 при накоплении в fp32: двукратная экономия памяти и заметное ускорение.
Batch size85%
Размер батча · Оптимизация обученияЧисло объектов на одно обновление весов: влияет на скорость, память и качество обобщения.
Профильная компетенция для роли: MLOps-инженер.
Усиливает профиль: Data Engineer, Исследователь.
Спрашивают на собеседовании: YADRO — Инфраструктура обучения.
Разбор архитектуры, где эта тема — один из кирпичей: требования, развилки, цифры и режимы отказа.
Глава «Вычислительная инфраструктура» последний раз правилась . Нашли ошибку — напишите.