L'élagage, dans le contexte de l'apprentissage profond, est la pratique consistant à 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 par le nombre de paramètres, et par conséquent les ressources de calcul nécessaires à son exécution, tout en maintenant la précision autant que possible. Ce processus établit un parallèle conceptuel avec l'élagage synaptique biologique, qui se produit dans les cerveaux des mammifères au cours du développement pour éliminer les connexions neuronales plus faibles et améliorer l'efficacité.
Les techniques d'élagage sont largement classées en deux types : structuré et non structuré. L'élagage structuré supprime des unités structurelles entières, telles que les neurones (nœuds) ou les couches, ce qui donne un réseau physiquement plus petit et plus facile à accélérer sur du matériel standard. L'élagage non structuré, en revanche, met à zéro des poids individuels (arêtes) sans modifier l'architecture du réseau, ce qui donne un réseau creux nécessitant des logiciels ou du matériel spécialisés pour exploiter sa parcimonie afin d'obtenir des gains de vitesse. Le choix entre ces approches implique des compromis entre la rétention de précision, la compatibilité matérielle et la complexité de mise en œuvre.
Élagage de nœuds (neurones)
L'élagage de nœuds, une forme d'élagage structuré, supprime des neurones entiers d'un réseau de neurones. Un algorithme de base pour ce processus comporte plusieurs étapes. Premièrement, l'importance de chaque neurone est évaluée à l'aide d'une métrique choisie, telle que l'amplitude de ses poids sortants ou ses schémas d'activation sur un ensemble de données de validation. Deuxièmement, les neurones sont classés selon leur importance, en supposant qu'une mesure clairement définie existe. Troisièmement, le neurone le moins important est supprimé. Enfin, une condition de terminaison, déterminée par l'utilisateur, est vérifiée pour décider de continuer ou non l'élagage. Cette condition peut être un seuil de précision cible, une baisse de précision maximale autorisée ou une taille finale souhaitée du réseau. L'élagage de nœuds réduit directement le nombre de paramètres et le coût de calcul des multiplications matricielles, ce qui en fait un choix pratique pour le déploiement sur des appareils aux ressources limitées.
Élagage d'arêtes (poids)
La plupart des recherches et des travaux pratiques sur l'élagage des réseaux de neurones se concentrent sur l'élagage non structuré, qui supprime des poids individuels en définissant leurs valeurs à zéro. Cette approche peut être effectuée globalement, en comparant les poids de toutes les couches du réseau, ou localement, en comparant les poids de chaque couche séparément. L'élagage global a tendance à être plus agressif pour supprimer les poids des couches qui ont de nombreux paramètres redondants, tandis que l'élagage local garantit une distribution de parcimonie plus uniforme entre les couches.
Diverses métriques sont utilisées pour mesurer l'importance de chaque poids. L'amplitude du poids est une métrique courante et simple, où les poids avec de petites valeurs absolues sont considérés comme moins importants. Des métriques plus sophistiquées combinent l'amplitude du poids avec des informations de gradient, comme le produit du poids et du gradient, qui se rapproche de la sensibilité de la fonction de perte à ce poids. Les premiers travaux dans le domaine, tels que les méthodes Optimal Brain Damage et Optimal Brain Surgeon, suggéraient non seulement de supprimer les poids, mais aussi d'ajuster les valeurs des poids restants pour compenser la suppression, maintenant ainsi une précision plus élevée.
Quand élaguer le réseau de neurones ?
L'élagage peut être appliqué à trois étapes différentes du cycle de vie du réseau de neurones : avant l'entraînement, pendant l'entraînement ou après l'entraînement. Chaque approche implique des compromis différents entre la précision et le coût de calcul.
- Avant l'entraînement : Élaguer l'architecture du réseau avant tout entraînement, souvent sur la base de critères aléatoires ou heuristiques, peut réduire la taille initiale du modèle. Cependant, cette approche peut conduire à une précision sous-optimale car le réseau n'a pas encore appris quels paramètres sont importants.
- Pendant l'entraînement : L'élagage peut être intégré au processus d'entraînement, supprimant progressivement les paramètres à mesure que le réseau apprend. Cette méthode, parfois appelée entraînement creux, peut maintenir la précision tout en réduisant la taille finale du modèle, mais elle nécessite une planification minutieuse et peut augmenter la complexité de l'entraînement.
- Après l'entraînement : L'approche la plus courante consiste à entraîner complètement un réseau dense, puis à l'élaguer, et ensuite à affiner le réseau élagué pour récupérer toute précision perdue. Lorsque l'élagage est effectué pendant ou après l'entraînement, des époques d'affinage supplémentaires sont généralement nécessaires. L'affinage permet aux poids restants de s'adapter à la suppression des paramètres, rétablissant souvent une précision proche de celle du modèle dense d'origine.
Impact sur la compression et l'efficacité du modèle
La principale motivation de l'élagage est la compression et l'efficacité du modèle. La réduction du nombre de paramètres entraîne des empreintes mémoire plus petites, ce qui est crucial pour déployer des modèles sur des appareils de périphérie tels que les smartphones et les systèmes embarqués. Cela réduit également le nombre d'opérations en virgule flottante (FLOPs) nécessaires à l'inférence, conduisant à une exécution plus rapide et à une consommation d'énergie plus faible. Dans le contexte des grands modèles de langage, qui peuvent avoir des milliards de paramètres, l'élagage est un domaine de recherche actif pour rendre ces modèles plus pratiques pour des applications réelles.
Relation avec d'autres techniques
L'élagage est souvent combiné avec d'autres techniques de compression de modèles, telles que la quantification et la distillation des connaissances. La quantification réduit la précision des poids (par exemple, de la virgule flottante 32 bits aux entiers 8 bits), tandis que la distillation des connaissances entraîne un modèle étudiant plus petit à imiter les sorties d'un modèle enseignant plus grand. L'élagage peut être appliqué avant ou après ces techniques pour obtenir une compression encore plus grande. Par exemple, un modèle élagué peut être quantifié pour réduire davantage sa taille, ou un modèle enseignant élagué peut être utilisé pour distiller des connaissances dans un étudiant plus petit.
Défis et considérations
Malgré ses avantages, l'élagage présente plusieurs défis. Un problème majeur est la baisse de précision qui peut survenir, en particulier avec des taux d'élagage agressifs. L'affinage est souvent nécessaire mais peut ne pas récupérer entièrement la précision d'origine. Un autre défi est le support matériel pour les modèles creux. Bien que l'élagage non structuré puisse atteindre une parcimonie élevée, le matériel standard et les frameworks d'apprentissage profond sont souvent optimisés pour les calculs denses, limitant l'accélération. L'élagage structuré, en revanche, est plus compatible avec le matériel mais peut entraîner des taux de compression plus faibles pour un objectif de précision donné. De plus, le choix de la métrique d'importance et du calendrier d'élagage peut affecter considérablement la qualité finale du modèle, nécessitant un réglage minutieux.
Applications et orientations futures
L'élagage est largement utilisé pour déployer des réseaux de neurones dans des environnements de production, en particulier dans les applications mobiles et embarquées. Des entreprises comme Apple, Samsung Electronics et Qualcomm exploitent l'élagage pour adapter les modèles aux budgets de mémoire et d'énergie limités de leurs appareils. Dans le domaine de l'intelligence artificielle, l'élagage est également étudié comme un moyen de comprendre le comportement des réseaux de neurones, car la suppression de paramètres peut révéler quelles parties du réseau sont essentielles pour des tâches spécifiques. Les orientations futures de la recherche incluent le développement de métriques d'importance plus fondées, de calendriers d'élagage adaptatifs et de co-conception matériel-logiciel pour mieux exploiter la parcimonie. Alors que les modèles continuent de croître en taille, l'élagage restera un outil essentiel pour les rendre efficaces et accessibles.
Voir aussi
- abandon
- Distillation des connaissances
- model-compression
- sparse-neural-network