Pourquoi tant de formats

Le paysage des formats de stockage de modèles IA est riche — presque chaotique. Chaque format est né d'un compromis local : sécurité contre vitesse, portabilité contre performance, simplicité contre fonctionnalité. Aucun ne domine universellement parce qu'aucun ne peut.

Cet article fait l'inventaire pratique des formats que vous rencontrerez en mission, avec une règle claire pour chacun : quand l'utiliser, quand ne pas.

Les formats de poids — vue d'ensemble

safetensors (Hugging Face) — le défaut moderne

Successeur de PyTorch .pt/.bin, défaut sur Hugging Face depuis 2023. Format binaire simple, lecture mmap (memory-mapped, instantanée sans charger en RAM), sans exécution de code à la désérialisation — fini les exploits via pickle.

Standard de fait pour publier et consommer un modèle en 2026. Si vous fine-tunez avec TRL, Unsloth ou Axolotl, vous sortez du safetensors sans y penser.

Piège historique

Les anciens checkpoints PyTorch .pt ou .bin utilisent pickle. Charger un .bin téléchargé d'une source non-fiable peut exécuter du code arbitraire (CVE bien connu). En 2026, on n'utilise plus que safetensors pour tout échange de modèle.

GGUF (llama.cpp) — pour l'edge et le local

Successeur de GGML, format unifié de llama.cpp. Auto-contenu (poids + tokenizer + métadonnées dans un seul fichier), portable sur CPU, ARM, Apple Silicon, GPU via Vulkan/CUDA. Supporte nativement la quantization mixed-precision (Q4_K_M, Q5_K_M, Q8_0).

Notre choix pour : démos sur laptop, dev local, déploiement edge sur Raspberry/Jetson, Mac Studio. Ollama, LM Studio, llamafile utilisent tous GGUF en interne.

ONNX — pour la portabilité cross-runtime

Open Neural Network Exchange. Format standard pour faire tourner un modèle hors de son framework d'origine. Compatible avec ONNX Runtime (Microsoft), Triton, OpenVINO (Intel), Apple Core ML via conversion.

Utile en 2026 pour : vision computer (où PyTorch reste lourd), modèles d'embedding sur CPU à grande échelle (text-embedding-3-small en ONNX tourne très bien sur Xeon), déploiement edge industriel. Moins pertinent pour les gros LLM décodeurs.

TensorRT-LLM (NVIDIA) — la perf max H100/B100

Format propriétaire NVIDIA optimisé pour leurs GPU. Le modèle est compilé pour un GPU spécifique (H100, H200, B100), avec kernels CUDA optimisés, fusion d'opérations, paged attention, speculative decoding intégré. Perf imbattable mais portabilité nulle.

Utilisé quand : chaque milliseconde compte en production sur fleet NVIDIA standardisée. Sinon, vLLM avec safetensors quantifiés (AWQ/FP8) atteint 80-90 % des perfs avec une portabilité bien meilleure.

MLX (Apple) — Apple Silicon natif

Format natif Apple pour Apple Silicon (M1/M2/M3/M4). Tire parti du Unified Memory : pas de copies CPU→GPU, mémoire totale du Mac Studio (jusqu'à 512 GB) directement accessible au modèle.

Utilisé pour : dev local sur Mac, démos client en présentation, tests rapides. Un Mac Studio M4 Ultra peut faire tourner Mistral Large 3 en MLX à 30+ tokens/s, ce qu'aucun autre laptop ne fait.

Les formats de quantization — vue d'ensemble

La quantization réduit la précision des poids (16 bits → 8, 4, voire 2 bits) pour gagner mémoire et vitesse. Mais chaque format a son tradeoff qualité/perf/portabilité.

FormatPrécisionMémoireQualitéGPU cibleQuand
BF16 / FP1616-bit100 %Référencetous GPU récentsRéférence qualité, gros GPU disponibles
FP8 (E4M3)8-bit float50 %−0.3 ptH100, H200, B100Default prod sur H100+
AWQ4-bit weight25 %−1 pttous GPUDefault vLLM tier 2
GPTQ4-bit weight25 %−1.5 pttous GPUAlternative à AWQ
GGUF Q4_K_M4-bit mixed27 %−2 ptsCPU, Mac, edgeEdge, dev local
EXL22-8 bits variablevariablevariabletousTuning fin taille/qualité
MXFP4 (Blackwell)4-bit float natif25 %−0.3 ptB100, B200, B300Production Blackwell 2026+

FP8 — le sweet spot 2026 sur H100/H200

Précision float 8 bits, supportée nativement par les Tensor Cores des H100 et au-delà. Réduction mémoire 50 %, perte qualité négligeable (typiquement < 0.3 pt sur MMLU). Notre default en production quand on a des H100.

Deux variantes : E4M3 (4 bits exposant, 3 bits mantisse) pour les poids et activations classiques, E5M2 (5 bits exposant) pour les gradients en training. vLLM et TensorRT-LLM supportent E4M3 nativement.

AWQ vs GPTQ — la guerre du 4 bits

Deux algorithmes de quantization 4 bits, créés en 2023, toujours actifs en 2026. AWQ (Activation-aware Weight Quantization) préserve les outliers d'activation : meilleure qualité moyenne. GPTQ est plus simple à calibrer, écosystème plus large.

Notre choix par défaut : AWQ. Quand AWQ n'est pas disponible (modèle exotique), GPTQ. La différence se mesure en moins d'un point sur la plupart des benchmarks.

GGUF — les Q-variants

GGUF est plus qu'un format : c'est une famille. Les Q-variants désignent des stratégies de quantization mixed-precision. Les plus utilisées en 2026 :

MXFP4 — le format Blackwell natif

Microscaling FP4 : format float 4 bits supporté nativement par les Tensor Cores Blackwell (B100/B200/B300, déployés depuis 2025). Qualité quasi-identique à FP8 pour 50 % de la mémoire. Perf inférence record.

Devient le default en 2026-2027 sur les nouveaux clusters NVIDIA. Pour l'instant, requiert TensorRT-LLM. vLLM gère depuis 0.7.

Notre matrice de décision

Le choix de format n'est jamais isolé. Il dépend du GPU cible, de la contrainte de mémoire, du tradeoff qualité/coût acceptable.

Cas 1 — Production sur H100/H200, charge forte

Default : safetensors FP8. Si la mémoire le permet, BF16. Si le modèle est trop gros : AWQ 4-bit. Serving via vLLM.

Cas 2 — Production sur B100/B200 (Blackwell)

Default : MXFP4 via TensorRT-LLM. Perf maximale, qualité préservée.

Cas 3 — Edge, embarqué, IoT

Default : GGUF Q4_K_M. CPU-friendly, llama.cpp ou Ollama.

Cas 4 — Mac dev / démo

Default : MLX 4-bit ou GGUF Q4_K_M. Apple Silicon brille en mémoire unifiée.

Cas 5 — Embedder à grande échelle sur CPU

Default : ONNX. ONNX Runtime + Intel MKL ou OpenVINO. Excellent débit sur Xeon.

Cas 6 — Distribution interne entreprise

Default : safetensors BF16 dans MLflow Registry. Quantization à la demande au déploiement selon le GPU cible.

Règle pratique

Stocker en BF16 (qualité référence) dans le registry. Quantifier au déploiement selon la cible. Versionner les artefacts quantifiés comme des variants. Ainsi, vous pouvez re-quantifier autrement sans recommencer le fine-tuning.

Pièges fréquents

Piège 1 — Quantifier sans benchmark

La perte qualité de quantization varie selon le modèle et selon la tâche. Toujours benchmarker sur votre jeu d'évaluation avant d'envoyer en production. La perte mesurée sur MMLU n'est pas la perte sur votre tâche métier.

Piège 2 — Mélanger les tokenizers

Un modèle quantifié garde son tokenizer original. Si vous avez fine-tuné avec un tokenizer étendu (nouveaux tokens spéciaux), il faut distribuer le tokenizer modifié avec les poids. GGUF embarque tout dans un fichier : avantage. Safetensors : il faut packager le bundle complet.

Piège 3 — Compter sur la portabilité de TensorRT-LLM

Un engine TensorRT-LLM est compilé pour une combinaison précise de GPU + version CUDA + version TRT-LLM. Migrer entre H100 et H200 ou monter de version requiert recompilation. À gérer dans la chaîne CI/CD.

Piège 4 — Croire que GGUF est aussi rapide que vLLM sur GPU serveur

GGUF excelle sur CPU et edge. Sur GPU serveur, llama.cpp est ~3-5× plus lent que vLLM sur le même H100. Ne pas se tromper de format selon la cible.

Un format n'a pas de mérite intrinsèque. Il a un contexte d'usage. Hors de ce contexte, c'est le mauvais format.

Notre recommandation

Pour 80 % de nos missions : safetensors BF16 en source de vérité, quantification vers FP8 ou AWQ 4-bit au déploiement selon le GPU, le tout servi par vLLM. C'est l'arbitrage qui maximise la portabilité, la qualité, la perf sans s'enfermer dans un écosystème propriétaire.

Les 20 % restants sont des cas spécifiques : edge (GGUF), Mac (MLX), perf max NVIDIA (TensorRT-LLM + MXFP4), embeddings CPU à grande échelle (ONNX). Choisir lucidement, sans dogme.

Un déploiement à dimensionner ?

Choix de format, quantization optimale, benchmarking sur vos données, intégration au pipeline CI/CD MLflow. Première analyse de faisabilité offerte.

Échanger avec un expert