Lab 03 — GPTQ: Optimal Brain Quantization
Phase: 03 — Quantization & Model Compression | Difficulty: ⭐⭐⭐⭐⭐ | Time: 4–5 hours
GPTQ (Frantar et al., 2022) quantizes LLMs to INT4 with minimal accuracy loss using second-order weight optimization.
What you build
compute_hessian— H = 2·X·X^T + damping·I from calibration activationssymmetric_quantize— INT4/INT8 symmetric per-tensor quantizationgptq_quantize_layer— column-wise OBQ with Cholesky-based Hessian inverse updatecompare_reconstruction_error— GPTQ vs naive round-to-nearestGPTQLayer— inference layer with W_q as buffer (no grad)gptq_quantize_model— full pipeline with forward hooks for calibration
Key concepts
| Concept | What to understand |
|---|---|
| OBQ | Optimal Brain Quantizer: minimize per-column reconstruction error |
| Hessian | H = 2XX^T captures sensitivity of loss to weight perturbations |
| Cholesky update | Numerically stable Hessian inverse for sequential column updates |
| Error propagation | Quantizing column j updates remaining columns to compensate |
| GPTQ vs AWQ | GPTQ: Hessian-based; AWQ: activation scaling — both INT4 SOTA |
Files
| File | Purpose |
|---|---|
lab.py | Stubs with TODO markers |
solution.py | Complete working implementation |
test_lab.py | pytest suite |
requirements.txt | Dependencies |
Run
pip install -r requirements.txt
python lab.py
pytest test_lab.py -v