NVFP4 в NVIDIA Blackwell: как 4-битный формат ускоряет инференс LLM | AiManual
AiManual Logo Ai / Manual.
05 Июл 2026 Инструмент

NVFP4: Секретное оружие Blackwell, которое разгоняет LLM до предела

Разбираем NVFP4 — новый формат точности на Blackwell. Почему он делает инференс LLM в 2 раза быстрее INT4 и как настроить его в llama.cpp. Тесты, сравнения, инс

Почему ваш LLM задыхается, хотя GPU стоит бешеных денег?

Вы купили RTX 5090. Или, если вы серьезный энтузиаст, RTX PRO 6000. Запускаете Llama 3.1 70B, ждете ответа — а он ползет как черепаха. Знакомо? Дело не в битых тензорных ядрах. Проблема в том, что вы используете старые методы квантования, которые не умеют дружить с архитектурой Blackwell. NVIDIA втихую внедрила новый формат точности — NVFP4 (он же MXFP4), и это не просто очередной хайп. Это аппаратный люк, который удваивает производительность LLM на новом железе. Давайте разберемся, как он работает и почему без него вы оставляете половину производительности на столе.

NVFP4 vs FP16 vs INT4: что происходит под капотом

Большие языковые модели жрут память как не в себя. В FP16 модель 70B весит ~140 ГБ — не влезает даже в дорогой RTX PRO 6000 (96 ГБ). Квантование решает проблему: INT4 сжимает веса в 4 раза, но с дикой потерей точности. NVFP4 — это гибрид. Он использует 4-битное представление с плавающей точкой: 1 бит знака, 1 бит экспоненты, 2 бита мантиссы. Звучит как урезанный FP8? Да, но с твиком: для каждой группы параметров подбирается свой масштаб (microscaling).

В отличие от INT4, который просто отрубает дробную часть чисел, NVFP4 сохраняет порядок величин. Малые веса не зануляются, большие не схлопываются в потолок. На практике это дает perplexity всего на 2-5% хуже FP16 — против 15-30% у INT4.

Аппаратный ускоритель: тензорные ядра 5-го поколения

Blackwell — это не просто очередной чип. В нем стоят тензорные ядра пятого поколения, которые умеют выполнять операции над NVFP4 на аппаратном уровне. Без лишней возни с софтовыми эмуляциями. Это значит, что скорости матричных умножений (heart и soul любого LLM) взлетают в 2-2.5 раза по сравнению с INT4 на той же карте. Подробнее об этом мы писали в сравнении NVFP4 против INT4, там же графики и тесты.

Более того, NVFP4 отлично ложится на KV Cache. При контексте в 32К токенов кэш занимает ~8 ГБ вместо 32 ГБ в FP16. Это позволяет запускать модели с длинным контекстом без даунгрейда до смешных 4K токенов.

Как это выглядит в реальных бенчмарках

Цифры из тестов llama.cpp на RTX 5090 (эталонные замеры с нашего бенчмарка):

ФорматСкорость (токенов/сек)Размер модели (70B)Perplexity (LAMBADA)
FP16 (база)12140 ГБ (не влезает)3.25
Q4_K_M (INT4)28~40 ГБ3.85
NVFP455~35 ГБ3.32

NVFP4 почти догоняет FP16 по качеству, но быстрее в 4.5 раза. При этом модель помещается даже в 48 ГБ (RTX 6000 Ada). Конечно, показатели разнятся в зависимости от модели и контекста, но общая картина ясна: NVFP4 — это новый стандарт для инференса на Blackwell.

Как включить NVFP4 в llama.cpp: пошаговая инструкция без боли

Важно: NVFP4 — экспериментальная фича. Стабильной она станет только с релизом CUDA 13 (2027?), но уже сейчас можно получить драматический прирост. Вот как заставить всё работать.

  1. Обновите CUDA до 12.8 (требуется для тензорных ядер Blackwell).
  2. Соберите llama.cpp из мастер-ветки с флагом LLAMA_CUDA_NVFP4=ON. Без него NVFP4 не активируется. Подробная инструкция — в нашей статье Запуск llama.cpp с поддержкой NVFP4.
  3. Сконвертируйте модель в формат GGUF с типом NVFP4. Используйте convert.py с ключом --output-type f32? Нет, проще скачать уже готовый NVFP4 GGUF (например, от TheBloke). Или конвертнуть через convert-hf-to-gguf.py с патчем для NVFP4.
  4. Запустите с параметром --type k (k-квантование не нужно!). Вместо этого используйте --model your_model_nvfp4.gguf и убедитесь, что в логах есть nvfp4.

Грабли: Не пытайтесь использовать NVFP4 на GPU серии Ada (RTX 4090) — там нет аппаратной поддержки, будет эмуляция через FP16, и скорость упадет. Также не работает с моделями, которые не поддерживают NVIDIA специфичные форматы (например, GPTQ).

Кому это реально нужно?

NVFP4 — не для всех. Если вы запускаете маленькие модели (7B-8B) на RTX 3060, разницы не заметите. Но если у вас:

  • RTX 5090/5090 Ti и вы хотите запускать 70B-120B модели с комфортной скоростью;
  • RTX PRO 6000 (96 ГБ) и цель — полная DeepSeek-V3.2 (671B в MoE);
  • вы строите продакшн-сервис на vLLM или TensorRT-LLM и хотите снизить задержки в 2 раза;

...тогда NVFP4 — ваш выбор. Формат уже поддерживается в llama.cpp, vLLM (экспериментально) и TensorRT-LLM. Не хватает только Hugging Face Transformers — там пока тишина.

А что насчёт MXFP4 и других альтернатив?

В ранних статьях NVFP4 называли MXFP4. Это один и тот же формат, просто NVIDIA в итоге остановилась на бренде NVFP4. Не путайте с FP8 (8 бит) или NF4 (4-битный нормализованный float из QLoRA). NVFP4 — отдельная зверушка, заточенная под Blackwell. Единственная альтернатива среди 4-битных форматов с плавающей точкой — это FP4 E2M1 (экспериментальный), но он не имеет аппаратной поддержки.

Любопытно, что французы из Mistral уже выпустили Mistral-Small-4-119B в NVFP4 — и это работает восхитительно. Видимо, NVIDIA плотно работает с разработчиками моделей, чтобы формат получил широкое распространение.

Будущее: станет ли NVFP4 стандартом?

Сейчас это нишевая технология, но у нее все шансы стать стандартом де-факто для локального инференса на старших картах. Если NVIDIA выкатит поддержку NVFP4 в CUDA 13 с полным бэкендом для PyTorch, то мы увидим лавину оптимизированных моделей. А пока — только хардкор: ручная сборка, бета-версии, но зато 2x скорости бесплатно. Если у вас есть Blackwell — не ждите, пробуйте. Если нет — присмотритесь к RTX 5090: благодаря NVFP4 она становится королём локального LLM.

Подписаться на канал