Ottimizza i modelli di IA con la potatura: riduci la complessità, aumenta l'efficienza e implementa 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 prevede l'identificazione e la rimozione di parametri (pesi) o strutture (neuroni, canali o livelli) ridondanti o meno importanti dal modello. 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 implementare modelli di IA complessi in ambienti con risorse limitate, come i dispositivi edge.
Il processo di pruning in genere inizia dopo che un modello di deep learning è stato completamente addestrato. Si basa sul principio che molti modelli di grandi dimensioni sono sovra-parametrizzati, il che significa che contengono molti pesi e neuroni che contribuiscono molto poco alla previsione finale. Un metodo comune per identificare questi componenti non importanti è analizzarne l'entità; i parametri con valori prossimi allo zero sono considerati meno significativi. Una volta identificati, questi parametri vengono rimossi o impostati su zero. Dopo il processo di pruning, la rete, ora più piccola, viene solitamente sottoposta a fine-tuning, che prevede il riaddestramento del modello per alcune epoche in più. Questo passaggio aiuta i parametri rimanenti ad adattarsi ai cambiamenti architetturali e a recuperare qualsiasi prestazione che potrebbe essere stata persa durante il pruning. Questo processo iterativo di pruning e fine-tuning può essere ripetuto per raggiungere un equilibrio desiderato tra le dimensioni del modello e le prestazioni, come descritto in documenti di ricerca fondamentali come "Deep Compression".
Le tecniche di pruning possono essere ampiamente classificate in base a ciò che viene rimosso dalla rete:
I principali framework di machine learning come PyTorch e TensorFlow offrono utilità integrate e tutorial per l'implementazione del pruning.
Il pruning è essenziale per implementare potenti modelli di IA in scenari pratici in cui le risorse computazionali sono limitate.
Il pruning è una delle diverse tecniche di ottimizzazione del modello ed è spesso utilizzato insieme ad altre. È importante distinguerlo dai concetti correlati:
Queste tecniche non si escludono a vicenda. Un flusso di lavoro comune consiste prima nel potare un modello per rimuovere i parametri ridondanti, quindi applicare la quantizzazione al modello potato per la massima efficienza. I modelli ottimizzati possono quindi essere esportati in formati standard come ONNX utilizzando la funzione di esportazione di Ultralytics per un'ampia implementazione su vari inference engine. Piattaforme come Ultralytics HUB possono aiutare a gestire l'intero ciclo di vita, dal training all'implementazione del modello ottimizzato.