Élague de modèle (Model Pruning)
Optimisez les modèles d'apprentissage automatique grâce à l'élagage de modèle. Obtenez une inférence plus rapide, une utilisation réduite de la mémoire et une efficacité énergétique pour les déploiements aux ressources limitées.
L'élagage de modèle (model pruning) est une technique d'optimisation de modèle qui rend les réseaux neuronaux plus petits et plus efficaces sur le plan du calcul. L'idée principale est d'identifier et de supprimer les paramètres (poids, neurones ou canaux) redondants ou non importants d'un modèle entraîné. Ce processus réduit la taille du modèle et peut accélérer considérablement l'inférence, ce qui le rend idéal pour le déploiement sur des appareils périphériques avec une mémoire et une puissance de traitement limitées. Le concept est basé sur l'observation que de nombreux grands modèles sont surparamétrés, ce qui signifie qu'ils contiennent des composants qui contribuent très peu à la prédiction finale. Des articles fondamentaux comme Optimal Brain Damage ont établi très tôt que tous les paramètres ne sont pas créés égaux.
Types d'élagage de modèles
Les techniques d'élagage de modèle sont généralement classées en fonction de la granularité de ce qui est supprimé du réseau :
- Élagage des poids (non structuré) : Il s'agit de la méthode la plus précise, où les poids du modèle individuels dont les valeurs sont inférieures à un certain seuil sont mis à zéro. Cela crée un modèle « sparse », qui peut être fortement compressé. Cependant, il nécessite souvent du matériel ou des bibliothèques logicielles spécialisés, comme les outils de NVIDIA pour les modèles sparse, pour obtenir des accélérations significatives pendant l'inférence.
- Élagage de neurones : Dans cette approche, des neurones entiers et toutes leurs connexions entrantes et sortantes sont supprimés s’ils sont jugés non importants. Il s’agit d’une forme d’élagage plus structurée que la suppression de pondérations individuelles.
- Élagage de filtres/canaux (structuré) : particulièrement pertinent pour les réseaux neuronaux convolutifs (CNN), cette méthode supprime des filtres ou des canaux entiers. Parce qu’elle préserve la structure dense et régulière des couches du réseau, cette approche entraîne souvent des gains de performance directs sur le matériel standard sans nécessiter de bibliothèques spécialisées. Des outils comme DeepSparse de Neural Magic sont conçus pour accélérer ces modèles clairsemés sur les processeurs.
Après l'élagage, les modèles subissent généralement un affinage, qui consiste à réentraîner le réseau plus petit pendant quelques époques pour récupérer toute précision perdue lors de la suppression des paramètres. La célèbre hypothèse du billet gagnant suggère qu'au sein d'un grand réseau, il existe un sous-réseau plus petit qui peut atteindre des performances similaires lorsqu'il est entraîné à partir de zéro. Des frameworks comme PyTorch offrent des outils intégrés pour la mise en œuvre, comme le montre le tutoriel officiel sur l'élagage de PyTorch.
Applications concrètes
L'élagage de modèle est essentiel pour déployer des modèles d'IA efficaces dans divers scénarios :
- Optimisation de la détection d'objets sur les appareils Edge : Les modèles tels que Ultralytics YOLO peuvent être élagués pour fonctionner efficacement pour les tâches de détection d'objets sur du matériel aux ressources limitées tel qu'un Raspberry Pi ou un NVIDIA Jetson. Cela permet des applications en temps réel telles que la gestion du trafic, la surveillance intelligente et l'intégration de la vision par ordinateur dans la robotique.
- Déploiement de grands modèles linguistiques (LLM) en local : L'élagage est utilisé pour réduire les modèles massifs basés sur l'architecture Transformer, ce qui leur permet de fonctionner sur des appareils tels que les smartphones pour les tâches de traitement du langage naturel (NLP). Cette approche, parfois combinée à d'autres techniques comme la quantification, permet de créer des assistants d'IA et des applications de traduction puissants sur l'appareil, tout en améliorant la confidentialité des données et en réduisant la latence. La recherche et les outils d'organisations comme Hugging Face explorent l'élagage des LLM.
Élagage vs. autres techniques d'optimisation
L'élagage de modèle est l'une des nombreuses techniques d'optimisation de modèle complémentaires :
- Quantification de modèle : Cette technique réduit la précision numérique des poids et des activations du modèle (par exemple, des nombres à virgule flottante de 32 bits aux entiers de 8 bits). Contrairement à l'élagage, qui supprime les paramètres, la quantification réduit la taille des paramètres existants. Elle est souvent appliquée après l'élagage pour une optimisation maximale, en particulier lors du ciblage de matériel avec un support spécialisé comme TensorRT.
- Distillation des connaissances: Cette méthode implique la formation d'un plus petit modèle "étudiant" pour imiter la sortie d'un plus grand modèle "enseignant" pré-entraîné. L'objectif est de transférer les connaissances acquises par l'enseignant à une architecture plus compacte. Ceci diffère de l'élagage, qui réduit un modèle déjà entraîné plutôt que d'en entraîner un nouveau.
En fin de compte, ces techniques peuvent être utilisées en combinaison pour créer des modèles très efficaces. Une fois optimisé, un modèle peut être exporté vers des formats standard comme ONNX en utilisant les options d'exportation d'Ultralytics pour un déploiement à grande échelle sur différents moteurs d'inférence. Des plateformes telles que Ultralytics HUB fournissent les outils nécessaires pour gérer l'ensemble du cycle de vie des modèles de vision par ordinateur, de la formation au déploiement optimisé.