Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Élagage (Pruning)

Découvrez comment la taille optimise les réseaux neuronaux tels Ultralytics en supprimant les paramètres redondants. Explorez les méthodes structurées et non structurées pour l'IA en périphérie.

L'élagage est une technique d'optimisation de modèle stratégique utilisée pour réduire la taille et la complexité computationnelle des réseaux neuronaux en supprimant les paramètres inutiles . Tout comme un jardinier taille les branches mortes ou trop longues pour aider un arbre à prospérer, les algorithmes d'élagage identifient et éliminent les weights and biases qui contribuent peu à la puissance prédictive d'un modèle. L'objectif principal est de créer un modèle compressé et « clairsemé » qui conserve une grande précision tout en consommant beaucoup moins de mémoire et d'énergie. Cette réduction est essentielle pour améliorer la latence d'inférence, permettant ainsi aux architectures avancées de fonctionner efficacement sur du matériel aux ressources limitées, comme les téléphones mobiles et les appareils embarqués.

Mécanismes et méthodologie

Les modèles modernes d'apprentissage profond sont souvent surparamétrés, ce qui signifie qu'ils contiennent beaucoup plus de connexions que nécessaire pour résoudre une tâche spécifique. L'élagage exploite cette caractéristique en supprimant les connexions dont les valeurs sont proches de zéro, en partant du principe qu'elles ont un impact négligeable sur le résultat. Une fois les paramètres supprimés, le modèle subit généralement un processus de réglage fin, au cours duquel il est brièvement réentraîné afin d'ajuster les poids restants et de récupérer toute performance perdue. Ce concept est étroitement lié à l' hypothèse du billet de loterie, qui suggère que les grands réseaux contiennent des sous-réseaux plus petits et très efficaces, capables d'atteindre une précision similaire.

Il existe deux grandes catégories de stratégies d'élagage :

  • Élagage non structuré: cette méthode supprime les poids individuels en fonction de leur magnitude, quel que soit leur emplacement. Bien qu'elle réduise efficacement le nombre total de paramètres, elle crée des matrices clairsemées irrégulières que les CPU et GPU standard peuvent avoir du mal à traiter efficacement sans logiciel spécialisé.
  • Élagage structuré: cette approche supprime des structures géométriques entières, telles que des neurones, des canaux ou des couches au sein d'un réseau neuronal convolutif (CNN). En préservant la structure matricielle, l'élagage structuré est hautement compatible avec les accélérateurs matériels standard, ce qui se traduit souvent par des accélérations immédiates pour l' inférence en temps réel.

Applications concrètes

La taille est indispensable pour permettre l'IA en périphérie dans divers secteurs où les ressources matérielles sont limitées :

  1. Drones autonomes: les véhicules aériens sans pilote utilisés pour les opérations de recherche et de sauvetage s'appuient sur la vision par ordinateur pour naviguer dans des environnements complexes . Les modèles de détection d'objets élagués permettent à ces appareils de traiter les flux vidéo localement en temps réel, évitant ainsi les problèmes de latence associés à la communication dans le cloud .
  2. Santé mobile: les appareils médicaux portables destinés à l' analyse échographique utilisent des modèles élagués pour detect directement sur l'appareil. Cela garantit la confidentialité des données des patients et permet d'établir des diagnostics sophistiqués dans les régions reculées sans accès à Internet.

Exemple de mise en œuvre

Bien que les modèles de pointe tels que YOLO26 soient conçus pour être efficaces, les développeurs peuvent appliquer l'élagage pour optimiser davantage les couches à l'aide de bibliothèques telles que PyTorch. L'exemple suivant montre comment appliquer un élagage non structuré à une couche convolutive.

import torch
import torch.nn.utils.prune as prune

# Initialize a standard convolutional layer
layer = torch.nn.Conv2d(in_channels=3, out_channels=32, kernel_size=3)

# Apply L1 unstructured pruning to remove 30% of weights with the lowest magnitude
prune.l1_unstructured(layer, name="weight", amount=0.3)

# Verify sparsity (percentage of zero parameters)
sparsity = 100.0 * float(torch.sum(layer.weight == 0)) / layer.weight.nelement()
print(f"Sparsity achieved: {sparsity:.2f}%")

Élagage et techniques d'optimisation connexes

Pour optimiser efficacement un modèle en vue de son déploiement, il est utile de distinguer l' élagage des autres stratégies :

  • Quantification du modèle: Contrairement à l'élagage, qui supprime des connexions, la quantification réduit la précision des poids (par exemple, en convertissant des nombres à virgule flottante 32 bits en entiers 8 bits). Les deux techniques peuvent être utilisées conjointement pour maximiser l'efficacité sur les systèmes embarqués.
  • Distillation des connaissances: Il s'agit de former un modèle « élève » plus petit pour qu'il imite le comportement d'un modèle « enseignant » plus grand . L'élagage modifie directement le modèle original, tandis que la distillation forme une nouvelle architecture compacte.

Pour une gestion complète du cycle de vie, y compris la formation, l'annotation et le déploiement de modèles optimisés, les utilisateurs peuvent tirer parti de la Ultralytics . Cela simplifie le flux de travail, de la gestion des ensembles de données à l'exportation des modèles dans des formats adaptés au matériel, tels que ONNX ou TensorRT.

Rejoindre la communauté Ultralytics

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

Rejoindre maintenant