Un modèle est la fusion de trois éléments : une architecture, un ensemble de paramètres et l'empreinte de ses données d'entraînement. L'architecture est le plan directeur — elle définit comment les informations circulent dans le système. Un Transformer traite le texte à travers des couches de mécanismes d'attention. Un modèle de diffusion débruit progressivement du bruit aléatoire pour produire des images. Un modèle Mamba utilise des espaces d'états sélectifs pour traiter les séquences sans aucun mécanisme d'attention. L'architecture détermine quel type d'entrée le modèle peut traiter et quel type de sortie il peut produire, mais en soi, elle n'effectue rien. Il s'agit d'une structure vide sans connaissance.
Les paramètres sont la connaissance. Pendant l'entraînement, le modèle ajuste des millions ou des milliards de poids numériques jusqu'à ce qu'il puisse prédire correctement ses données d'entraînement. Ces poids encodent tout ce que le modèle « sait » — grammaire, faits, schémas de raisonnement, style, biais. Lorsque les gens disent qu'un modèle a 70 milliards de paramètres, cela signifie que 70 milliards de nombres appris représentent collectivement les motifs que le modèle a extraits de son corpus d'entraînement. Les paramètres sont le modèle au sens le plus concret : c'est le fichier que vous téléchargez, l'élément chargé en mémoire GPU, l'artefact qui transforme l'architecture en capacité.
Lorsque vous téléchargez un modèle, vous téléchargez ces paramètres sérialisés dans un fichier. Le format a une importance plus grande que vous ne le pensez peut-être. Les fichiers .pt ou .bin de PyTorch sont le format natif pour les modèles entraînés avec PyTorch — ils utilisent la sérialisation pickle de Python, ce qui signifie qu'ils peuvent théoriquement contenir du code arbitraire. C'est une préoccupation réelle de sécurité si vous téléchargez des modèles depuis des sources non fiables. Safetensors, développé par Hugging Face, résout ce problème en stockant uniquement les données de tenseur brutes dans un format qui ne peut pas exécuter de code. Il est également plus rapide à charger car il prend en charge l'accès mappé en mémoire. La plupart des dépôts de modèles ont adopté safetensors comme format par défaut.
GGUF est une entité tout à fait différente. Développé par la communauté llama.cpp, GGUF est conçu pour l'inférence sur processeur et sur matériel grand public avec un mélange de processeur et de GPU. Il empaquette les poids du modèle ainsi que des métadonnées sur la quantification, la configuration du tokenizer et les détails de l'architecture dans un seul fichier autonome. Si vous voyez quelqu'un exécuter un modèle de 70 milliards de paramètres sur un MacBook, il utilise probablement un fichier GGUF quantifié à une précision de 4 bits ou 5 bits. ONNX (Open Neural Network Exchange) adopte une approche différente — il s'agit d'un format d'interopérabilité conçu pour vous permettre d'entraîner un modèle dans un framework et de l'exécuter dans un autre, souvent avec des optimisations spécifiques au matériel appliquées par le runtime.
Les modèles traversent un cycle de vie que la plupart des utilisateurs ne voient jamais. Le pré-entraînement est la partie coûteuse : un modèle de base est entraîné sur d'énormes quantités de données (souvent des trillions de tokens pour les grands modèles de langage) à des coûts allant des centaines de milliers aux centaines de millions de dollars. Cela produit un modèle de base capable de prédire du texte, mais pas particulièrement utile pour les conversations. L'affinage adapte le modèle de base à des tâches spécifiques — suivi d'instructions, génération de code, diagnostic médical — en utilisant des ensembles de données beaucoup plus petits et ciblés. La RLHF ou des techniques d'alignement similaires rendent les sorties du modèle plus utiles et moins nuisibles. La quantification réduit la précision du modèle de 16 bits ou 32 bits à 8 bits, 4 bits ou même moins, échangeant une petite quantité de qualité contre des réductions importantes en mémoire et en exigences de calcul. Le déploiement place le modèle derrière une API ou le charge sur un appareil. Le service gère les demandes d'inférence à grande échelle.
La distinction entre modèles ouverts et modèles fermés est plus floue qu'elle n'en a l'air. Lorsque Meta « publie » Llama, elle publie les poids du modèle — vous pouvez télécharger les paramètres et exécuter le modèle sur votre propre matériel. Mais elle ne publie pas les données d'entraînement ni le code d'entraînement complet. Mistral fait quelque chose de similaire. Ces modèles sont plus précisément appelés « modèles à poids ouverts ». Des modèles open-source complets incluraient les poids, les données d'entraînement, le code d'entraînement et les pipelines d'évaluation — un standard que personne ne respecte presque jamais. De l'autre côté, les modèles fermés comme GPT-4 et Claude ne sont disponibles que via des API. Vous ne voyez jamais les poids, vous ne pouvez pas modifier le modèle, et vous êtes soumis aux conditions d'utilisation du fournisseur. La différence pratique est considérable : les modèles à poids ouverts vous donnent le contrôle, la confidentialité et la possibilité d'affiner, mais vous payez pour le calcul et vous prenez en charge la complexité opérationnelle. Les modèles fermés vous offrent la commodité et souvent de meilleures performances, mais vous louez l'accès à un système appartenant à quelqu'un d'autre.
Les benchmarks sont la méthode standard pour comparer les modèles, mais ils sont profondément peu fiables. Un modèle qui obtient la meilleure note à MMLU (un test de connaissance à choix multiple) pourrait avoir des difficultés avec votre tâche spécifique. La contamination des benchmarks, où les données de test s'infiltrent dans les données d'entraînement, est courante et difficile à détecter. Chatbot