Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Pruning

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.

Come funziona il pruning

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".

Tipi di pruning

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

  • Potatura non strutturata (Weight Pruning): Questo metodo rimuove i singoli pesi dalla rete in base a un criterio specifico, come la loro grandezza. Ciò si traduce in un modello sparso, in cui molte connessioni vengono azzerate. Sebbene ciò possa ridurre significativamente il numero di parametri, potrebbe non sempre portare a un'inferenza più rapida su hardware standard come CPU o GPU senza librerie software specializzate, come gli strumenti di NVIDIA per modelli sparsi.
  • Pruning strutturale: Questo approccio rimuove interi componenti strutturali della rete, come neuroni, canali o persino interi livelli all'interno 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 a accelerazioni più prevedibili. Strumenti come DeepSparse di Neural Magic sono progettati per accelerare l'inferenza sulle CPU per tali modelli sparsi strutturati.

I principali framework di machine learning come PyTorch e TensorFlow offrono utilità integrate e tutorial per l'implementazione del pruning.

Applicazioni nel mondo reale

Il pruning è essenziale per implementare potenti modelli di IA in scenari pratici in cui le risorse computazionali sono limitate.

  1. Ottimizzazione dell'object detection su dispositivi edge: Modelli come Ultralytics YOLO vengono utilizzati per l'object detection in tempo reale. Attraverso il pruning di un modello come YOLOv8, è possibile implementarlo su dispositivi edge a basso consumo energetico come un Raspberry Pi o NVIDIA Jetson. Ciò consente applicazioni come la sorveglianza intelligente on-device, l'ottimizzazione della gestione del traffico e l'integrazione della computer vision nella robotica.
  2. Esecuzione locale di modelli linguistici di grandi dimensioni (LLM): La potatura può ridurre drasticamente l'impronta di memoria dei modelli linguistici di grandi dimensioni (LLM) basati su architetture come il Transformer. Un LLM potato può essere eseguito direttamente su uno smartphone o un laptop per attività di elaborazione del linguaggio naturale (NLP) come la sintesi del testo o gli assistenti virtuali locali. Ciò migliora la reattività e aumenta la privacy dei dati mantenendo i dati dell'utente sul dispositivo, un principio chiave per organizzazioni come la Electronic Frontier Foundation (EFF).

Pruning vs. Altre tecniche di ottimizzazione

Il pruning è una delle diverse tecniche di ottimizzazione del modello ed è spesso utilizzato insieme ad altre. È importante distinguerlo dai concetti correlati:

  • Model Quantization: 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). Ciò 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.
  • Knowledge Distillation: In questo metodo, un modello "studente" più piccolo viene addestrato per replicare l'output di un modello "docente" più grande e pre-addestrato. L'obiettivo è trasferire le conoscenze apprese a un'architettura più compatta, mentre il pruning modifica l'architettura esistente.

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.

Unisciti alla community di Ultralytics

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

Iscriviti ora
Link copiato negli appunti