Modelli LLM: Come funzionano?

Modelli LLM: Come funzionano?

IV parte: Architettura Transformer. I requisiti

Quarto appuntamento della serie dedicata ai modelli linguistici di grandi dimensioni: ripercorriamo i requisiti che hanno guidato la nascita della Transformer Architecture di Google, dal bisogno di contestualizzare i token fino alla possibilità di processare sequenze complesse in parallelo. Dalla self-attention alle codifiche posizionali, vediamo come ogni componente del Transformer risponda a limiti precisi dei modelli precedenti e perché questa architettura sia diventata la base dei moderni LLM.

Introduzione

Questo articolo rappresenta un ulteriore passo nel percorso dedicato ai Large Language Models (LLM). Nel precedente appuntamento abbiamo visto come i modelli linguistici proiettino le parole in spazi vettoriali n-dimensionali, generando gli embedding che permettono ai computer di dare una forma numerica al linguaggio umano.

Qui concentriamo l'attenzione sull'architettura Transformer (TA), ideata in Google e descritta in Attention Is All You Need. Il Transformer si basa su meccanismi di attenzione per riconoscere le relazioni all'interno di una sequenza ed è stato progettato per compiti di tipo Seq2Seq come la traduzione automatica. La sostituzione degli strati ricorrenti con la self-attention consente una parallelizzazione massiva e ha reso questa architettura il riferimento per tutti i moderni LLM. In questa puntata analizziamo i requisiti che hanno guidato il suo design; nella prossima entreremo nei dettagli implementativi.

Requisiti fondamentali

Prima di addentrarci nei componenti del Transformer vale la pena esplicitare i requisiti chiave alla base della sua progettazione.

1. Elaborazione dell'input consapevole al contesto

Requisito. Il modello deve potersi concentrare sulle porzioni più significative della sequenza mentre elabora i token, andando oltre un approccio strettamente sequenziale.

Motivazione. La comprensione delle relazioni a lungo raggio è essenziale per attività come traduzione, sintesi e risposta a domande, in particolare quando le parole correlate sono distanti.

Soluzione. L'introduzione del meccanismo di auto-attenzione consente di pesare dinamicamente l'importanza relativa dei token, mantenendo il contesto anche su frasi lunghe. Nella frase "The dog sat on the mat because it was comfortable", ad esempio, serve comprendere che "it" si riferisce a "mat" e non a "dog".

2. Elaborazione parallela della sequenza di input

Requisito. Il modello deve analizzare le sequenze da prospettive multiple, calcolando in parallelo più set di punteggi di attenzione (multi-head attention).

Motivazione. Diversi head possono concentrarsi su aspetti differenti della sequenza, migliorando la comprensione complessiva.

Soluzione. L'attenzione multi-head esegue più operazioni di self-attention in parallelo. Ogni head può, ad esempio:

  • seguire dipendenze a breve raggio (come "the" ↔ "dog");
  • rilevare relazioni a lungo raggio (come "it" ↔ "mat");
  • tenere traccia di relazioni causali o sintattiche.

Combinando queste viste il modello costruisce una lettura più ricca dell'input rispetto a un'unica attenzione monolitica.

3. Position encoding / Codifiche posizionali

Requisito. Elaborando i token in parallelo il Transformer perde il senso dell'ordine. Occorre quindi codificare la posizione dei token.

Motivazione. L'ordine è cruciale per comprendere il significato delle frasi e per distinguere ruoli sintattici differenti.

Soluzione. Le positional encoding aggiungono vettori numerici agli embedding dei token. L'uso di funzioni sinusoidali permette di rappresentare posizioni relative senza aumentare la complessità computazionale e consente al modello di riconoscere pattern legati alla posizione.

4. Capacità di identificare pattern complessi

Requisito. Dopo l'attenzione servono ulteriori trasformazioni per estrarre rappresentazioni più astratte.

Motivazione. Per cogliere relazioni intricate nei dati il modello deve trasformare le rappresentazioni generate dall'attenzione in feature più ricche.

Soluzione. Gli strati feed-forward, costituiti da due trasformazioni lineari con attivazione ReLU intermedia, vengono applicati indipendentemente a ciascun token. Lavorano in parallelo e arricchiscono ogni posizione con pattern non lineari, completando il lavoro della self-attention.

Meccanismo di self-attention

Per capire perché i requisiti precedenti convergono proprio nella self-attention vediamo più da vicino come funziona questo componente.

Embeddings e rappresentazione dei token

Ogni parola è rappresentata dal proprio embedding, cioè un vettore appreso durante l'addestramento che cattura relazioni semantiche e morfologiche.

Calcolo di Q, K e V

Per ciascun token vengono calcolati tre vettori attraverso matrici di pesi apprese:

  • Query (Q): ciò che il token desidera recuperare dal contesto.
  • Key (K): l'informazione che il token offre agli altri.
  • Value (V): il contenuto che sarà effettivamente aggregato.

Punteggi di attenzione e normalizzazione

La rilevanza di un token rispetto a un altro è calcolata tramite il prodotto scalare tra il Query del primo e il Key del secondo. I punteggi ottenuti vengono normalizzati con una funzione Softmax per ottenere pesi che sommano a 1. La somma pesata dei vettori Value produce una rappresentazione arricchita di ciascun token. Il processo si ripete per ogni posizione nella sequenza.

Analogia calcistica

Immaginiamo una squadra di calcio:

  • Il Query dell'attaccante corrisponde alla domanda "chi può aiutarmi a segnare?".
  • Il Key del centrocampista evidenzia la sua capacità di creare occasioni.
  • Il Value dell'ala rappresenta l'azione proposta, ad esempio "sono libero sulla fascia".

Il giocatore assegna attenzione maggiore ai compagni i cui Key rispondono meglio al proprio Query e combina i rispettivi Value per scegliere l'azione più efficace.

Esempio numerico

Per fissare le idee consideriamo una frase semplice e ipotizziamo embeddings minimali:

"The" -> [1, 0, 0]
"dog" -> [0, 1, 0]
"sat" -> [0, 0, 1]
"on"  -> [1, 1, 0]
"the" -> [0, 1, 1]
"mat" -> [1, 0, 1]

La parola "dog" può essere proiettata in tre vettori distinti, ad esempio:

  • Q(dog) = [0.2, 0.8, 0.1]
  • K(dog) = [0.5, 0.3, 0.7]
  • V(dog) = [0.6, 0.9, 0.4]

Il prodotto scalare fra Q(dog) e i Key di ogni altra parola genera i punteggi di attenzione, che vengono normalizzati con Softmax. Supponendo i pesi risultanti [0.1, 0.5, 0.2, 0.1, 0.05, 0.05], la rappresentazione contestuale di "dog" diventa la somma pesata dei rispettivi Value. Il procedimento si ripete per tutti i token, permettendo al modello di comprendere ruoli e relazioni ("dog" soggetto, "mat" luogo dell'azione, ecc.).

Conclusioni

La Transformer Architecture è stata progettata per il Natural Language Processing e ha sostituito gli approcci ricorrenti grazie alla capacità di elaborare sequenze in parallelo. I servizi chiave che deve offrire includono:

  • catturare le relazioni fra token tramite self-attention;
  • processare viste multiple dell'input con la multi-head attention;
  • preservare l'ordine con le codifiche posizionali;
  • apprendere pattern complessi tramite strati feed-forward;
  • stabilizzare e velocizzare l'addestramento con layer normalization e connessioni residuali;
  • mantenere la struttura Encoder-Decoder per i compiti sequence-to-sequence;
  • scalare su dataset di grandi dimensioni grazie al parallelismo;
  • trasformare testo e predizioni tramite tokenization, embedding e layer di output.

Queste caratteristiche rendono il Transformer la spina dorsale dei moderni LLM: parallelizzazione, comprensione contestuale, scalabilità e possibilità di trasferire le conoscenze a compiti a valle sono i motivi per cui i modelli contemporanei adottano varianti di questa architettura.

Riferimenti

  • [Vaswani et al., 2023] *Attention Is All You Need*, https://arxiv.org/pdf/1706.03762.pdf
  • [Devlin et al., 2018] *BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding*, https://arxiv.org/abs/1810.04805
  • [Google Gemini Team, 2023] *Gemini: A Family of Highly Capable Multimodal Models*, https://arxiv.org/abs/2312.11805
  • [Radford et al., 2018] *Language Models are Unsupervised Multitask Learners*, https://t.ly/4RI02
  • [Touvron et al., 2023] *LLaMA: Open and Efficient Foundation Language Models*, https://arxiv.org/abs/2302.13971
  • [Belcic, Stryker, 2024] *What is Claude AI?*, https://t.ly/K5LV1