Оптимизация обучения

Mixed Precision

Смешанная точность

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

Направления: Глубокое обучение · Оптимизация, Инженерия ИИ · Эффективность моделей

Обучение в fp16 или bf16 при накоплении в fp32: двукратная экономия памяти и заметное ускорение.

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

  • fp16 требует масштабирования потерь, чтобы малые не обнулялись; bf16 — нет.
  • Мастер-копия весов и накопление остаются в fp32.
  • На современных ускорителях bf16 — практический дефолт для обучения больших моделей.

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

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

fp16bf16fp32
Бит на мантиссу10723
Диапазон экспонентыузкийкак у fp32полный
Нужен loss scalingданетнет
Где используетсястарые современное обучениеэталон

bf16 жертвует точностью мантиссы ради диапазона — и это оказалось правильным выбором для обучения: переполнение опаснее, чем округление.

scaler = torch.amp.GradScaler()
with torch.autocast(device_type="cuda", dtype=torch.bfloat16):
    loss = model(batch)
scaler.scale(loss).backward()
scaler.unscale_(optimizer)
torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)
scaler.step(optimizer); scaler.update()
  • Экономия памяти около 40–50%, ускорение 1.5–3× на современных ускорителях.
  • Появление NaN обычно означает переполнение в fp16 — переходите на bf16.
  • и внутри autocast считаются в fp32 автоматически.

Видеолекции

Записи университетских курсов, где эта тема звучит. Ссылка открывает запись с той секунды, где о ней говорят, — искать по трёхчасовой лекции не нужно.

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

Стабильность обучения нейросетей · Обучение на GPU · Сжатие моделей

Normalization Layers85%

Слои нормализации · Глубокое обучение

BatchNorm, LayerNorm, RMSNorm: стабилизация распределения активаций, без которой глубокие сети почти не обучаются.

Gradient Clipping85%

Обрезка градиента · Оптимизация обучения

Ограничение нормы градиента перед шагом оптимизатора — простейшая защита от расходимости обучения.

Backpropagation85%

Обратное распространение ошибки · Глубокое обучение

Эффективное вычисление градиентов по всем параметрам сети за один обратный проход с помощью правила цепочки.

Learning Rate Scheduling85%

Расписание скорости обучения · Оптимизация обучения

Изменение шага по ходу обучения: большой в начале для исследования, малый в конце для точной настройки.

Numerical Methods85%

Численные методы · Основы

Компьютер считает приближённо. Понимание точности float, устойчивости и обусловленности спасает от NaN и «необъяснимых» расхождений.

GPU Architecture85%

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

Тысячи простых ядер, сгруппированных в мультипроцессоры, и иерархия памяти, в которую упирается почти любое ускорение.

AI Accelerators85%

Ускорители: GPU, TPU, NPU · Вычислительная инфраструктура

Чем специализированный чип отличается от универсальной видеокарты и когда эта разница окупается.

GPU in PyTorch85%

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

Как проверить доступность ускорителя, разложить тензоры по устройствам и понять, куда ушла видеопамять.

Distributed Training85%

Распределённое обучение · Вычислительная инфраструктура

Как разложить обучение на несколько GPU: копиями модели по данным, шардами состояния или разрезанием самой модели.

Collective Operations85%

Коллективные операции · Вычислительная инфраструктура

AllReduce, Broadcast, AllGather — примитивы, которыми процессы обучения обмениваются тензорами.

Cluster Networking85%

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

Топология соединений и скорость обмена, которые определяют, доедет ли обучение до линейного ускорения.

Training Throughput85%

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

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

Batch size85%

Размер батча · Оптимизация обучения

Число объектов на одно обновление весов: влияет на скорость, память и качество обобщения.

Pruning80%

Прунинг · Глубокое обучение

Удаление наименее значимых весов, каналов или голов внимания из уже обученной сети ради скорости инференса.

Distillation80%

Дистилляция · Генеративный ИИ

Обучение маленькой модели воспроизводить поведение большой: кратное снижение стоимости при небольшой потере качества.

PEFT and Adapters80%

Экономное дообучение · Генеративный ИИ

Базовая модель заморожена, обучается лишь небольшой набор дополнительных параметров — адаптеры, LoRA, префиксы.

LoRA80%

LoRA · Генеративный ИИ

Обучение низкоранговых добавок к весам вместо полного дообучения модели.

GPU Inference80%

GPU-инференс · Системный дизайн ML-сервисов

Как выжать из видеокарты пропускную способность и не переплачивать.

Кому эта тема нужна

Профильная компетенция для роли: MLOps-инженер.

Усиливает профиль: ML Engineer, NLP-инженер, LLM-инженер, CV-инженер, Исследователь, Инженер речи.

Спрашивают на собеседовании: YADRO — Инфраструктура обучения, YADRO — Эффективность моделей.

Проверить себя

Тема встречается в тесте по направлениям — ошибки приведут обратно на эту страницу.

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

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

Следующий шагПроверить себя: Глубокое обучениеТема встречается в этом тесте 1 раз. Ошибка приведёт обратно на эту страницу — с объяснением, что именно не сошлось.Перейти →

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