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.
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".
Le tecniche di potatura possono essere ampiamente classificate in base a ciò che viene rimosso dalla rete:
I principali framework di apprendimento automatico, come PyTorch e TensorFlow, offrono utilità e tutorial integrati per l'implementazione del pruning.
Il pruning è essenziale per l'impiego di potenti modelli di intelligenza artificiale in scenari pratici in cui le risorse computazionali sono limitate.
La potatura è una delle varie tecniche di ottimizzazione dei modelli e viene spesso utilizzata insieme ad altre. È importante distinguerla dai concetti correlati:
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.