Knowledge Distillation
Beim Wissensdestillieren wird ein kleines Schülermodell darauf trainiert, die Ausgaben oder Merkmale eines größeren Lehrermodells nachzuahmen. So bleibt ein Großteil der Genauigkeit bei deutlich geringerem Rechenaufwand erhalten.
Wissensdestillation ist eine Methode zur Modellkomprimierung, bei der ein kleines „Schüler“-Neuronales Netz darauf trainiert wird, das Verhalten eines größeren und genaueren „Lehrer“-Modells nachzubilden. Der Schüler lernt zusätzlich zu den Ground-Truth-Labels oder an ihrer Stelle anhand der Ausgabe-Wahrscheinlichkeiten oder internen Merkmale des Lehrers. Diese reichhaltigeren Zielwerte ermöglichen eine höhere Genauigkeit als beim Training derselben Architektur allein mit Labels. Das Ergebnis ist ein Modell, das klein und schnell genug für Smartphones, eingebettete Platinen und andere Edge-AI-Hardware ist und dennoch einen Großteil der Qualität des Lehrers bewahrt. Buciluǎ, Caruana und Niculescu-Mizil zeigten 2006, dass sich das Wissen eines Ensembles in einem einzelnen Modell komprimieren lässt. Hinton, Vinyals und Dean prägten 2015 den Begriff Wissensdestillation und führten die mit einer Temperatur weichgemachten Zielwerte ein, die bei den meisten Verfahren bis heute verwendet werden.
So funktioniert Wissensdestillation#
Ein Label sagt lediglich, dass auf einem Bild ein Wolf zu sehen ist. Die Softmax-Ausgabe eines trainierten Lehrers verrät mehr: Das Bild ähnelt teilweise einem Husky, ein wenig einer Katze und überhaupt keinem Auto. Diese relativen Wahrscheinlichkeiten falscher Klassen, oft als verborgenes Wissen bezeichnet, werden dem Schüler als weiche Zielwerte übermittelt. Teilt man die Logits vor der Softmax durch eine Temperatur T größer als 1, wird die Verteilung abgeflacht, sodass die kleinen Wahrscheinlichkeiten genügend Gewicht zum Lernen erhalten. Der Destillationsverlust ist die Kullback-Leibler-Divergenz zwischen den abgeflachten Verteilungen des Lehrers und des Schülers. Sie wird mit T² multipliziert, damit die Gradienten eine vergleichbare Größenordnung wie die des gewöhnlichen Label-Verlusts behalten:
import torch
import torch.nn.functional as F
# Logits for one wolf photo over the classes [wolf, husky, cat, car]
teacher_logits = torch.tensor([[6.0, 4.0, 1.0, -2.0]])
student_logits = torch.tensor([[4.0, 1.0, 1.5, 0.0]])
# Dividing logits by a temperature T > 1 softens the teacher's distribution
for T in (1.0, 4.0):
probs = F.softmax(teacher_logits / T, dim=1)
print(f"T={T}: teacher probabilities {[round(p, 3) for p in probs[0].tolist()]}")
# Distillation loss: KL divergence between the softened distributions, scaled by T^2
T = 4.0
soft_targets = F.softmax(teacher_logits / T, dim=1)
student_log_probs = F.log_softmax(student_logits / T, dim=1)
loss = F.kl_div(student_log_probs, soft_targets, reduction="batchmean") * T**2
print(f"Distillation loss at T={T}: {loss.item():.3f}")Bei T=1 weist der Lehrer der Klasse „Wolf“ eine Wahrscheinlichkeit von 0.875 zu, der Katze nur 0.006 und dem Auto 0.0. Bei T=4 ergeben dieselben Logits 0.493, 0.299, 0.141 und 0.067. Daran erkennt der Schüler, dass ein Wolf einem Husky ähnlicher ist als einer Katze und eine Katze wiederum einem Auto ähnlicher ist als ein Wolf. Der Schüler minimiert diesen Verlust, hier 1.244, gewöhnlich als gewichtete Summe mit seinem regulären Aufgabenverlust auf den Ground-Truth-Labels. Der Lehrer bleibt während des gesamten Vorgangs eingefroren und führt nur Vorwärtsdurchläufe aus:
Arten der Destillation#
- Ausgabebasiert: Der Schüler gleicht die endgültigen Ausgaben des Lehrers ab, wie beim oben beschriebenen Verfahren mit weichen Zielwerten, und benötigt vom Lehrer nur dessen Logits. DistilBERT kombinierte dieses Verfahren beim Vortraining mit Sprachmodellierungs- und Hidden-State-Verlusten. So wurde BERT um 40 % kleiner und 60 % schneller, während 97 % seines Sprachverständnisses erhalten blieben.
- Merkmalsbasiert: Der Schüler gleicht die Zwischen-Merkmalskarten des Lehrers ab. Ein kleiner, trainierter Projektor überbrückt dabei Unterschiede in der Kanalanzahl. FitNets führten diese „Hinweise“ ein und trainierten einen Schüler mit etwa 10,4-mal weniger Parametern als sein Lehrer, der diesen auf CIFAR-10 übertraf.
- Sequenzbasiert: Ein Sprachmodell als Lehrer erzeugt Text, und der Schüler wird anhand dieser Ausgaben weiter optimiert. DeepSeek optimierte seine auf Qwen2.5 und Llama 3 basierenden destillierten R1-Modelle anhand von 800.000 mit DeepSeek-R1 kuratierten Beispielen.
Merkmalsbasierte Destillation eignet sich für Detektoren, deren Ausgaben aus Tausenden von Boxen und Bewertungen statt aus einer einzelnen Klassenverteilung bestehen. Ultralytics YOLO verwendet dieses Verfahren, wenn beim Training ein Lehrer mit distill_model angegeben wird: Ein eingefrorenes, größeres YOLO26-Modell liefert die drei Merkmalskarten des Halses, die in den Erkennungskopf eingespeist werden. Der Schüler gleicht sie mithilfe von 1×1-Faltungsprojektoren ab. Dafür kommt ein nach der Konfidenz des Lehrers gewichteter L2-Verlust zum Einsatz, der mit dis skaliert wird (standardmäßig 6.0). Auf COCO val2017 erreicht das destillierte YOLO26-Nano-Modell 41.5 mAP50-95, verglichen mit 40.9 für dasselbe Modell ohne Lehrer und bei identischen Inferenzkosten.
from ultralytics import YOLO
# Schüler: das kompakte YOLO26-Nano-Modell, das eingesetzt werden soll
model = YOLO("yolo26n.pt")
# Lehrer: ein größerer YOLO26-Checkpoint, der das Training unterstützt und anschließend verworfen wird
results = model.train(data="coco8.yaml", epochs=5, distill_model="yolo26s.pt")Destillation und verwandte Begriffe#
- Transferlernen: Verwendet die Gewichte eines Modells als Ausgangspunkt für eine neue Aufgabe. Bei der Destillation wird eine andere, gewöhnlich kleinere Architektur darauf trainiert, ein Modell für dieselbe Aufgabe nachzuahmen.
- Modellbeschneidung: Entfernt Gewichte, Kanäle oder Schichten aus einem trainierten Netz. Beschnittene Modelle werden häufig mithilfe einer Destillation durch das ursprüngliche Modell weiter optimiert, um die Genauigkeit wiederherzustellen.
- Modellquantisierung: Speichert Gewichte und Aktivierungen mit geringerer Genauigkeit, etwa als INT8. Dadurch wird dieselbe Architektur verkleinert. Die Quantisierung lässt sich mit Destillation kombinieren, bei der eine kleinere Architektur ausgewählt wird.
- Modellensemble: Mehrere Modelle werden zur Inferenzzeit gemittelt. Der ursprüngliche Anlass für die Entwicklung der Destillation war, ein Ensemble in einem einzelnen Schüler zu destillieren.
- Datensatzdestillation: Trotz des ähnlichen Namens komprimiert sie einen Datensatz statt eines Modells. Wang et al. komprimierten die 60.000 Trainingsbilder von MNIST auf 10 synthetische Bilder, eines pro Klasse. Mit wenigen Gradientenschritten erzielen diese mit einer festgelegten Initialisierung nahezu die ursprüngliche Genauigkeit eines Netzwerks.










