🔍 Read the full analysis: How Transformers Now Runs Llama.cpp Quants on ThorstenMeyerAI.com
Get business pricing on tech for your team
- Business-only prices and quantity discounts
- Tax-exempt purchasing
- Multiple users, one account, clear invoices
TL;DR
Hugging Face’s transformers library now supports loading GGUF quantized checkpoints directly through from_pretrained, reusing llama.cpp’s ggml kernels for performance. Initial support covers Apple Silicon and the Qwen3.5 architecture, available now on the transformers main branch ahead of a stable release.
Hugging Face has added native GGUF quantized model support to its transformers library, allowing users to run llama.cpp-style quantized checkpoints through the familiar from_pretrained API on their own machines. The feature reuses llama.cpp’s underlying ggml kernels to keep performance close to llama.cpp itself, according to the company’s announcement. Initial support targets Apple Silicon and the Qwen3.5 architecture, and the capability is currently available only on the transformers main branch, ahead of the next stable release.
According to Hugging Face’s announcement, users can now pick any GGUF checkpoint from the Hub, load it by passing a gguf_file argument to from_pretrained, and generate text with no extra configuration. When weights stay packed on Metal, transformers automatically loads compatible ggml/Metal layer kernels and uses ggml-org/ggml-attn as the attention implementation. If that kernel cannot be fetched, the model falls back to the standard “sdpa” attention with a warning, and users can force sdpa explicitly via attn_implementation=”sdpa”.
The requirements are specific: an Apple Silicon Mac, a PyTorch version supported by the published ggml-quantization kernel builds (usually the two latest releases), and the latest version of transformers plus a compatible version of the kernels library. Without a compatible quantization kernel, the loader falls back to dequantizing the model, which uses more memory.
Beyond direct model loading, the same GGUF checkpoints can be served through transformers serve, which exposes an OpenAI-compatible API on localhost. Clients such as Jan or Pi can connect by adding a custom OpenAI-compatible provider pointing at that endpoint. Hugging Face states that its reference for local inference performance is llama.cpp, and its benchmark comparison covers three GGUF checkpoints: a small dense model, a larger dense model, and a mixture-of-experts model.
Two Ecosystems, One API
This development collapses two previously separate ecosystems. GGUF, developed by the llama.cpp team, has become the dominant format for local inference — it powers tools like Ollama, LM Studio, and Jan, and GGUF models have been downloaded millions of times. Until now, running those checkpoints generally meant using llama.cpp-derived tools rather than the PyTorch-based transformers stack.
For developers already building on transformers, this means access to the full range of quantized checkpoints published by Unsloth, LM Studio Community, bartowski, and ggml-org without changing their code. For users with limited hardware, quantization lets a model like Qwen3.5-4B shrink from 8.42 GB in BF16 to 2.74 GB in Q4_K_M, making laptop-scale inference practical.
Hugging Face frames the move as making local AI “much easier” for everyday use — a claim, not a measured result — that coincides with growing interest in local coding agents running mid-sized models on consumer Macs.
Top picks for "transformer runs llama"
As an affiliate, we earn on qualifying purchases.
How GGUF Quantization Sizes Up
GGUF packages model weights and metadata — including tokenizer information and an optional chat template — in a single file. It supports multiple quantization levels, letting users trade precision for memory footprint. Variants such as Q4_K_M use mixed tensor precision: mostly 4-bit weights while keeping sensitive tensors at higher precision.
Hugging Face’s published file sizes for Unsloth’s Qwen3.5-4B illustrate the tradeoffs: BF16 at 8.42 GB as the unquantized reference, Q6_K at 3.53 GB, Q5_K_M at 3.14 GB, and Q4_K_M at 2.74 GB. The company recommends starting with Q4_K_M and moving to Q5_K_M or Q6_K if more memory is available, while cautioning that the quality cost of aggressive quantization “depends on the model and the task” — users should evaluate on their actual workload.
The timing follows a period of rapid improvement in local inference. Hugging Face co-founder Julien Chaumond recently posted a demonstration of Qwen3.6 27B running inside the Pi coding agent via llama.cpp on a MacBook Pro, writing that for non-trivial tasks on Hugging Face codebases it felt “very, very close” to hitting the latest Claude Opus.
“We’re adding support for running GGUF models efficiently in transformers, so you can use checkpoints sized for your laptop’s memory through the familiar transformers APIs.”
— Hugging Face announcement
Limits of the Current Rollout
Several boundaries remain. Support currently targets Apple Silicon only — there is no stated timeline for CUDA, Linux, or Windows support. Architecture coverage starts with Qwen3.5; it is unclear which additional model families will be added or when.
The feature is also only on the transformers main branch for now, and Hugging Face has not announced a date for the next stable release that would include it. Full benchmark numbers comparing transformers-GGUF performance against llama.cpp across the three test checkpoints were referenced in the announcement, but details depend on the specific hardware and models used. Whether performance truly stays close to llama.cpp across configurations remains to be independently verified.
Roadmap for Broader Device Support
The immediate next step is the feature shipping in a stable transformers release, removing the need to install from GitHub. Beyond that, Hugging Face’s stated initial focus on Apple Silicon and Qwen3.5 implies likely expansion along two axes: additional hardware backends (such as CUDA GPUs) and additional model architectures, including the mixture-of-experts models already used in its benchmarking.
Users can track the Hub’s GGUF documentation for newly supported quantization types and the kernels library for compatible builds. No dates have been announced for any of these steps.
Key Questions
How do I load a GGUF model in transformers?
Pass a gguf_file argument to from_pretrained with any GGUF checkpoint from the Hub. Generation then works with no extra configuration, provided your environment meets the requirements.
What hardware and software are required?
You need an Apple Silicon Mac, a PyTorch version supported by the published ggml-quantization kernel builds (usually the two latest releases), and the latest version of transformers from the main branch plus a compatible version of the kernels library.
What happens if the quantization kernel isn’t available?
The loader falls back to dequantizing the model, which uses more memory. Separately, if the ggml-attn kernel cannot be fetched, attention falls back to sdpa with a warning.
Which quantization level should I choose?
Hugging Face recommends starting with Q4_K_M and moving to Q5_K_M or Q6_K if more memory is available. For Qwen3.5-4B, that corresponds to roughly 2.74 GB versus 3.14–3.53 GB. The company cautions that quality loss depends on the model and task.
Can I serve GGUF models through an API?
Yes. The same checkpoints can be served via transformers serve, which exposes an OpenAI-compatible API on localhost. Clients such as Jan or Pi can connect by adding a custom OpenAI-compatible provider pointing at that endpoint.
Primary source: Hugging Face · via ThorstenMeyerAI.com
Fall Picks
fall essentials
As an affiliate, we earn on qualifying purchases.
