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

Sparse Attention

L’attenzione sparsa consente a ciascun token di prestare attenzione a un sottoinsieme selezionato degli altri, ad esempio una finestra locale, token globali o selezioni top-k, per ridurre il costo delle sequenze lunghe.

L'attenzione sparsa è una famiglia di meccanismi di attenzione in cui ogni query calcola il punteggio solo di un sottoinsieme selezionato di chiavi, anziché di tutte le chiavi della sequenza. La self-attention completa su N token calcola N² punteggi per testa: raddoppiare la lunghezza di un documento quadruplica quindi il costo dell'attenzione, mentre uno schema in cui ogni token presta attenzione a k altri token costa N·k. Lo schema può essere definito in anticipo, per esempio con una finestra locale, oppure selezionato in base al contenuto, per esempio scegliendo le chiavi con il punteggio più alto per ciascuna query. Lo Sparse Transformer di OpenAI del 2019 usava schemi a passo regolare con costo O(N√N) per modellare sequenze lunghe decine di migliaia di passi; oggi i modelli linguistici di grandi dimensioni (LLM) usano livelli sparsi per gestire finestre di contesto di oltre 100.000 token.

Schemi di sparsità comuni#

Gli schemi fissi stabiliscono in anticipo quali coppie valutare. L'attenzione a finestra scorrevole consente a ogni token di vedere solo i w token precedenti: Mistral 7B usa una finestra di 4.096 token e i modelli open-weight gpt-oss di OpenAI alternano livelli densi e livelli con finestre da 128 token, come faceva GPT-3 alternando livelli densi e a banda locale. Ogni livello a finestra trasferisce le informazioni in avanti di altri w token, quindi una pila profonda collega comunque token distanti. Gli schemi a passo regolare aggiungono ogni s-esimo token precedente, consentendo alle informazioni di percorrere lunghe distanze in un singolo livello. I token globali prestano attenzione a ogni posizione e ricevono attenzione da ogni posizione: Longformer li assegna a token specifici del task, come il token di classificazione; BigBird aggiunge anche connessioni casuali; gli attention sink mantengono i primi token visibili a ogni query, stabilizzando la generazione in streaming.

Gli schemi basati sul contenuto scelgono le coppie a partire dai dati. la Native Sparse Attention di DeepSeek (NSA, 2025) combina riepiloghi compressi di blocchi di chiavi, una selezione dei blocchi più pertinenti e una finestra scorrevole, con addestramento end-to-end. La DeepSeek Sparse Attention di DeepSeek-V3.2 esegue un piccolo «indicizzatore lightning», che assegna un punteggio a ogni token precedente per ciascuna query, quindi calcola l'attenzione completa solo sui 2.048 token con il punteggio più alto. Il costo principale dell'attenzione per ogni query rimane così costante, indipendentemente dalla lunghezza del contesto. I modelli in produzione spesso combinano queste regole:

Trasformare uno schema in risparmi#

L'applicazione di una maschera a una matrice densa di punteggi comporta comunque il calcolo di tutti i punteggi, quindi i miglioramenti in termini di velocità derivano da kernel che saltano i blocchi vuoti della matrice. I kernel di Flash Attention supportano direttamente le finestre scorrevoli, mentre PyTorch compila, tramite FlexAttention, qualsiasi funzione di mascheramento in un kernel GPU sparso a blocchi. La figura create_block_mask mostra quali blocchi un kernel di questo tipo salta per una finestra di 1.024 token più quattro token sink:

from torch.nn.attention.flex_attention import create_block_mask

seq_len, window, sinks = 8192, 1024, 4


def local_plus_sinks(b, h, q_idx, kv_idx):
    """Causal attention to the previous 1,024 tokens plus the first 4 tokens."""
    causal = q_idx >= kv_idx
    return causal & ((q_idx - kv_idx <= window) | (kv_idx < sinks))


# FlexAttention divide la maschera in blocchi da 128 x 128 affinché i kernel possano saltare quelli vuoti
block_mask = create_block_mask(local_plus_sinks, B=None, H=None, Q_LEN=seq_len, KV_LEN=seq_len, device="cpu")
print(block_mask)

L'output mostra sparsity=85.47%, la percentuale di blocchi da 128 × 128 nella matrice di punteggi da 8.192 × 8.192 che non contengono alcuna coppia consentita, e rappresenta lo schema come una banda diagonale per la finestra più una colonna a sinistra per i token sink. Quando flex_attention viene eseguito con torch.compile, il kernel salta completamente quei blocchi.

  • FlashAttention: kernel consapevole dell'I/O che calcola l'attenzione esatta su tutte le coppie suddividendo il lavoro in blocchi nella memoria veloce del chip. I blocchi sono anche l'unità che i kernel sparsi a blocchi saltano.
  • Attenzione lineare: mantiene tutte le coppie, ma sostituisce la softmax con una mappa delle caratteristiche, comprimendo tutte le chiavi e i valori precedenti in uno stato di dimensione fissa.
  • Attenzione deformabile: meccanismo per la visione in cui ogni query presta attenzione ad alcuni punti di campionamento con offset appresi in una mappa delle caratteristiche, anziché seguire uno schema fisso.
  • Miscela di esperti (MoE): sparsità dei parametri in cui ogni token attiva solo poche reti esperte, mentre il suo schema di attenzione rimane denso.

Applicazioni#

I modelli linguistici a contesto lungo sono la principale applicazione: i livelli sparsi limitano il calcolo, mentre quelli a finestra limitano anche la cache KV, consentendo ai modelli di riassumere rapporti lunghi o cercare in grandi basi di codice con un'unica richiesta. BigBird ha applicato il proprio schema sparso a sequenze di DNA, dove un input di migliaia di coppie di basi è molto più lungo di una frase tipica, per prevedere le regioni promotrici. Nella visione artificiale, il numero di token cresce con la risoluzione dell'immagine, quindi i modelli limitano l'attenzione alle regioni locali: lo Swin Transformer presta attenzione all'interno di finestre spostate. YOLO12, un rilevatore basato sull'attenzione sviluppato da ricercatori della University at Buffalo e della University of Chinese Academy of Sciences, disponibile nel pacchetto Ultralytics, usa l'attenzione per aree: il livello stride-16 del backbone divide la mappa delle caratteristiche 40 × 40 di un'immagine da 640 pixel in quattro strisce orizzontali da 400 token e calcola l'attenzione solo all'interno di ogni striscia, assegnando un punteggio a un quarto dei 2,56 milioni di coppie richiesti dall'attenzione completa su tutti i 1.600 token.

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