GGUF vs AWQ vs GPTQ vs FP8 vs NF4 : choix de quantification des LLM
Traduction automatique
Cet article a été traduit automatiquement depuis la version originale en anglais.
Choisissez la quantification des LLM selon le runtime, le matériel et la tâche à exécuter. GGUF regroupe les tenseurs du modèle et les métadonnées. AWQ et GPTQ réduisent la précision des poids après l’entraînement. FP8 utilise des valeurs à virgule flottante sur huit bits. NF4 stocke les poids sur quatre bits et sert couramment à entraîner des adaptateurs QLoRA. Ces noms décrivent différentes parties du processus de chargement et d’exécution du modèle.
Choisissez d’abord le runtime et le matériel. Sélectionnez ensuite une représentation prise en charge par le runtime dont la version est fixée pour l’architecture exacte. Évaluez la qualité sur les tâches, la mémoire, le temps jusqu’au premier token, le débit et la concurrence avant d’accepter des fichiers de modèle plus petits.
Vérifiez la compatibilité avant de comparer la taille des fichiers ou le nombre de bits.
Tableau de décision
| Objectif | Point de départ | Vérifications préalables |
|---|---|---|
| Inférence locale sur CPU, Metal ou llama.cpp portable | GGUF avec une quantification documentée | Prise en charge de l’architecture, gabarit de conversation, comportement du contexte, paramètres de quantification et révision source. |
| Inférence GPU avec quantification des poids calibrée | AWQ ou GPTQ | Moteur de serving, GPU, largeur en bits, taille des groupes, kernels et architecture du modèle. |
| Serving sur GPU de datacenter pris en charge | FP8 | Capacités matérielles, implémentation du runtime, mode de calibration et qualité de bout en bout. |
| Entraînement économe en paramètres avec des poids gelés sur 4 bits | NF4 via bitsandbytes | Précision arithmétique, mémoire nécessaire à l’entraînement et utilisation d’un adaptateur ou de poids fusionnés pour le déploiement. |
| Prototype Transformers simple | bitsandbytes sur 8 ou 4 bits | Prise en charge du backend et adéquation entre le chemin du prototype et le serveur de production. |
GGUF ne définit pas une quantification unique
Une extension .gguf indique comment les tenseurs et les métadonnées sont empaquetés, et non la précision de chaque tenseur. Des noms tels que Q4_K_M identifient les recettes de quantification de llama.cpp, qui peuvent traiter différemment certains groupes de tenseurs. Consignez le checkpoint d’origine, la version du convertisseur, la commande de quantification et les hashes des fichiers. La calibration utilise des entrées représentatives pour choisir les paramètres de quantification. Si la conversion a utilisé ces entrées, consignez également le dataset.
AWQ et GPTQ nécessitent un chemin de serving compatible
Les fichiers de modèle AWQ et GPTQ utilisent généralement Safetensors ainsi que des paramètres décrivant la méthode de quantification. Un modèle peut être téléchargé correctement tout en basculant vers un kernel lent ou en échouant sur une architecture non prise en charge. Consultez la matrice de compatibilité actuelle de Transformers, vLLM ou de la version réelle du serveur avant de sélectionner les fichiers du modèle.
FP8 et NF4 répondent à des problèmes différents
FP8 est intéressant lorsque l’accélérateur et la pile de serving l’implémentent efficacement. NF4 sert principalement à stocker des poids de modèle gelés pendant l’entraînement de petits adaptateurs dans des flux de travail de type QLoRA. Dans bitsandbytes, le dtype de calcul définit la précision utilisée pour l’arithmétique ; elle peut différer de celle des poids stockés sur quatre bits. La quantification imbriquée optionnelle compresse également les constantes utilisées pour représenter ces poids. Aucune de ces désignations ne garantit la même qualité, la même vitesse ou la même consommation mémoire selon les modèles et le matériel.
Liste de vérification pour l’évaluation
Le stockage sur quatre bits ne signifie pas que tout le processus utilise quatre bits par paramètre. Les métadonnées de quantification, les tenseurs de précision supérieure, les tampons temporaires et le cache d’attention demandent davantage de mémoire. Testez la longueur des prompts et les requêtes concurrentes que vous prévoyez de servir.
- comparez le même checkpoint source et le même jeu de prompts
- incluez les contextes longs et les requêtes concurrentes
- mesurez la conformité aux schémas et la correction des tool calls en plus de la perplexité
- consignez la mémoire maximale du dispositif et de l’hôte
- vérifiez le temps jusqu’au premier token et le débit de génération
- examinez les segments de qualité rares ou coûteux
- conservez la licence, la révision source, le convertisseur, la recette et le hash avec les fichiers du modèle
Pour approfondir
- Guide d’ingénierie des LLM : quantification situe ces choix par rapport à la mémoire, aux kernels de serving et à la sélection des GPU.
- Guide de la quantification des modèles présente les algorithmes, la calibration, les kernels et les compromis de déploiement.
- Variantes de LLM à poids ouverts distingue le rôle du checkpoint, l’architecture, le conteneur, la quantification, le runtime et le matériel.
- LLMs locaux sur macOS applique ces choix à Apple Silicon.