Modello trasformatore
Cos'è un modello trasformatore?

Un modello trasformatore è un tipo di architettura di rete neurale progettato per gestire dati sequenziali, come il testo, ma può essere applicato anche ad altri tipi di dati. A differenza dei modelli precedenti come le RNN, i trasformatori possono elaborare intere sequenze simultaneamente, questo li rende più veloci ed efficienti. Nell'ambito dell’AI generativa, i trasformatori hanno rivoluzionato attività quali la generazione di testi, la traduzione e la sintesi.

Indice

    Qual è la differenza tra trasformatori e RNN?

    Le principali differenze tra i trasformatori e le reti neurali ricorrenti (RNN) risiedono nelle loro architetture, nei meccanismi di elaborazione dei dati e nella loro efficacia nel gestire le dipendenze a lungo raggio nei dati sequenziali.

    1. Elaborazione sequenziale ed elaborazione parallela a confronto

    RNN: elaborano le sequenze di input un elemento alla volta, utilizzando l'output del passaggio precedente per informare il passaggio successivo. Questo rende le RNN intrinsecamente sequenziali, non possono quindi parallelizzare facilmente i calcoli.

    Trasformatori: utilizzano un meccanismo chiamato autoattenzione, che consente loro di osservare l'intera sequenza in una volta sola. In questo modo i trasformatori possono elaborare in parallelo diverse parti della sequenza, portando a tempi di addestramento molto più rapidi, soprattutto per sequenze lunghe.

    2. Gestione delle dipendenze a lungo raggio

    RNN: ha difficoltà con le dipendenze a lungo raggio a causa del problema della scomparsa del gradiente (o del gradiente esplosivo). Le informazioni provenienti dalla fase iniziale della sequenza possono scomparire man mano che si propagano nel tempo, rendendo difficile per le RNN conservare importanti dati di contesto su sequenze lunghe.

    Trasformatori: utilizzano l'autoattenzione per calcolare simultaneamente le relazioni tra tutte le parole nella sequenza, consentendo loro di modellare in modo più efficace le dipendenze a lungo raggio. Il meccanismo dell'attenzione collega direttamente parole distanti senza la necessità di un'elaborazione graduale.

    3. Architettura

    RNN: l'architettura è ricorrente, questo significa che la rete ha dei loop che mantengono uno "stato nascosto" che trasporta informazioni dai passaggi temporali precedenti. Varianti come LSTM (Long Short-Term Memory) e GRU (Gated Recurrent Unit) sono state sviluppate per attenuare i problemi delle RNN tradizionali, ma la natura sequenziale rimane.

    Trasformatori: sono costituiti da livelli di reti neurali feed-forward con autoattenzione multitesta, senza alcuna struttura ricorrente. Non esiste il concetto di uno stato nascosto che viene trasferito da un passaggio temporale all'altro, poiché il meccanismo di autoattenzione consente connessioni dirette tra due posizioni qualsiasi nella sequenza.

    4. Efficienza dell’addestramento

    RNN: poiché le RNN elaborano i dati in sequenza, il loro addestramento è generalmente più lento. La parallelizzazione è difficile perché ogni passaggio temporale dipende da quello precedente.

    Trasformatori: con le loro funzionalità di elaborazione parallela, i trasformatori possono essere addestrati in modo più efficiente, soprattutto su hardware moderni come GPU e TPU. Possono gestire grandi set di dati e lunghe sequenze con maggiore efficienza di elaborazione.

    5. Memoria e complessità di elaborazione

    RNN: hanno requisiti di memoria inferiori poiché elaborano un passaggio temporale alla volta. Tuttavia, la loro natura sequenziale limita la loro capacità di gestire in modo efficiente sequenze molto lunghe.

    Trasformatori: richiedono molta più memoria, soprattutto durante l'addestramento, perché memorizzano i pesi dell'attenzione tra tutte le coppie di token. La loro complessità di elaborazione cresce quadraticamente con la lunghezza della sequenza a causa del meccanismo dell'attenzione.

    6. Casi d’uso

    RNN: venivano tradizionalmente utilizzate per attività quali il riconoscimento vocale, la modellazione del linguaggio e le previsioni di serie temporali. Le LSTM e le GRU venivano comunemente utilizzate per attività che richiedevano la memorizzazione di lunghe sequenze.

    Trasformatori: dominanti in attività quali l'elaborazione del linguaggio naturale (NLP), la traduzione automatica, la generazione di testo e molte altre. Modelli come BERT, GPT e T5 sono tutti basati sull'architettura dei trasformatori, che ha stabilito nuovi benchmark in termini di prestazioni in un'ampia gamma di attività NLP.

    Schema del funzionamento dei modelli trasformatori.
    Schema del funzionamento dei modelli trasformatori.
    TOCCA L'IMMAGINE PER INGRANDIRLA

    Come funzionano i modelli trasformatori?

    I trasformatori funzionano sfruttando una combinazione di meccanismi di autoattenzione, codifica posizionale e reti feed-forward. L'architettura consente loro di elaborare dati sequenziali in modo efficiente e di catturare dipendenze a lungo raggio tra diverse parti dell'input. Di seguito viene illustrato in dettaglio il funzionamento dei trasformatori:

    1. Incorporamento di input e codifica posizionale

    Incorporamenti di input: nei trasformatori, l'input (ad esempio una sequenza di parole in una frase) viene prima convertito in incorporamenti, che sono vettori densi di dimensione fissa. Questi incorporamenti rappresentano il significato semantico dei token (parole o sottoparole).

    Codifica posizionale: poiché l'architettura del trasformatore non dispone di un meccanismo integrato per catturare l'ordine della sequenza (a differenza delle RNN), vengono aggiunte codifiche posizionali agli incorporamenti degli input. Queste codifiche aggiungono informazioni sulla posizione di ciascun token nella sequenza. Spesso si tratta di funzioni sinusoidali o incorporamenti appresi che variano secondo le posizioni.

    Questo consente al modello di comprendere le posizioni relative e assolute dei token.

    2. Meccanismo di autoattenzione

    Il meccanismo di autoattenzione è il componente principale dei trasformatori. Consente al modello di valutare l'importanza di ciascun token in relazione a tutti gli altri token nella sequenza di input. Per ogni token, l'autoattenzione determina a quali altri token deve prestare attenzione.

    Secondo schema del funzionamento dei modelli trasformatori.
    Secondo schema del funzionamento dei modelli trasformatori.
    TOCCA L'IMMAGINE PER INGRANDIRLA

    Come funzionano i modelli trasformatori?

    Come funziona l'autoattenzione:

    1. Trasformazione di input: per ogni token nella sequenza di input, il modello calcola tre vettori: query (Q), chiave (K) e valore (V), tutti derivati dagli incorporamenti dei token. Questi vettori vengono appresi attraverso trasformazioni lineari.

    • Query (Q): determina quanta attenzione prestare agli altri token.
    • Chiave (K): rappresenta il contenuto degli altri token su cui concentrarsi.
    • Valore (V): contiene le informazioni da estrarre o da trasferire attraverso il meccanismo di attenzione.

    2. Punteggi di attenzione: i punteggi di attenzione tra i token vengono calcolati come il prodotto scalare tra la query di un token e la chiave di un altro. Misurano quanto rilevante o "attento" un token dovrebbe essere nei confronti di un altro.

    I punteggi vengono scalati in base alla radice quadrata della dimensione del vettore chiave dkd_kdk per stabilizzare i gradienti.

    3. Somma ponderata: i punteggi di attenzione vengono sottoposti a una funzione softmax, trasformandoli in probabilità la cui somma è 1. Questi punteggi vengono utilizzati per ponderare i vettori Valore, producendo una somma ponderata che riflette l'importanza di ciascun token rispetto agli altri.

    Attenzione multitesta:

    Anziché utilizzare un singolo meccanismo di autoattenzione, il trasformatore sfrutta l'attenzione multitesta. Vengono creati più set di vettori di query, chiavi e valori (ogni set è una "testa" di attenzione), e ogni testa si occupa di aspetti diversi dell'input. I risultati di tutte le teste di attenzione vengono concatenati e passati attraverso un livello lineare.

    Questo consente al modello di catturare simultaneamente diversi tipi di relazioni tra i token.

    3. Reti neurali feed-forward

    Dopo il meccanismo di autoattenzione, ogni rappresentazione dei token viene sottoposta a una rete neurale feed-forward (FFN). Si tratta in genere di una rete neurale a due livelli con una funzione di attivazione ReLU. La FFN viene applicata in modo indipendente a ciascuna posizione e lo stesso set di pesi viene condiviso tra tutte le posizioni.

    arduino

    Copia codice

    \[

    \text{FFN}(x) = \text{ReLU}(xW_1 + b_1)W_2 + b_2

    \]

    La FFN consente un'ulteriore trasformazione delle rappresentazioni dei token e introduce la non linearità, migliorando l'espressività del modello.

    4. Connessioni residue e normalizzazione dei livelli

    Per stabilizzare l'addestramento e favorire il flusso del gradiente vengono utilizzate connessioni residue (chiamate anche connessioni di salto) intorno ai livelli di autoattenzione e feed-forward. Questo significa che l'input di ogni sottolivello viene aggiunto all'output di quel sottolivello prima di essere trasmesso al successivo.

    Ogni connessione residua è seguita dalla normalizzazione dei livelli, che normalizza l'output per ridurre lo spostamento delle covariate interne e migliorare la stabilità dell'addestramento.

    5. Architettura di codificatore e decodificatore

    L'architettura originale del trasformatore è composta da due componenti principali: codificatore e decodificatore. Tuttavia, alcuni modelli, come BERT, utilizzano solo il codificatore, mentre altri, come GPT, utilizzano solo il decodificatore.

    Codificatore:

    Il codificatore è composto da più livelli identici (in genere da 6 a 12). Ogni livello ha due componenti principali:

    • Autoattenzione multitesta
    • Rete neurale feed-forward

    Il codificatore riceve la sequenza di input e la elabora attraverso ogni livello, generando un output che codifica i token di input con il contesto degli altri token nella sequenza.

    Decodificatore:

    Anche il decodificatore è costituito da più livelli identici, con un meccanismo aggiuntivo:

    autoattenzione multitesta mascherata: impedisce ai token di prestare attenzione ai token futuri nella sequenza (importante nelle attività autoregressive come la generazione di testo).

    Il decodificatore include anche livelli di attenzione incrociata che prendono l'output del codificatore come input aggiuntivo per guidare il processo di generazione.

    6. Output (per modelli linguistici)

    Per attività come la modellazione del linguaggio o la traduzione automatica, il decodificatore produce una sequenza di output un token alla volta. Nell'ultimo livello, l'output del decodificatore viene sottoposto a una funzione softmax per generare probabilità sul vocabolario, consentendo al modello di prevedere il token successivo o di generare traduzioni.

    7. Obiettivi dell’addestramento

    Masked Language Modeling (MLM): utilizzato in modelli come BERT, in cui i token casuali nella sequenza di input vengono mascherati e il modello viene addestrato a prevederli.

    Causal Language Modeling (CLM): utilizzato in modelli come GPT, in cui il modello prevede il token successivo nella sequenza in base ai token precedenti.

    Obiettivi di Seq2Seq: utilizzato in attività come la traduzione automatica, in cui il modello impara a mappare le sequenze di input sulle sequenze di output (ad esempio, tradurre una frase dall'inglese al francese).

    Collabora con HPE

    HPE fornisce prodotti e servizi per contribuire alla creazione, all’implementazione e all’esecuzione di un modello multimodale.

    HPE Cray XD670

    Accelera le prestazioni dell'intelligenza artificiale con HPE Cray XD670. Ulteriori informazioni su come addestrare i modelli LLM, NLP o multimodali per la tua azienda con il supercomputing.

    Servizi di implementazione dell’AI generativa HPE

    HPE Machine Learning Development Software

    Qual è la differenza tra trasformatori e RNN?

    Funzionalità
    RNN (tra cui LSTM, GRU)
    Trasformatori

    Metodo di elaborazione

    Sequenziale

    Parallela

    Gestione di sequenze lunghe

    Ha difficoltà con le dipendenze a lungo raggio

    Eccelle con l'autoattenzione

    Architettura

    Stati ricorrenti e nascosti

    Autoattenzione multitesta

    Efficienza dell’addestramento

    Lento, più difficile da parallelizzare

    Più veloce, altamente parallelizzabile

    Efficienza della memoria

    Requisiti di memoria inferiori

    Utilizzo elevato della memoria

    Applicazioni comuni

    Serie temporali, prime attività di NLP

    NLP, traduzione, generazione di testi, ecc.

    Riepilogo dei componenti dei trasformatori:

    Componente
    Descrizione

    Incorporamenti di input

    Converte i token in vettori di dimensione fissa.

    Codifica posizionale

    Aggiunge informazioni sulle posizioni dei token nella sequenza.

    Autoattenzione

    Calcola i punteggi di attenzione tra tutti i token per catturare le dipendenze.

    Attenzione multitesta

    Utilizza più teste di attenzione per catturare diverse relazioni

    Rete neurale feed-forward

    Applica trasformazioni non lineari alle rappresentazioni dei token.

    Connessioni residue

    Contribuiscono a stabilizzare l'addestramento e migliorano il flusso del gradiente.

    Codificatore

    Elabora la sequenza di input e genera rappresentazioni contestuali.

    Diversi tipi di trasformatori:

    Quali sono i diversi tipi di trasformatori?

    Questi modelli di trasformatori sono ampiamente adottati in vari settori per applicazioni commerciali, tra cui servizio clienti, generazione di contenuti, traduzione, assistenti virtuali, sistemi di raccomandazione e altro ancora.

    Tipo di modello
    Modelli rilevanti
    Caratteristiche principali

    Applicazioni

    Basato su codificatore

    BERT, RoBERTa, XLNet, ELECTRA

    Incentrato sulla comprensione del testo (classificazione, NER, ecc.)

    Attività di NLP che richiedono la comprensione del testo

    Basato su decodificatore

    GPT (1, 2, 3, 4), CTRL, OPT

    Ottimizzato per attività generative (generazione di testo, dialogo)

    Generazione di testo, AI conversazionale

    Codificatore-decodificatore

    T5, BART, mT5, Pegasus

    Unisce comprensione e generazione (traduzione automatica, sintesi)

    Riassunto, traduzione, risposta alle domande

    Multimodale

    CLIP, DALL·E, FLAVA

    Gestisce più tipi di dati (testo + immagine)

    Generazione di immagini, attività visivo-testuali

    HPE Machine Learning Development Environment Software

    Supporta i team in tutto il mondo nello sviluppo, nell’addestramento e nell’ottimizzazione dei modelli AI, in modo sicuro ed efficiente.

    Argomenti correlati