Retour au Blog
MLOps 20 septembre 2024 9 min de lecture

Rendre les modèles 10x plus petits : quantification, élagage et distillation

Quantification INT8, élagage structuré et distillation — réduire la taille du modèle de 90% en gardant 95% de précision.

Comparaison des techniques

MéthodeRéduction de taillePerte de précisionEffort
Quantification INT84x~1%Faible
FP162x<0.1%Très faible
Élagage (30%)1.4x~2%Moyen
Distillation5-10x3-5%Élevé

Quantification post-entraînement (la plus simple)

import torch

# Dynamic quantization (CPU inference)
model_int8 = torch.quantization.quantize_dynamic(
    model,
    {nn.Linear, nn.LSTM},
    dtype=torch.qint8
)
# Result: 2-4x smaller, 2x faster on CPU

Distillation de connaissances

# Student learns from teacher's soft probabilities
teacher_logits = teacher(x).detach()
student_logits = student(x)

kd_loss = nn.KLDivLoss()(
    F.log_softmax(student_logits/T, dim=-1),
    F.softmax(teacher_logits/T, dim=-1)
) * T**2
Model CompressionQuantizationPruningKnowledge DistillationEdge
O

Ossama Elhakki

Ingénieur IA & Systèmes ML — Maroc