глоссарий

Mixed precision

Mixed precision

Mixed precision — это подход к обучению нейросетей, при котором вычисления выполняются с использованием чисел разной точности. Часть данных хранится в формате float16 (16 бит, половинная точность), а критичные для точности операции — в float32 (32 бита, полная точность). Зачем это нужно? Основная причина — скорость и память. Числа половинной точности занимают вдвое меньше места, а современные видеокарты выполняют операции с ними в два-четыре раза быстрее. Это позволяет обучать модели большего размера на том же оборудовании и ускорять эксперименты в разы.

Как это работает интуитивно? Представьте, что вы фотографируете здание. Полная точность — это снимок в высоком разрешении, где виден каждый кирпич. Половинная точность — более лёгкая версия, где мелкие трещины могут слиться. Для большинства деталей достаточно лёгкой версии, но если хранить только её, ошибки накопятся и картинка «поплывёт». Поэтому алгоритм делает гибрид: быстрые операции на float16, а веса и градиенты периодически копируются в float32 и «подправляются», чтобы не накапливалась погрешность.

Прикладной пример: обучение большой языковой модели типа GPT на графическом ускорителе. Без mixed precision модель не помещается в память видеокарты или обучается вдвое дольше. Включив технику, вы получаете ту же точность, но с экономией памяти до 40 процентов и ускорением в два раза.

Вывод: mixed precision — это стандарт индустрии, обязательный для современного глубокого обучения. Он даёт значительный выигрыш в скорости и памяти почти без потери качества, если использовать его правильно.