глоссарий

FP8

FP8

FP8 — компактный формат хранения чисел с плавающей точкой, занимающий 8 бит вместо 32 или 16. Он создан для ИИ, где скорость и экономия памяти важнее абсолютной точности. Существуют два основных типа: E4M3 (4 бита на экспоненту, 3 на мантиссу — выше точность) и E5M2 (5 бит на экспоненту, 2 на мантиссу — шире диапазон значений).

Современные нейросети содержат миллиарды параметров, и каждое число нужно хранить и перемножать. FP8 использует в 4 раза меньше памяти, чем float32, и в 2 раза меньше, чем float16, а операции выполняются быстрее. Это особенно важно при обучении больших языковых моделей и их развертывании на серверах: удешевляет эксперименты и делает передовые архитектуры доступнее.

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

NVIDIA использует FP8 в ускорителях Hopper и Ada Lovelace, например H100. При обучении моделей вроде Llama это позволяет вдвое сократить число GPU по сравнению с float16, и качество остается практически прежним. Снижается и энергопотребление, что сокращает затраты на охлаждение дата-центров.

FP8 — компромисс между точностью и эффективностью. Он не заменяет другие форматы, но для массовых задач становится стандартом, позволяющим строить мощные модели с меньшими затратами.