Taille des modèles
Optimisez les modèles d'apprentissage automatique grâce à l'élagage des modèles. Accélérez l'inférence, réduisez l'utilisation de la mémoire et optimisez l'efficacité énergétique pour les déploiements à ressources limitées.
L'élagage des modèles est une technique d'optimisation des modèles qui permet de réduire la taille des réseaux neuronaux et de les rendre plus efficaces sur le plan informatique. L'idée de base est d'identifier et de supprimer les paramètres redondants ou sans importance (poids, neurones ou canaux) d'un modèle formé. Ce processus réduit la taille du modèle et peut accélérer considérablement l'inférence, ce qui en fait un outil idéal pour le déploiement sur des appareils périphériques dotés d'une mémoire et d'une puissance de traitement limitées. Le concept est basé sur l'observation que de nombreux modèles de grande taille sont sur-paramé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 égaux.
Types d'élagage des modèles
Les techniques d'élagage des modèles sont généralement classées en fonction de la granularité de ce qui est retiré du réseau :
- Élagage des poids (non structuré) : Il s'agit de la méthode la plus fine, dans laquelle les poids individuels du modèle dont les valeurs sont inférieures à un certain seuil sont mis à zéro. Cela crée un modèle "clairsemé", qui peut être fortement compressé. Cependant, elle nécessite souvent du matériel spécialisé ou des bibliothèques logicielles, comme les outils de NVIDIA pour les modèles épars, afin d'obtenir des accélérations significatives lors de l'inférence.
- Élagage des neurones : Dans cette approche, des neurones entiers et toutes leurs connexions entrantes et sortantes sont supprimés s'ils sont jugés sans importance. Il s'agit d'une forme d'élagage plus structurée que la suppression de poids individuels.
- Élagage des filtres/canaux (structuré) : Particulièrement pertinente 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 se traduit souvent par des gains de performance directs sur le matériel standard, sans nécessiter de bibliothèques spécialisées. Des outils tels que DeepSparse de Neural Magic sont conçus pour accélérer ces modèles épars sur les processeurs.
Après l'élagage, les modèles font généralement l'objet d'un réglage fin, ce qui implique une nouvelle formation du réseau plus petit pendant quelques époques afin de récupérer la précision perdue lors de la suppression des paramètres. La célèbre hypothèse du ticket de loterie 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. Les frameworks tels que PyTorch offrent des outils intégrés pour la mise en œuvre, comme le montre le didacticiel officiel PyTorch Pruning Tutorial.
Applications dans le monde réel
L'élagage des modèles 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 périphériques : Les modèles comme Ultralytics YOLO peuvent être élagués pour fonctionner efficacement pour les tâches de détection d'objets sur du matériel à ressources limitées comme 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 local de grands modèles de langage (LLM) : 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 des tâches de traitement du langage naturel (NLP). Cette approche, parfois combinée à d'autres techniques comme la quantification, permet de créer de puissants assistants d'intelligence artificielle et des applications de traduction sur les appareils, tout en améliorant la confidentialité des données et en réduisant la latence. La recherche et les outils d'organisations telles que Hugging Face explorent l'élagage des LLM.
L'élagage par rapport à d'autres techniques d'optimisation
L'élagage des modèles est l'une des nombreuses techniques complémentaires d'optimisation des modèles :
- Quantification du 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 à des nombres entiers de 8 bits). Contrairement à l'élagage, qui supprime des 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 lorsque l'on cible du matériel avec un support spécialisé comme TensorRT.
- Distillation des connaissances: Cette méthode consiste à former un modèle "étudiant" plus petit pour imiter les résultats d'un modèle "enseignant" plus grand et préformé. L'objectif est de transférer les connaissances acquises par l'enseignant dans une architecture plus compacte. Cette méthode diffère de l'élagage, qui réduit un modèle déjà formé plutôt que d'en former 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é dans des formats standards comme ONNX en utilisant les options d'exportation d' Ultralytics pour un large déploiement dans différents moteurs d'inférence. Les plateformes telles que Ultralytics HUB fournissent les outils nécessaires pour gérer l'ensemble du cycle de vie des modèles de vision artificielle, de la formation au déploiement optimisé.