Вычислительная инфраструктура

Training Throughput

Ускорение обучения

актуальноТекущий рабочий стандарт

Направления: Инженерия ИИ · Распределённый ML, Инженерия ИИ · Эффективность моделей

Что делать, когда число фиксировано: снизить точность, накопить , пересчитать , разгрузить загрузчик данных.

Ключевые тезисы

  • FP16/BF16 с loss scaling включает Tensor Cores и вдвое сокращает трафик памяти.
  • Gradient accumulation даёт большой эффективный без роста памяти и без лишних синхронизаций AllReduce.
  • Activation checkpointing меняет память на вычисления: пересчитываются в обратном проходе вместо хранения.

Подробный разбор

1 подтема — объяснения, формулы, примеры и интерактивные графики.

ПриёмЧто даётЧем платим
BF16/FP161.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Инфраструктура обучения.

Тема в работе целиком

Разбор архитектуры, где эта тема — один из кирпичей: требования, развилки, цифры и режимы отказа.

Следующий шагТема в работе: Обучение, когда данные не влезают в узелСквозной разбор архитектуры, где эта тема — один из кирпичей: требования, бюджет, развилки и режимы отказа.Перейти →

Глава «Вычислительная инфраструктура» последний раз правилась . Нашли ошибку — напишите.