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
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).
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.
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.
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:
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.
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:
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.
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.
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 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.
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 , 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:
Una conseguenza dell'utilizzo della Dot Product Attention è che i calcoli del prodotto scalare richiedono che entrambi i vettori abbiano la stessa dimensione. .
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.
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 è 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 per 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 .
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."
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.
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'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.
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:
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.
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.
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:
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.
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.
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
Scopri come i CEO possono trovare il giusto equilibrio tra il valore che l'AI generativa può creare, gli investimenti che richiede e i rischi che introduce.
Impara i concetti fondamentali e sviluppa le tue competenze con laboratori pratici, corsi, progetti guidati, prove e molto altro.
Scopri come incorporare in tutta sicurezza l'AI generativa e il machine learning nella tua azienda.
Vuoi ottenere un ritorno migliore sui tuoi investimenti nell'AI? Scopri come lo scaling della GenAI in settori chiave può favorire il cambiamento, aiutando le tue menti migliori a creare e fornire nuove soluzioni innovative.
Abbiamo intervistato 2.000 organizzazioni in merito alle loro iniziative di AI per scoprire cosa funziona, cosa non funziona e come giocare d'anticipo.
IBM Granite è la nostra famiglia di modelli AI aperti, efficienti e affidabili, su misura per le aziende e ottimizzati per scalare le applicazioni di AI. Esplora le opzioni di linguaggio, codice, serie temporali e guardrail.
Scopri come scegliere il foundation model di AI più adatto al tuo caso d'uso.
Approfondisci i 3 elementi critici di una solida strategia AI: creare un vantaggio competitivo, scalare l'AI attraverso l'azienda e promuovere un'AI affidabile.
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.
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.
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.