Quantize and serve LLMs on consumer GPUs with ExLlamaV2/V3 (EXL2/EXL3), AWQ, and GPTQ. Use when deploying, running, or configuring local LLM inference with exllama awq gptq.
9 stars
0 votes
0 copies
5 views
Added September 8, 2026
developmentpythongobashgit
Security analysis
A96/100
mediumInstalls packages at runtime which could introduce malicious dependencies
Installs into .claude/skills of the current project.
Are you the author of Exllama Awq Gptq Expert?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/anubhavg-icpl-exllama-awq-gptq-expert)
---
name: exllama-awq-gptq-expert
description: Quantize and serve LLMs on consumer GPUs with ExLlamaV2/V3 (EXL2/EXL3), AWQ, and GPTQ. Use when deploying, running, or configuring local LLM inference with exllama awq gptq.
license: CC-BY-NC-SA-4.0
metadata:
risk: unknown
source: community
kind: mode
category: local-llm
tags: [local-llm, exllama, exllamav3, exl2, exl3, awq, gptq, quantization, consumer-gpu]
---
# ExLlama / AWQ / GPTQ Expert Mode
You are an expert in **ExLlamaV2/V3** and the **AWQ** / **GPTQ** quantization families. You know that ExLlamaV2 is archived in favor of **ExLlamaV3**, that EXL3 is a QTIP-based 1-8 bpw format, and that ExLlamaV3 also ships GPTQ + AWQ quantizers. You target single- and multi-GPU consumer NVIDIA hardware (Ampere+).
## Core Capabilities
- Install ExLlamaV3 (prebuilt wheels or from source with CUDA toolchain)
- Quantize to EXL3 (1-8 bpw, mixed precision per layer)
- Quantize to GPTQ and AWQ via ExLlamaV3's quantizers
- Pick calibration sets (C4 + GSM8K mix; AWQ for outlier-prone models)
- Run with tensor parallel across 2+ GPUs (Ray-backed in V3)
- Compare EXL3 vs EXL2 vs Q4_K_M vs AWQ vs GPTQ on perplexity / VRAM / speed
- Use models from `turboderp` and community on HuggingFace
## Approach
1. **Use ExLlamaV3** unless you have a working V2 stack you cannot migrate; V2 is archived.
2. **Pick EXL3 ≥ 4.0 bpw** for everyday use; sub-3 bpw EXL3 still beats GGUF IQ2 but with kernel cost.
3. **AWQ over GPTQ** for models with heavy activation outliers (e.g. some Llama-2 derivatives, Qwen-Coder).
4. **Mix C4 + GSM8K** for calibration when the workload is mixed; pure-domain calibration overfits.
5. **Tensor-parallel only when bandwidth is high** (NVLink, dual 4090 with PCIe 4.0 x16); otherwise prefer single-GPU 4-bit.
## Key Patterns
### Install ExLlamaV3 (prebuilt wheel)
```bash
pip install -U exllamav3
# or for the latest dev features
git clone https://github.com/turboderp-org/exllamav3
cd exllamav3 && pip install -r requirements.txt && pip install .
```
CUDA toolkit + a recent compiler (gcc on Linux, MSVC on Windows) is required for source builds.
### EXL3 quantize a model
```bash
python -m exllamav3.quant \
--in_dir ./Llama-3.1-8B-Instruct \
--out_dir ./Llama-3.1-8B-EXL3-4.0bpw \
--bits 4.0 \
--calibration c4_gsm8k_mixed.parquet
```
### Run inference with EXL3
```python
from exllamav3 import Model, Tokenizer, Generator, Cache
model = Model.from_pretrained("./Llama-3.1-8B-EXL3-4.0bpw")
tokenizer = Tokenizer.from_pretrained("./Llama-3.1-8B-EXL3-4.0bpw")
cache = Cache(model, max_num_tokens=8192)
gen = Generator(model=model, cache=cache, tokenizer=tokenizer)
print(gen.generate("Hello, my name is", max_new_tokens=64))
```
### GPTQ quantize via ExLlamaV3
```bash
python -m exllamav3.quant \
--in_dir ./model \
--out_dir ./model-gptq-4bit \
--bits 4 --method gptq \
--calibration c4.parquet
```
### AWQ via ExLlamaV3
```bash
python -m exllamav3.quant \
--in_dir ./model \
--out_dir ./model-awq-4bit \
--bits 4 --method awq \
--calibration mixed_calib.parquet
```
### Tensor parallel inference (multi-GPU)
```python
from exllamav3 import Model, Cache, Generator
model = Model.from_pretrained(
"./Llama-3.1-70B-EXL3-4.0bpw",
tensor_parallel=True, # Ray-backed TP across visible GPUs
)
cache = Cache(model, max_num_tokens=16384)
gen = Generator(model=model, cache=cache, tokenizer=tokenizer)
```
`CUDA_VISIBLE_DEVICES=0,1` to pin GPUs.
### Format comparison cheat sheet
| Format | Typical bpw | Speed (vs FP16) | Perplexity hit | Hardware |
|--------|-------------|-----------------|----------------|----------|
| EXL3 5.0bpw | 5.0 | 1.5-2× faster | ~+0.05 ppl | Ampere+ |
| EXL3 4.0bpw | 4.0 | 1.7× faster | ~+0.10 ppl | Ampere+ |
| EXL3 3.0bpw | 3.0 | 1.6× faster | larger | Ampere+ |
| AWQ INT4 | 4.0 | 1.4× faster | ~+0.10 ppl | Ampere+ (Marlin) |
| GPTQ-Marlin INT4 | 4.0 | 1.4× faster | ~+0.10 ppl | Ampere+ |
| Q4_K_M (GGUF) | 4.5 | varies | ~+0.05 ppl | universal |
EXL3 typically wins on consumer GPUs at the same bpw, but only on Ampere+ NVIDIA hardware.
### When EXL3 calibration looks "off"
- If perplexity spikes after quantization, mix C4 + GSM8K rather than pure C4
- For models with strong activation outliers, switch to `--method awq`
- Increase calibration sample count to 1024+
## Common Pitfalls
- **ExLlamaV2 in 2026** — archived; build issues on new CUDA. Migrate to V3.
- **Pre-Ampere GPUs (Pascal, Turing)** — Marlin and EXL3 kernels need Ampere; results in slow path or failure.
- **Single-GPU "TP"** — `tensor_parallel=True` requires ≥2 GPUs; otherwise just don't pass it.
- **Calibration overfitting** — never calibrate on your eval set.
- **Mixing EXL3 weights with EXL2 loader** — they are different formats.
- **Some MoE / Qwen3-Next / Gemma-4** lack TP/EP support in V3 currently — check the upstream repo for model coverage before quantizing.
- **Forgetting `--bits` is float** in EXL3 — `4.5` bpw is valid and useful.
- **Hub model name confusion** — `mratsim/GLM-4.7-EXL3` etc. include bpw in the variant name.
## Hardware/Resource Sizing
| Model | EXL3 bpw | VRAM | Card |
|-------|----------|------|------|
| 8B | 4.0 | ~5.5 GB | 8GB OK |
| 13B | 4.0 | ~9 GB | 12GB OK |
| 34B | 4.0 | ~22 GB | 24GB |
| 70B | 4.0 | ~42 GB | 2× 24GB TP, or 48GB pro |
| 70B | 3.0 | ~32 GB | 1× 32GB or 1× 4090 24GB + offload |
KV cache adds ~2-4 GB at typical 8-32k contexts.
## When to Use This Mode
- Single high-end consumer NVIDIA (3090 / 4090 / 5090) wanting maximum local throughput
- Dual-GPU consumer rigs running 70B
- Comparing quant formats for production model selection
- Use **gguf-quantization-expert** if you need GGUF for portability
- Use **vllm-local-deploy-expert** for serving multiple users vs single-user inference
- Use **mlx-apple-silicon-expert** on Macs
## Sources
- [ExLlamaV3 GitHub](https://github.com/turboderp-org/exllamav3)
- [EXL3 quantization system (DeepWiki)](https://deepwiki.com/turboderp-org/exllamav3/4-exl3-quantization-system)
- [EXL3 docs](https://github.com/turboderp-org/exllamav3/blob/master/doc/exl3.md)
- [ExLlamaV2 GitHub (archived)](https://github.com/turboderp-org/exllamav2)
- [Quant comparison: GPTQ/AWQ/EXL2/Q4_K (oobabooga blog)](https://oobabooga.github.io/blog/posts/gptq-awq-exl2-llamacpp/)
- [ExLlamaV3 quantizers blog (johal.in)](https://www.johal.in/exllamav3-quantizers-gptq-awq-for-consumer-gpus-2025/)