Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Model Pruning

Scopri come il model pruning riduce le dimensioni e la complessità delle reti neurali per l'Edge AI. Esplora le strategie per ottimizzare Ultralytics per un'inferenza più rapida sui dispositivi mobili.

Il model pruning è una tecnica utilizzata nell'apprendimento automatico per ridurre le dimensioni e la complessità computazionale di una rete neurale rimuovendo sistematicamente i parametri non necessari. Proprio come un giardiniere pota i rami morti o troppo cresciuti per favorire la crescita di un albero, gli sviluppatori potano le reti artificiali per renderle più veloci, più piccole e più efficienti dal punto di vista energetico. Questo processo è essenziale per implementare moderne architetture di deep learning su dispositivi con risorse limitate, come smartphone, sensori integrati e hardware di edge computing.

Come funziona la potatura modello

L'idea alla base del pruning è che le reti neurali profonde sono spesso "sovraparametrizzate", ovvero contengono un numero significativamente maggiore di weights and biases rispetto a quelli strettamente necessari per risolvere un problema specifico. Durante il processo di addestramento, il modello apprende un numero enorme di connessioni, ma non tutte contribuiscono in egual misura al risultato finale. Gli algoritmi di potatura analizzano il modello addestrato per identificare queste connessioni ridondanti o non informative, in genere quelle con pesi vicini allo zero, e le rimuovono.

Il ciclo di vita di un modello potato segue generalmente questi passaggi:

  1. Formazione: un modello di grandi dimensioni viene addestrato alla convergenza per acquisire caratteristiche complesse.
  2. Potatura: i parametri di bassa importanza vengono impostati a zero o fisicamente rimossi dalla struttura della rete .
  3. Messa a punto: il modello viene sottoposto a un secondo ciclo di messa a punto per consentire ai parametri rimanenti di adattarsi e recuperare l'accuratezza persa durante la fase di potatura .

Questa metodologia è spesso associata all' ipotesi del biglietto della lotteria, che suggerisce che le reti dense contengono sottoreti più piccole e isolate (biglietti vincenti) che possono raggiungere un'accuratezza paragonabile al modello originale se addestrate in modo isolato.

Tipi di strategie di potatura

I metodi di potatura sono generalmente classificati in base alla struttura dei componenti che vengono rimossi.

  • Potatura non strutturata: questo approccio rimuove i singoli pesi in qualsiasi punto del modello in base a una soglia (ad esempio, la grandezza). Sebbene ciò riduca efficacemente il numero di parametri, si ottengono matrici sparse che possono essere difficili da elaborare in modo efficiente con l'hardware standard . Senza software specializzati o acceleratori hardware, la potatura non strutturata potrebbe non comportare miglioramenti significativi in termini di velocità.
  • Potatura strutturata: questo metodo rimuove intere strutture geometriche, come canali, filtri o livelli all'interno di una rete neurale convoluzionale (CNN). Preservando la struttura a matrice densa, il modello potato rimane compatibile con la GPU e CPU , portando a miglioramenti diretti nella latenza di inferenza e nel throughput.

Applicazioni nel mondo reale

La potatura è un fattore critico per l'Edge AI, in quanto consente l' esecuzione di modelli sofisticati in ambienti in cui la connettività cloud non è disponibile o è troppo lenta.

  • Rilevamento di oggetti mobili: le applicazioni su dispositivi mobili, come la traduzione linguistica in tempo reale o la realtà aumentata, utilizzano modelli potati per preservare la durata della batteria e ridurre l' utilizzo della memoria. Le architetture ottimizzate come YOLO26 sono spesso le basi preferite per questi compiti grazie alla loro intrinseca efficienza.
  • Sicurezza automobilistica: le auto a guida autonoma e i veicoli autonomi richiedono decisioni in frazioni di secondo . I modelli potati consentono ai computer di bordo di elaborare immagini ad alta risoluzione provenienti dalle telecamere per il rilevamento dei pedoni senza la latenza indotta dalla trasmissione dei dati a un server.
  • IoT industriale: nel settore manifatturiero, i sistemi di ispezione visiva sulle linee di assemblaggio utilizzano modelli leggeri per detect . Il pruning garantisce che questi sistemi possano funzionare su microcontrollori economici piuttosto che su costosi rack di server.

Potatura vs. tecniche di ottimizzazione correlate

Sebbene il model pruning sia uno strumento potente, viene spesso confuso con altre tecniche di ottimizzazione dei modelli o utilizzato insieme ad esse .

  • Potatura vs. quantizzazione: la potatura riduce il numero di parametri (connessioni) nel modello. Al contrario, la quantizzazione del modello riduce la precisione di tali parametri, ad esempio convertendo i numeri in virgola mobile a 32 bit in interi a 8 bit . Entrambe le tecniche vengono spesso combinate per massimizzare l'efficienza dell' implementazione del modello.
  • Potatura vs. Distillazione della conoscenza: la potatura modifica il modello originale tagliandone alcune parti. La distillazione della conoscenza comporta l'addestramento di un modello "allievo" completamente nuovo e più piccolo per imitare il comportamento di un modello "insegnante" più grande.

Esempio di implementazione

Il seguente Python mostra come applicare il pruning non strutturato a un livello convoluzionale utilizzando PyTorch. Si tratta di un passaggio comune prima di esportare i modelli in formati ottimizzati come ONNX.

import torch
import torch.nn as nn
import torch.nn.utils.prune as prune

# Initialize a standard convolutional layer
module = nn.Conv2d(in_channels=1, out_channels=20, kernel_size=3)

# Apply unstructured pruning to remove 30% of the connections
# This sets the weights with the lowest L1-norm to zero
prune.l1_unstructured(module, name="weight", amount=0.3)

# Calculate and print the sparsity (percentage of zero elements)
sparsity = 100.0 * float(torch.sum(module.weight == 0)) / module.weight.nelement()
print(f"Layer Sparsity: {sparsity:.2f}%")

Per gli utenti che desiderano gestire l'intero ciclo di vita dei propri set di dati e modelli, inclusi formazione, valutazione e implementazione, la Ultralytics offre un'interfaccia semplificata. Essa semplifica il processo di creazione di modelli altamente ottimizzati come YOLO26 e la loro esportazione in formati compatibili con l'hardware, come TensorRT TensorRT o CoreML.

Unitevi alla comunità di Ultralytics

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

Iscriviti ora