Model Pruning
Découvre comment l’élagage des modèles réduit la taille et la complexité des réseaux neuronaux pour l’IA en périphérie. Explore les stratégies pour optimiser Ultralytics YOLO26 et accélérer l’inférence sur mobile.
L'élagage des modèles est une technique d'apprentissage automatique utilisée pour réduire la taille et la complexité computationnelle d'un réseau neuronal en supprimant systématiquement les paramètres superflus. Tout comme un jardinier taille les branches mortes ou trop développées pour favoriser la croissance d'un arbre, les développeurs élaguent les réseaux artificiels afin de les rendre plus rapides, plus compacts et plus économes en énergie. Ce processus est essentiel pour déployer des architectures modernes d'apprentissage profond sur des appareils aux ressources limitées, tels que les smartphones, les capteurs embarqués et le matériel informatique de périphérie.
Fonctionnement de l'élagage des modèles#
L'idée fondamentale de l'élagage est que les réseaux neuronaux profonds sont souvent « surparamétrés », c'est-à-dire qu'ils contiennent beaucoup plus de poids et biais que nécessaire pour résoudre un problème donné. Durant l'entraînement, le modèle apprend un très grand nombre de connexions, mais toutes ne contribuent pas de manière égale à la sortie finale. Les algorithmes d'élagage analysent le modèle entraîné pour repérer ces connexions redondantes ou non informatives — généralement celles dont les poids sont proches de zéro — et les supprimer.
Le cycle de vie d'un modèle élagué suit généralement les étapes suivantes :
-
Entraînement : Un modèle de grande taille est entraîné jusqu'à convergence afin de capturer des caractéristiques complexes.
-
Élagage : Les paramètres peu importants sont mis à zéro ou supprimés physiquement de la structure du réseau.
-
Ajustement fin : Le modèle fait l'objet d'une nouvelle phase d'ajustement fin afin de permettre aux paramètres restants de s'ajuster et de récupérer toute précision perdue durant la phase d'élagage.
Cette méthodologie est souvent associée à l'hypothèse du billet de loterie, selon laquelle les réseaux denses contiennent des sous-réseaux plus petits et isolés (billets gagnants) capables d'atteindre une précision comparable à celle du modèle d'origine s'ils sont entraînés isolément.
Types de stratégies d'élagage#
Les méthodes d'élagage sont généralement classées selon la structure des composants supprimés.
- Élagage non structuré : Cette approche supprime des poids individuels n'importe où dans le modèle selon un seuil (par exemple, leur magnitude). Bien qu'elle réduise efficacement le nombre de paramètres, elle produit des matrices creuses que le matériel standard peut avoir du mal à traiter efficacement. Sans logiciels spécialisés ou accélérateurs matériels, l'élagage non structuré peut ne pas apporter d'amélioration significative de la vitesse.
- Élagage structuré : Cette méthode supprime des structures géométriques entières, telles que des canaux, des filtres ou des couches au sein d'un réseau neuronal convolutif (CNN). En préservant la structure de matrice dense, le modèle élagué reste compatible avec le matériel GPU et CPU standard, ce qui améliore directement la latence d'inférence et le débit.
Applications concrètes#
L'élagage est un facteur clé de l'IA en périphérie, car il permet à des modèles sophistiqués de fonctionner dans des environnements où la connectivité au cloud est indisponible ou trop lente.
- Détection d'objets sur mobile : Les applications sur appareils mobiles, telles que la traduction linguistique en temps réel ou la réalité augmentée, utilisent des modèles élagués pour préserver l'autonomie de la batterie et réduire l'utilisation de la mémoire. Des architectures optimisées comme YOLO26 sont souvent privilégiées comme bases pour ces tâches en raison de leur efficacité intrinsèque.
- Sécurité automobile : Les voitures autonomes et les véhicules autonomes doivent prendre des décisions en une fraction de seconde. Les modèles élagués permettent aux ordinateurs embarqués de traiter des flux vidéo haute résolution pour détecter les piétons sans la latence due à la transmission des données vers un serveur.
- IoT industriel : Dans le secteur manufacturier, les systèmes d'inspection visuelle installés sur les chaînes d'assemblage utilisent des modèles légers pour détecter les défauts. L'élagage garantit que ces systèmes peuvent fonctionner sur des microcontrôleurs économiques plutôt que sur des baies de serveurs coûteuses.
Élagage et techniques d'optimisation connexes#
Bien que l'élagage des modèles soit un outil puissant, il est souvent confondu avec d'autres techniques d'optimisation des modèles ou utilisé conjointement avec celles-ci.
- Élagage et quantification : L'élagage réduit le nombre de paramètres (connexions) du modèle. En revanche, la quantification des modèles réduit la précision de ces paramètres, par exemple en convertissant des nombres à virgule flottante sur 32 bits en entiers sur 8 bits. Les deux techniques sont souvent combinées pour maximiser l'efficacité lors du déploiement des modèles.
- Élagage et distillation des connaissances : L'élagage modifie le modèle d'origine en supprimant certaines de ses parties. La distillation des connaissances consiste à entraîner un modèle « étudiant » entièrement nouveau et plus petit pour reproduire le comportement d'un modèle « enseignant » plus grand.
Exemple d’implémentation#
L'exemple Python suivant montre comment appliquer un élagage non structuré à une couche convolutionnelle à l'aide de PyTorch. Il s'agit d'une étape courante avant l'exportation des modèles vers des formats optimisés comme ONNX.
import torch
import torch.nn as nn
import torch.nn.utils.prune as prune
# Initialize a standard convolutional layer
module = nn.Conv2d(in_channels=1, out_channels=20, kernel_size=3)
# Apply unstructured pruning to remove 30% of the connections
# This sets the weights with the lowest L1-norm to zero
prune.l1_unstructured(module, name="weight", amount=0.3)
# Calculate and print the sparsity (percentage of zero elements)
sparsity = 100.0 * float(torch.sum(module.weight == 0)) / module.weight.nelement()
print(f"Layer Sparsity: {sparsity:.2f}%")Pour les utilisateurs qui souhaitent gérer l'ensemble du cycle de vie de leurs jeux de données et de leurs modèles — notamment l'entraînement, l'évaluation et le déploiement — la plateforme Ultralytics offre une interface simplifiée. Elle facilite la création de modèles hautement optimisés comme YOLO26 et leur exportation vers des formats compatibles avec le matériel, tels que TensorRT ou CoreML.









