L'élagage des modèles est une technique utilisée en apprentissage automatique pour optimiser les modèles formés en réduisant leur taille et leur complexité. Pour ce faire, on identifie et on supprime les paramètres moins importants, tels que les poids ou les connexions au sein d'un réseau neuronal (RN), qui contribuent de façon minime aux performances globales du modèle. L'objectif est de créer des modèles plus petits et plus rapides qui nécessitent moins de puissance de calcul et de mémoire, ce qui les rend plus efficaces sans baisse significative de la précision. Ce processus est un type spécifique d'élagage appliqué directement aux modèles d'apprentissage automatique.
Pourquoi utiliser l'élagage par modélisation ?
La motivation première de l'élagage des modèles est l'efficacité. Les modèles modernes d'apprentissage profond, bien que puissants, peuvent être très volumineux et exigeants en termes de calcul. Cela présente des défis pour le déploiement des modèles, en particulier sur les appareils dotés de ressources limitées comme les smartphones ou les systèmes d'edge computing. L'élagage de modèle aborde 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 facilite leur déploiement sur des appareils tels que ceux qui exécutent l'applicationUltralytics HUB.
- Augmentation de la vitesse d'inférence : avec moins de paramètres, les modèles élagués effectuent les calculs plus rapidement, ce qui réduit la latence de l'inférence. Ceci est crucial pour les applications d'inférence en temps réel.
- Réduction de la consommation d'énergie : Moins de calculs signifie moins de consommation d'énergie, ce qui est important pour les appareils alimentés par batterie et pour promouvoir des pratiques d'IA durables.
- Minimiser le surajustement : La suppression des paramètres redondants peut parfois aider les modèles à mieux se généraliser à de nouvelles données, réduisant ainsi potentiellement l'ajustement excessif.
Types d'élagage des modèles
Les techniques d'élagage des modèles varient mais se classent généralement en catégories en fonction de ce qui est enlevé :
- Élagage des poids (non structuré) : Les poids individuels ou les connexions au sein du réseau qui ont une faible magnitude ou importance sont mis à zéro. Cela permet souvent d'obtenir des modèles clairsemés mais peut nécessiter du matériel ou des logiciels spécialisés pour une accélération optimale.
- Élagage des neurones/filtres (structuré) : Des neurones entiers, des filtres (dans les réseaux neuronaux convolutifs (CNN)) ou d'autres composants structurels sont supprimés. Cela permet généralement d'obtenir des modèles plus réguliers, plus petits et plus denses qui sont plus faciles à accélérer sur du matériel standard à l'aide d'outils tels que NVIDIA TensorRT.
L'élagage peut être appliqué après la formation ou intégré au processus de formation. Souvent, un modèle élagué nécessite une mise au point (formation supplémentaire) pour retrouver la précision perdue. Tu peux explorer diverses stratégies d'élagage dans des ressources telles que le didacticielPyTorch sur l'élagage.
Applications dans le monde réel
L'élagage des modèles est utile dans de nombreux domaines :
- Vision informatique mobile: Ultralytics YOLO Les modèles utilisés pour la détection d'objets sur les appareils mobiles peuvent être élagués pour fonctionner efficacement, ce qui permet une analyse en temps réel directement sur l'appareil, sans avoir besoin d'une connectivité constante avec le cloud. Cela est vital pour les applications déployées sur des plateformes comme Raspberry Pi ou utilisant des accélérateurs comme Edge TPU deGoogle.
- Systèmes autonomes : Dans les voitures autonomes ou les drones, les modèles doivent traiter les données des capteurs instantanément. L'élagage des modèles de perception complexes permet d'obtenir la faible latence requise pour une navigation et une prise de décision sûres, souvent déployées sur du matériel comme le NVIDIA Jetson.
L'élagage des modèles par rapport à d'autres techniques d'optimisation
L'élagage des modèles est l'une des nombreuses techniques d'optimisation des modèles. Il est important de la distinguer de :
- Quantification du modèle: Réduit la précision des poids et des activations du modèle (par exemple, de 32 bits flottants à 8 bits entiers). Cela permet également de réduire la taille et d'accélérer les calculs, mais fonctionne en changeant le type de données, et non en supprimant des paramètres. Voir TensorFlow Lite Optimization pour des exemples.
- Distillation des connaissances: Implique la formation d'un modèle "étudiant" plus petit pour imiter la sortie d'un modèle "enseignant" plus grand et préformé. L'objectif est de transférer les connaissances, en créant un modèle compact sans modifier directement l'enseignant. Lis l'article original sur la distillation des connaissances pour plus de détails.
Ces techniques ne s'excluent pas mutuellement et sont souvent combinées avec l'élagage pour une optimisation maximale. Par exemple, un modèle peut être élagué d'abord, puis quantifié avant le déploiement final. Tu trouveras des conseils sur l'optimisation dans la documentationUltralytics .