Inference

GPTQ

Алгоритм посткалиброванной квантизации LLM до 4–8 бит с минимальными потерями перплексии.

Что такое GPTQ

GPTQ (Generative Pre-Trained Transformer Quantization) — алгоритм посттренировочной квантизации для LLM, предложенный Frantar et al. (2022). Основан на оптимальной квантизации весов с использованием матрицы Гессе: каждый вес квантизуется с компенсацией ошибки через оставшиеся веса того же слоя.

Алгоритм работает послойно: для каждого линейного слоя GPTQ минимизирует ошибку восстановления на небольшом калибровочном датасете (обычно 128–512 примеров). Это даёт качество значительно лучше наивного округления и близкое к AWQ.

Применение

pip install auto-gptq

python -c "
from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig
from transformers import AutoTokenizer

quant_config = BaseQuantizeConfig(bits=4, group_size=128, desc_act=True)
model = AutoGPTQForCausalLM.from_pretrained(
    'meta-llama/Llama-3-8B-Instruct', quantize_config=quant_config
)
tokenizer = AutoTokenizer.from_pretrained('meta-llama/Llama-3-8B-Instruct')

# Калибровочные данные (128 примеров достаточно)
examples = [tokenizer('Текст для калибровки...', return_tensors='pt')]
model.quantize(examples)
model.save_quantized('./llama-3-8b-gptq')
"

# Сервинг через vLLM
docker run --gpus all -p 8000:8000 vllm/vllm-openai:latest \
  --model ./llama-3-8b-gptq --quantization gptq

GPTQ vs AWQ

GPTQ AWQ
Метод Оптимизация через Гессе Учёт важности активаций
Качество (4-bit) Хорошее Чуть лучше
Скорость квантизации Медленнее (часы для 70B) Быстрее
GGUF-совместимость Через конвертацию Нет
Наличие моделей на HF Очень много (TheBloke и др.) Меньше, но растёт

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

  • AWQ — альтернативный метод, обычно предпочтительнее
  • квантизация — общий обзор методов
  • GGUF — другой формат квантизации для llama.cpp
  • перплексия — метрика качества, используемая при оценке квантизации

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

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