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

Transformer-XL

Transformer-XL memorizza gli stati nascosti del segmento di testo precedente e usa posizioni relative, così un modello linguistico mantiene il contesto tra i segmenti.

Transformer-XL è un Transformer per modelli linguistici che mantiene il contesto tra segmenti di testo a lunghezza fissa memorizzando gli stati nascosti del segmento precedente e consentendo al segmento successivo di prestare attenzione a essi. Zihang Dai, Zhilin Yang e colleghi della Carnegie Mellon University e di Google Brain lo hanno presentato all'ACL 2019 con l'articolo Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context. Un Transformer standard addestrato su segmenti fissi, ciascuno una finestra di contesto separata, non può vedere nulla che preceda l'inizio del segmento corrente; gli autori hanno chiamato questo problema frammentazione del contesto. Transformer-XL ha appreso dipendenze dell'80% più lunghe di quelle delle reti neurali ricorrenti (RNN) e del 450% più lunghe di quelle dei Transformer standard.

Ricorrenza a livello di segmento#

Quando il modello elabora un segmento, ogni livello concatena gli stati nascosti memorizzati in cache del segmento precedente con quelli del segmento corrente. Le query provengono solo dal segmento corrente, mentre chiavi e valori coprono entrambi; i gradienti si interrompono alla cache, quindi il costo di training per segmento rimane costante. Un singolo livello di attenzione in PyTorch mostra questo schema:

import torch
from torch import nn

torch.manual_seed(0)
seg_len, dim = 4, 16
attn = nn.MultiheadAttention(dim, num_heads=2, batch_first=True)
hidden = torch.randn(1, 3 * seg_len, dim)  # hidden states for three consecutive segments

memory = torch.empty(1, 0, dim)  # nothing is cached before the first segment
for i, segment in enumerate(hidden.split(seg_len, dim=1), start=1):
    # Queries come from the current segment; keys and values also cover the cached one
    context = torch.cat([memory, segment], dim=1)
    out, weights = attn(segment, context, context)
    print(f"Segment {i}: {weights.shape[1]} queries attend over {weights.shape[2]} positions")
    # Cache this segment for the next one; detach() stops gradients as in Transformer-XL
    memory = segment.detach()

Le 4 query del primo segmento vedono solo i 4 token di quel segmento, mentre le query di ogni segmento successivo ne vedono 8: i 4 del segmento stesso più i 4 memorizzati in cache. Poiché il livello n di un segmento legge gli stati memorizzati in cache del livello n − 1 del segmento precedente, ogni livello estende la portata di un segmento, fino a circa N × L token per una lunghezza del segmento N e L livelli:

La cache accelera anche la valutazione. Un Transformer standard che prevede un token alla volta deve ricalcolare un'intera finestra per ogni nuovo token, mentre Transformer-XL riutilizza gli stati memorizzati in cache, risultando fino a oltre 1.800 volte più veloce durante la valutazione. Il tracking di Ultralytics YOLO26 affronta lo stesso problema di frammentazione quando uno script passa il video a model.track() un fotogramma alla volta: persist=True mantiene lo stato del tracker tra una chiamata e l'altra, così ogni oggetto conserva lo stesso ID da un fotogramma al successivo.

Codifica posizionale relativa#

Riutilizzare gli stati memorizzati in cache compromette le posizioni assolute: il primo token del segmento in cache e il primo token di quello corrente avrebbero lo stesso embedding posizionale. Transformer-XL calcola invece ogni punteggio di attenzione a partire dal contenuto della query e della chiave, più una codifica sinusoidale della distanza tra loro, con due vettori di bias appresi e condivisi tra le posizioni, uno per il contenuto e uno per la posizione. Poiché i punteggi dipendono solo dalle distanze, durante la valutazione il modello può prestare attenzione a una cache più lunga di quella vista durante il training. Anche le embedding posizionali rotazionali (RoPE), utilizzate nella maggior parte degli attuali modelli linguistici di grandi dimensioni (LLM), fanno dipendere i punteggi di attenzione dalla posizione relativa.

Risultati e influenza#

Transformer-XL ha stabilito nuovi risultati all'avanguardia in cinque benchmark: 0,99 bit per carattere su enwik8, 1,08 su text8 e perplessità di 18,3 su WikiText-103, 21,8 su One Billion Word e 54,5 su Penn Treebank, senza fine-tuning. Addestrato solo su WikiText-103, ha generato nuovi articoli abbastanza coerenti, lunghi migliaia di token. XLNet, sviluppato da alcuni degli stessi autori, ha basato il proprio pretraining di comprensione del linguaggio naturale sull'architettura Transformer-XL; il Compressive Transformer di DeepMind ha esteso la cache comprimendo i vecchi ricordi anziché eliminarli.

  • Memoria a lungo termine (LSTM): aggiorna uno stato nascosto un token alla volta, quindi le informazioni lontane devono attraversare ogni passaggio intermedio.
  • Longformer: legge in un'unica volta un intero documento di 4.096 token con attenzione a finestra e globale, senza ricorrenza.
  • Cache KV: memorizza chiavi e valori dei token precedenti durante la generazione, così non devono essere ricalcolati. La memoria di Transformer-XL viene usata anche durante il training, interrompendo i gradienti al confine tra i segmenti.
  • Modelli a spazio di stato (SSM): comprimono l'intera cronologia in uno stato di dimensione fissa.

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