GGUF files you already download, and which QAT checkpoints you can run today. For the basics of quantization and how to read a name like Q4_K_M, start with Quantization explained.
QAT vs post-training quantization (PTQ)
Almost every quantized model you download is made with post-training quantization (PTQ): take a finished BF16 model, round its weights to fewer bits, ship it. It’s fast and needs no retraining — but the model was never given a chance to adapt to the rounding error, so accuracy loss grows as you push the bit-width down. QAT inserts “fake quantization” into the training or fine-tuning loop. The forward pass rounds and clamps weights to the target bit-width but keeps them in floating point, and gradients (via a straight-through estimator) teach the model to stay accurate under that rounding before it’s actually cast to low precision. Because the weights were optimized to survive quantization, a QAT checkpoint beats a PTQ one at the same bit-width. The gap is measurable:- PyTorch’s own numbers on Llama 3-8B at 4-bit weights: QAT recovered 96% of the accuracy degradation on HellaSwag and 68% of the perplexity degradation on WikiText versus PTQ. (PyTorch blog)
- Google’s Gemma 3 QAT int4 checkpoints cut the perplexity gap versus the non-quantized model by 54% compared to a naive
Q4_0conversion of the same model. (Google Developers blog)
The recovery rate isn’t a fixed constant — it varies by model, bit-width, and benchmark. Treat the figures above as illustrative of the direction and rough magnitude, not a guarantee for every model.
QAT is a method, not a file format
A common mix-up is “QAT vs GGUF.” They aren’t alternatives — they answer different questions:- QAT and PTQ are how the low-bit weights were produced (the training/quantization method).
GGUFis the container the weights ship in forllama.cpp-based runtimes (Ollama, LM Studio, Jan).
GGUF — and usually is. Google’s release makes this explicit in its naming: google/gemma-4-12B-it-qat-q4_0-gguf is a GGUF file whose Q4_0 weights came out of the QAT pipeline, as opposed to a plain gemma-4-12b-it that Ollama quantized to Q4_0 with ordinary PTQ. Same format, same bit-width — different, higher-fidelity weights inside. So the real comparison is QAT vs PTQ, and GGUF is just how either one reaches your runtime.
Gemma QAT: the checkpoints to actually run
Google is the standout here: it fine-tunes each Gemma model with QAT and publishes the results as ready-to-run int4 checkpoints. On Ollama they carry an-it-qat tag. For Gemma 4 (the current generation — see Gemma):
Sizes are from ollama.com/library/gemma4 — confirm the current tag list there before you standardize on one. Google reports that Gemma 4 QAT yields “higher overall quality compared to standard PTQ baselines.” The well-quantified precedent is Gemma 3, where int4 QAT dropped VRAM roughly 3× — the 27B model from ~54 GB at BF16 to ~14 GB — while staying close to full-precision quality, which is what brought 27B-class models onto a single consumer GPU.
Fine-tuning your own QAT model
QAT isn’t only for vendor checkpoints. Unsloth (with PyTorch’s TorchAO team) added QAT to its fine-tuning library: pass aqat_scheme (int4, int8-int4, fp8-int4, or fp8-fp8) so fake-quantization runs during your LoRA/fine-tune loop, then export to a low-bit format. Unsloth reports recovering up to ~70% of the accuracy a naive quantization loses, with no added inference-time overhead and the same on-disk footprint as ordinary quantization.
This is the practical path for the popular open models that don’t ship official QAT checkpoints — Qwen, for example, has no first-party QAT release, but its models are a common base for community QAT recipes built on Unsloth and TorchAO. If you fine-tune and serve your own QAT model, serve your fine-tune covers exporting it to a runtime, and Tokios connects it from there.
Run your QAT model from anywhere
QAT gets a high-quality model to fit on the hardware you actually own. Once it’s running locally — on Ollama, LM Studio, vLLM, or llama.cpp — the next step is reaching it from your agents, apps, and teammates without exposinglocalhost.
Give it a stable endpoint
Tokios doesn’t pick, host, or fine-tune the model — once your QAT checkpoint runs locally, Tokios turns it into a stable, authenticated endpoint at
https://api.tokios.com you can call from anywhere.Go deeper
Quantization explained
How quantization works and how to read
GGUF names like Q4_K_M.Run Gemma locally
Gemma 4’s sizes, hardware fit, and its
-it-qat quants.Quantization and hardware
Which weight formats — GGUF, NVFP4, MXFP4, AWQ, MLX — run on your hardware.
What size model fits your GPU?
Check whether a model-and-quant combination fits before you download it.