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à dei modelli addestrati. Si tratta di rimuovere selettivamente i parametri, come i pesi o le connessioni all'interno di una rete neurale (NN), che sono considerati meno importanti o ridondanti. L'obiettivo principale è quello di creare modelli più piccoli e veloci che richiedano meno potenza di calcolo e memoria, spesso senza un calo significativo della precisione. Questo processo è fondamentale per una distribuzione efficiente dei modelli, soprattutto sui dispositivi con risorse limitate.

Importanza della potatura

Man mano che i modelli di deep learning (DL) diventano più grandi per affrontare compiti complessi, richiedono notevoli risorse computazionali. Il pruning affronta questa sfida rendendo i modelli più leggeri. Questa ottimizzazione riduce i requisiti di archiviazione, diminuisce il consumo di energia e abbassa la latenza di inferenza, fondamentale per gli scenari di inferenza in tempo reale. Il pruning è particolarmente utile per l'implementazione di modelli in ambienti come i dispositivi mobili, i sistemi embedded e le applicazioni di Edge AI, dove l'efficienza è fondamentale.

Applicazioni della potatura

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

  1. Visione artificiale mobile: Ultralytics YOLO I modelli YOLO, spesso utilizzati per il rilevamento degli oggetti sugli smartphone, possono essere ridotti per funzionare in modo efficiente senza consumare la batteria o richiedere una memoria eccessiva. Questo permette di realizzare applicazioni in tempo reale come la realtà aumentata mobile o l'analisi delle immagini sul dispositivo. L'implementazione di un modello potato su un hardware come un Raspberry Pi dotato di una Edge TPUGoogle può accelerare notevolmente le prestazioni, come dimostrato in guide come il tutorial Edge TPU su Raspberry Pi.
  2. Sistemi di guida autonoma: Le auto a guida autonoma si affidano a modelli complessi per compiti come il rilevamento di pedoni e altri veicoli. La riduzione di questi modelli riduce il tempo necessario per prendere decisioni critiche, migliorando la sicurezza e la reattività. I modelli ottimizzati possono essere ulteriormente accelerati grazie a strumenti come NVIDIA TensorRT per l'implementazione sulle GPU comunemente presenti nei veicoli autonomi.

Tipi e tecniche

I metodi di potatura possono variare, ma generalmente rientrano in queste categorie:

  • Potatura non strutturata: Rimuove i singoli pesi in base alla grandezza o all'importanza, dando vita a modelli radi che possono richiedere hardware o software specializzati come DeepSparse diNeural Magic per un'esecuzione efficiente. Ultralytics offre guide all'integrazione di strumenti come Neural Magic.
  • Potatura strutturata: Rimuove intere strutture come filtri, canali o livelli. In questo modo si ottengono modelli più piccoli e densi che in genere sono più facili da distribuire su hardware standard. Maggiori dettagli sugli approcci strutturati si possono trovare in ricerche come quella diNVIDIA sulla sparsità strutturata.

Il pruning può essere applicato in diverse fasi: prima dell'addestramento (determinazione dell'architettura), durante l'addestramento o dopo l'addestramento (perfezionamento di un modello pre-addestrato). Piattaforme come PyTorch forniscono utilità per facilitare varie tecniche di potatura.

Pruning vs. altre tecniche di ottimizzazione

La potatura è una delle tante strategie di ottimizzazione dei modelli. È importante distinguerla dai concetti correlati:

  • Quantizzazione del modello: Riduce la precisione numerica dei pesi del modello (ad esempio, da float a 32 bit a interi a 8 bit), riducendo le dimensioni e velocizzando il calcolo senza rimuovere i parametri.
  • Distillazione della conoscenza: Addestra un modello "studente" più piccolo a replicare l'output di un modello "insegnante" più grande e pre-addestrato.

Queste tecniche non si escludono a vicenda e spesso vengono combinate con la potatura per ottenere la massima efficienza. Per una panoramica più ampia, consulta questa guida all'ottimizzazione dei modelli. I modelli ottimizzati attraverso il pruning possono spesso essere esportati in formati standard come ONNX per una maggiore compatibilità con la distribuzione.

In sintesi, il pruning è una tecnica preziosa per creare modelli di intelligenza artificiale efficienti e adatti a diverse esigenze di utilizzo, contribuendo in modo significativo all'applicazione pratica della computer vision (CV) e di altre attività di ML. Strumenti e piattaforme come Ultralytics HUB spesso incorporano o facilitano questi metodi di ottimizzazione.

Leggi tutto