---
title: "GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers"
title_ru: "GPTQ: Точная post-training квантизация для генеративных предобученных трансформеров"
authors: [Frantar, Ashkboos, Hoefler, Alistarh]
year: 2023
venue: "ICLR"
venue_tier: "A*"
doi: "2210.17323"
tags: [quantization, ptq, int4, second_order, one_shot, transformers]
relevance_to_smartrep: 2
direction: "🅲"
---

# GPTQ: One-shot post-training квантизация трансформеров

## TL;DR (≤3 предложения)

GPTQ квантизирует трансформеры до INT4/INT3 в одном проходе без retraining, используя обратное преобразование Cholesky для вычисления оптимального (по второму порядку) rounding каждого веса с компенсацией по оставшимся весам слоя. Квантизирует LLaMA-175B за несколько часов на одном GPU — революционно эффективно. Принципы (second-order weight quantization) применимы к любым трансформерам.

## Проблема

BRECQ и аналоги работают поблочно, но для LLM даже блочная оптимизация дорога. Нужен метод, квантизирующий весь трансформер за единственный проход без итеративной оптимизации.

## Гипотеза / вклад

- **OBQ (Optimal Brain Quantization):** обновление $\Delta\mathbf{w}$ после квантизации $w_q$: $\Delta\mathbf{w} = -\frac{w_q - w}{[H^{-1}]_{qq}} \cdot [H^{-1}]_{:,q}$ — компенсирует ошибку квантизации одного веса изменением остальных.
- **Lazy batch updates:** квантизировать колонки группами, вычислять компенсацию для всей группы разом — ускорение 100×.
- **Cholesky preprocessing:** численно стабильное обратное Hessian через Cholesky.

## Метод

Для матрицы весов $W$ (один Linear слой):

$$\min_{Q(W)} \|WX - Q(W)X\|_F^2$$

Iterative quantization по колонкам $q$:

$$\Delta W_{:, q':> q} = -\frac{\delta_q}{H^{-1}_{qq}} \cdot H^{-1}_{q, q':>q}$$

где $\delta_q = Q(W_{:,q}) - W_{:,q}$ — ошибка квантизации колонки.

## Датасеты

| Модель | Задача | FP16 PPL | W4 GPTQ | W3 GPTQ |
|---|---|---|---|---|
| LLaMA-7B | WikiText-2 PPL | 5.68 | 6.09 | 7.59 |
| LLaMA-30B | WikiText-2 PPL | 4.10 | 4.45 | 5.17 |
| OPT-175B | WikiText-2 PPL | 8.34 | 9.03 | — |

## Сравнение с SOTA

Первый метод с приемлемым INT4 для LLM. Превосходит BRECQ по скорости квантизации при схожем качестве.

## Ограничения / слабости

- Изначально для weight-only (не activation) квантизации — W4A16 или W4A8.
- Cholesky требует хранения $H^{-1}$ — при очень широких слоях память.
- Для CV моделей (не LLM) нужна адаптация.

## Релевантность SmartRep

- **Методологическое понимание 🅲:** GPTQ — стандарт для понимания second-order PTQ. Обязателен в разделе "related work по квантизации" статьи SmartRep.
- **Трансформерные backbone'ы:** ViTPose, MotionBERT — применимо напрямую для W4A8 PTQ.
- **Практически:** GPTQ INT4 позволяет хранить SmartRep skeleton encoder в 4× меньшем объёме — важно для embedded/wearable таргетов.

## Gap для нас

GPTQ не тестировался для temporal трансформеров и skeleton models. **Ниша SmartRep:** GPTQ-MotionBERT — one-shot INT4 квантизация MotionBERT с оценкой AUROC потерь на AQA задаче. Сравнение GPTQ vs BRECQ vs LSQ-QAT для motion quality assessment pipeline.

## Код / данные

- Repo: github.com/IST-DASLab/gptq
- Pretrained: quantized LLaMA варианты

## Цитата (BibTeX)

```bibtex
@inproceedings{frantar2023gptq,
  title={GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers},
  author={Frantar, Elias and Ashkboos, Saleh and Hoefler, Torsten and Alistarh, Dan},
  booktitle={International Conference on Learning Representations},
  year={2023}
}
```
