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.
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 :
La taille est indispensable pour permettre l'IA en périphérie dans divers secteurs où les ressources matérielles sont limitées :
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}%")
Pour optimiser efficacement un modèle en vue de son déploiement, il est utile de distinguer l' élagage des autres stratégies :
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.