- GGUF (GPT-Generated Unified Format) est un format binaire mono-fichier destiné aux grands modèles de langage quantifiés, introduit en août 2023 par le projet llama.cpp en tant que successeur de GGML.
- Il regroupe les poids, le tokenizer, le modèle de discussion (chat template) et les métadonnées dans un seul
.gguffichier exécutable sur CPU, GPU ou une combinaison des deux via llama.cpp, Ollama, LM Studio, KoboldCpp et text-generation-webui. - Niveaux de quantification tels que
Q4_K_M,Q5_K_MetQ8_0sacrifient la qualité au profit de la taille — une quantification 4 bits d’un modèle de 8 milliards de paramètres nécessite environ 5 Go de RAM ou de VRAM. - Téléchargez les fichiers depuis Hugging Face (recherchez « GGUF »), puis chargez-les avec
llama-cli -m model.ggufouollama run, et choisissez une quantification adaptée à votre matériel à l’aide du Calculateur de VRAM.
A modèle GGUF est un grand modèle de langage empaqueté selon le format de fichier GGUF — un conteneur mono-fichier qui intègre les poids quantifiés, le tokenizer, les hyperparamètres et le modèle de prompt. Il a été créé par Georgi Gerganov et le projet llama.cpp en août 2023 pour remplacer l’ancien format GGML. GGUF permet de télécharger un seul fichier, de le pointer depuis un environnement d’exécution, et d’obtenir immédiatement un modèle fonctionnel LLM local sur un ordinateur portable ou une station de travail.
Ce qu’est réellement GGUF
GGUF signifie GPT-Generated Unified Format. Sur le plan structurel, il s’agit d’un fichier binaire comportant un en-tête, un bloc de métadonnées clé-valeur, un index de tenseurs et les données tensorielles elles-mêmes. La spécification officielle GGUF dans le dépôt ggml définit précisément cette structure.
Deux propriétés sont essentielles pour les utilisateurs :
- Autonome. Le fichier embarque le tokenizer, les jetons spéciaux, les identifiants EOS/BOS, le modèle de discussion (chat template) et les métadonnées relatives à l’architecture. Aucun fichier supplémentaire
tokenizer.jsonouconfig.jsonn’est requis à ses côtés. - Mappable en mémoire. Les environnements d’exécution utilisent
mmap()pour charger le fichier, ce qui permet un démarrage quasi instantané et un chargement à la demande des poids par le système d’exploitation. C’est pourquoi un fichier GGUF de 40 Go s’ouvre en quelques secondes, même sur un disque SSD lent.
GGUF a remplacé GGML car ce dernier ne comportait aucune gestion de version, mélangeait métadonnées et poids, et cessait de fonctionner à chaque nouvelle architecture. GGUF, lui, est versionné et extensible.
Quantification : la convention de nommage
La plupart des fichiers GGUF que vous téléchargez sont quantifiés — les poids y sont stockés sur moins de bits que leur représentation FP16 d’origine. Le suffixe du nom de fichier indique le schéma utilisé. Les familles actuelles sont documentées dans le README de quantification de llama.cpp.
| Quant | Bits/poids (approx.) | Usage typique |
|---|---|---|
| Q2_K | ~2.6 | Taille minimale, perte de qualité notable |
| Q3_K_M | ~3.9 | Compression agressive |
| Q4_K_M | ~4.8 | Valeur par défaut la plus courante — bon compromis taille/qualité |
| Q5_K_M | ~5.7 | Qualité supérieure, fichier plus volumineux |
| Q6_K | ~6.6 | Quasi sans perte comparé à FP16 |
| Q8_0 | ~8.5 | Pratiquement sans perte, environ 2× la taille de Q4 |
| F16 / BF16 | 16 | Référence non quantifiée |
Le _K Les variantes k-quants utilisent une précision variable par bloc de tenseur. Les suffixes _M / _S / _L indiquent des présélections moyennes, petites ou grandes pour le mélange de blocs. Les variantes plus récentes (p. ex. IQ IQ4_XS ) utilisent une calibration basée sur une matrice d’importance afin d’obtenir une meilleure qualité pour un même budget en bits.utilise la calibration par matrice d'importance pour une meilleure qualité à budget de bits identique.
En règle générale, pour estimer les besoins en VRAM, prenez la taille du fichier sur le disque et ajoutez environ 1 à 3 Go pour le cache KV dans le cas de contextes courts, davantage pour des contextes longs. À partir de la base de données des modèles Convly: Llama 3.1 8B nécessite environ 5 Go en quantification 4 bits, Llama 3.3 70B environ 40 Go, et Mistral 7B environ 4,5 Go. Pour tout modèle plus volumineux, le tableau des besoins en VRAM est la méthode de recherche la plus rapide.
Où obtenir des fichiers GGUF
Presque toutes les distributions GGUF se font sur Hugging Face. Recherchez le nom du modèle suivi de « GGUF ». Parmi les outils fiables de re-quantification figurent bartowski, Qwen (officiel pour Qwen3), lmstudio-community, unsloth et MaziyarPanahi. Meta, Google, Mistral et Microsoft publient certaines versions officielles GGUF ; pour les autres, la communauté effectue la quantification à partir des poids initiaux publiés au format safetensors.
Un dépôt contient généralement un fichier par niveau de quantification, par exemple Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf. Pour les modèles dépassant environ 50 Go, le fichier est découpé en fragments (« shards ») nommés -00001-of-00003.gguf; les moteurs d’exécution les chargent automatiquement à partir du premier fragment.
Exécuter un modèle GGUF
Linux
Compilez llama.cpp depuis les sources ou installez le binaire précompilé. Avec CUDA :
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j
./build/bin/llama-cli -m ~/models/llama-3.1-8b-instruct-Q4_K_M.gguf
-p "Expliquez GGUF en un seul paragraphe." -n 256 -ngl 99
Le -ngl Le paramètre « n-gpu-layers » détermine combien de couches du transformeur sont déplacées vers le GPU. Réglez-le suffisamment haut pour que l’intégralité du modèle tienne dans la VRAM ; si vous manquez de mémoire, réduisez-le, et les couches restantes s’exécuteront sur le CPU. Pour exposer une API HTTP compatible OpenAI, utilisez llama-server sur le port 8080 par défaut.
macOS
Sur les puces Apple Silicon, llama.cpp utilise automatiquement le backend Metal. Installez-le via Homebrew :
brew install llama.cpp
llama-cli -m ~/models/qwen3-8b-Q5_K_M.gguf -p "Bonjour" -ngl 99
La mémoire unifiée signifie que la limite supérieure correspond à la RAM totale moins la surcharge système. Un Mac équipé d’une puce M et de 32 Go de RAM exécute aisément Qwen3 14B ou -ngl le plafond correspond à votre mémoire RAM totale moins la surcharge du système d'exploitation. Un Mac équipé de la puce M et de 32 Go de RAM exécute confortablement Qwen3 14B ou Gemma 3 12B en Q4_K_M — la base de données indique respectivement environ 9 Go et 8 Go de consommation VRAM.
Pour une interface graphique (GUI), LM Studio est le choix habituel sur Mac. Il télécharge directement les fichiers GGUF depuis Hugging Face et expose un serveur local compatible avec l’API OpenAI.
Windows
Trois approches pratiques :
- Ollama. Installez-le depuis ollama.com/download, puis
ollama run llama3.1:8b. Ollama récupère ses propres versions GGUF soigneusement sélectionnées. Pour charger un fichier arbitraire, créez un fichier Modelfile contenant une ligneFROM ./mymodel.ggufet exécutez la commandeollama create mymodel -f Modelfile. Consultez notre Guide d’installation d’Ollama. - LM Studio. Installation en un clic, navigation et téléchargement de fichiers GGUF via une interface utilisateur, curseur de déchargement GPU.
- binaires précompilés de llama.cpp. Le projet fournit des archives Windows précompilées (CPU, CUDA et Vulkan) sur la page des versions publiées sur GitHub. Décompressez-les puis lancez
llama-cli.exede la même manière que sous Linux.
En ce qui concerne le choix du GPU, le guide GPU local pour LLM recense les options actuelles en termes de rapport prix/VRAM.
GGUF contre Safetensors contre AWQ contre GPTQ
| Format | Runtime principal | Précision | Idéal pour |
|---|---|---|---|
| GGUF | llama.cpp, Ollama, LM Studio | 2 à 8 bits + F16 | CPU, calcul hybride CPU/GPU, Apple Silicon, usage individuel |
| Safetensors (FP16/BF16) | Transformers, vLLM | 16 bits | Entraînement, recherche, inférence en pleine précision |
| AWQ | vLLM, AutoAWQ | 4 bits | Service GPU haute performance |
| GPTQ | vLLM, ExLlamaV2 | 3 à 8 bits | Inférence GPU uniquement avec regroupement (batching) |
| MLX | MLX (Apple) | 4 à 16 bits | Apple Silicon uniquement |
Préférez GGUF lorsque la cible est un utilisateur unique sur une configuration matérielle hétérogène ou lorsque vous souhaitez garantir l’exécution du modèle même sur CPU. Préférez vLLM avec des safetensors AWQ/GPTQ lorsque vous servez de nombreux utilisateurs simultanés sur un GPU de centre de données.
Quand GGUF n’est pas la bonne solution
GGUF suppose une inférence mono-flux (batch-size 1). Son débit est nettement inférieur à celui de vLLM ou TensorRT-LLM sous charge concurrente, et il ne prend pas en charge l’attention paginée (« paged attention »). Si vous exposez une API destinée à un trafic réel, un déploiement en FP16 ou AWQ sur vLLM surpassera GGUF en nombre de jetons générés par seconde et par dollar, sans même comptabiliser le temps de développement investi.
Il devient également inefficace pour les modèles les plus volumineux. Kimi K3 nécessite environ 1,4 To de VRAM en quantification 4 bits et DeepSeek V4-Pro environ 800 Go — il s'agit de déploiements multi-nœuds, pas de charges de travail GGUF destinées aux postes de travail. Et pour les modèles récents hébergés, comme Claude Sonnet 4.6 à 3 $ en entrée / 15 $ en sortie par million de jetons, ou Gemini 3.6 Flash à 1,50 $ en entrée / 7,50 $ en sortie, aucun poids local n’existe à convertir. Faites le calcul sur la calculateur auto-hébergement vs API avant de vous engager dans un achat de GPU.
Convertir un modèle au format GGUF
Si un modèle est disponible sur Hugging Face au format safetensors mais qu’aucune quantification n’en a encore été faite, le flux de travail est le suivant :
# dans le dépôt llama.cpp
pip install -r requirements.txt
python convert_hf_to_gguf.py /chemin/vers/le-modele-hf --outfile modele-f16.gguf
./build/bin/llama-quantize modele-f16.gguf modele-Q4_K_M.gguf Q4_K_M
Le script de conversion ne prend en charge que les architectures intégrées à llama.cpp — llama, mistral, qwen2/3, gemma, phi, ainsi qu’une liste croissante d’autres architectures. Les nouvelles architectures nécessitent d’abord une modification du code. Les noms de fichiers et les indicateurs du script ont évolué entre les versions de llama.cpp ; vérifiez donc python convert_hf_to_gguf.py --help par rapport au commit utilisé pour votre compilation.
Questions fréquemment posées
GGUF est-il identique à GGML ?
Non. GGML était le format antérieur utilisé par llama.cpp jusqu’au milieu de l’année 2023. GGUF l’a remplacé en août 2023 avec un en-tête versionné, des métadonnées intégrées et une disposition stable des tenseurs. Les anciens fichiers .bin GGML ne sont plus chargés par la version actuelle de llama.cpp ; vous devez trouver une version GGUF re-quantifiée.
Quelle quantification dois-je télécharger ?
Commencez par Q4_K_M. Il convient à la plus large gamme de matériels, et la perte de qualité par rapport au format FP16 est faible pour la plupart des modèles comportant plus de 7 milliards de paramètres. Passez à Q5_K_M ou Q6_K si vous disposez de VRAM supplémentaire et que la précision en codage ou en raisonnement vous importe. Réduisez plutôt à Q3_K_M ou à une variante IQ3 uniquement si le modèle ne tient pas autrement dans la mémoire disponible.
Puis-je Modèles GGUF utiliser mon GPU ?
Oui. llama.cpp prend en charge CUDA (NVIDIA), ROCm (AMD), Metal (Apple), Vulkan (multi-fournisseur) et SYCL (Intel). L’indicateur -ngl déplace certaines couches vers le GPU. Si le modèle tient entièrement dans la VRAM, le débit est proche de celui des runtimes GPU dédiés ; en cas de déchargement partiel, la vitesse dépend de la couche la plus lente, quelle que soit la mémoire concernée.
GGUF fonctionne-t-il avec des modèles vision ou audio ?
Partiellement. llama.cpp prend en charge les modèles vision multimodaux de type LLaVA via un fichier mmproj GGUF associé contenant le projecteur visuel. Le support de Qwen-VL, de Gemma 3 Vision et de modèles similaires s’est progressivement étendu, mais reste en retard par rapport aux versions textuelles. Les modèles audio comme Whisper utilisent leur propre format connexe, géré par whisper.cpp, et non par le binaire principal llama.cpp.
Comment choisir un modèle GGUF adapté à mon matériel ?
Consultez la fiche du modèle sur le base de données des modèles Convly pour connaître sa consommation de VRAM en quantification 4 bits, puis soustrayez 1 à 3 Go de marge pour le contexte et la surcharge système. Sur une carte de 24 Go, Qwen3 32B (~20 Go) ou Gemma 3 27B (~16 Go) en Q4 constituent des choix confortables. Le Calculateur de VRAM gère des contextes plus longs, ce qui augmente considérablement la taille du cache KV.
Les fichiers GGUF sont-ils sûrs à exécuter ?
Les poids eux-mêmes ne sont que des nombres — contrairement aux checkpoints basés sur pickle Python, GGUF n’exécute aucun code au chargement. Le risque réside dans un fichier malveillant conçu pour exploiter une faille dans l’analyseur du runtime. Limitez-vous aux contributeurs connus sur Hugging Face (bartowski, unsloth, lmstudio-community, comptes officiels des éditeurs) et assurez-vous que llama.cpp, Ollama ou LM Studio soient à jour.
