Каждый день на Hugging Face появляются новые версии популярных моделей с приписками вроде BNB-NF4, Q4_K_M, W4A16 или MXFP4. Это не украшения: суффикс сообщает, в какой точности хранятся веса, в какой арифметике идут вычисления и какой рантайм сумеет модель загрузить. Ошибка в выборе заканчивается либо ошибкой при запуске, либо падением скорости в несколько раз. Ниже разбираем, как расшифровывать такие метки, где искать достоверную информацию и какой формат подходит под вашу задачу и железо.

Почему суффикс в названии важен

Возьмём пример: модель unsloth/Qwen3-VL-8B-Instruct-unsloth-bnb-4bit. Часть «bnb-4bit» говорит сразу о трёх вещах:

  • веса сжаты до 4 бит вместо стандартных 16 или 32;
  • применён метод квантизации BitsAndBytes;
  • для загрузки нужна соответствующая поддержка в связке PyTorch и Transformers.

Попытка открыть такую модель в vLLM без правильной конфигурации приведёт к ошибке, а в устаревшей версии Transformers она будет работать на порядок медленнее.

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

Шпаргалка по популярным суффиксам

Сначала общая логика обозначений вида WxAy: число после W — разрядность весов, после A — разрядность активаций. Так, w4a16 означает 4-битные веса и 16-битные активации, а w8a8 — 8 бит и для весов, и для активаций. Запись q4f16 читается аналогично: 4-битные веса и вычисления в FP16.

Суффикс Что означает Веса Вычисления / активации Где чаще применяется
q4f16 4-бит веса с 16-бит активациями INT4 FP16 Локальное выполнение, быстрые LLM, мобильные устройства
q4f32 4-бит веса с 32-бит активациями INT4 FP32 Точные вычисления, тестирование, системы с повышенными требованиями к точности
q4_k_m 4-бит K-quant с большим масштабированием (medium) K-quant FP16 Оптимизированное сжатие, GGML/llama.cpp, хороший баланс скорости и качества
bnb-nf4 Block-wise Nesterov Fractional 4-бит INT4 NF BFloat16 BitsAndBytes, точное обучение LoRA, высокое качество при экономии памяти
bnb-4bit Стандартная 4-бит квантизация BitsAndBytes INT4 BFloat16 Fine-tuning, обучение при ограниченной памяти, интеграция с PyTorch
BNB-NF4 Block-wise Nesterov Fractional 4-бит (капитальная версия) INT4 NF BFloat16 Обучение больших моделей, LoRA-адаптеры, HuggingFace Transformers
w8a8 8-бит веса и 8-бит активации INT8 INT8 Симметричная квантизация, NVIDIA TensorRT, производственные системы
w4a16 4-бит веса, 16-бит активации INT4 FP16 Компромисс между скоростью и качеством, мобильные GPU, edge-вычисления
MXFP4 MX Floating Point 4-бит (микро-плавающая точка) MXFP4 MXFP4 Новые процессоры с поддержкой MX, максимальное сжатие, исследовательские проекты
FP8 8-бит с плавающей точкой FP8 (e4m3/e5m2) FP8 H100/L40S/B200, высокопроизводительные системы, архитектуры Hopper и Blackwell
FP8-Dynamic FP8 с динамическим масштабированием FP8 адаптивные FP8 адаптивные Динамические модели, переменные размеры входа, адаптивное квантование
FP8-D FP8 с дополнительным масштабированием FP8 FP8 оптимизированные Специализированные ускорители, точный контроль квантования
f16 16-бит с плавающей точкой (half precision) FP16 FP16 Стандартное обучение и вывод, GPU-вычисления, базовая точность
q0f16 0-бит веса (динамическая/гибридная схема) с FP16 Динамическая FP16 Исследовательские модели, экспериментальные подходы
int4-mixed-AutoRound Смешанная INT4-квантизация с оптимизацией AutoRound INT4 адаптивное Смешанная INT4/FP16 Автоматическое квантование, RL-оптимизация, баланс качества и скорости

Быстрые рекомендации

  • Для большинства случаев подходит Q4_K_M: хороший баланс качества и скорости.
  • Когда нужно высокое качество, берите Q6_K или FP8 (на современных GPU).
  • Для максимального сжатия — Q4_K_S или w4a16 (AWQ).
  • Для инференса на CPU — Q4_K_M в формате gguf (llama.cpp).
  • На новых GPU (H100/Hopper, MI300) лучшую производительность даёт FP8.

Важная оговорка: имя модели — не гарантия. В подавляющем большинстве случаев ему можно доверять, но самый надёжный источник сведений — config.json.

Как читать config.json

У каждой модели на Hugging Face есть файл config.json, кроме моделей в формате .gguf: там информация о квантовании встроена в сам файл. Во всех остальных случаях внутри есть блок quantization_config, который однозначно показывает, как модель сжата. Пример:

"quantization_config": {
  "_load_in_4bit": true,
  "_load_in_8bit": false,
  "bnb_4bit_compute_dtype": "bfloat16",
  "bnb_4bit_quant_storage": "uint8",
  "bnb_4bit_quant_type": "nf4",
  "bnb_4bit_use_double_quant": true,
  "llm_int8_enable_fp32_cpu_offload": false
}

Что означают ключевые поля:

  • _load_in_4bit: true — модель загружается в 4-битном формате; это главный флаг режима работы.
  • bnb_4bit_quant_type: "nf4" — тип квантизации весов: NF4 (Normal Float 4-bit), разработанный в BitsAndBytes для оптимального сжатия.
  • bnb_4bit_compute_dtype: "bfloat16" — вычисления и активации идут в BF16: при прямом проходе данные приводятся к 16-битному виду, чтобы избежать численных ошибок.
  • bnb_4bit_use_double_quant: true — включена двойная квантизация: квантуются не только веса, но и коэффициенты масштабирования. Это повышает стабильность, но добавляет небольшие вычислительные затраты.

Файл можно открыть прямо на странице модели в Hugging Face. Увидев такой конфиг, вы точно знаете: модель нужно грузить через рантайм BitsAndBytes — это не GGUF и не TensorRT. Умение читать конфиги избавляет от проблем с несовместимостью.

Разбор реальных названий

Закрепим на примерах с Hugging Face.

Семейство Qwen3-Next-80B-A3B-Instruct

  • ...-MXFP4.gguf — GGUF-модель (для llama.cpp), сжатая через MXFP4 (microscaling FP4): смешанный 4-битный формат с плавающей точкой и блочным масштабированием. Убедитесь, что ваша сборка llama.cpp поддерживает FP4: на 2025 год формат экспериментальный, его поддерживают самые современные ускорители (B200/B300, MI355X). MXFP4 обещает кратное ускорение относительно FP16 в ряде операций, но для полной поддержки нужны новые GPU (Blackwell, MI355X).
  • ...-Q4_K_M.gguf — модель с GPTQ-подобной 4-битной квантизацией. Вариант Q4_K_M означает 4 бита с k-квантизацией и средним вариантом пакования в знакомом формате GGUF. Веса хранятся в 4 битах, вычисления идут в FP16, что даёт хороший баланс скорости и качества.
  • ...-f16.gguf — несжатая модель в FP16. Это эталонный вариант с максимальным качеством, но и с максимальным аппетитом к памяти: для 80B потребуется примерно 160 ГБ VRAM. Выбирайте его, если памяти хватает или нужна предельная точность.
  • ...-int4-mixed-AutoRound — модель, сжатая методом AutoRound от Intel: INT4 с адаптивной оптимизацией параметров квантизации. На низких разрядностях AutoRound показывает двукратное улучшение точности относительно других INT4-методов. Загружается через Transformers с поддержкой AutoRound либо через рантайм SGLang.
  • ...-FP8-Dynamic — модель, подготовленная к FP8-вычислениям на современных GPU (H100, MI300, B200, B300). «Dynamic» означает, что масштабирование весов и активаций вычисляется динамически во время инференса: точность выше, но скорость ниже, чем при статическом предварительном масштабировании. Поддерживается в vLLM 0.5+ и TensorRT. На H100 такая модель работает в 2–3 раза быстрее FP16-варианта с минимальной потерей качества.

Другие модели

  • **Meta-Llama-3.1-8B-Instruct-BNB-NF4** — Llama от Meta*, сжатая методом BitsAndBytes NF4. Грузится через HuggingFace Transformers с BitsAndBytesConfig, вычисления по умолчанию в BF16. Хороший выбор для дообучения (например, QLoRA) на GPU с 24 ГБ памяти.
  • GLM-4.6-gguf-q2ks-mixed-AutoRound — экстремальное сжатие: q2ks означает 2-битное сжатие с k-вариантом и стохастическим округлением. Памяти нужно очень мало, но качество заметно деградирует, так что подходит это лишь для специфичных задач, где критична скорость. Использовать с осторожностью.
  • **Llama-3.1-8B-Instruct-q4f16_1-MLC*** — квантизация q4f16: 4-битные веса и вычисления в FP16. Это стандартная комбинация, работающая в большинстве рантаймов. Пометка MLC указывает на оптимизацию через MLC Compiler.

Где какие форматы работают

Качество, скорость и стабильность зависят от того, насколько формат весов и активаций соответствует выбранной платформе.

  • Transformers + BitsAndBytes без проблем открывают bnb-4bit и NF4, но требуют особой конфигурации: load_in_4bit=True и корректной загрузки через модуль BitsAndBytes.
  • GGUF / llama.cpp поддерживает собственное семейство квантованных форматов (Q4_K_M, MXFP4, q4f16 и др.); BNB-веса придётся конвертировать.
  • TensorRT раскрывает возможности FP8 и INT8, но не читает привычные GGUF и специфичные реализации BitsAndBytes.
  • vLLM (PyTorch) лишь в свежих релизах начал работать с FP8, а Q4_K_M или AWQ требуют бэкендов и поддержки на уровне токенизатора и управления памятью.

Матрица совместимости

Формат / тег Transformers (PyTorch) vLLM llama.cpp / gguf TensorRT / HW
BNB-NF4 / bnb-4bit полная поддержка загрузка моделей требует конвертации не поддерживается
q4_k_m / GPTQ через конвертеры частичная полная не поддерживается
w8a8 (INT8) через BNB / AWQ частичная требует конвертации TensorRT полная
FP8 PyTorch 2.5+ с H100/MI300 не поддерживается H100/TensorRT
MXFP4 экспериментальная новые версии требует конвертации новые GPU (2025+)

Практический вывод по BNB-NF4: для локальной машины выбирайте Transformers. В vLLM для продакшен-инференса поддержка будет частичной — модели загружаются, но оптимизация ограничена. Для llama.cpp нужна конвертация в GGUF, а в TensorRT BNB-NF4 работает только со специальными плагинами.

Практические советы по выбору

  1. Проверяйте quantization_config. Не полагайтесь только на имя файла: откройте config.json и убедитесь, какой формат реально используется.
  2. Локальный инференс — llama.cpp и GGUF. Это самый стабильный и быстрый вариант для потребительских GPU и CPU; форматы q4_k_m и q5_k_m дают лучший баланс скорости и качества.
  3. Дообучение на одном GPU — BNB-NF4 с QLoRA. Так можно обучать модели 13B+ на GPU с 24 ГБ памяти; загружайте через Transformers и BitsAndBytesConfig.
  4. Высокая пропускная способность — FP8 на RTX PRO 6000 Blackwell или AMD Radeon AI PRO R9700. При доступе к такому железу FP8 даёт двукратное ускорение относительно FP16 с минимальной потерей качества; используйте vLLM или TensorRT.
  5. Edge-устройства — INT8 или q4_k_m. Для мобильных устройств и Jetson берите минимальное сжатие, которое ещё даёт приемлемое качество.
  6. MXFP4 — с осторожностью. Формат новый, поддержка в рантаймах может быть нестабильной. Нативно его поддерживают достаточно свежие ускорители (MI350X, MI355X, H100, H200, B200). Если важна надёжность, придерживайтесь q4_k_m или BNB-NF4, который официально поддерживается начиная с NVIDIA Pascal и частично на AMD ROCm-GPU.

Итоги и подбор оборудования

Метки в названиях моделей на Hugging Face подсказывают, как модель хранится и как поведёт себя на вашем оборудовании. Каждый формат — компромисс между размером, скоростью и точностью. Правильный выбор сэкономит часы отладки и может ускорить инференс в 2–3 раза. Углубиться в тему помогут материалы про GPTQ (практическое квантование), AWQ (активационно-ориентированное квантование) и руководство по схемам квантизации: у каждого метода свои сильные стороны под разные цели.

Если вы строите инференс на серверах и хотите выжать максимум из H100 или MI300, стоит протестировать FP8: на 2025 год это современный стандарт для высокопроизводительных LLM. Команда «СервакМастер» оказывает услугу тестирования и оптимизации моделей на современном оборудовании, включая подбор формата квантизации под вашу архитектуру. Готовые решения смотрите в разделах серверы и серверы для ИИ, а консультацию по развёртыванию можно получить на странице контактов.

*Llama — проект Meta Platforms Inc.**, деятельность которой в России признана экстремистской и запрещена.

**Деятельность Meta Platforms Inc. в России признана экстремистской и запрещена.