By Sagar Shankaran, Founder of CallSphere
A practical guide to LLM compression — quantization, pruning, distillation, and speculative decoding — with benchmarks showing quality-cost tradeoffs for production deployment.
Key takeaways
Running LLMs in production is expensive. A single A100 GPU serving Llama 3.1 70B costs roughly $2-3 per hour on cloud infrastructure. At scale, inference costs dwarf training costs — a model is trained once but serves millions of requests. Compression techniques that reduce model size and inference cost without significantly degrading quality are among the highest-ROI optimizations available.
In 2026, the compression toolkit has matured significantly. Here is what works, what the tradeoffs are, and how to choose the right approach.
Quantization reduces the precision of model weights from 16-bit floating point to lower bit widths (8-bit, 4-bit, or even 2-bit). Since memory bandwidth is the primary bottleneck in LLM inference (not compute), smaller weights mean faster inference.
flowchart LR
FP16(["FP16 model<br/>baseline weights"])
CALIB["Calibration set<br/>128 to 1024 samples"]
METHOD{"Quantization<br/>method"}
GPTQ["GPTQ<br/>weight only INT4"]
AWQ["AWQ<br/>activation aware"]
GGUF["llama.cpp GGUF<br/>K-quants for CPU"]
EVAL["Eval delta vs FP16<br/>perplexity, MMLU"]
SERVE[("Serve on<br/>consumer GPU")]
FP16 --> CALIB --> METHOD
METHOD --> GPTQ --> EVAL
METHOD --> AWQ --> EVAL
METHOD --> GGUF --> EVAL
EVAL --> SERVE
style METHOD fill:#4f46e5,stroke:#4338ca,color:#fff
style EVAL fill:#f59e0b,stroke:#d97706,color:#1f2937
style SERVE fill:#059669,stroke:#047857,color:#fff
Quantizing both weights and activations to 8-bit integer. This is the most mature technique with minimal quality loss.
bitsandbytes, TensorRT-LLM, vLLM built-inQuantize weights to 4-bit while keeping activations at 16-bit. More aggressive compression with moderate quality impact.
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
# Quantize a model with AWQ
python -m awq.entry \
--model_path meta-llama/Llama-3.1-70B \
--w_bit 4 \
--q_group_size 128 \
--output_path ./llama-70b-awq-4bit
Research from Microsoft (BitNet) and others has demonstrated functional models at 1.58 bits per weight (ternary: -1, 0, 1). Quality degrades more noticeably, but the size reduction is dramatic — a 70B model fits in under 20GB of memory. This is promising for edge deployment scenarios where memory is the binding constraint.
| Method | Best For | Quality | Speed | Calibration Data |
|---|---|---|---|---|
| GPTQ | GPU inference, maximum quality | Highest | Fast | Required |
| AWQ | GPU inference, good balance | High | Fastest | Required |
| GGUF | CPU/Mac inference, flexibility | Good | Moderate | Not required |
AWQ has emerged as the default choice for GPU-served quantized models because it preserves quality on important weight channels while aggressively quantizing less important ones. GGUF remains the standard for local inference on consumer hardware and Apple Silicon.
Structured pruning removes entire attention heads or feed-forward neurons that contribute least to model quality. Unlike quantization, pruning reduces the computational graph itself.
Recent work on SparseGPT and Wanda demonstrated that 50-60% of weights in large LLMs can be set to zero (unstructured sparsity) with minimal quality loss. However, hardware support for sparse computation is still catching up — unstructured sparsity does not translate directly to speed improvements on current GPUs without specialized kernels.
Structured pruning (removing entire layers or heads) provides real speedups but typically causes more quality degradation. The Llama 3.1 8B model is effectively a pruned and distilled version of the 70B model — demonstrating that careful pruning combined with continued training can produce efficient models.
Train a smaller "student" model to mimic a larger "teacher" model. The student learns from the teacher's output distributions rather than raw training data, transferring knowledge that would otherwise require a larger model to encode.
Still reading? Stop comparing — try CallSphere live.
CallSphere ships complete AI voice agents per industry — 14 tools for healthcare, 10 agents for real estate, 4 specialists for salons. See how it actually handles a call before you book a demo.
# Simplified distillation training loop
for batch in dataloader:
teacher_logits = teacher_model(batch).logits.detach()
student_logits = student_model(batch).logits
# KL divergence loss between teacher and student distributions
loss = F.kl_div(
F.log_softmax(student_logits / temperature, dim=-1),
F.softmax(teacher_logits / temperature, dim=-1),
reduction="batchnorm",
) * (temperature ** 2)
loss.backward()
optimizer.step()
Distillation produces the highest-quality small models but requires significant compute for the training process. It is the technique behind most "mini" and "small" model variants from major providers.
Not technically compression, but worth including because it achieves similar cost-reduction goals. Use a small, fast "draft" model to generate candidate tokens, then verify them in parallel with the large model. The large model accepts or rejects each token in a single forward pass that verifies multiple tokens simultaneously.
With a good draft model, speculative decoding achieves 2-3x speedup with zero quality loss — the output distribution is mathematically identical to the large model alone.
For most production deployments, the recommended stack in 2026 is:
This combination typically achieves 3-4x cost reduction compared to FP16 inference with minimal quality impact for most applications.
Sources:

Written by
Sagar Shankaran· Founder, CallSphere
LinkedInSagar Shankaran is the founder of CallSphere, where he builds production AI voice and chat agents deployed across healthcare, hospitality, real estate, and home services. He writes about agentic AI, LLM engineering, and shipping voice agents that handle real calls in production.
See how AI voice agents work for your industry. Live demo available -- no signup required.
QAT is how you get small models without quality regressions. The 2026 PyTorch patterns for FP4, INT8, and BF16 mixed-precision training.
MXFP4 is the quantization format powering 2026 inference on NVIDIA Blackwell, AMD MI355X, and Intel Gaudi 3. What it does, why it works, and what it costs.
pgvector 0.8 with binary quantization cut HNSW build time 150x and hits 471 QPS at 99% recall on 50M vectors. Here is the production tuning guide for Postgres-shop teams.
Real MLOps and AI deployment interview questions from Google, Amazon, Meta, and Microsoft in 2026. Covers CI/CD for ML, model monitoring, quantization, continuous batching, serving infrastructure, and evaluation frameworks.
Technical guide to Kubernetes deployment for AI agents including container design, HPA scaling, readiness and liveness probes, GPU resource requests, and cost optimization.
Master TensorFlow Lite for deploying AI agent models on Android and iOS devices, including model conversion, quantization strategies, and real-world integration patterns.
© 2026 CallSphere Inc. All rights reserved.
Made within San Francisco
Watch how CallSphere handles real customer calls, schedules appointments, and processes payments — live.