Come funziona un LLM: guida tecnica ai modelli linguistici di grandi dimensioni

ChatGPT, Claude, Gemini, Llama: sono tutti Large Language Models, e negli ultimi anni sono diventati onnipresenti nel dibattito tecnologico, culturale e politico. Ma come funzionano davvero? La risposta breve è che predÌcono il prossimo token in una sequenza, e lo fanno miliardi di volte in modo abbastanza accurato da sembrare intelligenti. La risposta lunga richiede di capire la tokenizzazione, l'architettura Transformer, il training, il fine-tuning, e i meccanismi che producono sia le capacità straordinarie di questi sistemi sia le loro caratteristiche allucinazioni. Questo articolo cerca di fornire quella risposta lunga in modo accessibile.

La predizione del token successivo: il compito fondamentale

Al cuore di ogni LLM c'è un compito sorprendentemente semplice: dato un testo, predire quale parola (o pezzo di parola) viene dopo. Questo è chiamato language modeling o next-token prediction. Il modello ha una distribuzione di probabilità su tutto il suo vocabolario per ogni posizione: "dopo questa sequenza di parole, la parola successiva è 'il' con probabilità 0.3, 'un' con 0.15, 'questo' con 0.12, ecc."

La cosa straordinaria è che per imparare a predire bene il prossimo token su miliardi di esempi di testo umano, il modello deve implicitamente imparare grammatica, semantica, fatti sul mondo, ragionamento causale, stili di scrittura, conoscenze specialistiche in decine di domini. Non perché venga programmato per farlo, ma perché è impossibile predire bene il testo senza queste conoscenze implicite.

Se il modello sta completando la frase "La capitale della Francia è..." deve sapere che Parigi è la capitale della Francia. Se sta completando "Per risolvere questa equazione di secondo grado, usiamo la formula..." deve saper fare algebra. Il language modeling come task di addestramento fa emergere la conoscenza come effetto collaterale della predizione accurata.

Il training set: dove impara un LLM

I modelli moderni vengono addestrati su quantità di testo quasi impossibili da immaginare. Il training corpus include tipicamente:

La quantità totale di testo usata per addestrare modelli come Llama 3 (Meta) arriva a 15 trilioni di token. GPT-4 e Claude 3 non hanno rivelato le dimensioni esatte del loro corpus, ma si stima siano nell'ordine di decine di trilioni di token. Per contestualizzare: tutta la Wikipedia inglese è circa 4 miliardi di token; un trilione è 250.000 volte Wikipedia.

La qualità del training data è cruciale tanto quanto la quantità. Il processo di data curation include filtri per rimuovere contenuti duplicati, spam, testi di bassa qualità, contenuti pericolosi. I dataset di migliore qualità vengono "upsampled" (mostrati al modello più volte durante il training).

La tokenizzazione: come il testo diventa numeri

I modelli non lavorano direttamente con caratteri o parole: lavorano con token, unità sub-parola prodotte da un algoritmo di tokenizzazione. L'algoritmo più usato è BPE (Byte Pair Encoding), che costruisce il vocabolario fondendo le coppie di token più frequenti.

Il risultato è che le parole comuni sono un singolo token ("casa", "house"), le parole meno comuni vengono spezzate in sub-parole ("anticostituzionale" → "anti", "costitu", "zionale"), e tutto il testo può essere rappresentato come sequenza di interi che indicizzano il vocabolario. Il vocabolario tipico di un modello moderno ha 32.000-128.000 token.

Le implicazioni pratiche della tokenizzazione sono non ovvie:

L'architettura Transformer: la rivoluzione del 2017

L'architettura che ha reso possibili i LLM moderni è il Transformer, introdotto nel paper "Attention Is All You Need" da Vaswani et al. (Google Brain, 2017). Prima del Transformer, i modelli di linguaggio usavano RNN (Recurrent Neural Networks) o LSTM, che processavano il testo sequenzialmente, token per token, con difficoltà a catturare dipendenze a lunga distanza.

Il Transformer elabora l'intera sequenza in parallelo, usando un meccanismo chiamato self-attention. L'intuizione del meccanismo di attenzione:

Quando il modello elabora un token, non guarda solo quel token in isolamento: "guarda" tutti gli altri token nella sequenza e decide quanto ciascuno di essi è rilevante per capire il token corrente. La rilevanza è calcolata come un prodotto scalare tra vettori di "query" (cosa sto cercando?) e "key" (cosa offro?), normalizzato e usato per pesare i vettori di "value" (cosa trasferisco?).

Per esempio, elaborando la parola "lo" nella frase "Giovanni ha preso il libro e lo ha messo sul tavolo", il meccanismo di attenzione deve capire che "lo" si riferisce a "libro": il modello imparerà a dare alta attenzione alla parola "libro" quando processa "lo", per trasferire informazioni semantiche rilevanti.

Il Transformer usa multi-head attention: invece di un singolo pattern di attenzione, calcola l'attenzione in parallelo in più "teste" (tipicamente 32-128 teste nei grandi modelli), ognuna delle quali può imparare a catturare relazioni diverse (sintattica, semantica, coreferenza, ecc.). Gli output di tutte le teste vengono poi concatenati e proiettati.

Un Transformer completo (come quelli usati per i LLM) consiste in molti layer sovrapposti (tipicamente 32-96 nei grandi modelli), ognuno contenente un blocco di multi-head attention seguito da una feed-forward network (MLP). Con l'aumentare dei layer, il modello impara rappresentazioni sempre più astratte e complesse.

Parametri e pesi: cosa misura le "dimensioni" di un modello

Le dimensioni di un LLM vengono espresse in "numero di parametri": Llama 3.1 8B ha 8 miliardi di parametri, Claude 3 Opus si stima abbia oltre 100 miliardi, GPT-4 si presume abbia centinaia di miliardi (OpenAI non ha confermato).

I parametri (o pesi) sono i numeri che il modello impara durante il training: le matrici di pesi delle layer di attenzione (W_Q, W_K, W_V, W_O) e delle feed-forward network. Ogni parametro è tipicamente un numero floating point a 16 bit (2 byte) o 32 bit. Un modello da 7 miliardi di parametri in float16 occupa circa 14GB di memoria.

Il numero di parametri è correlato (ma non identico) alle capacità del modello: più parametri generalmente significano più "capacità di memorizzare e manipolare conoscenza", ma con rendimenti decrescenti e con un training più costoso. La ricerca recente si è spostata verso modelli più efficienti che fanno molto con meno parametri (Mistral 7B che batte modelli da 13B, o i modelli della serie Phi di Microsoft addestrati su dati curatissimi).

Il training: gradient descent semplificato

L'addestramento di un LLM usa una variante di gradient descent stocastico. Il processo:

  1. Si prende un batch di testo dal training corpus.
  2. Si esegue il forward pass: il modello processa il testo e produce una distribuzione di probabilità per ogni posizione.
  3. Si calcola la loss (tipicamente cross-entropy loss): quanto le predizioni del modello si discostano dai token reali nel testo.
  4. Si calcola il gradiente della loss rispetto a tutti i parametri del modello (backward pass, o backpropagation).
  5. Si aggiornano tutti i parametri nella direzione che riduce la loss, con una piccola quantità proporzionale al learning rate.
  6. Si ripete per miliardi di iterazioni.

Il costo computazionale è enorme: addestrare GPT-4 ha richiesto settimane su migliaia di GPU A100 in parallelo, con un costo stimato di decine o centinaia di milioni di dollari. Llama 3 405B (Meta) è stato addestrato su 16.000 GPU H100 per mesi. Questo crea una barriera all'ingresso significativa e spiega perché solo poche organizzazioni (OpenAI, Google, Meta, Anthropic, Mistral, Cohere) abbiano i mezzi per addestrare modelli frontier.

Fine-tuning e RLHF: da previsore di testo ad assistente

Un modello appena pre-addestrato è un ottimo previsore di testo ma non è un buon assistente: tende a continuare il testo nella stessa "voce" del training data, può completare domande con altre domande, e non segue le istruzioni dell'utente in modo affidabile.

Il fine-tuning supervisionato (SFT) consiste nell'addestrare il modello pre-trained su un dataset di coppie istruzione-risposta di alta qualità, scritte o revisionate da umani. Questo insegna al modello il formato di dialogo e a seguire le istruzioni.

Il RLHF (Reinforcement Learning from Human Feedback) è il passo successivo. Si usa così:

  1. Il modello genera multiple risposte alla stessa domanda.
  2. Annotatori umani classificano le risposte per qualità (utilità, correttezza, sicurezza).
  3. Questi ranking vengono usati per addestrare un "reward model" che impara a predire i ranking umani.
  4. Il reward model viene usato come segnale di rinforzo per addestrare ulteriormente il modello di linguaggio principale, spingendolo verso risposte che il reward model classifica come buone.

OpenAI ha introdotto questo approccio con InstructGPT (2022), e da allora è diventato standard. Varianti includono DPO (Direct Preference Optimization), che è matematicamente equivalente a RLHF ma più semplice da implementare, e Constitutional AI (Anthropic), che usa principi espliciti per guidare il feedback.

La finestra di contesto: la memoria di lavoro dell'LLM

La finestra di contesto è la quantità massima di token che il modello può "vedere" simultaneamente durante l'inferenza. È la memoria di lavoro del modello: tutto ciò che è dentro la finestra è accessibile, tutto il resto non esiste per il modello.

I modelli originali (GPT-3, 2020) avevano finestre di 2048 token (~1500 parole). I modelli attuali hanno finestre molto più ampie: Claude 3.5 ha 200.000 token (~150.000 parole, un libro intero), Gemini 1.5 Pro ha 1 milione di token, con versioni sperimentali a 2 milioni. Questa espansione ha reso possibili nuove applicazioni: analisi di documenti lunghi, codebase complete, conversazioni molto lunghe.

Il costo computazionale dell'attenzione scala quadraticamente con la lunghezza del contesto (ogni token guarda a ogni altro token), rendendo le finestre molto grandi computazionalmente costose. Tecniche come Flash Attention, MQA/GQA (Multi-Query/Grouped-Query Attention) e KV-cache ottimizzano questo calcolo.

La temperatura: creatività vs determinismo

Quando il modello predice il prossimo token, sceglie dalla distribuzione di probabilità. La temperatura controlla "quanto segue la distribuzione":

Parametri correlati: top-p (nucleus sampling) considera solo i token con probabilità cumulativa superiore a p, escludendo le "code" della distribuzione; top-k considera solo i k token più probabili.

Le allucinazioni: perché i modelli inventano

Un'allucinazione in un LLM è quando il modello genera informazioni false o non verificabili presentate con la stessa confidenza delle informazioni vere. Il modello "inventa" citazioni bibliografiche, date storiche, nomi di persone, codice che non funziona, o semplicemente afferma il falso.

Le allucinazioni emergono da diversi meccanismi:

Strategie per mitigare le allucinazioni: Retrieval-Augmented Generation (RAG, il modello cerca informazioni in un database di documenti affidabili prima di rispondere), tool use (il modello può eseguire ricerche web o query su database reali), chain-of-thought prompting (il modello ragiona esplicitamente prima di rispondere).

Il panorama dei modelli nel 2024-2025

Locale vs cloud: il trade-off

I modelli possono girare sia su cloud (API) che localmente su hardware consumer. Il trade-off:

Cloud (OpenAI, Anthropic, Google): Accesso ai modelli più capaci, infrastruttura gestita, no hardware richiesto, pricing a consumo ma costi per uso intensivo, dati inviati a terze parti.

Locale (Ollama, llama.cpp, LM Studio): Privacy totale, zero costo marginal dopo l'hardware, possibilità di fine-tuning, disponibilità offline. Ma limitato ai modelli più piccoli (7B-70B) su hardware consumer, prestazioni inferiori ai frontier models, latenza dipendente dall'hardware. Un M3 Max con 128GB può girare modelli fino a 70B a velocità accettabili.

Il futuro: reasoning, agenti e multimodalità

Le tendenze più significative dell'evoluzione degli LLM:

Modelli di reasoning: o1 di OpenAI, DeepSeek R1, e Claude 3.7 Sonnet con "extended thinking" dedicano tempo di compute all'inferenza per ragionare prima di rispondere, simulando una catena di pensiero. Migliorano significativamente su compiti che richiedono ragionamento multi-step (matematica, coding complesso, logica).

Agenti autonomi: LLM che usano tool (ricerca web, esecuzione di codice, lettura/scrittura di file, API esterne) per completare task complessi senza intervento umano continuo. Sistemi come Anthropic Computer Use, OpenAI Operator, e Devin (coding agent) anticipano applicazioni dove un LLM gestisce autonomamente workflow completi.

Multimodalità nativa: Modelli che processano nativamente testo, immagini, audio, video in un'architettura unificata invece di pipeline separate. GPT-4o e Gemini 2.0 sono esempi precoci; il futuro è modelli che ragionano su tutti i tipi di dati simultameamente.