Scopri come la Knowledge Distillation comprime i modelli di IA per un'inferenza più rapida, una maggiore precisione e un'efficienza di implementazione dei dispositivi edge.
La distillazione della conoscenza è una sofisticata strategia di ottimizzazione dei modelli in nell'apprendimento automatico, in cui un modello modello "studente" compatto viene addestrato per riprodurre le prestazioni e il comportamento di un modello "insegnante" più grande e complesso. modello "insegnante" più grande e complesso. L'obiettivo principale è quello di trasferire le capacità di generalizzazione e la "conoscenza" dalla rete pesante dell'insegnante alla rete leggera dello studente. Questo processo consente di distribuire modelli altamente accurati modelli altamente accurati su hardware con risorse limitate, come i dispositivi di dispositivi di edge computing, senza subire le senza subire i significativi cali di accuratezza che di solito accompagnano le architetture più piccole. Comprimendo le informazioni, gli sviluppatori possono ottenere una latenza di inferenza più rapida e un di memoria, pur mantenendo una solida capacità predittiva.
Il processo si basa sul concetto di "etichette morbide". Nell'apprendimento apprendimento supervisionato, i modelli vengono addestrati su "etichette dure" dai dati di addestramento (ad es, un'immagine è al 100% un "gatto" e allo 0% un "cane"). Tuttavia, un modello insegnante pre-addestrato produce distribuzioni di probabilità, note come etichette morbide, per tutte le classi. Ad esempio, l'insegnante potrebbe prevedere che un'immagine è al 90% un gatto, al 9% un cane e all'1% un'automobile. Queste etichette morbide contengono informazioni ricche sulle relazioni tra le classi. classi, come ad esempio il fatto che un gatto specifico assomiglia in qualche modo a un cane.
Durante la distillazione, il modello dello studente viene addestrato a minimizzare la differenza tra le sue previsioni e le soft label dell'insegnante, spesso utilizzando specifiche etichette. etichette morbide dell'insegnante, spesso utilizzando una funzione di perdita come la divergenza di Kullback-Leibler. Questo Questo permette allo studente di apprendere la "conoscenza oscura" o la struttura sfumata dei dati che l'insegnante ha già scoperto. scoperto dall'insegnante. Per una comprensione fondamentale, i ricercatori fanno spesso riferimento a Geoffrey Hinton, il documento fondamentale sull'argomento.
Mentre le librerie in genere gestiscono internamente i complessi calcoli delle perdite, l'inizializzazione di un modello studente per l'addestramento
è il primo passo pratico. Ecco come si potrebbe caricare un modello studente leggero come
YOLO11 utilizzando il ultralytics pacchetto:
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 distillazione della conoscenza è fondamentale nei settori in cui l'efficienza è fondamentale quanto la precisione.
È importante differenziare la Distillazione della conoscenza da altre tecniche utilizzate per migliorare l'efficienza dei modelli, in quanto operano su principi diversi.
Combinando queste tecniche - ad esempio, distillando un insegnante in uno studente e applicando poi la quantizzazione - gli sviluppatori possono massimizzare le prestazioni dei sistemi embedded. possono massimizzare le prestazioni sui sistemi embedded.