Glossario

Modello di potatura

Ottimizza i modelli di apprendimento automatico con il model pruning. Ottieni un'inferenza più veloce, un uso ridotto della memoria e un'efficienza energetica per le implementazioni con risorse limitate.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

Il model pruning è una tecnica di apprendimento automatico (ML) utilizzata per ottimizzare i modelli addestrati riducendone le dimensioni e la complessità. Si tratta di identificare e rimuovere i parametri meno importanti, come i pesi del modello o le connessioni all'interno di una rete neurale (NN), che contribuiscono minimamente alle prestazioni complessive del modello. L'obiettivo primario è quello di creare modelli più piccoli e veloci che richiedano meno potenza di calcolo e memoria, spesso senza un calo significativo dell'accuratezza. Questo processo è un'applicazione specifica del concetto più ampio di pruning applicato direttamente ai modelli ML, rendendoli più efficienti per la distribuzione.

Perché usare il Model Pruning?

La principale motivazione per la potatura dei modelli è l'efficienza. I moderni modelli di deep learning (DL), soprattutto in campi come la computer vision (CV), possono essere estremamente grandi e ad alta intensità di calcolo. Questo pone delle sfide per la distribuzione dei modelli, in particolare su dispositivi con risorse limitate come smartphone, sistemi embedded o scenari di edge computing. Il pruning dei modelli aiuta a risolvere questi problemi:

  • Riduzione delle dimensioni dei modelli: I modelli più piccoli richiedono meno spazio di archiviazione, il che è fondamentale per i dispositivi con una capacità di memoria limitata come quelli utilizzati nell'Edge AI.
  • Aumento della velocità di inferenza: Meno parametri significano meno calcoli, con conseguente riduzione della latenza di inferenza e capacità di inferenza in tempo reale, essenziale per applicazioni come i veicoli autonomi. L'AppUltralytics HUB beneficia di queste ottimizzazioni per la distribuzione mobile.
  • Riduzione del consumo energetico: La riduzione del carico di calcolo si traduce in un minor consumo energetico, contribuendo a rendere più sostenibili le pratiche di intelligenza artificiale e a prolungare la durata della batteria dei dispositivi mobili.
  • Migliorare la generalizzazione: A volte, la potatura può aiutare a ridurre l'overfitting rimuovendo i parametri ridondanti, migliorando potenzialmente le prestazioni del modello su dati non visti.

Tipi di potatura del modello

Le tecniche di potatura dei modelli variano, ma in genere si dividono in categorie basate sulla granularità degli elementi rimossi:

  • Potenziamento dei pesi (non strutturato): I singoli pesi al di sotto di una certa soglia di importanza (spesso basata sulla magnitudo) vengono rimossi (impostati a zero). Questo può portare a modelli sparsi, ma può richiedere hardware o software specializzato come gli strumenti diNVIDIA per i modelli sparsi per ottenere una velocità ottimale.
  • Pruning dei neuroni: Interi neuroni (e le loro connessioni) ritenuti non importanti vengono rimossi dalla rete.
  • Pruning di filtri/canali (strutturato): Vengono rimossi interi filtri o canali nelle reti neurali convoluzionali (CNN). Questo approccio di potatura strutturato spesso porta a velocizzazioni più dirette sull'hardware standard senza bisogno di librerie specializzate. Strumenti come DeepSparse diNeural Magic sfruttano la sparsità per l'accelerazione CPU , spesso combinata con il pruningYOLOv5 tutorialYOLOv5 con Neural Magic ).

La potatura può avvenire dopo che il modello è stato completamente addestrato o essere integrata nel processo di addestramento. Dopo la potatura, i modelli sono in genere sottoposti a una messa a punto (ulteriore addestramento sull'architettura più piccola) per recuperare le prestazioni perse durante la rimozione dei parametri. Framework come PyTorch forniscono utility per implementare vari metodi di potatura, come mostrato nel tutorialPyTorch Pruning.

Applicazioni del mondo reale

La potatura dei modelli è utile in molti ambiti dell'intelligenza artificiale:

  1. Ottimizzazione del rilevamento di oggetti su dispositivi edge: Modelli come Ultralytics YOLO utilizzati per il rilevamento degli oggetti possono essere ridotti per essere eseguiti in modo efficiente su hardware con risorse limitate come Raspberry Pi, Edge TPU diGoogle o NVIDIA Jetson. Questo permette di realizzare applicazioni come la sorveglianza su dispositivo, il monitoraggio del traffico(blog sull'ottimizzazione della gestione del traffico) o la navigazione robotica(blog sull'integrazione del CV nella robotica).
  2. Distribuzione locale di modelli linguistici di grandi dimensioni (LLM): Le tecniche di potatura possono ridurre significativamente le dimensioni di modelli di grandi dimensioni come quelli basati sull'architettura Transformer, consentendo loro di essere eseguiti direttamente sui dispositivi degli utenti (ad esempio, smartphone) per attività come l'elaborazione del linguaggio naturale (NLP) senza una costante connettività al cloud. Questo migliora la privacy dei dati e riduce la latenza per applicazioni come la traduzione on-device o gli assistenti intelligenti.

Pruning vs. altre tecniche di ottimizzazione

Il model pruning è una delle tante tecniche utilizzate per l'ottimizzazione dei modelli. È distinta da, ma spesso complementare a:

  • Quantizzazione del modello: Riduce la precisione numerica dei pesi e delle attivazioni del modello (ad esempio, da float a 32 bit a interi a 8 bit), riducendo le dimensioni del modello e accelerando il calcolo, soprattutto su hardware con supporto specializzato come TensorRT.
  • Distillazione della conoscenza: Addestra un modello "studente" più piccolo a imitare il comportamento di un modello "insegnante" più grande e pre-addestrato. L'obiettivo è quello di trasferire la conoscenza dal modello grande a uno più compatto.

Queste tecniche possono essere combinate; ad esempio, un modello può essere prima sfrondato e poi quantizzato per ottenere la massima efficienza. I modelli ottimizzati vengono spesso esportati in formati standard quali ONNXUltralytics opzioni di esportazioneUltralytics ) per un'ampia compatibilità di distribuzione. Piattaforme come Ultralytics HUB forniscono ambienti per la gestione dei modelli, dei set di dati(come COCO) e per semplificare il percorso verso la distribuzione ottimizzata.

Leggi tutto