Découvrez comment la distillation des connaissances compresse les modèles d'IA pour une inférence plus rapide, une précision améliorée et une efficacité de déploiement des appareils en périphérie.
La distillation des connaissances est une stratégie d'optimisation de modèle sophistiquée en l'apprentissage automatique où un modèle compact modèle compact "élève" est formé pour reproduire les performances et le comportement d'un modèle "maître" plus grand et plus complexe. "plus complexe. L'objectif principal est de transférer les capacités de généralisation et les "connaissances" du réseau lourd de l'enseignant vers le réseau plus léger de l'étudiant. du réseau lourd de l'enseignant au réseau plus léger de l'étudiant. Ce processus permet de déployer des modèles très précis précis sur du matériel aux ressources limitées, comme les tels que les dispositifs informatiques périphériques, sans subir les sans subir les baisses significatives de précision qui accompagnent généralement les architectures plus petites. En comprimant les informations, les développeurs peuvent obtenir une latence d'inférence plus rapide et une l'utilisation de la mémoire tout en conservant une puissance prédictive robuste.
Le processus repose sur le concept des "étiquettes souples". Dans l'apprentissage supervisé standard, les modèles sont formés sur des sur les "étiquettes dures" des données d'apprentissage (par exemple, une image est à 100 % un "chat" et à 0 % un "chien"), une image est à 100 % un "chat" et à 0 % un "chien"). Cependant, un modèle d'enseignant pré-entraîné produit des des distributions de probabilités, appelées "étiquettes souples", pour toutes les classes. Par exemple, l'enseignant peut prédire qu'une image est composée à 90 % de chats, à 9 % de chiens et à 1 % de voitures. Ces étiquettes souples contiennent de nombreuses informations sur les relations entre les classes. classes, en indiquant que le chat en question ressemble un peu à un chien.
Pendant la distillation, le modèle de l'étudiant est entraîné à minimiser la différence entre ses prédictions et les étiquettes souples de l'enseignant. de l'enseignant, souvent à l'aide d'une fonction de perte spécifique comme la divergence de Kullback-Leibler. Cela permet à l'étudiant d'apprendre les "connaissances obscures". Cela permet à l'étudiant d'apprendre les "connaissances obscures" ou la structure nuancée des données que l'enseignant a déjà découvertes. l'enseignant a déjà découvert. Pour une compréhension fondamentale, les chercheurs se réfèrent souvent à l 'article fondateur de Geoffrey Hinton sur le sujet.
Bien que les bibliothèques gèrent généralement les calculs de perte complexes en interne, l'initialisation d'un modèle d'étudiant pour la formation
est la première étape pratique. Voici comment vous pourriez charger un modèle étudiant léger tel que
YOLO11 en utilisant le ultralytics l'emballage :
from ultralytics import YOLO
# Load a lightweight student model (YOLO11n)
# 'n' stands for nano, the smallest and fastest version
student_model = YOLO("yolo11n.pt")
# Train the student model on a dataset
# In a distillation workflow, this training would be guided by a teacher model's outputs
results = student_model.train(data="coco8.yaml", epochs=5, imgsz=640)
La distillation des connaissances est essentielle dans les secteurs où l'efficacité est aussi cruciale que la précision.
Il est important de différencier la distillation des connaissances des autres techniques utilisées pour améliorer l'efficacité des modèles, car elles fonctionnent sur des principes différents. car elles reposent sur des principes différents.
En combinant ces techniques - par exemple, en distillant un enseignant en un élève, puis en appliquant la quantification - les développeurs peuvent maximiser les performances des systèmes intégrés. peuvent maximiser les performances des systèmes embarqués.