Che cos'è un meccanismo di attenzione?

4 dicembre 2024

Autori

Dave Bergmann

Senior Writer, AI Models

IBM

Cole Stryker

Editorial Lead, AI Models

Gather

Che cos'è un meccanismo di attenzione?

Un meccanismo di attenzione è una tecnica di machine learning che indirizza i modelli di deep learning a dare priorità (o a prestare attenzione) alle parti più rilevanti dei dati di input. L'innovazione nei meccanismi di attenzione ha abilitato l'architettura trasformativa che ha prodotto i moderni modelli di linguaggio di grandi dimensioni (LLM) che alimentano applicazioni celebri come ChatGPT.

Come suggerisce il nome, i meccanismi di attenzione si ispirano alla capacità degli esseri umani (e di altri animali) di prestare selettivamente maggiore attenzione ai dettagli salienti e di ignorare i dettagli meno importanti in quel momento. Avere accesso a tutte le informazioni, ma concentrarsi solo sulle informazioni più rilevanti, aiuta a garantire che nessun dettaglio significativo vada perso, consentendo al contempo un uso efficiente della memoria e del tempo limitati.

Matematicamente parlando, un meccanismo di attenzione calcola i pesi di attenzione che riflettono l'importanza relativa di ogni parte di una sequenza di input rispetto all'attività da svolgere. Applica quindi quei pesi di attenzione per aumentare (o diminuire) l'influenza di ciascuna parte dell'input, in base alla sua rispettiva importanza. Un modello di attenzione, ovvero un modello di intelligenza artificiale che utilizza un meccanismo di attenzione, è addestrato ad assegnare pesi di attenzione accurati attraverso l'apprendimento supervisionato o l'lapprendimento auto-supervisionato su un ampio set di dati di esempi.

I meccanismi di attenzione sono stati originariamente introdotti da Bahdanau et al nel 2014 quale tecnica per colmare le carenze di quelli che allora erano modelli di Recurrent Neural Network (RNN) all'avanguardia utilizzati per la traduzione automatica. Ricerche successive hanno integrato i meccanismi di attenzione nelle Convolutional Neural Network (CNN) utilizzate per attività come le didascalie delle immagini e la risposta visiva alle domande.

Nel 2017, l'importante articolo "Attention is All You Need" ha introdotto il modello trasformativo, che evita del tutto la ricorrenza e le convoluzioni a favore dei soli livelli di attenzione e livelli feedforward standard. Da allora l'architettura trasformativa è diventata la spina dorsale dei modelli all'avanguardia che alimentano l'attuale era dell'AI generativa.

Sebbene i meccanismi di attenzione siano principalmente associati agli LLM utilizzati per attività di elaborazione del linguaggio naturale (PNL), come sintesi, risposta alle domande, generazione di testo e analisi del sentiment, i modelli basati sull'attenzione sono ampiamente utilizzati anche in altri domini. I principali modelli di diffusione utilizzati per la generazione di immagini spesso incorporano un meccanismo di attenzione. Nel campo della computer vision, i trasformatori di visione (ViT) hanno ottenuto risultati superiori in attività tra cui il rilevamento degli oggetti,1 la segmentazione delle immagini2 e la risposta visiva alle domande.3

Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI 


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

Perché i meccanismi di attenzione sono importanti?

I modelli trasformativi e i meccanismi di attenzione che li alimentano hanno raggiunto risultati all'avanguardia in quasi tutti i sottodomini del deep learning. La natura dei meccanismi di attenzione offre loro vantaggi significativi rispetto ai meccanismi di convoluzione utilizzati nelle Convolutional Neural Network (CNN) e ai loop ricorrenti utilizzati nelle Recurrent Neural Network (RNN).

  • Flessibilità nel tempo: il modo in cui le RNN elaborano i dati sequenziali è intrinsecamente serializzato, il che significa che elaborano ogni fase temporale di una sequenza individualmente e in un ordine specifico. Ciò rende difficile per un RNN distinguere le correlazioni, chiamate dipendenze, nel gergo della data science, che hanno molti passaggi tra di loro. I meccanismi di attenzione, al contrario, possono esaminare un'intera sequenza contemporaneamente e prendere decisioni sull'ordine in cui concentrarsi su passaggi specifici.

  • Flessibilità nello spazio: le CNN sono intrinsecamente locali e utilizzano le convoluzioni per elaborare sottoinsiemi più piccoli di dati di input un pezzo alla volta. Ciò rende difficile per una CNN discernere dipendenze molto distanti, come le correlazioni tra parole (nel testo) o pixel (nelle immagini) che non sono vicine l'una all'altra. I meccanismi di attenzione non hanno questa limitazione, poiché elaborano i dati in un modo completamente diverso.

  • Parallelizzazione: la natura dei meccanismi di attenzione comporta che molti passaggi computazionali siano eseguiti contemporaneamente, anziché in modo serializzato. Ciò, a sua volta, consente un elevato grado di elaborazione parallela, sfruttando la potenza e la velocità offerte dalle GPU.

Per comprendere il funzionamento dei meccanismi di attenzione nel deep learning e il motivo per cui hanno contribuito a scatenare una rivoluzione nell'AI generativa, è utile innanzitutto comprendere perché questi meccanismi sono stati introdotti per la prima volta, ovvero per migliorare i modelli Seq2Seq basati su RNN utilizzati per la traduzione automatica.
 

Come funziona Seq2Seq senza meccanismi di attenzione

Le RNN sono reti neurali con loop ricorrenti che forniscono un equivalente di "memoria" che consente loro di elaborare dati sequenziali. Gli RNN acquisiscono una sequenza ordinata di vettori di input e li elaborano in fasi temporali. Dopo ogni passaggio temporale, lo stato della rete risultante, chiamato stato nascosto, viene restituito al loop, insieme al vettore di input successivo.

Gli RNN soffrono rapidamente di gradienti che svaniscono o esplodono durante l'addestramento. Questo ha reso le RNN poco pratiche per molte attività di NLP, in quanto limitavano notevolmente la lunghezza delle frasi di input che potevano elaborare.4 Queste limitazioni sono state in qualche modo ridotte da un'architettura RNN migliorata chiamata Long Short Term Memory Network (LSTM), che aggiunge meccanismi di gating per preservare la memoria "a lungo termine".

Prima dell'introduzione dei meccanismi di attenzione, il modello Seq2Seq era il più avanzato per la traduzione automatica. Seq2Seq utilizza due LSTM in un'architettura encoder-decoder.

  • Il primo LSTM, l'encoder, elabora la frase da tradurre passo dopo passo, quindi produce lo stato nascosto del passo temporale finale. Questo output, ovvero il vettore di contesto, codifica l'intera frase come un unico incorporamento vettoriale. Per consentire a Seq2Seq di gestire in modo flessibile frasi con un numero variabile di parole, il vettore di contesto ha sempre la stessa lunghezza.
  • Il secondo LSTM, il decoder, prende l'output di incorporamento vettoriale dell'encoder come input iniziale e lo decodifica , parola per parola, in una seconda lingua.

La codifica delle sequenze di input in un numero fisso di dimensioni ha permesso a Seq2Seq di elaborare sequenze di lunghezza variabile, ma ha anche introdotto importanti difetti:

  • Rappresenta sequenze lunghe o complesse con lo stesso livello di dettaglio di frasi più brevi e semplici. Ciò provoca un collo di bottiglia delle informazioni nelle sequenze più lunghe e spreca risorse nelle sequenze più corte.
  • Questo vettore rappresenta solo lo stato nascosto finale della rete di encoder. In teoria, ogni stato nascosto successivo dovrebbe contenere informazioni fornite dallo stato nascosto precedente, che a sua volta contiene informazioni relative alla fase temporale precedente e così via, fino alla prima fase. In pratica, il vettore di contesto inevitabilmente "dimentica" le informazioni sin dalle prime fasi temporali, ostacolando le prestazioni del modello su sequenze più lunghe.
     

Come i meccanismi di attenzione hanno migliorato il Seq2Seq

Bahdanau et al. hanno proposto un meccanismo di attenzione nel loro articolo del 2014, "Neural Machine Translation by Jointly Learning to Align and Translate", per migliorare la comunicazione tra l'encoder e il decoder e rimuovere il collo di bottiglia delle informazioni.

Invece di passare solo lo stato nascosto finale dell'encoder, ovvero il vettore di contesto, al decoder, il loro modello ha passato ogni stato nascosto dell'encoder al decoder. Il meccanismo di attenzione stesso è stato utilizzato per determinare quale stato nascosto, cioè quale parola nella frase originale, fosse più rilevante in ogni fase di traduzione eseguita dal decoder.

"Questo evita al modello di dover codificare un'intera frase del testo di partenza in un vettore a lunghezza fissa e gli consente inoltre di concentrarsi solo sulle informazioni rilevanti per la generazione della prossima parola tradotta", spiega il documento. "Ciò ha un forte impatto positivo sulla capacità del sistema di traduzione automatica neurale di produrre buoni risultati su frasi più lunghe. "5

La successiva ricerca NLP si è concentrata principalmente sul miglioramento delle prestazioni e sull'espansione dei casi d'uso per i meccanismi di attenzione nei modelli ricorrenti. L'invenzione del 2017 dei modelli trasformativi, alimentati esclusivamente dall'attenzione, ha infine reso le RNN quasi obsolete per la tecnologia NLP.

AI Academy

Diventa un esperto di AI

Acquisisci le conoscenze necessarie per dare priorità agli investimenti nell'AI alla base della crescita aziendale. Inizia oggi stesso con la nostra AI Academy gratuita e guida il futuro dell'AI nella tua organizzazione.

Come funzionano i meccanismi di attenzione?

Lo scopo principale di un meccanismo di attenzione è quello di determinare l'importanza relativa delle diverse parti della sequenza di input, per poi indurre il modello a prestare attenzione alle parti importanti e a trascurare quelle non importanti.

Sebbene esistano molte varianti e categorie di meccanismi di attenzione, ognuna adatta a diversi casi d'uso e priorità, tutti i meccanismi di attenzione presentano tre processi fondamentali:

  1.  Un processo di "lettura" di sequenze di dati non elaborati e di conversione in incorporamenti vettoriali, in cui ogni elemento della sequenza è rappresentato dai suoi vettori caratteristici.

  2. Un processo per determinare con precisione somiglianze, correlazioni e altre dipendenze (o la loro mancanza) tra ciascun vettore, quantificato come punteggio di allineamento (o punteggio di attenzione) che riflette quanto sono allineati (o non allineati). I punteggi di allineamento vengono quindi utilizzati per calcolare i pesi di attenzione utilizzando una funzione softmax, che normalizza tutti i valori in un intervallo compreso tra 0 e 1 in modo che la somma totale sia pari a 1. Ad esempio, assegnare un peso di attenzione pari a 0 a un elemento significa che deve essere ignorato. Un peso di attenzione pari a 1 significa che l'elemento deve ricevere il 100% dell'attenzione perché tutti gli altri elementi avrebbero un peso di attenzione pari a 0 (poiché la somma di tutti i pesi deve essere pari a 1). In sostanza, l'output di una funzione softmax è una distribuzione di probabilità.

  3. Un processo che utilizza quei pesi di attenzione per dare più o meno importanza all'influenza di specifici elementi di input sul modo in cui il modello effettua le previsioni. In altre parole, un modo per utilizzare i pesi di attenzione al fine di aiutare i modelli a concentrarsi o a ignorare le informazioni.

Query, chiavi e valori

L'importante articolo "Attention is All You Need" ha illustrato il meccanismo di attenzione utilizzando la terminologia di un database relazionale: query,chiavi e valori. I database relazionali sono progettati per semplificare lo storage e il recupero di dati rilevanti: assegnano un identificatore univoco ("chiave") a ciascun dato e ogni chiave è associata a un valore corrispondente. Nell'NLP, il "database" di un modello è il vocabolario dei token che ha appreso dal suo set di dati di addestramento.

L'enorme influenza dell'articolo "Attention is All You Need" ha fatto sì che anche i precedenti meccanismi di attenzione venissero spesso descritti retroattivamente in questi termini. In generale, questa concezione dell'attenzione implica l'interazione tra tre tipi di rappresentazioni vettoriali per ogni token in una sequenza.

  • Il vettore di query rappresenta le informazioni che un determinato token sta cercando.
  • I vettori di chiave rappresentano le informazioni contenute in ogni token. L'allineamento tra query e chiave viene utilizzato per calcolare i pesi di attenzione.
  • Il valore (o vettore di valore) applica le informazioni ponderate in base all'attenzione dai vettori di chiave. I contributi provenienti da chiavi fortemente allineate a una query sono ponderati più pesantemente; i contributi provenienti da chiavi che non sono rilevanti per una query saranno ponderati più vicino allo zero.

Le varianti specifiche del meccanismo di attenzione si differenziano principalmente nel modo in cui i vettori vengono codificati, da come vengono calcolati i punteggi di allineamento e da come vengono applicati i pesi di attenzione per fornire al modello informazioni pertinenti.
 

Attenzione additiva

Il meccanismo di attenzione di Badhanau è stato appositamente progettato per la traduzione automatica. Utilizza una RNN bidirezionale per codificare ogni token di input, elaborando la sequenza di input sia in avanti che in senso inverso e concatenando i risultati. Questo approccio è particolarmente utile quando, ad esempio, la lingua originale e quella tradotta hanno convenzioni di ordinamento diverse per nomi e aggettivi.

Nel seguente contesto, lo stato nascosto del decoder in ogni passo della frase tradotta equivale a un vettore di query , mentre lo stato nascosto dell'encoder in ogni passo della frase originale equivale a un vettore di chiave.

I punteggi di allineamento sono quindi determinati da una semplice rete neurale feedforward, ovvero il livello di attenzione, addestrata congiuntamente con il resto del modello. Questo livello di attenzione comprende fino a tre sottoinsiemi di pesi del modello apprendibili: pesi della query per gli stati del decoder nascosto ("Wq "), pesi della chiave per gli stati dell'encoder nascosto ("Wk ") e pesi del valore per scalare l'output finale ("wv"). Questi pesi sono la "conoscenza" del modello: regolando i valori specifici di quei pesi durante l'addestramento per ridurre al minimo una funzione di perdita, il modello impara a fare traduzioni accurate.

In ogni fase, l'attenzione additiva funziona come segue:

  • Il vettore di query (moltiplicato per Wq) viene aggiunto a un vettore di chiave (moltiplicato per Wk). Se sono allineati, sommandoli si otterrà un valore elevato. Se sono irrilevanti l'uno per l'altro, sommandoli si otterrà un valore piccolo o negativo.
  • Il numero risultante viene immesso in una funzione Tanh di attivazione che associa tutti gli input a un numero compreso tra -1 e 1.
  • L'output della funzione Tanh viene quindi moltiplicato per i pesi del valore wV. In questo modo si ottiene il punteggio di allineamento tra il vettore di query e il vettore di chiave.
  • Il punteggio di allineamento viene quindi immesso in una funzione softmax, che fornisce un peso di attenzione per quel vettore di chiave.
     

Il vettore di contesto utilizzato dal decoder per generare la frase tradotta viene calcolato come somma ponderata per l'attenzione di ciascun vettore di chiave. Un beneficio dell'attenzione additiva è che non richiede che i vettori di query e chiave abbiano la stessa lunghezza.

Dot Product Attention

Nel 2015, Luong et al hanno introdotto diverse nuove metodologie per semplificare e migliorare il meccanismo di attenzione di Badhanau per la traduzione automatica. Il loro contributo più notevole è forse stata una nuova funzione di punteggio di allineamento che utilizzava la moltiplicazione al posto dell'addizione. Ha anche evitato la funzione Tanh , calcolando la somiglianza tra vettori di stato nascosti utilizzando il loro prodotto scalare. Per questo motivo, viene spesso chiamata Dot Product Attention o attenzione moltiplicativa.

L'intuizione di utilizzare il prodotto scalare per confrontare i vettori di query è sia matematica che pragmatica:

  • Se i vettori Q e K sono allineati, ovvero se una query e una chiave hanno un significato simile, moltiplicandole si otterrà un valore elevato. Dopo softmax, questo valore elevato determina un peso di attenzione elevato per quella chiave. Se non sono ben allineati, il loro prodotto scalare sarà piccolo o negativo e la successiva funzione softmax risulterà in un peso dell'attenzione ridotto.
  • Nella pratica, la moltiplicazione è molto più veloce e più efficiente dal punto di vista computazionale per le reti neurali rispetto alle operazioni additive, in quanto può essere implementata in meno passaggi utilizzando la moltiplicazione di matrici.6

Una conseguenza dell'utilizzo della Dot Product Attention è che i calcoli del prodotto scalare richiedono che entrambi i vettori abbiano la stessa dimensione. dK .

Mentre l'attenzione additiva procede a calcolare il vettore di contesto come somma ponderata dei vettori di chiave, la Dot Product Attention calcola il vettore di contesto come media ponderata dei vettori di chiave.
 

Scaled Dot Product Attention

Gli autori di “Attention is All You Need” hanno osservato che, sebbene la Dot Product Attention sia più rapida e più efficiente dal punto di vista computazionale rispetto all’attenzione additiva, quest'ultima supera la Dot Product Attention tradizionali per i vettori più lunghi.

Hanno ipotizzato che quando dK è molto grande, anche i prodotti scalari risultanti sono molto grandi. Quando la funzione softmax riduce tutti quei valori molto grandi per adattarli tra 0 e 1, la retropropagazione produce gradienti estremamente piccoli che sono difficili da ottimizzare. La sperimentazione ha rivelato che il ridimensionamento del prodotto scalare di due vettori di lunghezza dK per  1dK prima della normalizzazione softmax genera gradienti più grandi e, quindi, un addestramento più ottimale.

La funzione Dot Product Attention utilizzata nei modelli trasformativi è scritta come ATTenTion(Q,K,V)=sofTMaX(QKTdK)V .

 

Auto-attenzione

I primi tipi di meccanismi di attenzione eseguivano tutti ciò che ora è classificato come attenzione incrociata. Nell'attenzione incrociata, le query e le chiavi provengono da fonti di dati diverse. Ad esempio, nelle attività di traduzione automatica le chiavi provengono da un corpus di testo in una lingua, mentre le query da un'altra lingua; nelle attività di riconoscimento vocale, le query sono dati audio e le chiavi sono dati di testo per trascrivere l'audio.

Nell'auto-attenzione le query, le chiavi e i valori sono tutti attinti dalla stessa fonte. Mentre sia i meccanismi di attenzione di Bahdanau che quelli di Luong erano esplicitamente progettati per la traduzione automatica, Cheng at al propongono l'auto-attenzione , che chiamano "intra-attenzione," come metodo per migliorare la lettura automatica in generale. Il loro meccanismo di attenzione, delineato in un articolo del 2016, esplora non come gli elementi di input contribuiscono a una sequenza complessiva, bensì come i diversi token di input si relazionano tra di loro.

Consideriamo un modello linguistico che interpreta il testo
"venerdì, il giudice ha emesso una sentenza."

  • La parola che precede il suggerisce che giudice fa da sostantivo, nel senso di persona che presiede un processo giuridico, piuttosto che un verbo che significa valutare o farsi un'opinione.
  • Quel contesto per la parola giudice suggerisce che "sentenza" probabilmente si riferisce a una sanzione legale, piuttosto che a un pensiero.
  • La parola "emesso" rafforza la teoria che "sentenza" si riferisca al concetto giuridico.
  • Pertanto, quando si interpreta la parola "sentenza" , il modello dovrebbe prestare molta attenzione a giudice e"emesso" . Dovrebbe anche prestare attenzione alla parola il . Può più o meno ignorare le altre parole. Un meccanismo di auto-attenzione ben addestrato calcolerebbe i pesi di attenzione di conseguenza.

L'articolo di Cheng et alsi concentrava esclusivamente sulla capacità, da parte dell'auto-attenzione, di leggere e comprendere il testo, ma presto ne conseguì che anche la modellazione delle relazioni intrasequenziali poteva essere un potente strumento per scrivere del testo. L'ulteriore sviluppo dell'auto-attenzione, insieme ai modelli trasformativi che ha supportato, ha portato direttamente all'avvento della moderna AI generativa e degli LLM autoregressivi in grado di generare testo originale.
 

Auto-attenzione e traduzione automatica

Gli LLM autoregressivi possono anche eseguire la traduzione automatica utilizzando l'autoattenzione, ma devono affrontare l'attività in modo diverso. Mentre l'attenzione incrociata considera la frase originale e la frase tradotta come due sequenze distinte, l'auto-attenzione considera il testo originale e il testo tradotto come una sola sequenza.

Affinché un LLM autoregressivo e basato sull'auto-attenzione sia in grado di tradurre testo, tutte le parole che il modello incontra durante l'addestramento, in ogni lingua, vengono apprese come parte di un ampio vocabolario di token multilingue. Il modello si rende conto semplicemente che quando una sequenza contiene istruzioni come "traduci [parole in Lingua 1] in Lingua 2", le parole successive nella sequenza devono essere token della Lingua 2.

In sostanza, un LLM autoregressivo non comprende necessariamente che esistono lingue diverse di per sé. Capisce invece come determinati raggruppamenti di token, in questo caso token corrispondenti a parole della stessa lingua, si interfacciano l'uno con l'altro. Questa comprensione contestuale è ulteriormente rafforzata da tecniche come il perfezionamento delle istruzioni.

 

L'attenzione nei modelli trasformativi

L'articolo "Attention is All You Need", scritto da Viswani et al, si è ispirato all'auto-attenzione per introdurre una nuova architettura di reti neurali: il trasformatore. Il loro modello a trasformatore evitava del tutto le circonvoluzioni e le ricorrenze, utilizzando invece solo i livelli di attenzione e i livelli di feedforward lineari standard.

Il modello degli autori ha seguito una struttura encoder-decoder simile a quella dei suoi predecessori basati su RNN. I modelli successivi basati su trasformatori si sono allontanati da quel framework di encoder-decoder. Uno dei primi modelli di riferimento introdotti sulla scia del documento sui trasformatori, ovvero BERT (abbreviazione di "bidirectional encoder representations from transformers"), è un modello che utilizza solo encoder. Gli LLM autoregressivi che hanno rivoluzionato la generazione di testi, come i modelli GPT (Generative Pretrained Transformer), sono solo decoder.

"Attention is All You Need" ha proposto diverse innovazioni al meccanismo di attenzione, una delle quali era l'attenzione al prodotto scalare, per migliorare le prestazioni e adattare l'attenzione a una struttura del modello completamente nuova.
 

Codifica posizionale

L'ordine e la posizione relativi delle parole possono avere un'influenza importante sul loro significato. Mentre le RNN conservano intrinsecamente le informazioni sulla posizione di ciascun token calcolando gli stati nascosti in serie, una parola dopo l'altra, i modelli trasformativi devono codificare esplicitamente le informazioni sulla posizione.

Con la codifica posizionale, il modello aggiunge un vettore di valori all'incorporamento di ogni token, derivato dalla sua posizione relativa, prima che l'input entri nel meccanismo di attenzione. Questo vettore posizionale in genere ha molte meno dimensioni rispetto all'incorporamento del token stesso, quindi solo un piccolo sottoinsieme dell'incorporamento del token riceverà informazioni sulla posizione. La matematica è un po' complessa, ma la logica è semplice:

  • Più due token sono vicini, più simili saranno i loro vettori posizionali.
  • Più i rispettivi vettori posizionali sono simili, più la somiglianza tra i rispettivi incorporamenti di token aumenterà dopo l'aggiunta di tali vettori posizionali.
  • Più sono simili i loro incorporamenti aggiornati a livello di posizione, maggiore sarà il loro punteggio di allineamento, con conseguente maggiore attenzione tra questi due token. In questo modo, il modello impara a prestare maggiore attenzione ai token vicini.

Viswani et al hanno progettato un semplice algoritmo che utilizza una funzione seno per i token in posizioni pari e coseno per i token in posizioni dispari. Gli algoritmi successivi, come il Rotary Positional Encoding (RoPE), hanno migliorato la capacità di codificare efficacemente le informazioni posizionali per sequenze molto lunghe, contribuendo così agli LLM con finestre di contesto più ampie.
 

Meccanismo di auto-attenzione nei modelli trasformativi

Una volta che ogni incorporamento di token è stato aggiornato con informazioni sulla posizione, ciascuno viene utilizzato per generare tre nuovi vettori passando l'incorporamento di token originale attraverso ciascuno dei tre livelli di rete neurale lineari paralleli (feedforward) che precedono il primo livello di attenzione. Ogni livello parallelo ha una matrice univoca di pesi i cui valori specifici vengono appresi attraverso il pre-addestramento auto-supervisionato su un enorme set di dati di testo.

  • L'incorporazione viene moltiplicata per la matrice di peso WQ per ottenere il vettore di query (Q), che ha dimensioni dK 
  • L'incorporazione viene moltiplicata per la matrice di peso WK per ottenere il vettore di chiave (K), anch'esso con dimensioni dK 
  • L'incorporazione viene moltiplicata per la matrice di peso WV per ottenere il vettore di valori ( V ), con dimensioni  dv

La funzione principale del meccanismo di attenzione è quella di ponderare l'importanza delle coppie di chiavi di query tra ogni token. Per ogni token x in una sequenza di input, il modello trasformativo calcola (e poi applica) i pesi di attenzione come segue:

  1. Il vettore di query del token x QX viene moltiplicato per il vettore di chiave di ogni altro token K. Il prodotto scalare risultante sarà grande per un token altamente rilevante, mentre il prodotto scalare con un token irrilevante sarà piccolo o negativo.
  2. Ogni prodotto scalare verrà scalato , ovvero moltiplicato per 1dK. Il risultato è il punteggio di allineamento tra il token x e ogni altro token.
  3. Questi punteggi di allineamento sono input in una funzione softmax, che normalizza ogni punteggio su un valore compreso tra 0 e 1, affinché la somma di tutti sia 1. Questi sono i pesi di attenzione tra il token x e l'altro token. Si potrebbe pensare che ogni token abbia ora un corrispondente vettore di pesi di attenzione, in cui ogni elemento di quel vettore rappresenta la misura in cui qualche altro token dovrebbe influenzarlo.
  4. Il vettore di valore di ogni altro token viene ora moltiplicato per il rispettivo peso di attenzione.
  5. Viene calcolata la media di tutti questi vettori di valori ponderati per l'attenzione; il vettore risultante rappresenta la media di tutti i contributi ponderati per l'attenzione di ciascun vettore di chiave.
  6. Infine, il vettore di modifiche risultante per ogni token viene aggiunto all'incorporamento vettoriale originale del token x. In sostanza, l'incorporamento vettoriale del token x è stato aggiornato per riflettere meglio il contesto fornito dagli altri token nella sequenza.

Multi-Head Attention

Fare la media dei contributi ponderati per l'attenzione di altri token invece di tenere conto di ogni singolo contributo ponderato per l'attenzione è matematicamente efficiente, ma si traduce in una perdita di dettagli. L'architettura trasformativa risolve questo problema implementando la Multi-Head Attention.

Per trarre beneficio dall'efficienza della media pur tenendo conto delle molteplici relazioni tra i token, i modelli trasformativi calcolano le operazioni di auto-attenzione più volte in parallelo su ogni livello di attenzione della rete. Ogni incorporamento del token di input originale è suddiviso in h sottoinsiemi di dimensioni uguali. Ogni elemento dell'incorporamento viene inserito in una delle h matrici parallele di pesi Q, K e V , ognuna delle quali è chiamata rispettivamente head di query , head di chiave o head di valore. I vettori generati da ciascuna di queste triplette parallele head di query, chiave e valore vengono quindi inseriti in una corrispondente head di attenzione.

Nei livelli finali di ciascun blocco di attenzione, gli output di questi circuiti h in parallelo vengono infine concatenati di nuovo insieme. Nella pratica, l'addestramento del modello fa in modo che ogni circuito apprenda da pesi diversi che catturano un aspetto separato dei significati semantici. Questo, a sua volta, consente al modello di elaborare diversi modi in cui il contesto di altre parole può influenzare il significato di una parola. Ad esempio, una head di attenzione potrebbe specializzarsi nei cambiamenti di tempo verbale, mentre un'altra è specializzata nel modo in cui le parole vicine influenzano il tono.

Qui viene dimostrato l'intero circuito di moltiplicazione di matrici nel blocco di attenzione di un trasformatore standard. Vale la pena notare che le successive evoluzioni del meccanismo di attenzione del trasformatore, come la Multi-Query Attention e la Grouped Query Attention, semplificano o combinano alcuni elementi del processo per ridurre le richieste computazionali.

Generazione di output

Negli ultimi livelli dei modelli trasformativi, le head di attenzione sono spesso addestrate a fare previsioni specifiche. Per esempio, una head di attenzione nell'ultimo livello di un LLM potrebbe specializzarsi nella Named Entity Recognition, mentre un'altra nell'analisi del sentiment, e così via.

Negli LLM autoregressivi, il penultimo livello è un livello lineare che riceve il vettore completamente trasformato e lo proietta in una dimensione corrispondente a quella degli incorporamenti vettoriali che il modello ha appreso per ogni token nel suo vocabolario. Ciò consente di calcolare punteggi che rappresentano il grado di corrispondenza del vettore risultante con ciascun token in quel vocabolario. L'ultimo livello è un livello softmax, che converte quei punteggi in probabilità (su 1) e utilizza tali probabilità per fornire quella che ritiene essere la parola successiva più probabile, in base alle parole che l'hanno preceduta.

Note a piè di pagina

1. "Leaderboard: Object Detection on COCO test-dev," Papers With Code, accessed 18 novembre 2024
2. "Leaderboards: Image Segmentation" Papers With Code, accessed 18 novembre 2024
3. "Leaderboard: Visual Question Answering (VQA) on VQA v2 test-dev," Papers With Code, accessed 18 November 2024
4. "Learning long-term dependencies with gradient descent is difficult," IEE Transactions on Neural Networks 5(2): 157-66, febbraio 1994
5. "Neural Machine Translation by Jointly Learning to Align and Translate," arXiv, 1 settembre 2014
6. "Multiplicative Attention," Papers With Code

Soluzioni correlate
IBM watsonx.ai

Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Servizi AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Fai il passo successivo

Ottieni l'accesso completo a funzionalità che coprono l'intero ciclo di vita dello sviluppo dell'AI. Crea soluzioni AI all'avanguardia con interfacce intuitive, workflow e accesso alle API e agli SDK standard di settore.

Esplora watsonx.ai Prenota una demo live