Distillation des connaissances

term_id: knowledge_distillation

Category: training_techniques

Definition

La distillation des connaissances est une méthode d’apprentissage automatique utilisée pour compresser un grand réseau neuronal complexe (le professeur) en un réseau plus petit et plus efficace (l’élève). Le modèle élève est entraîné à

Summary

La distillation des connaissances est une technique de compression de modèle où un petit modèle élève apprend à imiter le comportement d’un grand modèle professeur.

Key Concepts

  • Modèle professeur-élève
  • Compression de modèle
  • Cibles souples
  • Efficacité

Use Cases

  • Déploiement de modèles sur des appareils edge
  • Réduction de la latence d’inférence
  • Réduction des coûts de calcul cloud

Code Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import torch
import torch.nn as nn

def distillation_loss(student_logits, teacher_logits, temperature=2.0):
    T = temperature
    student_probs = nn.functional.softmax(student_logits / T, dim=1)
    teacher_probs = nn.functional.softmax(teacher_logits / T, dim=1)
    return nn.functional.kl_div(
        nn.functional.log_softmax(student_logits / T, dim=1),
        teacher_probs,
        reduction='batchmean'
    ) * (T * T)