Glossario

Potatura

Ottimizza i modelli AI con il pruning: riduci la complessità, aumenta l'efficienza e distribuisci più velocemente sui dispositivi edge senza sacrificare le prestazioni.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

Il pruning è una tecnica di ottimizzazione dei modelli utilizzata nell'intelligenza artificiale (AI) e nell'apprendimento automatico (ML) per ridurre le dimensioni e la complessità computazionale dei modelli addestrati. Si tratta di rimuovere selettivamente i parametri, come i pesi o le connessioni all'interno di una rete neurale (NN), che vengono identificati come meno importanti o ridondanti per il compito del modello. L'obiettivo principale è quello di creare modelli più piccoli e veloci che richiedano meno risorse computazionali e memoria, idealmente senza una diminuzione significativa delle prestazioni o dell'accuratezza. Questo processo è una parte fondamentale per una distribuzione efficiente dei modelli, soprattutto su dispositivi con capacità limitate. Mentre "Pruning" è il termine generale,"Model Pruning" si riferisce specificamente all'applicazione di questa tecnica ai modelli ML.

Importanza della potatura

Man mano che i modelli di deep learning (DL) diventano sempre più grandi e complessi per affrontare compiti sofisticati, la loro richiesta di potenza di calcolo, memoria ed energia aumenta in modo significativo. Il pruning affronta direttamente questa sfida rendendo i modelli più leggeri ed efficienti. Questa ottimizzazione porta a diversi vantaggi: riduzione del fabbisogno di memoria, riduzione del consumo energetico durante il funzionamento e riduzione della latenza di inferenza, che è fondamentale per le applicazioni che richiedono un'inferenza in tempo reale. Il pruning è particolarmente utile per l'implementazione di modelli in ambienti con risorse limitate, come i dispositivi mobili, i sistemi embedded e vari scenari di Edge AI in cui l'efficienza è una preoccupazione primaria. Può anche aiutare a ridurre l'overfitting semplificando il modello.

Applicazioni della potatura

Le tecniche di potatura sono ampiamente applicate in numerosi ambiti dell'intelligenza artificiale. Ecco due esempi concreti:

  1. Distribuzione di modelli di rilevamento di oggetti su dispositivi edge: Un Ultralytics YOLO Il modello addestrato per il rilevamento degli oggetti potrebbe essere troppo grande o lento per essere utilizzato su un dispositivo a basso consumo come un Raspberry Pi o una Google Edge TPU. Il pruning può ridurre le dimensioni e il carico di calcolo del modello, consentendogli di funzionare efficacemente su questo tipo di hardware per attività come i sistemi di sicurezza o il monitoraggio della fauna locale. Consulta guide come il tutorial Edge TPU su Raspberry Pi o la guidaNVIDIA Jetson per esempi di implementazione.
  2. Ottimizzazione dei modelli per i sistemi autonomi: Nei veicoli autonomi, i modelli di percezione complessi per compiti come la segmentazione delle immagini o la fusione dei sensori devono funzionare con una latenza minima. Il pruning aiuta a ottimizzare queste reti neurali convoluzionali (CNN) per soddisfare i severi requisiti di elaborazione in tempo reale, garantendo un funzionamento sicuro e reattivo del veicolo. Framework come NVIDIA TensorRT spesso supportano modelli potati per ottimizzare l'inferenza.

Tipi e tecniche

I metodi di potatura variano, ma in genere rientrano in queste categorie principali:

  • Potatura non strutturata: Si tratta di rimuovere singoli pesi o neuroni in base a criteri come la bassa magnitudine o il contributo all'output. Si ottengono così modelli radi con schemi irregolari di connessioni rimosse. Sebbene possano raggiungere tassi di compressione elevati, questi modelli possono richiedere hardware o librerie software specializzate (come DeepSparse diNeural Magic) per un'esecuzione efficiente. Consulta l'integrazioneNeural Magic di Ultralytics .
  • Potatura strutturata: Questa tecnica rimuove interi componenti strutturali della rete, come filtri, canali o addirittura strati. In questo modo viene mantenuta una struttura regolare, rendendo il modello potato più compatibile con gli acceleratori hardware e le librerie standard come il supporto alla sparsità strutturata diNVIDIA.

Il pruning può essere implementato in diverse fasi: prima dell'addestramento (influenzando la progettazione dell'architettura), durante il processo di addestramento o dopo l'addestramento su un modello pre-addestrato, spesso seguito da una messa a punto per recuperare l'accuratezza persa. I principali framework di deep learning come PyTorch e TensorFlow forniscono strumenti e tutorial, come il PyTorch Pruning Tutorial, per implementare varie strategie di potatura.

Pruning vs. altre tecniche di ottimizzazione

La potatura è una delle tante tecniche utilizzate per l'ottimizzazione dei modelli. È utile distinguerla dai concetti correlati:

  • Quantizzazione del modello: Riduce la precisione dei pesi e delle attivazioni del modello (ad esempio, da 32 bit float a 8 bit interi), riducendo le dimensioni del modello e spesso accelerando il calcolo, soprattutto su hardware specializzato.
  • Distillazione della conoscenza: Si tratta di addestrare un modello "studente" più piccolo per imitare il comportamento di un modello "insegnante" più grande e pre-addestrato, trasferendo la conoscenza senza ereditare la complessità.

Queste tecniche non si escludono a vicenda e vengono spesso utilizzate in combinazione con il pruning per raggiungere livelli di ottimizzazione maggiori. Ad esempio, un modello potrebbe essere prima potato e poi quantizzato per ottenere la massima efficienza. I modelli ottimizzati possono spesso essere esportati in formati standard quali ONNX utilizzando strumenti come la funzione di esportazione di Ultralytics per ottenere un'ampia compatibilità con i diversi motori di inferenza.

In sintesi, il pruning è una tecnica potente per la creazione di modelli di intelligenza artificiale efficienti e adatti a diverse esigenze di implementazione, svolgendo un ruolo significativo nell'applicazione pratica della computer vision (CV) e di altre attività di ML. Piattaforme come Ultralytics HUB forniscono strumenti e infrastrutture, tra cui il cloud training, che possono facilitare lo sviluppo e l'ottimizzazione di modelli quali YOLOv8 o YOLO11.

Leggi tutto