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

Sequence-to-Sequence Models

I modelli sequenza-sequenza (seq2seq) trasformano una sequenza di input in una sequenza di output di lunghezza diversa, come nella traduzione, nella sintesi o nel riconoscimento vocale.

I modelli sequenza-a-sequenza (seq2seq) trasformano una sequenza in un'altra di lunghezza potenzialmente diversa, come una frase inglese nella sua traduzione francese, un lungo articolo in un riassunto o una clip audio in una trascrizione. La maggior parte usa un'architettura encoder-decoder: l'encoder legge l'intero input e lo converte in rappresentazioni interne, mentre il decoder genera l'output un token alla volta, basandosi su quelle rappresentazioni e sui token già prodotti. L'approccio ha assunto la sua forma moderna nel 2014, quando Sutskever, Vinyals e Le, di Google, pubblicarono Apprendimento sequenza-sequenza con reti neurali e Cho et al. descrissero un encoder-decoder RNN per la traduzione automatica. Dal 2017, la maggior parte dei modelli seq2seq è basata sui transformer.

Come funzionano i modelli Seq2Seq#

Nei modelli del 2014, un codificatore basato su una rete a memoria a lungo e breve termine (LSTM) leggeva la frase sorgente parola per parola e la comprimeva in un unico vettore di lunghezza fissa, mentre un decodificatore LSTM espandeva quel vettore fino a ottenere la traduzione. Sutskever et al. usarono LSTM a quattro strati, constatarono che invertire l'ordine delle parole della frase sorgente rendeva più semplice l'addestramento e ottennero un punteggio BLEU di 34,8 sul set di test WMT'14 dall'inglese al francese. Comprimere ogni frase in un unico vettore penalizzava gli input lunghi, così Bahdanau, Cho e Bengio aggiunsero un meccanismo di attenzione nell'articolo Traduzione automatica neurale tramite apprendimento congiunto di allineamento e traduzione, consentendo al decodificatore di consultare ogni stato del codificatore a ogni passaggio. Il Transformer mantenne questa struttura codificatore-decodificatore, sostituì la ricorrenza con l'autoattenzione e collegò le due parti con l'attenzione incrociata. In fase di inferenza, il decodificatore viene eseguito in un ciclo:

Il ciclo si interrompe quando il decoder emette un token di fine sequenza, quindi la lunghezza dell’output viene appresa per ogni esempio. La decodifica mantiene di solito diversi output candidati con la ricerca a fascio, la scelta standard per la traduzione e il riconoscimento vocale.

Addestramento con teacher forcing#

Durante l’addestramento, il decoder non deve eseguire un ciclo. Con il teacher forcing, riceve la sequenza target corretta spostata a destra di una posizione e prevede ogni token successivo in un unico passaggio parallelo, con una maschera causale che consente a ogni posizione di vedere solo i target precedenti. La perdita è la entropia incrociata tra queste previsioni e i token successivi reali. nn.Transformer di PyTorch implementa l’architettura encoder-decoder originale:

import torch
from torch import nn

torch.manual_seed(0)
src_vocab, tgt_vocab, d_model = 1000, 800, 64
embed_src, embed_tgt = nn.Embedding(src_vocab, d_model), nn.Embedding(tgt_vocab, d_model)
model = nn.Transformer(d_model, nhead=4, num_encoder_layers=2, num_decoder_layers=2, batch_first=True)
to_logits = nn.Linear(d_model, tgt_vocab)

source = torch.randint(0, src_vocab, (1, 9))  # a 9-token source sentence
target = torch.randint(0, tgt_vocab, (1, 7))  # start token + a 6-token translation

# Teacher forcing: the decoder reads the correct previous tokens and predicts every next token in parallel
decoder_input, labels = target[:, :-1], target[:, 1:]
causal_mask = nn.Transformer.generate_square_subsequent_mask(decoder_input.size(1))
logits = to_logits(model(embed_src(source), embed_tgt(decoder_input), tgt_mask=causal_mask))
loss = nn.functional.cross_entropy(logits.flatten(0, 1), labels.flatten())

print(f"Source tokens: {source.shape[1]} -> decoder logits: {tuple(logits.shape)}")
print(f"Training loss: {loss.item():.2f}")

Stampa Source tokens: 9 -> decoder logits: (1, 6, 800), una previsione sul vocabolario target di 800 token per ciascuna delle 6 posizioni target, calcolata in un solo passaggio a partire da una sequenza sorgente di 9 token. La perdita di 6.73 del modello non addestrato è vicina a ln(800) ≈ 6.68, il valore corrispondente a una previsione uniforme. Poiché durante l’addestramento il modello riceve sempre i token precedenti corretti, mentre durante l’inferenza riceve le proprie previsioni, gli errori possono accumularsi: questo effetto si chiama bias di esposizione.

  • Modelli solo encoder come BERT: Questi modelli leggono l’input in entrambe le direzioni e producono una rappresentazione per ogni token, caratteristica adatta alla classificazione e all’etichettatura.
  • Modelli linguistici di grandi dimensioni (LLM) solo decoder: Modelli come GPT collocano input e output in un’unica sequenza e gestiscono i compiti seq2seq continuando il prompt; è così che viene generata la maggior parte dei testi oggi.
  • Reti neurali ricorrenti (RNN) e GRU: Gli strati ricorrenti degli encoder e decoder originali del 2014. Cho et al. hanno introdotto l’unità ricorrente con gate nello stesso articolo in cui presentavano il loro encoder-decoder.

Applicazioni#

Nel 2016 Google ha trasferito Google Translate al sistema GNMT, un encoder e decoder LSTM a 8 livelli con attenzione; la traduzione resta il task seq2seq per eccellenza. T5 di Google ha formulato ogni task di elaborazione del linguaggio naturale (NLP) come conversione da testo a testo, inclusi il riassunto automatico e la risposta a domande. Whisper di OpenAI è un transformer encoder-decoder addestrato su 680.000 ore di audio per il riconoscimento vocale. I modelli di visione adottano lo stesso schema per la generazione di didascalie per immagini e il riconoscimento ottico dei caratteri (OCR); Florence-2 di Microsoft gestisce generazione di didascalie, grounding e rilevamento producendo testo da un unico modello seq2seq, mentre la versione Large funziona su Ultralytics Platform per l'annotazione automatica. Pix2Seq di Google formula il rilevamento degli oggetti come seq2seq, rappresentando ogni oggetto con cinque token discreti: quattro coordinate quantizzate e una classe. RT-DETR, il rilevatore in tempo reale di Baidu disponibile nel pacchetto Ultralytics, mantiene l'encoder e il decoder con attenzione incrociata, ma fa sì che quest'ultimo perfezioni in parallelo 300 query di oggetti: ogni riquadro viene così restituito in un unico passaggio.

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