Pruning (élagage de modèle)
iaDéfinition
Le Pruning (élagage en français) est une technique de compression des réseaux de neurones qui consiste à supprimer les poids ou neurones jugés peu importants pour la performance du modèle, réduisant sa taille, sa consommation mémoire et son coût d'inférence. Appliqué aux LLMs, le pruning fait l'objet d'une recherche active pour trouver des sous-réseaux de modèles géants qui préservent les capacités essentielles. On distingue deux familles de pruning : le Structured Pruning (élagage structuré) supprime des unités entières — têtes d'attention, couches FFN entières, couches Transformer complètes — produisant des modèles denses de plus petite taille, directement compatibles avec tous les frameworks d'inférence standard. Le Unstructured Pruning (élagage non-structuré) met à zéro des poids individuels dans les matrices, produisant des modèles "sparse" (creux) qui ne réduisent l'empreinte mémoire que si la sparsité est suffisamment haute (>70%) et si le hardware supporte les opérations sparse. Pour les LLMs, SparseGPT (Frantar & Alistarh, 2023) a montré qu'il est possible de rendre 50% des poids d'un LLM GPT-like nuls (unstructured pruning) en une seule passe sur GPU, avec une dégradation de perplexité minime. Wanda (Sun et al., 2023) propose une approche encore plus simple basée sur le produit magnitude des poids × norme des activations. Le Structured Pruning appliqué aux LLMs prend souvent la forme de depth pruning (suppression de couches Transformer entières) ou de width pruning (réduction des dimensions d'attention/FFN). LLM-Pruner (2023) et ShortGPT (2024) montrent qu'il est possible de supprimer 20-30% des couches d'un LLM avec seulement quelques heures de recovery fine-tuning, obtenant des modèles plus compacts que la distillation directe. En pratique, le pruning est moins utilisé que la quantification (GPTQ, AWQ, GGUF) pour les déploiements locaux car il nécessite un accès aux données de calibration et un fine-tuning de recovery. Cependant, pour les applications edge (smartphones, IoT), le structured pruning reste une approche complémentaire à la quantification.
Unstructured Pruning avec Wanda
# Pruning LLaMA 7B à 50% de sparsité avec Wanda
git clone https://github.com/locuslab/wanda
cd wanda
python main.py --model meta-llama/Llama-2-7b-hf --prune_method wanda --sparsity_ratio 0.5 --sparsity_type unstructured --save wanda_out/llama_7b_50_unstructured/
Structured Pruning : suppression de couches
# ShortGPT : supprimer les couches les moins importantes
# Mesure de l'importance : Block Influence (BI) = ||h_l - h_{l-1}|| / ||h_{l-1}||
# Les couches avec BI faible sont redondantes → suppressibles
import torch
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("meta-llama/Meta-Llama-3-8B")
# Supprimer les couches 16-19 (les moins influentes selon l'analyse BI)
layers_to_keep = [i for i in range(32) if i not in [16, 17, 18, 19]]
model.model.layers = torch.nn.ModuleList(
[model.model.layers[i] for i in layers_to_keep]
)
Pruning vs Quantification
| Technique | Complexité | Compatibilité | Compression |
|---|---|---|---|
| Quantification (GGUF Q4) | Faible | Universelle | 4× mémoire |
| Pruning structuré | Moyenne | Universelle | Dépend de la cible |
| Pruning non-structuré | Faible | Requiert support sparse | Théorique 2× |
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h