Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Élague de modèle (Model Pruning)

Découvrez comment l'élagage des modèles réduit la taille et la complexité des réseaux neuronaux pour l'IA en périphérie. Explorez les stratégies permettant d'optimiser Ultralytics pour une inférence plus rapide sur mobile.

L'élagage de modèle 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 inutiles. 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 petits 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 pointe.

Comment fonctionne la taille en modèle réduit

L'idée centrale derrière l'élagage est que les réseaux neuronaux profonds sont souvent « surparamétrés », ce qui signifie qu'ils contiennent beaucoup plus de weights and biases que ce qui est strictement nécessaire pour résoudre un problème spécifique. Au cours du processus d'apprentissage, le modèle apprend un grand nombre de connexions, mais toutes ne contribuent pas de manière égale au résultat final. Les algorithmes d'élagage analysent le modèle formé pour identifier 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 :

  1. Formation : un modèle de grande taille est formé à la convergence afin de capturer des caractéristiques complexes.
  2. Élagage : les paramètres de faible importance sont mis à zéro ou physiquement retirés de la structure du réseau .
  3. Réglage fin : le modèle subit un deuxième cycle de réglage fin afin de permettre aux paramètres restants de s'ajuster et de récupérer toute précision perdue pendant la phase d'élagage .

Cette méthodologie est souvent associée à l' hypothèse du billet de loterie, qui suggère que les réseaux denses contiennent des sous-réseaux plus petits et isolés (billets gagnants) qui peuvent atteindre une précision comparable à celle du modèle original s'ils sont entraînés séparément.

Types de stratégies d'élagage

Les méthodes d'élagage sont généralement classées en fonction de la structure des éléments à retirer.

  • Élagage non structuré : cette approche supprime les poids individuels n'importe où dans le modèle en fonction d'un seuil (par exemple, l'amplitude). Bien que cela réduise efficacement le nombre de paramètres, cela aboutit à des matrices clairsemées qui peuvent être difficiles à traiter efficacement par le matériel standard . Sans logiciel spécialisé ou accélérateurs matériels, l'élagage non structuré peut ne pas apporter d'améliorations significatives en termes de 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 matricielle dense, le modèle élagué reste compatible avec les GPU et CPU , ce qui se traduit par des améliorations directes de la latence d'inférence et du débit.

Applications concrètes

La taille est un catalyseur essentiel pour l'IA en périphérie, permettant à des modèles sophistiqués de fonctionner dans des environnements où la connectivité au cloud est indisponible ou trop lente.

  • Détection d'objets mobiles : 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 afin de préserver la durée de vie de la batterie et de réduire l' utilisation de la mémoire. Les architectures optimisées telles que YOLO26 sont souvent privilégiées pour ces tâches en raison de leur efficacité inhérente.
  • Sécurité automobile : les voitures autonomes et les véhicules autonomes nécessitent des prises de décision en une fraction de seconde . Les modèles élagués permettent aux ordinateurs embarqués de traiter les flux de caméras haute résolution pour la détection des piétons sans le temps de latence induit par la transmission des données à un serveur.
  • IoT industriel : dans le secteur manufacturier, les systèmes d'inspection visuelle sur les chaînes de montage utilisent des modèles légers pour detect . L'élagage garantit que ces systèmes peuvent fonctionner sur des microcontrôleurs économiques plutôt que sur des racks de serveurs coûteux.

Élagage et techniques d'optimisation connexes

Bien que l'élagage de modèle soit un outil puissant, il est souvent confondu avec d'autres techniques d'optimisation de modèle ou utilisé en parallèle avec celles-ci.

  • Élagage vs quantification : l'élagage réduit le nombre de paramètres (connexions) dans le modèle. En revanche, la quantification du modèle réduit la précision de ces paramètres, par exemple en convertissant les nombres à virgule flottante 32 bits en entiers 8 bits . Les deux sont souvent combinés pour maximiser l'efficacité du déploiement du modèle.
  • Élagage vs distillation des connaissances : l'élagage modifie le modèle original en supprimant certaines parties. La distillation des connaissances consiste à former un modèle « élève » entièrement nouveau et plus petit afin qu'il imite le comportement d'un modèle « enseignant » plus grand.

Exemple de mise en œuvre

Python suivant montre comment appliquer l'élagage non structuré à une couche convolutive à l'aide de PyTorch. Il s'agit d'une étape courante avant d'exporter des modèles vers des formats optimisés tels que 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 ensembles de données et de leurs modèles, y compris la formation, l'évaluation et le déploiement, la Ultralytics offre une interface simplifiée. Elle facilite le processus de création de modèles hautement optimisés tels que YOLO26 et leur exportation vers des formats adaptés au matériel, tels que TensorRT TensorRT ou CoreML.

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant