Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Knowledge Distillation

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.

Come funziona la Knowledge Distillation

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)

Applicazioni nel mondo reale

La distillazione della conoscenza è fondamentale nei settori in cui l'efficienza è fondamentale quanto la precisione.

  • Visione artificiale mobile: In scenari che richiedono in tempo reale, come i droni autonomi o le app di realtà aumentata droni autonomi o le applicazioni di realtà aumentata sugli smartphone, la distribuzione di modelli massivi non è fattibile. Gli ingegneri distillano i modelli di rilevamento modelli di rilevamento degli oggetti in versioni efficienti come YOLO11n. Questo garantisce che l'applicazione venga eseguita senza problemi su processori mobili come il Qualcomm Snapdragon senza consumare la batteria e continuando a identificare correttamente gli oggetti. identificare correttamente gli oggetti.
  • Elaborazione del linguaggio naturale (NLP): I modelli linguistici di grandi dimensioni (LLM) sono spesso troppo ingombranti per essere utilizzati direttamente. diretta. La distillazione viene utilizzata per creare versioni più piccole e veloci, come DistilBERT, che mantengono la maggior parte delle capacità di modellazione linguistica dei modelli più grandi. capacità di modellazione linguistica delle loro più grandi. Ciò consente agli assistenti vocali e ai chatbot di operare con una latenza inferiore, offrendo una migliore esperienza all'utente. esperienza dell'utente.

Distinguere i termini di ottimizzazione correlati

È importante differenziare la Distillazione della conoscenza da altre tecniche utilizzate per migliorare l'efficienza dei modelli, in quanto operano su principi diversi.

  • Potatura del modello: Questa tecnica Questa tecnica consiste nel rimuovere fisicamente i neuroni o le connessioni ridondanti (pesi) da una rete addestrata esistente per ridurne le dimensioni. le sue dimensioni. A differenza della distillazione, che addestra una nuova architettura di studenti da zero, la potatura modifica la struttura del modello originale. del modello originale.
  • Quantizzazione del modello: La quantizzazione riduce la precisione dei pesi numerici del modello, ad esempio convertendo i numeri in virgola mobile a 32 bit in numeri interi a 8 bit. in numeri interi a 8 bit. Questo riduce le dimensioni del modello e velocizza il calcolo su hardware come le TPU. TPU, ma non modifica necessariamente l'architettura della rete.
  • Apprendimento per trasferimento: Questo approccio Questo approccio consiste nel prendere un modello pre-addestrato e e di metterlo a punto su un nuovo set di dati per un compito diverso. Sebbene entrambi comportino il trasferimento di conoscenze, l'apprendimento per trasferimento riguarda l'adattamento al dominio (ad esempio, ImageNet alle radiografie mediche), mentre la distillazione si concentra sulla compressione delle conoscenze dello stesso compito da un modello di grandi dimensioni a un modello di grandi dimensioni. radiografie mediche), mentre la distillazione si concentra sulla compressione della conoscenza dello stesso compito da un modello di grandi dimensioni a uno più piccolo.

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.

Unitevi alla comunità di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora