À retenir
- Les modèles plus petits peuvent être utiles lorsque la tâche, les données et les contraintes de déploiement ne justifient pas un modèle plus grand.
- Les gains d’efficacité viennent généralement de compromis, pas de magie. Vous devez tout de même tester la qualité sur votre propre workload.
- La leçon utile consiste à adapter le modèle au travail plutôt qu’à supposer que plus grand est toujours mieux.
Regardez la vidéo !
Nous aimerions tous construire à partir de zéro un modèle comme Llama, mais à quel point est-ce réaliste ? Les ressources de calcul, l’architecture et les données d’entraînement auxquelles ces entreprises ont accès sont si vastes que la plupart d’entre nous ne pourraient tout simplement pas reproduire leur travail. Mais est-il vraiment nécessaire d’entraîner d’aussi grands modèles à partir de zéro ? Et si les grandes entreprises créaient seulement un immense modèle que nous, les gens ordinaires, pouvions ensuite utiliser pour entraîner de plus petits modèles adaptés à nos tâches ou à nos données précises ? C’est exactement l’objectif de Llama avec la sortie du modèle 405B et l’utilisation de la distillation pour entraîner les plus petits. De même, Nvidia a récemment publié deux articles qui explorent cette idée incroyable avec son approche Minitron.
Bonjour à tous ! Je suis Louis-François, directeur de la technologie et cofondateur de Towards AI. Dans cet article, nous verrons les bases de la distillation des connaissances et d’autres techniques, comme l’élagage et la quantification, qui peuvent vous aider à construire des modèles avec des ressources limitées.
Je sais que je viens de mentionner une tonne de termes. Décomposons-les donc étape par étape. Les grands modèles de langage possèdent souvent des paramètres clairsemés, ce qui signifie que plusieurs d’entre eux peuvent avoir très peu de valeur. Certains sont même nuls et n’ont presque aucun impact sur les performances du modèle. Le processus qui consiste à repérer et à retirer ces poids inutiles s’appelle l’élagage, ou pruning. En réduisant le nombre de paramètres, nous diminuons aussi la taille des activations, soit le nombre de composants qui déterminent l’importance. Nous pouvons également accélérer le modèle en réduisant le nombre de bits, un processus appelé quantification. Comme nous l’avons vu dans d’autres vidéos et dans le cours, ces deux étapes sont nécessaires pour optimiser les modèles. Mais surtout, la distillation des connaissances vous permet d’enseigner aux plus petits modèles, les modèles étudiants, à partir des connaissances des plus grands, les modèles enseignants.
Décomposons chaque étape et la façon dont elle est appliquée.
Pour l’élagage, trois métriques principales permettent de déterminer quelles parties du modèle peuvent être retirées :
- L’approche du gradient de Taylor évalue l’importance des poids du modèle en analysant leur contribution à la fonction de perte. Le développement de Taylor permet d’estimer la sensibilité des poids et de retirer ceux qui ont un impact minimal sur les performances.
- Nous avons ensuite la similarité cosinus. Cette métrique mesure à quel point les neurones ou les couches du modèle se ressemblent. Si deux composants sont très similaires, l’un d’eux peut être retiré sans nuire aux performances.
- Enfin, nous avons la perplexité. Elle évalue la capacité du modèle à prédire des échantillons. Une perplexité plus faible correspond à de meilleures prédictions. Pendant l’élagage, les chercheurs vérifient donc comment le retrait de certaines parties modifie la perplexité du modèle sur un dataset de calibration.
Ces métriques aident à déterminer quelles parties d’un LLM peuvent être retirées pour réduire sa taille et ses besoins en calcul tout en gardant les meilleures performances possibles.
Une excellente façon d’analyser cette question consiste à évaluer l’attention en se concentrant sur trois méthodes principales : la largeur, la profondeur et l’importance itérative.
Mais d’abord, revenons rapidement au fonctionnement d’un modèle transformeur. Le processus commence lorsque l’input est traité par une couche d’embedding, qui transforme le texte en tokens. Ces tokens passent ensuite dans la couche d’attention multi-têtes, où plusieurs têtes se concentrent sur différentes relations dans l’input, par exemple pour déterminer quels mots sont liés ou demandent de l’attention.

L’architecture du transformeur.
Une couche de normalisation assure ensuite l’équilibre avant le passage des tokens dans le perceptron multicouche, qui convertit un input linéaire en représentations non linéaires et aide le modèle à développer une compréhension plus profonde. Après une autre étape de normalisation, ce processus se répète dans plusieurs couches. L’output final passe ensuite par une couche softmax, qui produit les probabilités de la tâche donnée.
Revenons maintenant à l’élagage et à ses trois principales méthodes :
- Ici, l’élagage en largeur se concentre sur l’évaluation des couches d’attention multi-têtes, de perceptron multicouche et LayerNorm. Un petit dataset aide à évaluer l’importance de chaque tête, neurone et couche. La moyenne, la variance et les normes L2 sont calculées pour guider l’élagage.
- Nous avons ensuite l’élagage en profondeur. Cette méthode mesure l’importance de couches entières avec des métriques comme la perplexité et l’importance des blocs. La perplexité aide à évaluer la sensibilité de chaque couche en vérifiant comment son retrait affecte l’output. L’importance des blocs utilise la similarité cosinus pour mesurer le rôle de la couche entre l’input et l’output.
- Enfin, nous avons l’importance itérative. L’élagage et le nouveau calcul de l’importance sont alors effectués étape par étape. À chaque itération, la taille diminue progressivement tandis que l’importance est recalculée afin d’assurer un élagage cohérent sur plusieurs étapes.
Une fois les parties importantes repérées, l’élagage commence. Pour élaguer les neurones et les têtes, nous nous concentrons sur les couches d’attention multi-têtes et de perceptron multicouche, tandis que l’élagage des canaux d’embedding touche les trois composants. Lorsqu’une tête d’attention est retirée, son information résiduelle est réintégrée aux têtes restantes. L’information importante n’est donc pas perdue et les performances restent intactes.
Maintenant que l’élagage est terminé, comment trouvons-nous la meilleure architecture pour le modèle plus petit ? Les chercheurs commencent par réduire le nombre d’architectures possibles, soit l’espace de recherche, à l’aide d’un budget de paramètres qui garde une taille de modèle raisonnable. En se concentrant sur des configurations courantes pour les neurones, les têtes d’attention et les embeddings, ils obtiennent moins de 20 architectures possibles. Un entraînement rapide sur un dataset plus petit, d’environ 1,8 milliard de tokens, aide à repérer les candidats les plus performants. Cette étape de réentraînement classe les modèles avec plus de précision et permet d’entraîner davantage le meilleur.

Image tirée de l’article sur Minitron.
Mais comment fonctionne le réentraînement ? L’élagage d’un modèle entraîne inévitablement une perte d’information et une baisse de l’exactitude. Le réentraînement aide à la récupérer. Les récentes recherches de Nvidia explorent deux stratégies : (1) un entraînement conventionnel avec des étiquettes de référence et (2) la distillation des connaissances, où le modèle élagué, soit l’étudiant, apprend du modèle non élagué, soit l’enseignant.
La distillation des connaissances permet à un modèle plus petit, l’étudiant, d’apprendre d’un modèle plus grand, l’enseignant, en imitant ses outputs et ses comportements internes. L’étudiant compare sa distribution de probabilités à celle de l’enseignant avec une perte de distillation des connaissances fondée sur les logits. Il reproduit aussi les états cachés intermédiaires du modèle enseignant dans différentes couches. Comme les modèles étudiant et enseignant n’ont pas la même taille, les états cachés de l’étudiant sont transformés pour correspondre à ceux de l’enseignant avec une transformation linéaire. Un paramètre réglable, alpha, contrôle le poids attribué à cette perte. La perte totale comprend trois composants : la prédiction de l’étudiant, la perte fondée sur les logits et la perte fondée sur les états intermédiaires. Cette approche aide le plus petit modèle à conserver une grande partie des connaissances du plus grand, ce qui le rend plus efficace sans sacrifier l’exactitude.

Image tirée de l’article sur Minitron.
Dans l’article, les chercheurs ont également distillé quelques points importants à retenir lorsque vous appliquez vous-même ce processus.

Image tirée de l’article sur Minitron.
- Entraînez d’abord le plus grand modèle, puis réduisez-le par élagage et utilisez la distillation des connaissances pour préserver ses performances.
- Utilisez des formules précises, L2 et la moyenne, pour déterminer quelles parties du modèle élaguer en largeur, puis la perplexité ou l’importance des blocs pour l’élagage en profondeur.
- Calculez l’importance une seule fois plutôt que plusieurs afin de gagner du temps sans sacrifier l’exactitude.
- Préférez l’élagage en largeur à l’élagage en profondeur pour les modèles de moins de 15B paramètres.
- Après l’élagage, réentraînez le modèle avec la distillation des connaissances et la KLD pour conserver ses performances.
- Utilisez la distillation des logits, des états et des embeddings lorsque vous réduisez beaucoup le nombre de couches.
- Pour de plus petites réductions en profondeur, utilisez seulement la distillation des logits.
- Élaguez le modèle aussi près que possible de votre taille cible pour faciliter son réentraînement.
- Effectuez une petite quantité de réentraînement pour stabiliser les performances du modèle élagué.
- Si le modèle a été entraîné en plusieurs phases, élaguez-le après la dernière pour obtenir les meilleurs résultats.
Je vais maintenant vous montrer comment les chercheurs ont appliqué la stratégie de compression Minitron ci-dessus à deux grands modèles, soit Llama 3.1 (8B paramètres) et Mistral NeMo (12B paramètres), et ont réussi à les réduire en versions plus efficaces de 4B et 8B paramètres, respectivement. L’ensemble du processus est fascinant. Ils n’ont pas seulement rendu ces modèles plus petits et plus rapides. Dans certains cas, ils les ont même rendus plus exacts ! Décomposons donc le tout étape par étape.
Première étape : la correction de l’enseignant

Image tirée de l’article sur Minitron.
L’un des défis de ces expériences venait du fait que les chercheurs n’avaient pas accès aux données d’entraînement originales de ces modèles. Ils ont donc dû effectuer ce qu’on appelle une correction de l’enseignant. Ils ont pris le grand modèle non compressé, soit l’enseignant, et l’ont ajusté sur leur propre dataset. Cette étape est essentielle, parce qu’elle assure que l’enseignant est à jour avec les données qu’il utilise lorsque vient le moment de distiller le modèle. Cette méthode leur a permis de réduire la perte de validation de plus de 6 % ! Il s’agit d’une grande amélioration. Mieux encore, ils ont pu effectuer cette correction de l’enseignant pendant la distillation du modèle sans nuire au processus d’élagage.
Étape suivante : l’élagage et la distillation

Image tirée de l’article sur Minitron.
Après avoir ajusté le modèle enseignant, les chercheurs sont passés à l’élagage. Comme nous l’avons vu, ils ont commencé à retirer les parties inutiles du modèle pour le compresser. Ils ont ensuite utilisé la distillation pour s’assurer que le plus petit modèle récupérait toute exactitude perdue pendant l’élagage. Ils se sont servis du dataset Nemotron-4 CT et ont découvert que seulement 380 milliards de tokens leur suffisaient pour atteindre une exactitude à l’état de l’art. C’est très impressionnant comparativement aux milliers de milliards de tokens généralement nécessaires aux grands modèles !
Pour l’élagage en largeur, qui se concentre sur les têtes d’attention et retire d’autres parties comme les dimensions du MLP et les canaux d’embedding, les chercheurs ont constaté que cette méthode produisait une meilleure exactitude.
De Mistral NeMo 12B à MN-Minitron-8B : une victoire pour la compression
Passons aux exemples précis. Lorsque les chercheurs ont compressé Mistral NeMo 12B pour produire un modèle de 8B paramètres, ils ont obtenu des résultats vraiment intéressants. Le modèle compressé et plus petit a même surpassé le modèle enseignant original sur deux benchmarks :
- GSM8k, où le score est passé de 55,7 % à 58,5 %.
- et HumanEval, où il est passé de 23,8 % à 36,2 %.
Ils ont obtenu ces résultats en utilisant seulement la perte de distillation pendant le réentraînement. Même s’ils élaguaient et réduisaient le modèle, le processus de distillation l’a donc aidé à récupérer ses performances originales et, dans certains cas, à les dépasser.
De Llama 3.1 8B à Llama-3.1-Minitron 4B : équilibrer l’exactitude et la vitesse
Pour Llama 3.1 (8B), les chercheurs ont réduit le modèle à 4B paramètres, donc à la moitié de sa taille. C’est ici que les résultats deviennent intéressants. Ils ont essayé l’élagage en largeur et l’élagage en profondeur pour déterminer la meilleure méthode. L’élagage en largeur a remporté le test de l’exactitude avec un score de 60,5 % sur le benchmark MMLU, comparativement à 58,7 % pour l’élagage en profondeur et à 65 % pour le modèle de base.
Mais les tests de la capacité de raisonnement ont révélé une immense différence :
- L’exactitude sur GSM8K atteignait 41,24 % avec l’élagage en largeur, mais chutait à 16,8 % avec l’élagage en profondeur, comparativement à 50 % pour le modèle de base.
L’élagage en profondeur n’était toutefois pas entièrement mauvais. Il accélérait réellement le modèle. L’élagage en profondeur a produit une accélération de 2,7 fois par rapport au modèle original, tandis que l’élagage en largeur a offert une accélération de 1,7 fois. Il s’agit d’une augmentation impressionnante de la vitesse en échange d’une petite perte d’exactitude. Les chercheurs ont aussi découvert un élément intéressant : pendant l’élagage en profondeur, le retrait de couches contiguës, donc voisines, s’avérait beaucoup plus efficace que le retrait aléatoire de couches selon leur importance.
Qu’est-ce que tout cela signifie ?
En résumé, les chercheurs ont démontré qu’il est possible de prendre ces immenses modèles, de les réduire et de conserver des performances à l’état de l’art, parfois même supérieures à celles de l’original, en appliquant soigneusement des stratégies intelligentes comme l’élagage et la distillation des connaissances. Il s’agit d’un excellent exemple de la façon de repousser les limites de l’IA, particulièrement avec des ressources limitées. Et c’est une excellente nouvelle pour nous tous !
Nous abordons ces approches, l’entraînement, le fine-tuning et la construction de systèmes RAG avec des LLMs beaucoup plus en profondeur dans notre cours sur le RAG, avec des exemples pratiques.
Merci d’avoir lu l’article jusqu’au bout. J’espère qu’il vous a été utile !
Ressources
LLM Pruning and Distillation in Practice: The Minitron Approach, https://arxiv.org/pdf/2408.11796
Compact Language Models via Pruning and Knowledge Distillation, https://arxiv.org/pdf/2407.14679v1
FAQ
Quelle est la principale leçon de Minitron ?
Les modèles plus petits peuvent représenter d’excellents choix d’ingénierie lorsque les coûts, la vitesse et l’adéquation à la tâche comptent.
Quand les builders devraient-ils envisager un modèle plus petit ?
Envisagez-en un lorsque la tâche est étroite, que la latence ou les coûts comptent ou que le modèle plus grand n’apporte pas assez de valeur supplémentaire.
Quel est le piège des modèles efficaces ?
Le piège consiste à croire la promesse d’efficacité sans vérifier si la qualité tient pour le véritable cas d’utilisation.
Comment l’élagage réduit-il la taille d’un modèle de langage ?
Il retire certaines couches, certains neurones ou certains canaux qui contribuent moins aux performances sur les données de calibration.
Pourquoi mesurer la perplexité pendant l’élagage ?
La perplexité fournit un signal rapide du changement de la capacité prédictive lorsque des parties du modèle sont retirées.
Qu’est-ce que la quantification dans la compression des modèles ?
La quantification stocke les poids avec moins de bits, ce qui réduit l’utilisation de la mémoire et accélère souvent l’inférence tout en essayant de préserver une exactitude utile.

