Glossario

Potatura

Ottimizzate i modelli AI con il pruning: riducete la complessità, aumentate l'efficienza e distribuite più velocemente sui dispositivi edge senza sacrificare le prestazioni.

Il pruning è una tecnica di ottimizzazione del modello utilizzata per ridurre le dimensioni e la complessità computazionale di una rete neurale (NN) addestrata. Il processo consiste nell'identificare e rimuovere dal modello i parametri (pesi) o le strutture (neuroni, canali o strati) ridondanti o meno importanti. L'obiettivo è creare un modello più piccolo, più veloce e più efficiente dal punto di vista energetico, che mantenga un livello di accuratezza paragonabile a quello originale. Questo è particolarmente importante per l'implementazione di modelli di intelligenza artificiale complessi in ambienti con risorse limitate, come i dispositivi edge.

Come funziona la potatura

Il processo di potatura inizia in genere dopo che un modello di deep learning è stato completamente addestrato. Si basa sul principio che molti modelli di grandi dimensioni sono eccessivamente parametrizzati, cioè contengono molti pesi e neuroni che contribuiscono molto poco alla previsione finale. Un metodo comune per identificare questi componenti non importanti è l'analisi della loro grandezza; i parametri con valori prossimi allo zero sono considerati meno significativi. Una volta identificati, questi parametri vengono rimossi o azzerati. Dopo il processo di potatura, la rete, ora più piccola, viene solitamente sottoposta a una messa a punto, che consiste nel riaddestrare il modello per qualche altra epoca. Questa fase aiuta i parametri rimanenti ad adattarsi alle modifiche architettoniche e a recuperare le prestazioni eventualmente perse durante la potatura. Questo processo iterativo di potatura e messa a punto può essere ripetuto per raggiungere l'equilibrio desiderato tra dimensioni del modello e prestazioni, come descritto in documenti di ricerca fondamentali come"Deep Compression".

Tipi di potatura

Le tecniche di potatura possono essere ampiamente classificate in base a ciò che viene rimosso dalla rete:

  • Pruning non strutturato (Weight Pruning): Questo metodo rimuove i singoli pesi dalla rete in base a un criterio specifico, come la loro grandezza. Il risultato è un modello rado, in cui molte connessioni vengono azzerate. Sebbene questo metodo possa ridurre significativamente il numero di parametri, non sempre porta a un'inferenza più rapida su hardware standard come CPU o GPU senza librerie software specializzate, come gli strumenti di NVIDIA per i modelli sparsi.
  • Pruning strutturato: Questo approccio rimuove interi componenti strutturali della rete, come neuroni, canali o addirittura interi strati di una rete neurale convoluzionale (CNN). Poiché rimuove blocchi regolari della rete, riduce direttamente le dimensioni del modello e i requisiti computazionali in un modo che l'hardware standard può facilmente sfruttare, portando spesso ad accelerazioni più prevedibili. Strumenti come DeepSparse di Neural Magic sono progettati per accelerare l'inferenza sulle CPU per questi modelli strutturati sparsi.

I principali framework di apprendimento automatico, come PyTorch e TensorFlow, offrono utilità e tutorial integrati per l'implementazione del pruning.

Applicazioni del mondo reale

Il pruning è essenziale per l'impiego di potenti modelli di intelligenza artificiale in scenari pratici in cui le risorse computazionali sono limitate.

  1. Ottimizzazione del rilevamento di oggetti su dispositivi edge: Modelli come Ultralytics YOLO sono utilizzati per il rilevamento degli oggetti in tempo reale. Potenziando un modello come YOLOv8, è possibile implementarlo su dispositivi edge a basso consumo come Raspberry Pi o NVIDIA Jetson. Ciò consente di realizzare applicazioni come la sorveglianza intelligente su dispositivo, l'ottimizzazione della gestione del traffico e l'integrazione della visione artificiale nella robotica.
  2. Esecuzione di modelli linguistici di grandi dimensioni (LLM) in locale: Il pruning può ridurre drasticamente l'ingombro in memoria dei modelli linguistici di grandi dimensioni (LLM) basati su architetture come Transformer. Un LLM potato può essere eseguito direttamente su uno smartphone o su un computer portatile per attività di elaborazione del linguaggio naturale (NLP) come la sintesi di testi o l'assistenza virtuale locale. In questo modo si migliora la reattività e si aumenta la privacy dei dati mantenendo i dati dell'utente sul dispositivo, un principio fondamentale per organizzazioni come la Electronic Frontier Foundation (EFF).

Pruning e altre tecniche di ottimizzazione

La potatura è una delle varie tecniche di ottimizzazione dei modelli e viene spesso utilizzata insieme ad altre. È importante distinguerla dai concetti correlati:

  • Quantizzazione del modello: Questa tecnica riduce la precisione numerica dei pesi e delle attivazioni del modello (ad esempio, da float a 32 bit a interi a 8 bit). Questo riduce le dimensioni del modello e può accelerare il calcolo, soprattutto su hardware con supporto specializzato. A differenza del pruning, che rimuove i parametri, la quantizzazione li comprime.
  • Distillazione della conoscenza: In questo metodo, un modello "studente" più piccolo viene addestrato per replicare l'output di un modello "insegnante" più grande e pre-addestrato. L'obiettivo è trasferire la conoscenza appresa in un'architettura più compatta, mentre la potatura modifica l'architettura esistente.

Queste tecniche non si escludono a vicenda. Un flusso di lavoro comune è quello di sfrondare prima un modello per rimuovere i parametri ridondanti, quindi applicare la quantizzazione al modello sfrondato per ottenere la massima efficienza. I modelli ottimizzati possono poi essere esportati in formati standard come ONNX utilizzando la funzione di esportazione di Ultralytics per un'ampia distribuzione su vari motori di inferenza. Piattaforme come Ultralytics HUB possono aiutare a gestire l'intero ciclo di vita, dalla formazione alla distribuzione del modello ottimizzato.

Unitevi alla comunità di Ultralytics

Entrate a far parte del futuro dell'IA. Connettetevi, collaborate e crescete con gli innovatori globali.

Iscriviti ora
Link copiato negli appunti