L'élagage de modèle est une technique d'apprentissage profond qui consiste à supprimer des paramètres d'un réseau de neurones artificiel existant. L'objectif principal est de réduire la taille du réseau, mesurée en nombre de paramètres, et les ressources de calcul nécessaires à son exécution, tout en maintenant la précision autant que possible. Ce processus est souvent comparé à l'élagage synaptique biologique, qui se produit dans les cerveaux des mammifères au cours du développement, où les connexions neuronales inutilisées sont éliminées pour accroître l'efficacité.
L'élagage est un outil important pour déployer de grands modèles, tels que ceux utilisés dans les grands modèles de langage, sur des appareils à mémoire ou à capacité de calcul limitée, comme les smartphones ou les appareils de périphérie. Ces méthodes trouvent un intérêt dans de nombreux domaines du développement de l'intelligence artificielle chez les principaux fournisseurs de cloud computing et de matériel grand public.
Types d'élagage : structuré et non structuré
Les types d'élagage les plus courants sont structuré et non structuré. L'élagage non structuré, également appelé élagage de poids ou d'arêtes, consiste à mettre des poids individuels à zéro. La décision de supprimer un poids repose sur une métrique de son importance ; le plus souvent la magnitude du poids ou une combinaison d'informations sur le poids et le gradient. Un algorithme de base commence souvent par évaluer l'importance de chaque paramètre, les classer, puis supprimer les moins importants. Cela peut être fait localement sur une seule couche ou globalement sur l'ensemble du réseau. En revanche, l'élagage structuré supprime des composants plus grands, appelés nœuds (neurones), dans un réseau de neurones. Un processus similaire détermine les neurones significatifs ou non pertinents et les élimine entièrement.
Quand élaguer
L'élagage peut être appliqué à différentes étapes de la vie d'un modèle : avant l'entraînement, pendant l'entraînement ou après l'entraînement. S'il est effectué après l'entraînement, le modèle est généralement affiné avec des époques supplémentaires pour récupérer une partie des performances perdues. L'élagage avant l'entraînement, parfois appelé initialisation éparse, vise à trouver une structure de sous-réseau pouvant être entraînée à partir de zéro, ce qui peut parfois réduire le temps d'entraînement de manière inattendue. L'élagage pendant l'entraînement utilise des mécanismes dynamiques qui adaptent la topologie du réseau à mesure que le modèle apprend. Chaque approche présente un compromis entre la précision finale, le coût de calcul du réentraînement et la vitesse immédiatement après l'élagage.
Métriques d'importance
Identifier les paramètres ou neurones à éliminer est une question clé. Les méthodes courantes incluent la mesure de la magnitude du poids, qui suppose que les petites valeurs de poids contribuent moins à l'opération de sortie du modèle, ou une combinaison de la valeur du poids et du gradient issu d'une passe d'entraînement, afin d'approximer la fonction de perte. Les gradients combinés aux poids donnent naissance à une classe bien connue de méthodes du second ordre qui peuvent utiliser des approximations du Hessien. D'autres méthodes mesurent l'activation reçue par un neurone spécifique sur un ensemble de données, ou l'impact de la mise à zéro de la sortie d'un neurone.
Relation avec la quantification et la distillation de modèles
L'élagage est souvent utilisé en conjonction avec d'autres méthodes de compression. Alors que l'élagage réduit le nombre de paramètres non nuls, la quantification réduit le nombre de bits par paramètre - par exemple, stocker un poids sous forme d'entier 8 bits au lieu d'un flottant 32 bits. Des techniques complémentaires visent à améliorer l'efficacité de l'inférence. Une méthode connexe pour compresser un modèle est la distillation de connaissances, où un modèle plus petit et compact est entraîné à imiter les sorties du modèle original, atteignant une haute qualité sans nécessairement supprimer des paramètres. L'élagage cible généralement une architecture donnée tout en conservant la même structure d'architecture, tandis que la distillation crée effectivement une nouvelle structure de modèle (souvent plus petite).
Approche moderne : recherche et pratique de l'élagage post-entraînement
La recherche actuelle sur l'élagage est très active, non seulement pour améliorer le débit computationnel, mais aussi pour expliquer les capacités et les modèles de langage élagués. L'élagage non structuré est souvent difficile à accélérer avec les noyaux d'algèbre linéaire optimisés standard pour GPU et CPU, car les multiplications de tenseurs épars sont moins efficaces que les multiplications denses. À l'inverse, l'élagage structuré peut en théorie conduire à des accélérations plus importantes car il supprime des éléments entiers de lignes de matrice qui peuvent être éliminés des opérations de multiplication matricielle, tandis que la disposition des poids redevient dense. La pratique actuelle inclut du matériel spécialisé comme certains accélérateurs. Des travaux récents, notamment sur les méthodes issues de la communauté de recherche en apprentissage profond au Stanford AI Lab, au MIT et dans d'autres groupes académiques, publient souvent des résultats sur la mesure dans laquelle la mémoire sous-jacente et le compromis de perte de qualité peuvent être fusionnés, et si certains LLM peuvent être rendus épars avec des dégradations de qualité minimales substantielles.
Support matériel et logiciel
L'élagage n'est pas seulement une technique expérimentale - il est utilisé en masse sur le matériel grand public. Étant donné que les grands modèles consomment souvent beaucoup de mémoire et d'énergie pour fonctionner, les principaux fabricants de puces et entreprises ont activement intégré des schémas épars non structurés et spécifiques au matériel pour exploiter la parcimonie. Par exemple, NVIDIA (non listé) et AMD conçoivent des GPU et spécifiquement leurs déclinaisons qui introduisent des moyens de sauter les valeurs nulles dans les blocs de calcul carrés, accélérant ainsi les multiplications matricielles éparses. Les services cloud fournissent des accélérateurs IA dédiés, comme AWS Trainium, un ASIC personnalisé d'AWS qui aide à permettre la mise à l'échelle de l'entraînement et du déploiement. Chaque plateforme peut prendre en charge différents types de motifs de parcimonie, exigeant parfois une « parcimonie par blocs » où des zéros doivent être insérés dans des blocs structurés pour obtenir un réel bénéfice matériel. Les entreprises de petits appareils telles que Samsung Electronics, Apple et Qualcomm travaillent sur des moyens au niveau système pour avoir des environnements plus efficaces dans les moteurs d'inférence sur appareil. De plus, les piles logicielles des principaux fournisseurs, y compris Microsoft Azure et Google Cloud, intègrent l'élagage pour accélérer le service des interfaces LLM, économisant ainsi des coûts opérationnels.
Contexte historique et de recherche mondial
L'élagage des réseaux de neurones est une idée qui existe depuis des décennies, remontant même aux années 1980 lorsque des chercheurs comme Ernest LeCun ont parfois travaillé sur la stimulation du dommage cérébral optimal. La pratique s'inspire d'un parallèle avec le développement neuronal biologique - l'élagage synaptique dans les cerveaux des enfants et des adultes humains. De nos jours, les praticiens modernes de l'apprentissage profond acceptent que les modèles typiques sont fortement sur-paramétrés. Par exemple, un transformateur moderne standard pourrait facilement réduire un grand nombre des paramètres actifs (poids) dans une solution finale qui restent redondants après l'entraînement, sur la base d'heuristiques énergétiques, sans changer presque aucun comportement de sortie supérieur au niveau de l'échantillon. Ces idées relient les éliminations électriques au thème général de la conservation, et des spécialistes de la formation de groupes académiques tels que les laboratoires de recherche IA de Berkeley et l'université de Toronto continuent d'étudier les limites fondamentales de l'élagage, en combinant. L'élagage peut également exploiter simultanément la parcimonie pratique avec un réentraînement planifié de manière optimale et un apprentissage continu.
Cadre et écosystème associés
De nombreux cadres d'apprentissage automatique offrent un support pour l'élagage. PyTorch propose une fonctionnalité éparse amortie via `torch.nn.utils.prune`. TensorFlow (cadre de Google) inclut plusieurs bibliothèques d'élagage. Certaines API de flux de travail exposent directement divers outils de haut niveau axés sur l'IA. Kubernetes est souvent vu aux côtés des packages d'optimisation de modèles pour rendre le déploiement efficace lorsque l'élagage et la quantification sont appliqués à l'avance. En général, les praticiens décident d'un taux de sélection (niveau de parcimonie), définissent s'il faut induire des correctifs après, choisissent la fonction de perte et le calendrier en fonction des vitesses d'inférence en aval particulières pour valider sur des environnements agressifs limités en mémoire et en calcul.
Potentiel théorique futur
L'interaction entre l'élagage, la quantification et les techniques de calcul épars est une frontière très active. Il y a une fenêtre prometteuse pour de nouvelles puces conçues dès le départ pour gérer la parcimonie, en entraînant davantage le modèle avec la contrainte puis en le déployant. Les motifs d'accès mémoire épars peuvent être imposés aux tampons mémoire et aux caches, réduisant considérablement l'énergie par requête d'inférence.
Voir aussi
- Distillation de connaissances
- Darwinisme neuronal