L’idea intera in una catena
Ecco il percorso completo. Non preoccuparti se all’inizio sembra un indovinello; il resto dell’articolo spiega ogni anello.
Spezza una frase in pezzi e ottieni i token. Trasforma i token in liste di numeri e ottieni gli embedding. Lascia che ogni token faccia una domanda e ottieni una query; lascia che gli altri rispondano e ottieni key e value. Confronta le query con le key e ottieni i punteggi di attenzione. Normalizzali con la softmax e ottieni i pesi di attenzione. Usa i pesi per mescolare i value e ottieni il contesto. Fai questo per ogni token e ottieni la self-attention. Aggiungi una rete feed-forward, connessioni residue e normalizzazione e ottieni un blocco transformer. Impila i blocchi e ottieni un transformer. Addestralo a prevedere il token successivo e ottieni un modello linguistico. Insegnagli a seguire le istruzioni e a imparare dal feedback umano e ottieni qualcosa di molto vicino a ChatGPT.
Passo 1: spezza una frase in pezzi e ottieni i token
Un computer non legge le parole come te. La prima cosa che fa un modello linguistico è tagliare il testo in piccoli pezzi chiamati token. Un token può essere una parola intera («colloquio»), una parte di parola («collo» + «quio»), un segno di punteggiatura o perfino uno spazio attaccato a una parola.
Perché non parole intere? Sono troppe, e ne compaiono di nuove ogni giorno. Con i pezzi di parola, un modello può gestire qualsiasi testo, compresi nomi rari e refusi, con un vocabolario fisso di decine di migliaia di token. A ogni token di quel vocabolario viene assegnato un numero di ID. La frase «Ho superato il colloquio» potrebbe diventare qualcosa come [40, 1734, 279, 7274].
Un token equivale a circa tre quarti di una parola inglese, quindi una «finestra di contesto da 128.000 token» significa circa 95.000 parole che il modello può considerare in una volta.
Passo 2: trasforma i token in vettori e ottieni gli embedding
Un ID di token come 7274 è solo un’etichetta e non dice nulla sul significato. Per questo il modello cerca ogni ID in una grande tabella e lo sostituisce con una lunga lista di numeri, spesso centinaia o migliaia. Quella lista si chiama vettore, e il vettore che rappresenta un token si chiama embedding.
Nessuno scrive questi numeri a mano. Partono casuali e vengono regolati durante l’addestramento finché non catturano ciò che ogni token significa e come viene usato.
Passo 3: disegna gli embedding nello spazio e il significato diventa geometria
Tratta ogni embedding come le coordinate di un punto e ogni token diventa un luogo in uno spazio enorme a molte dimensioni. Non puoi immaginare mille dimensioni, ma l’idea funziona anche in due o tre.
In quello spazio, i token dal significato simile finiscono vicini. «Stipendio» sta vicino a «paga» e «retribuzione». «Colloquio» sta vicino a «incontro» e «assunzione». Perfino le direzioni possono avere un significato: l’esempio famoso è che il passaggio da «uomo» a «donna» punta più o meno nella stessa direzione del passaggio da «re» a «regina».
Gli embedding da soli non dicono dove si trova un token, e l’ordine cambia il significato: «il candidato ha intervistato il manager» non è la stessa cosa di «il manager ha intervistato il candidato». Per questo i modelli aggiungono a ogni vettore anche informazioni di posizione.
Passo 4: ogni token fa e risponde a domande: query, key e value
Le parole cambiano significato in base alle vicine: «porta» significa cose diverse in «la porta di casa» e «porta il libro». Quindi ogni token deve guardare gli altri. È l’idea più importante dell’AI moderna.
A partire dall’embedding di ogni token, il modello crea tre nuovi vettori moltiplicandolo per tre tabelle di numeri apprese:
- Query: la domanda che questo token pone. Pensa alla parola «lo» che chiede: «A quale nome precedente della frase mi riferisco?»
- Key: ciò che questo token offre, come l’etichetta di uno schedario. La key di un nome potrebbe dire in sostanza: «Sono qualcosa a cui ci si può riferire.»
- Value: l’informazione vera e propria che questo token consegnerà se un altro token la ritiene rilevante.
Pensa a una biblioteca: la query è la tua ricerca, le key sono i titoli sugli scaffali e i value sono ciò che c’è dentro i libri.
Passo 5: confronta una query con le key e ottieni i punteggi di attenzione
Ogni token confronta la propria query con la key di ogni token che può vedere, usando un prodotto scalare: si moltiplicano i due vettori numero per numero e si sommano i risultati. Direzioni simili danno un risultato grande; direzioni senza relazione ne danno uno piccolo o negativo.
Il risultato è un insieme di punteggi di attenzione, uno per ogni coppia di token. Un punteggio alto significa «questo altro token sembra rilevante per la mia domanda». Nella frase «La recruiter ha chiamato la candidata perché le è piaciuto il suo portfolio», il token «suo» dovrebbe produrre un punteggio alto con «candidata» e più basso con «recruiter».
Passo 6: normalizza i punteggi con la softmax e ottieni i pesi di attenzione
I punteggi grezzi possono avere qualsiasi grandezza, positivi o negativi. Una funzione chiamata softmax li trasforma in valori positivi che sommano esattamente 1, dando ai punteggi più alti una quota molto più grande.
Queste quote sono i pesi di attenzione, come percentuali di focus. Un esempio semplificato per «suo»:
| Altro token | Punteggio grezzo | Peso di attenzione |
|---|---|---|
| candidata | 4,0 | 0,84 |
| recruiter | 2,0 | 0,11 |
| ha chiamato | 1,0 | 0,04 |
| la | -1,0 | 0,01 |
Quindi «suo» dedicherà circa l’84% della sua attenzione a «candidata».
Passo 7: usa i pesi per combinare i value e ottieni il contesto
Ora ogni token costruisce un nuovo vettore con una miscela pesata dei value: l’84% del value di «candidata», l’11% di «recruiter» e così via. Il risultato è una nuova rappresentazione di «suo» che porta informazioni su chi sia davvero il referente di «suo».
Questo è ciò che significa contesto dentro un modello. La parola non è più solo «suo» in astratto; è «suo, cioè della candidata, in una frase su un portfolio».
Passo 8: fai fare questo a ogni token e ottieni la self-attention
Quando ogni token esegue questo processo nello stesso momento, si parla di self-attention (autoattenzione): la frase che presta attenzione a se stessa.
Due raffinamenti la rendono potente:
- Solo i token che può vedere. In un modello che scrive testo, ogni token può guardare solo i token che lo precedono, mai quelli successivi. Questa maschera causale esiste perché, mentre genera, le parole future non esistono ancora.
- Molte teste insieme. I modelli eseguono più processi di attenzione in parallelo, chiamati teste di attenzione, ciascuno con le proprie tabelle di query, key e value. Una può seguire la grammatica, un’altra chi si riferisce a chi. Questa è la multi-head attention.
Passo 9: aggiungi feed-forward, residui e normalizzazione e ottieni un blocco transformer
L’attenzione condivide informazioni; il modello ha bisogno anche di elaborarle. Altre tre parti completano l’unità:
- Rete feed-forward: dopo l’attenzione, il vettore di ogni token attraversa da solo una piccola rete neurale. Se l’attenzione è una riunione in cui tutti condividono appunti, qui ciascuno li elabora alla propria scrivania.
- Connessioni residue: invece di sostituire il vettore di un token con il nuovo risultato, il modello somma il risultato all’originale. Così l’informazione precedente resta intatta e le reti profonde sono più facili da addestrare.
- Normalizzazione: un passaggio che riscala i numeri in un intervallo stabile, perché non crescano fuori controllo né si riducano a niente attraversando molti strati.
Attenzione più feed-forward, avvolte da connessioni residue e normalizzazione, formano un blocco transformer.
Passo 10: impila i blocchi e ottieni un transformer
Un blocco dà una comprensione modesta. Impilane decine, con l’output dell’uno che alimenta il successivo, e ottieni un transformer, l’architettura presentata dai ricercatori di Google nell’articolo del 2017 «Attention Is All You Need». È la «T» di GPT, che sta per «Generative Pre-trained Transformer».
Ogni strato affina il quadro: i primi tendono a cogliere la grammatica, gli ultimi idee più astratte come tono e intenzione. I pesi di tutte quelle tabelle, i numeri che il modello apprende, sono ciò che si intende per parametri. I modelli grandi ne hanno miliardi.
Passo 11: addestralo a prevedere il token successivo e ottieni un modello linguistico
Finora abbiamo una macchina che trasforma il testo in vettori consapevoli del contesto. Ora le diamo un compito. In cima alla pila, il modello trasforma il vettore dell’ultimo token in un punteggio per ogni token del suo vocabolario, poi applica di nuovo la softmax per ottenere una probabilità per ciascuno. In altre parole: «Dato tutto ciò che c’è finora, cosa viene dopo?»
Durante l’addestramento, il modello legge enormi quantità di testo: libri, articoli, codice, siti web. A ogni posizione indovina il token successivo, confronta la sua ipotesi con quello vero e sposta leggermente tutti i suoi parametri nella direzione che avrebbe reso più probabile la risposta giusta. Ripeti migliaia di miliardi di volte e il risultato è un modello linguistico.
Questo compito semplice insegna molto: per prevedere la parola successiva in un manuale o in un contratto, un modello deve assimilare grammatica, fatti e schemi di ragionamento.
Generare testo è semplicemente questa previsione ripetuta. Il modello sceglie un token successivo, di solito campionando dalle probabilità (un’impostazione chiamata temperatura controlla quanto sia audace la scelta), lo aggiunge al testo e prevede di nuovo, un token alla volta.
Passo 12: insegnagli a seguire le istruzioni e a imparare dal feedback e ottieni ChatGPT
Un modello addestrato solo a prevedere il token successivo è un completamento automatico brillante, non un assistente. Fagli una domanda e potrebbe rispondere con altre tre domande. Due ulteriori fasi di addestramento risolvono il problema:
- Instruction tuning (ottimizzazione sulle istruzioni): il modello viene addestrato su moltissimi esempi di una richiesta seguita da una buona risposta utile. Impara lo schema «qualcuno chiede, io rispondo in modo utile».
- Apprendimento dal feedback umano: alcune persone confrontano coppie di risposte del modello e scelgono la migliore. Queste preferenze servono a orientare ulteriormente il modello verso risposte utili, accurate e sicure. Si chiama apprendimento per rinforzo dal feedback umano, o RLHF.
Aggiungi un’interfaccia di chat e ottieni qualcosa di vicino a ChatGPT, Claude o Gemini: lo stesso transformer, plasmato per comportarsi da assistente.
Tutto insieme: il viaggio di una frase
Immagina di scrivere: «La domanda di colloquio più difficile è…» In una frazione di secondo:
- Il testo viene diviso in token e ognuno diventa un embedding con informazioni di posizione.
- In ogni blocco transformer, ogni token forma una query, una key e un value, assegna un punteggio ai token precedenti, trasforma i punteggi in pesi e ne mescola i value. «Difficile» si collega a «domanda», e l’espressione viene compresa come un argomento da colloquio.
- Gli strati feed-forward elaborano ogni vettore aggiornato; residui e normalizzazione mantengono tutto stabile; decine di blocchi lo affinano ulteriormente.
- Il vettore finale diventa probabilità sul vocabolario. Un token come «parlami» ottiene un punteggio alto; il modello lo sceglie, lo aggiunge e ricomincia.
Glossario rapido
| Termine | In parole semplici |
|---|---|
| Token | Un piccolo pezzo di testo, spesso una parola o parte di essa |
| Vettore | Una lista ordinata di numeri |
| Embedding | Il vettore che rappresenta il significato di un token |
| Query / Key / Value | Ciò che un token chiede / ciò che offre / ciò che condivide |
| Punteggio di attenzione | Quanto un token appare rilevante per un altro |
| Softmax | Trasforma i punteggi in quote che sommano 1 |
| Peso di attenzione | La quota di focus che un token dà a un altro |
| Contesto | Il significato di un token aggiornato dai suoi vicini |
| Self-attention | Ogni token presta attenzione ai token che può vedere |
| Blocco transformer | Attenzione + feed-forward + residui + normalizzazione |
| Parametri | I numeri appresi all’interno del modello |
| Finestra di contesto | Quanti token il modello può considerare in una volta |
Perché è importante per la tua carriera
Se ti candidi per un ruolo che ha a che fare con l’AI, saper spiegare token o attenzione con parole semplici è un vero vantaggio. Ti rende anche un utente più attento degli strumenti di AI: capirai perché possono affermare con sicurezza fatti sbagliati (prevedono testo probabile, non verità verificata) e perché un prompt chiaro e specifico dà risposte migliori. Per gli usi pratici, vedi le nostre guide su come usare gli strumenti di AI per esercitarsi ai colloqui di lavoro e su cosa cambiano davvero gli assistenti AI nei colloqui.
Domande frequenti
Qual è la differenza tra un token e una parola?
Un token è l’unità che un modello linguistico legge. Le parole comuni sono spesso un solo token, mentre quelle più lunghe o rare vengono divise in più pezzi. In inglese, un token equivale in media a circa tre quarti di parola.
Un modello linguistico capisce ciò che dice?
Costruisce rappresentazioni interne ricche di significato e contesto, ma è addestrato a prevedere testo probabile, non a verificare i fatti. Per questo le sue risposte possono suonare sicure ed essere comunque sbagliate, e le affermazioni importanti vanno sempre controllate.
ChatGPT è solo un transformer?
In sostanza sì: un grande transformer addestrato a prevedere il token successivo. Ciò che lo rende un assistente utile è l’addestramento aggiuntivo su istruzioni e feedback umano, oltre al prodotto costruito attorno.