Инференс и оптимизация 22 просмотра

GPTQ

GPTQ (GPT Quantization)

GPTQ — метод post-training квантизации LLM до 4/3/2 бит, основанный на поэлементной оптимизации с минимизацией ошибки. Один из самых популярных методов сжатия моделей для GPU-инференса.

Что такое GPTQ

GPTQ (Frantar et al., 2022) — метод post-training quantization, основанный на алгоритме Optimal Brain Quantization. Квантизует каждый вес, минимизируя ошибку с учётом корреляций между весами в слое.

Принцип работы

  1. Берётся калибровочный датасет (128-256 примеров)
  2. Для каждого слоя вычисляется матрица Гессиана (H = X^T × X)
  3. Веса квантизуются поэлементно с компенсацией ошибки на соседние веса
  4. Процесс занимает ~4 часа для 70B модели на 1 GPU

Форматы

Битность Размер 7B Размер 70B Качество
8-bit 7 GB 70 GB ~FP16
4-bit 3.5 GB 35 GB Хорошее
3-bit 2.6 GB 26 GB Заметная потеря
2-bit 1.75 GB 17.5 GB Значительная потеря

Использование

from transformers import AutoModelForCausalLM, GPTQConfig

quantization_config = GPTQConfig(
    bits=4,
    dataset="c4",
    group_size=128,  # квантизация группами по 128 весов
)

model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-3-70B",
    quantization_config=quantization_config,
    device_map="auto",
)

GPTQ vs AWQ

AWQ (Activation-Aware Weight Quantization) — более новый метод, который сохраняет «важные» веса в более высокой точности, определяя важность по активациям. Обычно AWQ даёт чуть лучшее качество при той же битности.

Оба метода поддерживаются в vLLM, TGI и transformers.

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

Является частью
Альтернатива

Попробуйте на практике

Арендуйте GPU и запустите ML-модели в Intelion Cloud

Начать работу