Polydesk-logotype
Polydesk.ai — Header

Knowledge Distillation

La knowledge distillation (distillation de connaissances) est une technique de compression de modèle qui entraîne un petit réseau « élève » (student) à reproduire le comportement d’un grand réseau « professeur » (teacher), en apprenant non seulement les réponses correctes mais aussi la distribution de probabilités complète du professeur sur toutes les classes.

L’idée fondatrice, formalisée par Geoffrey Hinton, Oriol Vinyals et Jeff Dean dans leur paper de 2015 « Distilling the Knowledge in a Neural Network », est qu’un modèle entraîné contient bien plus de connaissances que ses seules prédictions finales. Les probabilités « douces » (soft targets) que le professeur attribue aux classes incorrectes encodent des informations précieuses sur les similarités entre les classes : un modèle de vision qui hésite entre « chat » et « lynx » transmet au student l’information que ces deux classes sont visuellement proches, une information invisible dans les labels durs (hard targets) du dataset.

Aujourd’hui, la knowledge distillation est omniprésente dans l’industrie IA. DistilBERT, Claude Haiku, GPT-4o-mini, Gemini Flash, DeepSeek V3 (distillation de raisonnement depuis R1) : tous ces modèles performants et compacts doivent une partie de leur efficacité à des techniques de distillation.

Knowledge Distillation en bref
Catégorie
Compression de modèle / Transfer Learning
Principe
Un modèle student apprend à imiter un modèle teacher
Paper fondateur
Hinton, Vinyals, Dean (2015)
Types
Response-based (logits), Feature-based (activations), Relation-based
Paramètre clé
Température (T) pour les soft targets
Exemples célèbres
DistilBERT, TinyBERT, MobileBERT, Gemma distillée
Alternative à
Pruning, Quantization

Comment fonctionne la knowledge distillation

Soft targets vs Hard targets

Dans un entraînement classique, le modèle apprend à partir de labels « durs » (hard targets) : pour une image de chat, le label est [1, 0, 0, …] (classe « chat » = 1, toutes les autres = 0). Aucune information n’est transmise sur les relations entre les classes.

En knowledge distillation, le professeur produit des soft targets : une distribution de probabilités complète sur toutes les classes. Pour une image de chat, le teacher pourrait produire [0.85, 0.10, 0.03, 0.02, …] où 0.10 pour « lynx » et 0.03 pour « chien » encodent des informations sur la proximité visuelle entre ces animaux. Le student apprend de cette distribution riche, ce qui lui permet de généraliser mieux avec moins de paramètres.

Le rôle de la température

Les modèles bien entraînés sont souvent très « confiants » dans leurs prédictions : la probabilité de la classe correcte est proche de 1.0 et les autres sont proches de 0. Cela rend les soft targets presque identiques aux hard targets, annulant le bénéfice de la distillation.

La solution : appliquer une « température » T à la fonction softmax. Au lieu de calculer softmax(z), on calcule softmax(z/T) où z sont les logits (sorties pré-softmax) du teacher. Une température élevée (T=5, 10, 20) « adoucit » la distribution : les probabilités sont plus uniformes, révélant les nuances que le modèle a apprises sur les relations entre classes.

La même température est appliquée au student pendant l’entraînement. Après la distillation, le student utilise T=1 (température standard) pour l’inférence.

La fonction de loss combinée

La loss de distillation combine deux termes :

Loss de distillation (KL divergence). Mesure la divergence entre les soft targets du teacher et les soft predictions du student. C’est le signal principal qui transfère les connaissances du teacher.

Loss supervisée (cross-entropy). Mesure l’erreur entre les predictions du student et les vrais labels. Ce terme ancre le student dans la réalité des données et empêche le student de copier les erreurs du teacher.

import torch
import torch.nn.functional as F

def distillation_loss(student_logits, teacher_logits, labels, T=4.0, alpha=0.7):
    """
    Loss combinée pour knowledge distillation.
    alpha : poids relatif de la loss de distillation vs supervisée
    T : température pour les soft targets
    """
    # Loss de distillation (KL divergence sur soft targets)
    soft_student = F.log_softmax(student_logits / T, dim=1)
    soft_teacher = F.softmax(teacher_logits / T, dim=1)
    kd_loss = F.kl_div(soft_student, soft_teacher, reduction="batchmean") * (T * T)

    # Loss supervisée classique
    ce_loss = F.cross_entropy(student_logits, labels)

    # Combinaison pondérée
    return alpha * kd_loss + (1 - alpha) * ce_loss

Le facteur T² dans la loss KL compense le fait que les gradients sont réduits d’un facteur 1/T² quand on divise les logits par T. L’hyperparamètre alpha (typiquement 0.5 à 0.9) contrôle l’équilibre entre imiter le teacher et apprendre les vrais labels.

Les trois types de connaissances distillées

Response-based (logits)

C’est la forme classique de Hinton : le student apprend des soft targets (logits ou probabilités) de la dernière couche du teacher. C’est simple, efficace, et ne nécessite pas que le teacher et le student aient la même architecture. La plupart des implémentations utilisent cette approche.

Feature-based (activations intermédiaires)

Le student apprend à reproduire les activations des couches intermédiaires du teacher, pas seulement sa sortie finale. L’idée est que les couches internes encodent des représentations utiles (détection de bords, de textures, de concepts sémantiques) qui ne sont pas directement visibles dans les logits. FitNets (2015) et DistilBERT utilisent cette approche.

La difficulté : si les architectures du teacher et du student sont différentes, les dimensions des couches intermédiaires ne correspondent pas. Il faut ajouter des couches de projection (appelées « hint layers ») pour aligner les dimensions.

Relation-based (relations entre échantillons)

Plutôt que de copier les sorties ou les activations, le student apprend les relations entre les exemples : quels échantillons le teacher considère comme similaires, quels exemples sont éloignés dans l’espace de représentation. C’est modélisé via des matrices de similarité, des graphes de relations, ou des embeddings. Cette approche est particulièrement utile pour les tâches de retrieval et d’apprentissage contrastif.

Modes d’entraînement

Offline (standard)

Le teacher est entraîné séparément, gelé, puis utilisé pour générer les soft targets. Le student est entraîné indépendamment sur ces soft targets. C’est le mode le plus courant car il découple les deux phases.

Online (co-entraînement)

Le teacher et le student sont entraînés simultanément. Le teacher s’améliore pendant que le student apprend de lui. Plus complexe à mettre en oeuvre mais peut donner de meilleurs résultats quand le teacher n’est pas pré-entraîné.

Self-distillation

Le modèle apprend de ses propres checkpoints précédents ou de ses propres couches plus profondes. Pas de teacher séparé. Des recherches montrent que même cette forme de distillation améliore les performances, ce qui suggère que la distillation agit aussi comme un régulariseur.

Knowledge distillation pour les LLM

La distillation des LLM a des particularités qui la distinguent de la distillation classique en vision par ordinateur.

Distillation par logits

Pour les LLM autorégressifs, les logits correspondent à la distribution de probabilité sur le vocabulaire (souvent 32 000 à 128 000 tokens) à chaque position de la séquence. Le student apprend à reproduire cette distribution token par token. Le coût mémoire est élevé car il faut stocker les logits du teacher pour chaque token, chaque position.

Distillation par chaîne de raisonnement (CoT)

Une approche plus récente, utilisée par DeepSeek V3, consiste à distiller les capacités de raisonnement d’un modèle Chain-of-Thought (DeepSeek R1) vers un modèle standard. Le teacher génère des raisonnements détaillés, et le student apprend non seulement la réponse finale mais aussi le processus de raisonnement. Cette technique transfert des capacités émergentes (raisonnement multi-étapes, autocorrection) qui ne sont pas facilement capturées par la simple distillation de logits.

Distillation par données synthétiques

Plutôt que de distiller les logits directement (ce qui nécessite un accès au modèle teacher), on peut générer un large corpus de données synthétiques avec le teacher et entraîner le student dessus. C’est la méthode la plus scalable car elle ne nécessite qu’un accès API au teacher. C’est aussi la méthode utilisée quand le teacher est propriétaire (GPT-4, Claude) et que seules les sorties textuelles sont disponibles.

Restrictions légales Certains fournisseurs de LLM (notamment OpenAI) interdisent dans leurs conditions d’utilisation la distillation de leurs modèles pour entraîner des modèles concurrents. Vérifiez toujours les Terms of Service avant d’utiliser les sorties d’un modèle propriétaire comme données de distillation.

Exemples concrets de modèles distillés

Modèle student Teacher Technique Résultat
DistilBERT BERT base Logits + features 97% des perf. de BERT, 60% plus petit, 60% plus rapide
TinyBERT BERT base Features + attention 96% des perf., 7,5x plus petit
MobileBERT BERT large Features progressives Optimisé pour mobile, 4,3x plus petit
DeepSeek V3 DeepSeek R1 (CoT) Distillation de raisonnement Raisonnement avancé sans CoT explicite
Qwen3-6B (pruned) Qwen3-8B Pruning + distillation Surpasse le 4B, approche le 8B en vitesse

Bonnes pratiques

Choisissez la bonne température. T=1 (pas de distillation effective), T=4-6 (bon compromis pour la plupart des tâches), T=10-20 (distributions très lissées, utile quand le teacher est très confiant). Testez plusieurs valeurs et sélectionnez celle qui maximise la performance du student sur un set de validation.

L’architecture du student compte. Un student trop petit ne pourra pas absorber les connaissances du teacher, même avec une distillation parfaite. En règle générale, le student devrait avoir au moins 20-30% de la capacité du teacher pour des résultats acceptables. Pour les LLM, un ratio 1:3 à 1:5 en paramètres est courant (70B teacher vers 7-13B student).

Les données de distillation importent. Utilisez un dataset diversifié et représentatif. Plus le dataset de distillation est large et varié, mieux le student généralise. Pour les LLM, des datasets de plusieurs milliards de tokens sont courants.

Combinez avec d’autres compressions. La distillation est souvent une étape dans un pipeline plus large : pruning du teacher, distillation vers un student compact, puis quantization du student. Cette combinaison produit les meilleurs ratios compression/qualité.

Évaluez au-delà des benchmarks standards. Un student distillé peut bien performer sur les benchmarks classiques mais perdre des capacités spécifiques du teacher (raisonnement long, cas edge). Testez sur des cas d’usage représentatifs de votre application.

Limites et défis de la distillation

Le problème du capacity gap

Si le student est beaucoup plus petit que le teacher (par exemple, 1B student pour un 70B teacher), le student n’a tout simplement pas assez de capacité pour absorber toutes les connaissances. Dans ce cas, la distillation aide mais ne fait pas de miracles : le student sera toujours significativement en dessous du teacher. Des travaux récents (AdaptDistill, ICLR 2026) proposent une distillation itérative où le teacher adapte ses explications aux faiblesses spécifiques du student, améliorant le transfert dans ces cas difficiles.

Héritage des erreurs du teacher

Le student hérite non seulement des connaissances du teacher mais aussi de ses biais et de ses erreurs. Si le teacher a un biais systématique (par exemple, sous-performer sur certaines langues ou certains domaines), le student reproduira ce biais. C’est pourquoi la loss supervisée (sur les vrais labels) est essentielle dans la loss combinée : elle corrige partiellement les erreurs du teacher.

Coût computationnel

La distillation n’est pas gratuite. Il faut d’abord entraîner (ou disposer d’) un teacher performant, puis entraîner le student sur un corpus suffisamment large. Pour les LLM, le coût de distillation peut représenter 10 à 30% du coût de pré-entraînement du teacher. C’est significatif, mais reste bien inférieur au coût de pré-entraîner le student from scratch à un niveau de qualité comparable.

Perte de capacités émergentes

Certaines capacités des grands modèles sont « émergentes » : elles n’apparaissent qu’au-delà d’une certaine taille de modèle (raisonnement multi-étapes, instruction following, few-shot learning). La distillation peut transférer une partie de ces capacités vers un modèle plus petit, mais pas toujours complètement. Les recherches actuelles explorent des méthodes de distillation spécifiquement conçues pour préserver ces capacités émergentes, comme la distillation de chaînes de raisonnement.

Outils et frameworks pour la distillation

Hugging Face Transformers. La bibliothèque fournit des modèles pré-distillés (DistilBERT, DistilGPT-2) et des utilitaires pour la distillation personnalisée via le Trainer avec des losses custom. Le package transformers ne fournit pas de pipeline de distillation clé en main, mais les composants sont facilement assemblables.

NVIDIA NeMo / TensorRT Model Optimizer. Propose un pipeline complet pruning + distillation pour les LLM. NVIDIA a démontré cette approche sur Qwen3-8B (pruné à 6B, distillé sur 90B tokens, 6000 GPU-heures sur H100). C’est la solution la plus intégrée pour les utilisateurs de l’écosystème NVIDIA.

TextBrewer. Framework dédié à la distillation de modèles NLP, compatible avec Hugging Face. Il supporte la distillation multi-teacher, la distillation progressive, et différentes stratégies d’alignement des couches.

PyTorch natif. PyTorch ne fournit pas de module de distillation clé en main, mais la loss de distillation se code en quelques lignes (voir la section code ci-dessus). Le framework est suffisamment flexible pour implémenter toute variante de distillation.

Amazon Bedrock Model Distillation. Service managé qui permet de distiller les modèles foundation d’Amazon (et certains modèles tiers) vers des modèles plus compacts. C’est la solution la plus simple pour les utilisateurs cloud qui veulent distiller sans gérer l’infrastructure d’entraînement.


Questions fréquentes sur la knowledge distillation

La knowledge distillation est-elle la même chose que le transfer learning ?

Non, ce sont des concepts liés mais distincts. Le transfer learning réutilise les poids d’un modèle pré-entraîné comme point de départ pour un nouveau modèle (souvent en gelant certaines couches). La knowledge distillation entraîne un modèle différent (souvent plus petit) à imiter les sorties d’un autre modèle. En transfer learning, le modèle cible a la même architecture que le modèle source. En distillation, les architectures peuvent être complètement différentes.

Peut-on distiller un modèle propriétaire (GPT-4, Claude) ?

Techniquement oui, via la distillation par données synthétiques : vous générez des réponses avec le modèle propriétaire et entraînez un modèle open-source dessus. Mais légalement, c’est souvent interdit par les conditions d’utilisation. OpenAI, Google et d’autres fournisseurs interdisent explicitement d’utiliser leurs sorties pour entraîner des modèles concurrents. Amazon Bedrock propose un service officiel de distillation de ses modèles. Vérifiez les ToS avant de procéder.

Quelle est la meilleure température pour la distillation ?

Il n’y a pas de valeur universelle. T=4 à T=6 est un bon point de départ pour la plupart des tâches. Des températures trop basses (T=1-2) ne produisent pas assez de signal dans les soft targets. Des températures trop élevées (T>20) lissent trop la distribution et perdent l’information discriminative. L’étude de Hinton recommandait de tester T dans la plage [2, 20] et de sélectionner par validation croisée.

Un student peut-il surpasser son teacher ?

Oui, dans certains cas. C’est possible quand le student bénéficie de données supplémentaires, d’une architecture mieux adaptée à la tâche, ou quand la distillation agit comme un régulariseur qui réduit l’overfitting. En self-distillation, un modèle qui apprend de ses propres checkpoints peut s’améliorer itérativement. Cependant, en général, le student est en dessous du teacher, surtout quand la différence de taille est importante.

Combien de temps prend la distillation d’un LLM ?

Cela dépend de la taille du student et du dataset. Pour un student 7B distillé depuis un teacher 70B sur un corpus de 100B tokens, comptez quelques jours à une semaine sur un cluster de 8 à 64 GPU. NVIDIA a rapporté environ 6000 GPU-heures (8 heures sur 96 noeuds de 8 H100) pour la distillation de Qwen3-8B vers un modèle pruné de 6B sur 90B tokens. Le coût est significatif mais reste bien inférieur à un pré-entraînement complet.

Polydesk.ai — Footer