Glossario

Distillazione della conoscenza

Scopri come la Distillazione della Conoscenza comprime i modelli di intelligenza artificiale per velocizzare l'inferenza, migliorare l'accuratezza e rendere più efficiente l'implementazione dei dispositivi edge.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

La distillazione della conoscenza è una tecnica di compressione dei modelli utilizzata nell'apprendimento automatico per trasferire la conoscenza da un modello complesso e di grandi dimensioni (il "maestro") a un modello più piccolo e semplice (lo "studente"). L'obiettivo è addestrare il modello studente per ottenere prestazioni paragonabili a quelle del modello insegnante, anche se lo studente ha meno parametri ed è computazionalmente meno costoso. Questo è particolarmente utile per distribuire i modelli su dispositivi con risorse limitate o in applicazioni che richiedono tempi di inferenza rapidi.

Come funziona la distillazione della conoscenza

L'idea alla base della Distillazione della Conoscenza è quella di utilizzare i risultati morbidi (probabilità) del modello insegnante come obiettivi di formazione per il modello studente, in aggiunta o al posto delle etichette rigide (verità a terra). I modelli dell'insegnante, spesso pre-addestrati su vasti set di dati, sono in grado di cogliere relazioni complesse nei dati e di generalizzare bene. Imparando da questi obiettivi morbidi, il modello dello studente può apprendere informazioni più ricche di quelle che otterrebbe imparando solo dalle etichette rigide. Questo processo spesso prevede l'utilizzo di una "temperatura" più alta nella funzione softmax durante l'inferenza dell'insegnante per ammorbidire la distribuzione di probabilità, fornendo informazioni più sfumate allo studente.

Vantaggi e applicazioni

La distillazione della conoscenza offre diversi vantaggi, che la rendono una tecnica preziosa in varie applicazioni di IA:

  • Compressione del modello: Permette di creare modelli più piccoli ed efficienti, adatti all'impiego su dispositivi periferici con risorse computazionali limitate, come i telefoni cellulari o i sistemi embedded. Questo è fondamentale per applicazioni come il rilevamento di oggetti in tempo reale su dispositivi come Raspberry Pi o NVIDIA Jetson.
  • Miglioramento della generalizzazione: I modelli degli studenti addestrati con la Distillazione della Conoscenza spesso mostrano prestazioni di generalizzazione migliori rispetto ai modelli addestrati solo su etichette rigide. Possono imparare dalle rappresentazioni apprese dall'insegnante, migliorando l'accuratezza e la robustezza.
  • Inferenza più veloce: Modelli più piccoli portano naturalmente a tempi di inferenza più rapidi, il che è essenziale per applicazioni in tempo reale come la guida autonoma, l'automazione dei processi robotici (RPA) e i sistemi di sicurezza.

Le applicazioni reali della Distillazione della Conoscenza sono molto diffuse:

  • Elaborazione del linguaggio naturale (NLP): in NLP, la distillazione della conoscenza può essere utilizzata per comprimere modelli linguistici di grandi dimensioni come GPT-3 o BERT in modelli più piccoli ed efficienti per l'implementazione mobile o edge. Ad esempio, un modello distillato può alimentare l'analisi del sentiment sui dispositivi mobili senza richiedere la connettività al cloud.
  • Computer Vision: Ultralytics YOLOv8 o modelli simili di rilevamento degli oggetti possono essere distillati per essere utilizzati in applicazioni in tempo reale su dispositivi edge. Ad esempio, nelle città intelligenti, i modelli distillati possono essere utilizzati per il monitoraggio e la gestione efficiente del traffico, eseguiti direttamente sui dispositivi di edge computing agli incroci. Un'altra applicazione è quella dell'analisi delle immagini mediche, dove i modelli distillati possono fornire una diagnosi preliminare più rapida presso il punto di cura.

Distillazione della conoscenza vs. potatura e quantizzazione del modello

La Distillazione della Conoscenza è una tecnica di compressione del modello, ma è diversa da altri metodi come la potatura del modello e la quantizzazione del modello. Il model pruning riduce le dimensioni di un modello eliminando le connessioni (pesi) meno importanti, mentre la quantizzazione del modello riduce la precisione dei pesi del modello per utilizzare meno memoria e calcoli. La distillazione della conoscenza, invece, addestra un nuovo modello più piccolo partendo da zero e utilizzando le conoscenze di un modello più grande. Queste tecniche possono anche essere combinate; ad esempio, un modello distillato può essere ulteriormente sfrondato o quantizzato per ottenere una compressione e un'efficienza ancora maggiori. Strumenti come Model Compression Toolkit (MCT) di Sony e OpenVINO possono essere utilizzati per ottimizzare ulteriormente i modelli dopo la distillazione per l'implementazione su strada.

Leggi tutto