Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Model Pruning

L’élagage de modèle supprime les poids, filtres ou couches de faible importance d’un réseau neuronal pour en réduire la taille et le coût de calcul. Élagage non structuré ou structuré, avec du code.

L’élagage de modèles supprime les paramètres qui contribuent peu aux sorties d’un réseau neuronal entraîné, qu’il s’agisse de poids individuels, de filtres entiers, de têtes d’attention ou de couches, afin de rendre le modèle plus petit et moins coûteux à exécuter. La plupart des réseaux sont surparamétrés ; une grande partie de leurs poids peut donc être supprimée avec une faible perte d’exactitude, surtout si le modèle est ensuite ajusté finement. Une méthode d’élagage et de réentraînement de 2015 a réduit AlexNet de 61 millions à 6,7 millions de paramètres et VGG-16 de 138 millions à 10,3 millions, sans perte d’exactitude sur ImageNet. L’élagage est une étape standard de la préparation des modèles pour les téléphones, les caméras et d’autres matériels d’IA de périphérie, et il est désormais également appliqué aux grands modèles de langage (LLM).

Fonctionnement de l’élagage des modèles#

L’élagage évalue l’importance de chaque poids ou structure candidate, supprime la fraction ayant le score le plus faible et ajuste finement les poids du modèle restants pour retrouver de l’exactitude. Le critère le plus simple, et toujours le plus courant, est la magnitude : les poids proches de zéro ou les filtres ayant une petite norme L1 ou L2 modifient le moins la sortie lorsqu’on les supprime. D’autres critères utilisent les gradients ou les activations pour estimer l’augmentation de la perte causée par la suppression de chaque composant. La suppression d’une grande fraction en une fois tend à nuire à l’exactitude ; l’élagage se fait donc généralement par étapes, chacune suivie d’un ajustement fin, jusqu’à ce que le modèle atteigne la taille cible ou que l’exactitude baisse au-delà de la tolérance :

L’élagage a également changé la façon dont les chercheurs envisagent la taille des réseaux. L’hypothèse du ticket de loterie avance qu’un réseau dense contient de petits sous-réseaux qui, entraînés seuls à partir de leurs poids initiaux d’origine, atteignent l’exactitude du réseau complet. Ses auteurs ont systématiquement trouvé de tels sous-réseaux dont la taille était inférieure à 10–20 % de celle du réseau d’origine sur MNIST et CIFAR-10.

Élagage non structuré et structuré#

L’élagage non structuré met à zéro des poids individuels n’importe où dans un tenseur. Il permet d’obtenir une forte parcimonie avec une faible perte d’exactitude, mais les tenseurs conservent leur forme : les noyaux denses standard effectuent donc le même travail, et les gains de vitesse nécessitent des noyaux creux ou une prise en charge matérielle. Depuis la génération Ampere, les GPU NVIDIA exécutent un motif de ce type, la parcimonie 2:4, qui place deux zéros sur chaque groupe de quatre poids consécutifs, à une vitesse de calcul dense pouvant être doublée. L’élagage structuré supprime des filtres, canaux, têtes ou couches entiers et produit un modèle dense plus petit, plus rapide sur n’importe quel processeur, mais avec une perte d’exactitude supérieure pour le même nombre de poids supprimés. La suppression d’un filtre entraîne aussi celle du canal d’entrée correspondant dans la couche suivante, et des bibliothèques comme Torch-Pruning suivent automatiquement ces dépendances. Les outils d’élagage de PyTorch illustrent la différence entre les deux méthodes :

import torch
from torch.nn.utils import prune

# Two identical convolution layers, one for each pruning style
torch.manual_seed(0)
a = torch.nn.Conv2d(16, 32, kernel_size=3)
b = torch.nn.Conv2d(16, 32, kernel_size=3)

# Unstructured: zero the 50% of individual weights with the smallest magnitude
prune.l1_unstructured(a, name="weight", amount=0.5)

# Structured: zero the 50% of output filters with the smallest L2 norm
prune.ln_structured(b, name="weight", amount=0.5, n=2, dim=0)

for name, layer in [("unstructured", a), ("structured", b)]:
    zeros = (layer.weight == 0).float().mean().item()
    empty = (layer.weight.flatten(1) == 0).all(dim=1).sum().item()
    print(f"{name}: {zeros:.0%} of weights zero, {empty} of 32 filters empty")

Les deux couches se retrouvent avec 50 % de leurs poids à zéro. Seule la couche structurée comporte des filtres vides : 16 sur 32. Leur suppression laisse une couche dense avec moitié moins de filtres, ce qui divise par deux le calcul sur du matériel ordinaire. Le matériel conçu pour la parcimonie bénéficie également de l’élagage non structuré : l’intégration CVflow d’Ambarella pour Ultralytics YOLO, maintenue par Ambarella dans sa propre branche du paquet, élague progressivement les poids pendant l’entraînement de YOLO et conserve cette parcimonie lors de l’exportation ONNX pour la compilation sur ses puces d’IA de périphérie.

  • Quantification de modèle : Réduit la précision de chaque poids, par exemple en passant de nombres flottants 32 bits à des entiers 8 bits, tout en les conservant tous. Élagage et quantification sont souvent combinés : l’élagage réduit le nombre d’opérations et la quantification rend chacune d’elles moins coûteuse.
  • Distillation de connaissances : Entraîne un modèle étudiant plus petit à imiter un modèle enseignant plus grand ; elle suit souvent l’élagage structuré pour rétablir l’exactitude perdue lors de la suppression de filtres ou de couches entiers.
  • Abandon : Met temporairement à zéro des activations aléatoires pendant l’entraînement à des fins de régularisation ; le réseau complet est utilisé lors de l’inférence.

Élagage des grands modèles de langage#

Le réentraînement d’un LLM après chaque étape d’élagage est trop coûteux ; les méthodes en une seule passe l’élaguent donc d’un seul coup à l’aide d’un petit jeu de calibration. SparseGPT a réduit les modèles OPT de 175 milliards de paramètres et BLOOM de 176 milliards à une parcimonie non structurée de 60 % en moins de 4,5 heures, avec une augmentation négligeable de la perplexité ; il prend également en charge le motif 2:4 accéléré par les GPU. L’élagage structuré combiné à la distillation de connaissances produit des modèles denses plus petits : le Minitron de NVIDIA a dérivé des modèles 8B et 4B d’un modèle préentraîné 15B en élaguant les canaux d’incorporation, les neurones MLP et les têtes d’attention, puis en les réentraînant avec jusqu’à 40 fois moins de jetons qu’un entraînement depuis zéro.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique