Chapitre 6 — Élagage et distillation des connaissances

Publié le: 2026-04-28 Dernière mise à jour le: 2026-07-07 Version: 1
Chapitre 6 — Élagage et distillation des connaissances

Chapitre 6 — Élagage et distillation des connaissances

Sixième billet de la tournée chapitre par chapitre de LLM Primer VI : Mettre à l'échelle les systèmes IA. Le chapitre qui attaque directement le nombre de poids — d'abord en mettant à zéro ceux qui ne comptent pas, puis en transférant le comportement d'un grand modèle dans un plus petit.


Pourquoi ce chapitre existe

La quantification rétrécit les octets par poids. L'élagage rétrécit le nombre de poids qui sont multipliés du tout. La distillation des connaissances transfère le comportement d'un grand professeur dans un élève plus petit qui tourne moins cher de bout en bout. L'élagage est une édition à architecture constante qui rase le surcoût ; la distillation est un changement d'architecture qui accepte un coût à l'entraînement contre une économie permanente à l'inférence. Le Chapitre 6 parcourt les deux — la mécanique sur laquelle chacune repose, les modes d'échec que les praticiens rencontrent, et le motif accéléré par le matériel (sparsité 2:4) qui a rendu l'élagage structuré économiquement intéressant à nouveau sur Hopper et Blackwell.

En une ligne : l'élagage et la distillation attaquent le nombre de poids ; combinés à la quantification, ils composent une réduction de 20× des octets que la puce diffuse par token.

6.1 La sparsité 2:4 est le motif d'élagage que le matériel récompense

L'élagage non structuré par magnitude — mettre à zéro les 50 pour cent de poids les plus petits et affiner brièvement — fonctionne numériquement mais n'accélère pas. Les GPU exécutent des GEMM denses ; les zéros dispersés sont quand même multipliés. L'élagage structuré retire des unités entières que le matériel peut sauter : têtes d'attention, neurones de MLP ou (le cas important) motifs N:M à l'intérieur des matrices de poids. Hopper et Blackwell prennent en charge nativement la sparsité 2:4 — exactement deux zéros dans chaque groupe de quatre poids consécutifs le long de la dimension d'entrée. La puce stocke chaque groupe de quatre poids comme deux valeurs non nulles plus un masque de deux bits, le tensor core sparse saute les multiplications par zéro, et la bande passante comme les FLOPs chutent d'environ un facteur deux. En débit de décodage mesuré, c'est une accélération de 1,7–1,9×. L'astuce est que 2:4 doit être imposée lors de l'élagage : l'algorithme parcourt chaque matrice par groupes de quatre et force les deux plus petits à zéro, puis affine brièvement ou applique SparseGPT en compensation. Le masque est une métadonnée ; le gain à l'exécution est automatique.

6.2 La distillation transfère la distribution du professeur, non son argmax

Un LLM professeur entraîné produit à chaque position une distribution sur le vocabulaire — un softmax de dimension 128k. L'argmax est le token qu'il émettrait en décodage glouton. Mais la distribution encode l'incertitude du professeur, sa structure de préférence parmi les quasi-synonymes et sa calibration. Entraîner un élève à égaler cette distribution transfère tout cela : la perte est une divergence KL entre les sorties adoucies du professeur et de l'élève, avec une température qui élargit le signal de gradient dans la queue à faible probabilité. L'élève qui émerge se comporte comme une version plus petite et plus rapide du professeur, plutôt que comme un plus petit modèle entraîné depuis zéro sur les mêmes données. La Patient Knowledge Distillation étend la recette aux couches intermédiaires, en appariant des états cachés entre paires de couches élève-professeur. MiniLLM traite un mode d'échec plus subtil — le problème de la moyenne de modes, où un élève à KL avant hésite entre plusieurs continuations plausibles du professeur et produit une sortie insipide — en passant à un KL inverse, qui préfère une correspondance nette à un des modes du professeur plutôt qu'une couverture douce de tous.

6.3 Les trois compressions s'empilent, dans un ordre précis

Distiller d'abord, élaguer ensuite, quantifier en dernier. La distillation est l'opération la plus coûteuse et la plus invasive architecturalement ; il est logique de la faire une fois sur un modèle dense à haute précision avant que d'autres choix ne se figent. Élaguer l'élève à 2:4 avec SparseGPT et un bref affinage de récupération. Quantifier l'élève sparsifié en FP8 avec llm-compressor. Un empilement travaillé : professeur 70B BF16 → élève distillé 13B BF16 → sparsifié 2:4 → quantifié FP8. Les octets de poids par passe avant chutent de 140 Go à environ 6,5 Go — une réduction de 22× — et les chemins FP8 et 2:4 de Hopper convertissent cela en un gain de débit de 8–10× par GPU. Ce que l'empilement ne réduit pas, c'est le cache KV, qui dépend de la dimension cachée, du nombre de têtes et de la longueur de contexte plutôt que du nombre de poids. C'est le sujet du Chapitre 8. Et la compression au niveau modèle est par inférence ; elle donne au GPU de la marge, mais c'est le levier runtime qui remplit cette marge d'utilisateurs concurrents : le batching.

À retenir : la compression est par inférence, non par requête. Chaque technique de ce chapitre rend une passe avant moins chère ; il faut le travail de batching et de gestion KV des Chapitres 7 et 8 pour convertir cette baisse en débit d'utilisateurs concurrents.

Ce que prépare le Chapitre 6

Les Chapitres 5 et 6 épuisent les compressions côté modèle — quantifier les octets par poids, élaguer le nombre de poids, distiller le modèle entier vers le bas. Le GPU a désormais de la marge à chaque passe avant. Le Chapitre 7 se tourne vers le levier au niveau système qui remplit cette marge de travail utile : le batching. Le batching statique fonctionne presque et s'effondre sur le problème du plus rapide à finir. Le batching continu, avec un ordonnancement au niveau itération, est ce que font tourner les moteurs de production et ce qui transforme la phase de décodage limitée par la bande passante, passant d'une puce inactive à une puce servant de nombreux utilisateurs simultanément.


Prochaine étape — Chapitre 7 : Stratégies de batching avancées. Batching statique, dynamique et continu — et la dette que le batching continu crée pour le cache KV.

Vous voulez le tableau complet ? Le chapitre du livre inclut le code exécutable torch.sparse pour la conversion 2:4, la boucle PyTorch complète de distillation avec perte KL et température, l'ajout de correspondance de couches PKD, la formulation KL inverse de MiniLLM, et l'encadré « En clair » sur les raisons pour lesquelles les élèves hésitent et comment les en empêcher. LLM Primer VI sur Amazon →

SHO
SHO
CTO et Fondateur de RECEIPTROLLER. Axé sur les données, motivé par l'innovation, toujours curieux.