Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Model Pruning

Il pruning del modello rimuove pesi, filtri o livelli poco importanti da una rete neurale per ridurne dimensioni e calcoli. Pruning non strutturato e strutturato, con codice.

Il pruning dei modelli rimuove i parametri che contribuiscono poco all'output di una rete neurale addestrata, dai singoli pesi fino a filtri, teste di attenzione o layer interi, per rendere il modello più piccolo ed economico da eseguire. La maggior parte delle reti è sovraparametrizzata, quindi è possibile rimuovere una grande parte dei pesi con una perdita minima di accuratezza, soprattutto se in seguito il modello viene sottoposto a fine-tuning. Un metodo di pruning e riaddestramento del 2015 ha ridotto AlexNet da 61 milioni a 6,7 milioni di parametri e VGG-16 da 138 milioni a 10,3 milioni, senza perdita di accuratezza su ImageNet. Il pruning è un passaggio standard per preparare i modelli a telefoni, fotocamere e altro hardware per l'IA edge e oggi viene applicato anche ai modelli linguistici di grandi dimensioni (LLM).

Come funziona il pruning dei modelli#

Il pruning assegna un punteggio di importanza a ogni peso o struttura candidata, rimuove la frazione con il punteggio più basso e sottopone a fine-tuning i pesi del modello rimasti per recuperare accuratezza. Il criterio più semplice e ancora più comune è il modulo: i pesi vicini a zero o i filtri con norma L1 o L2 ridotta modificano meno l'output quando vengono rimossi. Altri criteri usano gradienti o attivazioni per stimare quanto aumenterebbe la perdita senza ogni componente. Rimuovere una grande frazione in una sola volta tende a danneggiare l'accuratezza, quindi il pruning viene di solito eseguito a più riprese, ciascuna seguita dal fine-tuning, finché il modello non raggiunge la dimensione desiderata o l'accuratezza non scende sotto la soglia tollerata:

Il pruning ha anche cambiato il modo in cui i ricercatori concepiscono le dimensioni delle reti. L'ipotesi del biglietto della lotteria sostiene che una rete densa contenga piccole sottoreti che, addestrate isolatamente a partire dai pesi iniziali originali, raggiungono l'accuratezza della rete completa, e gli autori hanno costantemente individuato sottoreti di dimensioni inferiori al 10-20% di quelle originali su MNIST e CIFAR-10.

Pruning non strutturato e strutturato#

Il pruning non strutturato azzera singoli pesi in qualsiasi punto di un tensore. Raggiunge un'elevata sparsità con una perdita minima di accuratezza, ma i tensori mantengono la stessa forma, quindi i kernel densi standard eseguono lo stesso lavoro e per accelerare servono kernel sparsi o il supporto hardware. Le GPU NVIDIA dalla generazione Ampere in poi eseguono uno di questi pattern, la sparsità 2:4 con due zeri ogni quattro pesi consecutivi, a una velocità di calcolo fino al doppio rispetto a quella densa. Il pruning strutturato rimuove interi filtri, canali, teste o layer, producendo un modello denso più piccolo che funziona più velocemente su qualsiasi processore, ma con un costo maggiore in termini di accuratezza a parità di pesi rimossi. La rimozione di un filtro elimina anche il canale di input corrispondente del layer successivo e librerie come Torch-Pruning tracciano automaticamente queste dipendenze. Le utility di pruning di PyTorch mostrano la differenza tra i due metodi:

import torch
from torch.nn.utils import prune

# Two identical convolution layers, one for each pruning style
torch.manual_seed(0)
a = torch.nn.Conv2d(16, 32, kernel_size=3)
b = torch.nn.Conv2d(16, 32, kernel_size=3)

# Unstructured: zero the 50% of individual weights with the smallest magnitude
prune.l1_unstructured(a, name="weight", amount=0.5)

# Structured: zero the 50% of output filters with the smallest L2 norm
prune.ln_structured(b, name="weight", amount=0.5, n=2, dim=0)

for name, layer in [("unstructured", a), ("structured", b)]:
    zeros = (layer.weight == 0).float().mean().item()
    empty = (layer.weight.flatten(1) == 0).all(dim=1).sum().item()
    print(f"{name}: {zeros:.0%} of weights zero, {empty} of 32 filters empty")

Entrambi i layer finiscono con il 50% dei pesi a zero. Solo il layer strutturato ha filtri vuoti, 16 su 32; eliminarli lascia un layer denso con metà dei filtri e dimezza i calcoli sull'hardware ordinario. Anche l'hardware progettato per la sparsità trae vantaggio dal metodo non strutturato: l'integrazione CVflow di Ambarella per Ultralytics YOLO, mantenuta da Ambarella nel proprio fork del pacchetto, esegue il pruning progressivo dei pesi durante l'addestramento di YOLO e mantiene tale sparsità durante l'esportazione ONNX per la compilazione sui suoi chip IA edge.

  • Quantizzazione dei modelli: Riduce la precisione di ogni peso, ad esempio da numeri in virgola mobile a 32 bit a interi a 8 bit, mantenendoli tutti. Spesso pruning e quantizzazione vengono combinati, perché il pruning riduce il numero di operazioni e la quantizzazione rende ciascuna di esse meno costosa.
  • Distillazione della conoscenza: Addestra un modello allievo più piccolo a imitare un modello insegnante più grande e spesso segue il pruning strutturato per recuperare l'accuratezza persa rimuovendo interi filtri o layer.
  • Dropout: Azzera temporaneamente attivazioni casuali durante l'addestramento come forma di regolarizzazione; in inferenza si usa la rete completa.

Pruning dei modelli linguistici di grandi dimensioni#

Riaddestrare un LLM dopo ogni fase di pruning costa troppo, quindi i metodi one-shot lo potano in un solo passaggio usando un piccolo set di calibrazione. SparseGPT ha portato i modelli OPT da 175 miliardi di parametri e BLOOM da 176 miliardi al 60% di sparsità non strutturata in meno di 4,5 ore, con un aumento trascurabile della perplessità, e supporta anche il pattern 2:4 accelerato dalle GPU. Il pruning strutturato combinato con la distillazione della conoscenza produce modelli densi più piccoli: Minitron di NVIDIA ha derivato modelli da 8B e 4B da un modello preaddestrato da 15B potando i canali degli embedding, i neuroni MLP e le teste di attenzione, per poi riaddestrarli con fino a 40 volte meno token rispetto all'addestramento da zero.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning