Оптимизация LLM• Технологии & Сети

Квантование моделей AWQ, GGUF и FP8: что выбрать и сколько VRAM экономится

Разбираемся в типах квантования LLM без академического занудства: AWQ для GPU, GGUF для CPU, FP8 для серверных карт. Таблицы расхода памяти и потерь качества.

Обновлено: 2026-09-27T06:00:02.616Z
Время чтения: ~11 мин
Автор: Дмитрий Волков (ML-инженер, 8 лет в продакшен-инференсе)
Быстрый ответ & Краткая суть

Квантование снижает размер LLM в памяти за счёт уменьшения точности весов. 4-битное квантование (Q4_K_M / AWQ) уменьшает VRAM в 3.5–4 раза при потере менее 2% качества. AWQ оптимален для GPU-инференса через vLLM, GGUF (llama.cpp) — для CPU и гибридного режима, FP8 — для серверных карт A100/H100 с минимальной потерей точности.

FP16 (без сжатия)~2 ГБ на 1B параметров
FP8~1 ГБ на 1B, потеря <0.5%
Q4_K_M / AWQ~0.55 ГБ на 1B, потеря ~1.5%
Q2_K (агрессивное)~0.35 ГБ на 1B, потеря ~5–8%
Ключевые выводы и краткая суть
  • Q4_K_M (4-бит) экономит ~75% VRAM по сравнению с FP16, теряя менее 2% качества на большинстве бенчмарков.
  • AWQ — формат для GPU-инференса (vLLM, TGI), GGUF — универсальный формат llama.cpp (работает на CPU и GPU).
  • FP8 — полупрецизионный формат для серверных GPU (A100, H100) с потерей <0.5% качества.
  • Для моделей до 14B параметров квантование не критично — они помещаются в FP16 на одной RTX 4090.

Сравнение форматов квантования для Llama 3.3 70B

ФорматРазмер моделиПотребление VRAMПотеря качестваСовместимость
FP16 (baseline)~140 ГБ~155 ГБ0%vLLM, TGI, HuggingFace
FP8~70 ГБ~78 ГБ<0.5%vLLM (A100/H100), TensorRT-LLM
AWQ (4-bit)~38 ГБ~45 ГБ~1.2%vLLM, AutoAWQ, TGI
GPTQ (4-bit)~38 ГБ~46 ГБ~1.5%vLLM, ExLlamaV2, TGI
GGUF Q4_K_M~42 ГБ~48 ГБ~1.5%llama.cpp, Ollama
GGUF Q8_0~74 ГБ~80 ГБ<1%llama.cpp, Ollama
GGUF Q2_K~26 ГБ~32 ГБ~6%llama.cpp, Ollama

Зачем квантовать: экономика видеопамяти

Стандартные веса нейросети хранятся в формате FP16 — 16 бит (2 байта) на каждый параметр. Модель на 70B параметров занимает 70 × 2 = 140 ГБ чистых весов. Добавьте KV-кэш, буферы активации и накладные расходы рантайма — получите ~160 ГБ. Это две карты A100 80GB, и стоит это от 60 000 ₽/мес.

Квантование — процесс снижения точности весов с 16 до 8, 4 или даже 2 бит. Идея простая: большинство весов нейросети не требуют 16-битной точности. 4-битное представление (Q4) снижает размер в 4 раза, а деградация ответов на практике едва заметна — менее 2% на стандартных бенчмарках (MMLU, HellaSwag, ARC).

AWQ: GPU-native квантование для vLLM

Activation-Aware Weight Quantization — метод 4-битного квантования, который учитывает распределение активаций при калибровке. В отличие от простого round-to-nearest, AWQ сохраняет «важные» веса с большей точностью. Результат — менее 1.5% потери качества при сжатии в 4 раза.

AWQ — формат первого выбора для vLLM. Поддерживается нативно, работает быстрее GPTQ на 10–15%, и доступен для большинства популярных моделей на HuggingFace (ищите суффикс -AWQ в названии).

Ограничение: AWQ работает только на GPU. Для CPU-инференса или гибридного режима (часть слоёв на GPU, часть в RAM) нужен GGUF.

vllm-awq.sh
# Запуск AWQ-модели через vLLM
python -m vllm.entrypoints.openai.api_server \
  --model TheBloke/Llama-3.3-70B-Instruct-AWQ \
  --quantization awq \
  --tensor-parallel-size 2 \
  --port 8000

GGUF: универсальный формат llama.cpp

GGUF — бинарный формат, разработанный для llama.cpp и Ollama. Поддерживает множество уровней квантования от Q2_K (агрессивное сжатие) до Q8_0 (почти без потерь). Главное преимущество — работает на CPU, GPU и в гибридном режиме.

Популярные варианты: Q4_K_M — золотая середина (потеря ~1.5%, экономия ~75% памяти). Q8_0 — для тех, кому критично качество (потеря <1%, экономия ~50%). Q2_K — если памяти совсем мало, но готовы терпеть заметную деградацию.

В GGUF можно часть слоёв выгрузить на GPU, а остальные держать в RAM. Это позволяет запускать 70B модели на одной RTX 4090 + 64 ГБ RAM, пусть и с просадкой скорости.

gguf-setup.sh
# Ollama — автоматически выбирает GGUF
ollama run llama3.3:70b-instruct-q4_K_M

# llama.cpp — ручной контроль
./llama-server \
  -m llama-3.3-70b-instruct-Q4_K_M.gguf \
  --n-gpu-layers 40 \
  --ctx-size 4096 \
  --host 0.0.0.0 --port 8080

FP8: серверный формат для A100 и H100

FP8 (8-bit floating point) — формат для серверных GPU с аппаратной поддержкой 8-битных операций. A100 поддерживает FP8 через софтверную эмуляцию, H100 — нативно через Transformer Engine. Потеря качества — менее 0.5%, что делает FP8 предпочтительным для продакшена, где важна точность ответов.

Размер модели в FP8 — ровно в 2 раза меньше FP16. Llama 3.3 70B в FP8 — ~70 ГБ, помещается на одну A100 80GB с запасом на KV-кэш.

FP8 — формат для тех, кто готов платить за серверные GPU, но хочет максимальное качество при разумном расходе памяти. Если у вас H100 — используйте FP8, не мучайтесь с 4-битным квантованием.

Когда FP8, когда Q4?FP8 на H100 — если важна точность и есть бюджет на серверное железо. Q4 на RTX 4090 — если важна экономия и деградация на 1.5% допустима. Для чатботов Q4 хватает с головой, для RAG и code generation лучше FP8.
Рекомендованные конфигурации по теме статьи

Проверенные серверы от надежных провайдеров

Весь каталог
Timeweb Cloud
Перейти
Хит цены
Timeweb Cloud

Timeweb Cloud

Москва★ 4.8

Cloud Start

CPU

1 ядер • 3.3 ГГц

RAM

1 ГБ

Диск

15 ГБ NVMe

Канал

200 Мбит/с

299 ₽/мес

Timeweb Cloud

Timeweb Cloud

Москва★ 4.8

Cloud Basic

CPU

2 ядер • 3.3 ГГц

RAM

2 ГБ

Диск

40 ГБ NVMe

Канал

200 Мбит/с

499 ₽/мес

152-ФЗ
Selectel

Selectel

Москва★ 4.9

Cloud Lite 1

CPU

1 ядер • 2.6 ГГц

RAM

1 ГБ

Диск

10 ГБ SSD

Канал

200 Мбит/с

550 ₽/мес

Часто задаваемые вопросы (FAQ)

Квантование ухудшает качество ответов модели?

Q4 квантование снижает качество на 1–2% по стандартным бенчмаркам. На практике для чатботов и генерации текста разница незаметна. Для задач с точными вычислениями (code generation, математика) лучше использовать FP8 или FP16.

Можно ли квантовать модель самостоятельно?

Да. Для AWQ — библиотека AutoAWQ, для GGUF — llama.cpp (скрипт convert-hf-to-gguf.py). Процесс калибровки занимает 1–4 часа на GPU. Но проще скачать готовые квантованные модели с HuggingFace.

Какой формат поддерживает Ollama?

Ollama работает с GGUF. При запуске ollama run модель автоматически скачивается в оптимальном квантовании для вашего GPU. Можно указать конкретный квант: ollama run llama3.3:70b-instruct-q4_K_M.