GGUF quantized versions of SmolLM2-1.7B, trained with Scheduled Quantization-Aware Training (linear bit-width reduction schedule) before quantization.
Key insight: Unlike naive Post-Training Quantization (PTQ), these weights were specifically trained to survive quantization. During training, precision was gradually reduced from FP32 → FP16 → INT8 → INT4 following a linear schedule, allowing the model to adapt its weights to quantization noise at each stage.
Files
Filename
Quant
Size
BPW
Description
smollm2-1.7b-sched-qat-linear-Q4_K_M.gguf
Q4_K_M
~1.0 GB
4.93
Recommended — best quality/size ratio for edge deployment
Training (QAT): Model weights are trained with fake quantization nodes that simulate INT4 rounding noise in every forward pass. The gradients learn to place weights near quantization grid points.
Export (this repo): The QAT-hardened bf16 weights are converted to GGUF format and quantized to actual INT4/INT8 using llama.cpp's llama-quantize.
Deployment: The GGUF files run directly on edge devices via llama.cpp — Android, iOS, Raspberry Pi.
Because QAT pre-adapted the weights for quantization, these GGUF files should retain more quality than naively quantized (PTQ) versions of the same model.
Usage
With llama.cpp CLI
# Download
wget https://huggingface.co/jpcurada/SmolLM2-1.7B-Scheduled-QAT-Linear-GGUF/resolve/main/smollm2-1.7b-sched-qat-linear-Q4_K_M.gguf
# Run
./llama-cli -m smollm2-1.7b-sched-qat-linear-Q4_K_M.gguf \
-p "The future of artificial intelligence is" -n 100
With llama-cpp-python
fromllama_cppimportLlamallm=Llama(model_path="smollm2-1.7b-sched-qat-linear-Q4_K_M.gguf")output=llm("The future of AI is",max_tokens=100)print(output["choices"][0]["text"])