Aller au contenu

GGUF : Format de fichier de modèles de llama.cpp

IA

GGUF : format de fichier de modèles de langage créé pour le projet llama.cpp. Ce n'est pas strictement un sigle : la spécification ne fixe pas de développement officiel, « GG » renvoyant aux initiales de Georgi Gerganov, auteur du projet, et le développement « GPT-Generated Unified Format » qui circule n'ayant rien d'officiel. « Une valise unique dans laquelle on range le modèle, son mode d'emploi et sa notice de montage, pour qu'il voyage sans bagage à main », par analogie avec le kit de meuble suédois livré avec ses vis, sauf que les vis sont ici des milliards de nombres arrondis.

Contenu : Un seul fichier binaire réunit les poids du modèle (les tenseurs) et des métadonnées : architecture, hyperparamètres, vocabulaire du découpeur en jetons, modèle de conversation. Il a remplacé en 2023 l'ancien format GGML, qui obligeait à deviner une partie de ces informations.

Quantification : Les poids sont souvent stockés en précision réduite (types Q4_K_M, Q5_K_M, Q8_0…), ce qui divise la taille du modèle et la mémoire nécessaire au prix d'une perte de qualité plus ou moins sensible. Le format vise d'abord l'exécution sur processeur, éventuellement aidé d'une carte graphique.

Face à GPTQ et AWQ : GPTQ (méthode de quantification post-entraînement conçue pour les modèles de type GPT) et AWQ (Activation-aware Weight Quantization, quantification tenant compte des activations) sont des méthodes de quantification surtout utilisées pour l'exécution sur carte graphique, alors que GGUF est d'abord un format de fichier.

Sécurité : Contrairement aux anciens fichiers PyTorch fondés sur le module pickle de Python, GGUF ne contient pas de code exécutable par conception. Les programmes qui le lisent ont pourtant connu des failles d'analyse, et le modèle de conversation embarqué est un gabarit interprété : un fichier téléchargé reste une entrée non fiable, même quand il ne contient « que des nombres ».

Ce qui arrive si on s'en passe

Télécharger un fichier GGUF depuis un dépôt public sans vérifier sa provenance, c'est confier à son serveur un fichier de plusieurs gigaoctets dont on ignore qui l'a quantifié, à partir de quel modèle et avec quel gabarit de conversation. Un lecteur pas à jour peut s'y casser les dents sur un en-tête malformé, et un modèle altéré répondra avec aplomb des choses que l'original n'aurait jamais dites. On vérifie l'empreinte, l'origine et la version du logiciel de lecture, ou l'on accepte de faire de l'intelligence artificielle à l'aveugle, ce qui n'est pas la plus intelligente de ses formes.

Explication de la marmotte

Un modèle d'intelligence artificielle, c'est surtout une énorme liste de nombres. GGUF est un format de fichier qui range ces nombres et toutes les informations utiles au modèle dans un seul fichier, facile à télécharger et à lancer sur un ordinateur ordinaire. Souvent, les nombres y sont arrondis pour que le fichier soit plus petit et tienne dans la mémoire, avec une petite perte de qualité. Comme tout fichier venu d'Internet, il vaut mieux vérifier d'où il vient avant de l'utiliser.

Où ce terme est utilisé

← Tout le glossaire