Запуск моделей
Квантование LLM: FP8, INT4 и FP4 простыми словами
Что такое квантование LLM простыми словами: форматы FP8, INT8, INT4, FP4 и GGUF, сколько памяти они экономят, как влияют на качество и какое железо их поддерживает.
Содержание
Квантование LLM это хранение весов модели с меньшей точностью: вместо 2 байт на параметр в BF16 используется 1 байт (FP8, INT8) или полбайта (INT4, FP4). Модель становится в 2–4 раза меньше и быстрее генерирует текст. В FP8 качество почти не меняется, в 4 битах потери заметнее на сложных задачах. Например, Llama 3.3 70B занимает 140 ГБ в BF16, 70 ГБ в FP8 и около 40 ГБ в 4 битах.
Что такое квантование нейросети простыми словами
Языковая модель это миллиарды чисел, её весов. Обычно модели выпускают в BF16, где каждое число занимает 2 байта. Квантование округляет эти числа до более грубой сетки значений, чтобы каждое занимало 1 байт или полбайта.
Похоже на сжатие фотографии. Снимок в хорошем JPEG почти не отличить от исходника, а при сильном сжатии появляются артефакты, особенно на мелких деталях. С моделью так же: FP8 почти не отличается от оригинала, а в 4 битах теряются тонкости, и это видно на сложных задачах вроде математики, кода и длинных рассуждений.
Чтобы округление меньше портило модель, веса делят на небольшие группы, и у каждой группы хранится свой масштаб. Числа внутри группы записываются относительно него. Отсюда «лишние» доли байта: 4-битный формат на практике занимает чуть больше полбайта на параметр.
Форматы: от BF16 до FP4 и GGUF
| Формат | Байт на параметр | Где используется | Аппаратная поддержка |
|---|---|---|---|
| BF16 / FP16 | 2 | Обучение, эталон для сравнения | Все современные GPU и NPU |
| FP8 | 1 | Инференс почти без потерь, родной формат DeepSeek V3 и R1 | Hopper (H100, H200), Blackwell |
| INT8 | 1 | Инференс, в том числе на Huawei Ascend | GPU NVIDIA, Huawei Ascend |
| INT4 (GPTQ, AWQ) | ~0,5 | Крупные модели на ограниченной памяти, сервисы на vLLM | Программно на современных GPU |
| GGUF (Q8_0, Q4_K_M) | ~1 и ~0,6 | Ollama и llama.cpp, один пользователь | Процессоры, GPU NVIDIA, Mac |
| NVFP4 | ~0,5 | Максимум скорости и экономии памяти | Только Blackwell |
| MXFP4 | ~0,5 | Родной формат gpt-oss | Аппаратно Blackwell, на Hopper программно |
Коротко о каждом:
- FP8 это 8-битное число с плавающей запятой. На Hopper и Blackwell его считают тензорные ядра, поэтому выигрыш есть и в памяти, и в вычислениях.
- GPTQ и AWQ это методы, которые сжимают веса до 4 бит (INT4). Оба прогоняют через модель небольшой набор примеров, чтобы понять, какие веса важнее, и округлить остальные аккуратнее. Сами вычисления при этом идут в 16 битах: веса распаковываются на лету.
- GGUF это формат файлов llama.cpp и Ollama с набором вариантов сжатия. Цифра в названии примерно равна числу бит: Q8_0 около 8 бит, Q4_K_M около 4,5–5 бит на параметр.
- NVFP4 и MXFP4 это 4-битные числа с плавающей запятой. Аппаратно их считает только Blackwell. В MXFP4 выпущена gpt-oss, о ней подробно в статье «gpt-oss: на каком железе запускать».
Есть модели, которые выпускают сразу в сжатом виде: DeepSeek в FP8, gpt-oss в MXFP4. Для них это эталонное качество, и потерь относительно «оригинала» нет, потому что оригинал такой и есть.
Сколько качества теряет модель
- FP8: почти без потерь. Это безопасный формат по умолчанию для инференса на современном железе.
- INT8: тоже почти без потерь, как и FP8.
- 4 бита: потери заметнее, сильнее всего на сложных задачах. На простых сценариях разница бывает почти незаметна.
Часто встаёт вопрос, что лучше: крупная модель в 4 битах или модель поменьше в FP8. Общего ответа нет. Крупная модель в 4 битах нередко оказывается сильнее, но решать нужно на своих данных: соберите 50–100 типичных запросов и сравните ответы в разных форматах. Это быстрее и надёжнее, чем полагаться на чужие тесты.
Что даёт квантование LLM: память и скорость
С памятью всё прямо: FP8 вдвое меньше BF16, 4 бита вчетверо. Освободившееся место уходит под KV-кеш, то есть под более длинный контекст и больше одновременных пользователей. Как считать память целиком, мы разобрали в статье «Сколько видеопамяти нужно для LLM».
Скорость генерации растёт по другой причине. На каждый новый токен модель читает свои веса из памяти, и чем их меньше, тем быстрее. Пример для Qwen3 32B на RTX PRO 6000 Blackwell с памятью 1,79 ТБ/с:
| Формат | Веса | Остаётся из 96 ГБ | Теоретический потолок, токенов в секунду |
|---|---|---|---|
| BF16 | 64 ГБ | ~32 ГБ | ~28 |
| FP8 | 32 ГБ | ~64 ГБ | ~56 |
| 4 бита | ~18 ГБ | ~78 ГБ | ~100 |
Потолок посчитан как скорость памяти, делённая на объём весов, для одного диалога. Реальная скорость ниже, но пропорция честная: уменьшение весов вдвое примерно вдвое поднимает потолок генерации.
Обработка длинного промпта и обслуживание многих пользователей сразу упираются уже в вычисления. Здесь помогает только формат, который ускоритель считает аппаратно. У H200 NVL производительность в FP8 составляет 3 341 TFLOPS против 1 671 TFLOPS в BF16, ровно вдвое больше. У DGX B200 переход с FP8 на FP4 даёт 144 ПФЛОПС вместо 72. А INT4 через GPTQ и AWQ экономит память и ускоряет генерацию, но вычисления остаются 16-битными.
Какое железо поддерживает FP8 и FP4
- GeForce RTX 5090 и RTX PRO 6000. Blackwell, аппаратно FP8 и FP4: 3 352 и 4 000 TOPS в FP4 соответственно.
- H200 NVL и DGX H200. Hopper, аппаратно FP8, без FP4. 4-битные модели работают, но 4 бита дают выигрыш только в памяти и скорости генерации.
- DGX B200. Blackwell: 72 ПФЛОПС в FP8 и 144 ПФЛОПС в FP4 на систему.
- A100. FP8 аппаратно не поддерживается, остаются BF16, INT8 и INT4 через GPTQ и AWQ.
- Huawei Ascend 910B. Основные форматы для инференса FP16 и INT8. Поддержку FP4 у Huawei первым получил Atlas 350 на Ascend 950PR.
Типичные ошибки
- Ждать ускорения вычислений без аппаратной поддержки. FP8-модель на A100 сэкономит память, но длинные промпты быстрее обрабатываться не станут.
- Забывать про кеш. Веса сжали вчетверо, а KV-кеш под длинный контекст и многих пользователей остался прежним. Кеш тоже можно хранить в 8 битах, популярные движки это умеют, но качество после этого стоит проверить отдельно.
- Гнаться за минимальным размером. Варианты ниже 4 бит существуют, но чем грубее округление, тем сильнее страдают ответы. Часто разумнее взять модель поменьше в FP8.
- Судить о качестве по паре запросов. Различия между форматами видны на десятках типичных задач, а не на одном удачном примере.
Как выбрать формат квантования
- Модель выпущена в сжатом формате (DeepSeek в FP8, gpt-oss в MXFP4): используйте его.
- Память есть с запасом, железо Hopper или Blackwell: FP8 как формат по умолчанию.
- Модель не помещается или нужно больше пользователей: 4 бита. Для vLLM это AWQ или GPTQ, на Blackwell NVFP4.
- Один пользователь на рабочей станции или Mac: GGUF в Ollama или llama.cpp, обычно Q4_K_M или Q8_0.
- В любом случае проверьте качество на своих задачах, прежде чем запускать сервис для сотрудников.
Коротко
- Квантование хранит веса с меньшей точностью: 1 байт в FP8 и INT8, полбайта в 4 битах вместо 2 байт в BF16.
- FP8 почти не теряет качества, 4 бита теряют заметнее на сложных задачах.
- Меньше байт на параметр значит больше места под контекст и выше потолок скорости генерации.
- Ускорение вычислений даёт только аппаратная поддержка: FP8 у Hopper и Blackwell, FP4 только у Blackwell.
- GGUF, AWQ и GPTQ решают разные задачи: GGUF для одного пользователя в llama.cpp и Ollama, AWQ и GPTQ для многопользовательского сервиса.
Если хотите понять, какой формат и какое железо подойдут вашей модели, оставьте заявку: посчитаем память и подберём карту или сервер, цену и срок пришлём в течение рабочего дня.
Оборудование из статьи
NVIDIA Популярное
RTX PRO 6000 Blackwell
96 ГБ памяти в одной карте: модели 70B и больше без кластера.
- GDDR7 с ECC
- 96ГБ
- ИИ, FP4
- 4000TOPS
- Потребление
- 600Вт
Цена по запросу
NVIDIA
DGX B200
Blackwell для обучения и инференса: 1,44 ТБ памяти GPU.
- B200
- 8GPU
- Память GPU
- 1440ГБ
- FP4
- 144ПФЛОПС
Цена по запросу
NVIDIA
H200 NVL
Больше всего памяти в формате PCIe: 141 ГБ HBM3e на карту.
- HBM3e
- 141ГБ
- Скорость памяти
- 4,8ТБ/с
- FP8
- 3341TFLOPS
Цена по запросу