глоссарий

FP16

FP16

FP16 — формат чисел с плавающей точкой, занимающий 16 бит (2 байта) вместо 32 у привычного float. Это «половинная точность»: диапазон от ~6×10⁻⁵ до 65 тысяч, но зато вычисления на современных GPU и специализированных чипах заметно ускоряются.

Зачем нужно? При обучении больших нейросетей (GPT, Stable Diffusion) оперируют миллионами чисел. В FP32 память быстро заканчивается, скорость падает. Переход на FP16 вдвое сокращает память и часто вдвое ускоряет операции, так как чипы спроектированы под быструю обработку малоразрядных чисел. Без этого обучение современных моделей было бы дороже и медленнее.

Как это работает? Представьте ценник: FP32 — чек с точностью до копейки, FP16 — ценник с двумя значащими цифрами. Число 12345 округлится до ~12352. Для текста и картинок такая погрешность почти незаметна, зато таких чисел помещается вдвое больше и считать их быстрее. Чтобы не терять важные детали, применяют смешанный подход: веса хранят в FP16, а накопление ошибок временно ведут в FP32.

Пример: при генерации изображений через нейросеть почти все матричные умножения выполняются в FP16, поэтому картинка появляется за секунды, а не минуты. В противном случае новые видеокарты без поддержки FP16 работали бы даже медленнее старых.

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