Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Pruning (élagage de modèle)

ia

Dé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

TechniqueComplexitéCompatibilitéCompression
Quantification (GGUF Q4)FaibleUniverselle4× mémoire
Pruning structuréMoyenneUniverselleDépend de la cible
Pruning non-structuréFaibleRequiert support sparseThéorique 2×

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis