Découvrez comment la distillation des connaissances transfère l'intelligence des grands enseignants vers des élèves compacts. Optimisez Ultralytics pour un déploiement rapide et efficace en périphérie.
La distillation des connaissances est une technique sophistiquée d' apprentissage automatique dans laquelle un réseau neuronal compact, appelé « élève », est entraîné à reproduire le comportement et les performances d'un réseau plus grand et plus complexe, appelé « enseignant ». L'objectif principal de ce processus est l' optimisation des modèles, permettant aux développeurs de transférer les capacités prédictives d'architectures lourdes vers des modèles légers adaptés à un déploiement sur du matériel aux ressources limitées. En capturant les informations riches encodées dans les prédictions du professeur, le modèle élève atteint souvent une précision nettement supérieure à celle qu'il aurait obtenue s'il avait été formé uniquement à partir des données brutes, comblant ainsi efficacement le fossé entre haute performance et efficacité.
Dans l'apprentissage supervisé traditionnel, les modèles sont entraînés à l'aide d'« étiquettes rigides » issues des données d'entraînement, où une image est catégorisée de manière définitive (par exemple, 100 % « chien » et 0 % « chat »). Cependant, un modèle enseignant pré-entraîné produit une sortie via une fonction softmax qui attribue des probabilités à toutes les classes. Ces distributions de probabilité sont appelées « étiquettes souples » ou « connaissances obscures ».
Par exemple, si un modèle enseignant analyse l'image d'un loup, il peut prédire 90 % de loup, 9 % de chien et 1 % de chat. Cette distribution révèle que le loup partage des caractéristiques visuelles avec un chien, un contexte que l'étiquette dure ignore. Au cours du processus de distillation, l'élève minimise une fonction de perte, telle que la divergence de Kullback-Leibler, afin d'aligner ses prédictions sur les étiquettes souples du professeur. Cette méthode, popularisée par les recherches de Geoffrey Hinton, aide l'élève à mieux généraliser et réduit le surajustement sur les petits ensembles de données.
La distillation des connaissances est essentielle dans les secteurs où les ressources informatiques sont rares, mais où des performances élevées sont indispensables.
Il est important de différencier la distillation des connaissances des autres stratégies de compression, car elles modifient les modèles de manière fondamentalement différente.
Dans un flux de travail pratique, vous sélectionnez d'abord une architecture légère qui servira d'élève. Ultralytics peut être utilisée pour gérer les ensembles de données et track expériences d'entraînement de ces modèles efficaces. Vous trouverez ci-dessous un exemple d'initialisation d'un modèle YOLO26 compact, qui est idéal pour un déploiement en périphérie et qui sert de réseau élève :
from ultralytics import YOLO
# Load a lightweight YOLO26 nano model (acts as the student)
# The 'n' suffix denotes the nano version, optimized for speed
student_model = YOLO("yolo26n.pt")
# Train the model on a dataset
# In a custom distillation loop, the loss would be influenced by a teacher model
results = student_model.train(data="coco8.yaml", epochs=5, imgsz=640)