Inference

квантизация

Снижение точности весов модели (например, до int4/int8) для уменьшения VRAM и ускорения инференса.

Что такое квантизация

Квантизация — техника уменьшения объёма памяти и ускорения вычислений путём снижения битности представления весов модели. Стандартно модели хранятся в BF16 (2 байта/параметр); квантизация переводит их в INT8 (1 байт) или INT4 (~0.5 байта).

Ориентиры по памяти весов (без KV-кеша):

  • BF16: 7B → ~14 ГБ, 70B → ~140 ГБ
  • INT8: 7B → ~7 ГБ, 70B → ~70 ГБ
  • INT4: 7B → ~3.5 ГБ, 70B → ~35 ГБ

Это позволяет запускать 70B-модели на двух A100 40GB вместо двух A100 80GB, или 7B-модели на одном RTX 4090.

Основные методы

AWQ (Activation-Aware Weight Quantization)

Калибрует квантизацию с учётом реальных активаций — «важные» каналы весов хранятся точнее. Даёт стабильное качество на уровне INT8 при INT4-размере. Поддерживается vLLM, TGI, SGLang.

# Запуск AWQ-модели в vLLM
docker run --gpus all -p 8000:8000 vllm/vllm-openai:latest \
  --model TheBloke/Llama-2-70B-Chat-AWQ --quantization awq

GPTQ (Post-Training Quantization)

Оптимизирует ошибку квантизации итеративно по слоям. Чуть хуже AWQ по качеству, но шире поддерживается в llama.cpp (через GGUF).

GGUF-квантизация (для llama.cpp)

Собственные форматы: Q4_K_M, Q5_K_M, Q8_0. Q4_K_M — оптимальный выбор для большинства задач.

FP8 (только H100/H200)

Вычисления в 8-битном формате с плавающей точкой. Ускоряет как prefill, так и decode при минимальной потере качества. Поддержка в vLLM (--dtype fp8), TensorRT-LLM.

Квантизация KV-кеша

Отдельно от весов можно квантизовать KV-кеш в INT8/FP8. Это снижает VRAM на 50% при хранении KV, позволяя удвоить параллельность.

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

Цель Рекомендация
Минимальная VRAM INT4 (AWQ/GGUF Q4_K_M)
Баланс качество/скорость INT8 или AWQ
Минимальная p95-латентность на H100 FP8
CPU-инференс GGUF Q4_K_M через llama.cpp

Связанные термины

  • AWQ — метод INT4-квантизации с калибровкой активаций
  • GPTQ — альтернативный метод INT4-квантизации
  • GGUF — формат квантизованных файлов для llama.cpp
  • VRAM — ресурс, экономимый квантизацией
  • Подробный гайд по квантизации

Готовы запустить GPU-задачу?

Запустить GPU-сервер