L'élagage des modèles est une technique d'apprentissage machine (ML) utilisée pour optimiser les modèles formés en réduisant leur taille et leur complexité. Il s'agit d'identifier et de supprimer les paramètres moins importants, tels que les poids du modèle ou les connexions au sein d'un réseau neuronal (NN), qui contribuent de façon minime aux performances globales du modèle. L'objectif principal est de créer des modèles plus petits et plus rapides nécessitant moins de puissance de calcul et de mémoire, souvent sans baisse significative de la précision. Ce processus est une application spécifique du concept plus large d'élagage appliqué directement aux modèles ML, ce qui les rend plus efficaces pour le déploiement.
Pourquoi utiliser l'élagage par modélisation ?
Le principal moteur de l'élagage des modèles est l'efficacité. Les modèles modernes d'apprentissage profond (DL), en particulier dans des domaines comme la vision par ordinateur (VA), peuvent être extrêmement volumineux et intensifs en termes de calcul. Cela pose des défis pour le déploiement des modèles, en particulier sur les appareils aux ressources limitées tels que les smartphones, les systèmes embarqués ou dans les scénarios d'edge computing. L'élagage des modèles permet de résoudre ces problèmes en :
- Réduction de la taille des modèles : Les modèles plus petits nécessitent moins d'espace de stockage, ce qui est crucial pour les appareils dont la capacité de mémoire est limitée, comme ceux utilisés par Edge AI.
- Augmenter la vitesse d'inférence : Moins de paramètres signifie moins de calculs, ce qui entraîne une diminution de la latence d'inférence et permet des capacités d'inférence en temps réel, essentielles pour des applications telles que les véhicules autonomes. L'applicationUltralytics HUB App bénéficie de telles optimisations pour un déploiement mobile.
- Réduction de la consommation d'énergie : La réduction de la charge de calcul se traduit par une moindre consommation d'énergie, ce qui contribue à des pratiques d'IA plus durables et à une plus longue durée de vie de la batterie sur les appareils mobiles.
- Améliorer la généralisation : Parfois, l'élagage peut aider à réduire le surajustement en supprimant les paramètres redondants, ce qui peut améliorer les performances du modèle sur des données inédites.
Types d'élagage des modèles
Les techniques d'élagage des modèles varient mais se classent généralement dans des catégories basées sur la granularité de ce qui est supprimé :
- Élagage des poids (non structuré) : Les poids individuels inférieurs à un certain seuil d'importance (souvent basé sur la magnitude) sont supprimés (mis à zéro). Cela peut conduire à des modèles épars mais peut nécessiter un matériel ou un logiciel spécialisé comme les outils deNVIDIA pour les modèles épars afin d'obtenir une accélération optimale.
- Élagage des neurones : Des neurones entiers (et leurs connexions) jugés sans importance sont retirés du réseau.
- Élagage des filtres/canaux (structuré) : Des filtres ou des canaux entiers sont supprimés dans les réseaux neuronaux convolutifs (CNN). Cette approche d'élagage structurée conduit souvent à des accélérations plus directes sur le matériel standard sans nécessiter de bibliothèques spécialisées. Des outils comme DeepSparse deNeural Magic tirent parti de la rareté pour accélérer le CPU , souvent en combinaison avec l'élagageYOLOv5 tutorielYOLOv5 avec Neural Magic ).
L'élagage peut se produire après que le modèle a été entièrement formé ou être intégré au processus de formation. Après l'élagage, les modèles subissent généralement un réglage fin (formation supplémentaire sur l'architecture plus petite) pour récupérer les performances perdues lors de la suppression des paramètres. Des outils tels que PyTorch fournissent des utilitaires pour mettre en œuvre diverses méthodes d'élagage, comme le montre le didacticielPyTorch Pruning Tutorial.
Applications dans le monde réel
L'élagage des modèles est utile dans de nombreux domaines de l'intelligence artificielle :
- Optimiser la détection d'objets sur les appareils périphériques : Modèles comme Ultralytics YOLO utilisés pour la détection d'objets peuvent être élagués pour fonctionner efficacement sur du matériel aux ressources limitées tel qu'un Raspberry Pi, Edge TPU deGoogle ou NVIDIA Jetson. Cela permet des applications telles que la surveillance sur appareil, la surveillance du trafic(optimisation de la gestion du trafic blog), ou la navigation robotique(intégration de la CV dans le blog robotique).
- Déployer localement de grands modèles de langage (LLM) : Les techniques d'élagage peuvent réduire considérablement la taille des grands modèles comme ceux basés sur l'architecture Transformer, ce qui leur permet de s'exécuter directement sur les appareils des utilisateurs (par exemple, les smartphones) pour des tâches telles que le traitement du langage naturel (NLP) sans connectivité constante avec le cloud. Cela améliore la confidentialité des données et réduit la latence pour des applications telles que la traduction sur appareil ou les assistants intelligents.
L'élagage par rapport à d'autres techniques d'optimisation
L'élagage des modèles est l'une des nombreuses techniques utilisées pour l'optimisation des modèles. Elle est distincte de, mais souvent complémentaire de :
- Quantification du modèle: Réduit la précision numérique des poids et des activations du modèle (par exemple, de 32 bits flottants à 8 bits entiers), ce qui diminue la taille du modèle et accélère le calcul, en particulier sur le matériel doté d'un support spécialisé tel que TensorRT.
- Distillation des connaissances: Entraîne un modèle "étudiant" plus petit à imiter le comportement d'un modèle "enseignant" plus grand et pré-entraîné. L'objectif est de transférer les connaissances du grand modèle vers un modèle plus compact.
Ces techniques peuvent être combinées ; par exemple, un modèle peut être élagué d'abord, puis quantifié pour une efficacité maximale. Les modèles optimisés sont souvent exportés dans des formats standard tels que ONNXUltralytics options d'exportation d'Ultralytics ) pour une large compatibilité de déploiement. Les plateformes comme Ultralytics HUB fournissent des environnements pour gérer les modèles, les ensembles de données(comme COCO) et rationaliser le chemin vers un déploiement optimisé.