Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Élague de modèle (Model Pruning)

Optimisez les modèles d'apprentissage automatique grâce à l'élagage de modèle. Obtenez une inférence plus rapide, une utilisation réduite de la mémoire et une efficacité énergétique pour les déploiements aux ressources limitées.

L'élagage des modèles est une technique d'optimisation de modèle conçue pour réduire la taille et la complexité informatique des réseaux neuronaux en supprimant les paramètres paramètres inutiles. Lorsque les modèles d'intelligence artificielle s'agrandissent pour atteindre de meilleures performances, ils deviennent souvent trop paramétrés, contenant de nombreuses connexions ou neurones qui contribuent peu à la sortie finale. Ils contiennent de nombreuses connexions ou neurones qui contribuent peu à la sortie finale. En identifiant et en éliminant ces composants redondants, les développeurs peuvent créer des modèles plus légers qui nécessitent moins de mémoire et d'énergie, tout en offrant une inférence en temps réel plus rapide. tout en offrant une inférence en temps réel plus rapide. Ce processus est particulièrement vital pour le déploiement d'architectures sophistiquées telles que YOLO11 sur du matériel où les ressources sont rares, comme les les téléphones portables ou les capteurs intégrés.

Concepts et mécanismes fondamentaux

Le processus d'élagage comprend généralement trois étapes principales : la formation, l'élagage et l'affinage. l 'ajustement. Dans un premier temps, un grand modèle est entraîné jusqu'à convergence pour capturer des caractéristiques complexes. Au cours de la phase d'élagage, un algorithme évalue l'importance de certains paramètres paramètres spécifiques, généralement weights and biases-sur la base de sur la base de critères tels que l'ampleur ou la sensibilité. Les paramètres jugés insignifiants sont mis à zéro ou entièrement supprimés.

Cependant, le simple fait de découper des parties d'un réseau peut en dégrader la précision. sa précision. Pour y remédier, le modèle est soumis à une de réentraînement appelé "réglage fin". Cette étape permet aux paramètres restants de s'ajuster et de Cette étape permet aux paramètres restants de s'ajuster et de compenser les connexions manquantes, ce qui permet souvent de restaurer les performances du modèle à des niveaux proches de ceux d'origine. L'efficacité de cette L'efficacité de cette approche est étayée par l'hypothèse du l 'hypothèse du ticket de loterie, qui suggère que les réseaux denses contiennent des sous-réseaux plus petits capables d'atteindre des niveaux de performance comparables. des sous-réseaux plus petits capables d'atteindre une précision comparable lorsqu'ils sont formés de manière isolée.

Types d'élagage de modèles

Les stratégies d'élagage sont généralement classées en fonction de la structure des composants supprimés :

  • L'élagage non structuré : Cette méthode cible les poids individuels indépendamment de leur emplacement, en mettant à zéro ceux dont les valeurs sont faibles. Elle aboutit à une matrice "clairsemée" où les connexions utiles sont sont dispersées. Bien qu'efficace pour réduire la taille du modèle, l'élagage non structuré nécessite souvent du matériel spécialisé ou des bibliothèques logicielles pour réaliser des gains de vitesse réels. ou des bibliothèques logicielles spécialisées pour réaliser des gains de vitesse réels, car les CPU et GPU sont optimisés pour les opérations denses.
  • Élagage structuré : Au lieu de poids individuels, cette approche supprime des structures géométriques entières, telles que des canaux, des filtres ou des couches au sein de l'image. structures géométriques entières, telles que les canaux, les filtres ou les couches au sein des réseaux neuronaux convolutifs (CNN). réseaux neuronaux convolutifs (CNN). En conservant la structure dense des matrices, l'élagage structuré permet au matériel standard de traiter le modèle plus efficacement, ce qui se traduit directement par une réduction des coûts. modèle plus efficacement, ce qui se traduit directement par une latence d'inférence plus faible sans nécessiter d'outils d'accélération outils d'accélération spécialisés.

Élagage ou quantification

Bien que ces deux techniques d'optimisation soient populaires, il est important de distinguer l'élagage de la quantification du modèle. quantification du modèle. L'élagage se concentre sur la réduction le nombre de paramètres (connexions ou neurones), ce qui a pour effet de modifier l'architecture du modèle. En revanche, la quantification En revanche, la quantification réduit la précision de ces paramètres, par exemple en convertissant des nombres à virgule flottante de 32 bits en nombres entiers de 8 bits. à virgule flottante de 32 bits en entiers de 8 bits. Ces méthodes sont souvent complémentaires ; un développeur peut d'abord élaguer un modèle modèle pour supprimer la redondance, puis le quantifier pour minimiser son empreinte mémoire en vue du déploiement. déploiement.

Applications concrètes

L'élagage joue un rôle essentiel pour rendre la vision vision artificielle avancée dans des scénarios pratiques :

  1. Détection d'objets sur mobile : Les applications fonctionnant sur des smartphones, telles que les applications de réalité augmentée ou les organisateurs de photos, utilisent des modèles élagués pour effectuer la détection d'objets. ou les organiseurs de photos, utilisent des modèles élagués pour détection d'objets localement. Cela permet de préserver l'autonomie de la batterie et garantissent la confidentialité des données de l'utilisateur en évitant le traitement dans le nuage. dans le nuage.
  2. Systèmes de sécurité automobile : Les véhicules autonomes s'appuient sur un traitement rapide des données visuelles pour détecter les piétons et les obstacles. des données visuelles pour detect piétons et les obstacles. Les modèles élagués permettent au moteur d'inférence embarqué de prendre des décisions en une fraction de seconde. moteur d'inférence embarqué de prendre des décisions en une fraction de seconde sans nécessiter la consommation massive d'énergie d'un GPU de niveau serveur.

Exemple de mise en œuvre

Des frameworks comme PyTorch fournissent des utilitaires intégrés pour appliquer l'élagage l'élagage de manière programmatique. L'exemple suivant montre comment appliquer un élagage non structuré à une couche de une opération courante avant d'exporter un modèle dans un format optimisé tel que ONNX.

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

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

# Apply L1 unstructured pruning to remove 30% of the connections
# This sets the smallest 30% of weights (by absolute value) to zero
prune.l1_unstructured(layer, name="weight", amount=0.3)

# Verify sparsity: calculate the percentage of zero parameters
sparsity = float(torch.sum(layer.weight == 0)) / layer.weight.nelement()
print(f"Layer sparsity: {sparsity:.2%}")

Rejoindre la communauté Ultralytics

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

Rejoindre maintenant