🧠 MoneyViz Academy

Come fa un'IA a scrivere?

Modelli come ChatGPT fanno una cosa sola, tantissime volte: indovinano la parola dopo. Qui lo vedi con i tuoi occhi — prima in modo semplice, poi (se vuoi) nel dettaglio tecnico.

👀 Come sceglie le parole, passo per passo

Per scrivere, l'IA ripete sempre gli stessi 3 passi — uno per ogni parola. Premi «Avanti» e falli uno alla volta, al tuo ritmo:

🎮 Ora tocca a te: indovina prima dell'IA

Hai visto come fa. Adesso prova tu: leggi la frase e scegli la parola che secondo te viene dopo, poi confrontati con l'IA. Quante volte pensi come lei?

Round1
Punti0
Serie0🔥
Pensi come l'IA

Secondo te, quale parola viene dopo?

🎛️ Le "manopole", spiegate semplici

Le stesse cose che nel gergo tecnico si chiamano temperatura, attention e token. Senza paroloni:

🌡️

La "creatività"

Una manopola tra prudente e creativa. Bassa: sceglie quasi sempre la parola più ovvia (risposte prevedibili). Alta: osa parole meno probabili (più fantasiosa, ma può sballare).

gergo: temperatura

👀

A quali parole "guarda"

Per scegliere la parola dopo, l'IA non pesa tutto allo stesso modo: decide quali parole precedenti contano di più — un po' come una ricerca sul web, dove alcune parole pesano più di altre.

gergo: attention

🧩

Pezzi di parole

L'IA non lavora a lettere né a frasi intere, ma a pezzetti: a volte una parola intera, a volte mezza. È il suo "alfabeto".

gergo: token

⚠️ Una cosa importante (soprattutto sui soldi)

L'IA non «capisce» quello che scrive e non cerca fatti in un archivio: indovina schemi a partire da miliardi di testi. Per questo, ogni tanto, inventa con sicurezza numeri, nomi, date o fonti che non esistono (si chiamano allucinazioni). Ottima per scrivere e spiegare — ma le informazioni che contano per i tuoi soldi verificale sempre alla fonte.

Fonte: Financial Times — «Generative AI exists because of the transformer».

🔬 Vuoi vedere il motore vero, parola per parola, con un vero modello IA che gira nel tuo browser?

🤖 Modello reale: un vero LLM (distilGPT-2 / GPT-2 / Qwen2.5) gira nel tuo browser via transformers.js. Tokenizzazione e probabilità del next-token sono reali: cambia il prompt e cambia davvero tutto. Primo avvio: download di qualche decina/centinaio di MB (poi in cache). I modelli GPT-2 sono in inglese: prova un prompt EN, oppure scegli Qwen per l'italiano. I tensori interni (embedding/attention/FFN) non sono esposti dal runtime.

Insight Points 0
Token generati 0
Livello Novizio
🎲 Primo token 👁 Attention master 🌡 Sampler expert 💾 KV explorer 🔄 Loop rider

📝 Testo in costruzione

The cat sat on the

1. Tokenizer

👉 In parole semplici: qui spezziamo il tuo testo di partenza in pezzi (i «token»). Sono l'input che l'IA legge, non la risposta. Le parole nuove che l'IA genera compaiono solo all'ultimo passo (n° 5, «Sampling»).

Il testo viene spezzato in unità (token). Qui usiamo token a parole per chiarezza; GPT usa BPE/WordPiece.

2. Embedding + Positional Encoding

Ogni token diventa un embedding, cioè un vettore numerico. Viene sommato un positional encoding che dice al modello dove si trova nella frase.

3. Masked Multi-Head Self-Attention

Ogni token "interroga" i token precedenti (Query vs Key) e ottiene una media pesata dei Value. La causal mask blocca lo sguardo verso il futuro.

4. Residual, LayerNorm & Feed-Forward

L'output dell'attention viene sommato all'input (skip connection), normalizzato e passato a una rete fully-connected non lineare.

5. Logits → Softmax → Sampling

L'ultimo token viene proiettato sul vocabolario: ottieni logit, poi probabilità, poi campioni il prossimo token con temperatura/top-k/top-p.

🧪 Laboratorio didattico

🔎 Focus dell'ultimo token

Quando generiamo il prossimo token, l'ultima posizione "guarda" indietro. Ecco su quali token precedenti concentra l'attenzione.

Avvia la simulazione per vedere il focus.

🌡️ Effetto temperatura

Stessi logit, tre temperature diverse. Nota come T bassa schiacci tutto sul top token, mentre T alta distribuisce le probabilità.

🎨 Legenda vettori

Ogni riga colorata è un vettore numerico. Non sono decorazioni: rappresentano i valori reali che il modello elabora al posto delle parole.

Valore positivo Valore negativo Intensità (altezza della barra)

📚 Deep Research: cosa succende davvero

Autoregressive next-token prediction

Un Large Language Model è, in fondo, una macchina che stimola la probabilità condizionata P(tokent+1 | token1, …, tokent). Generare un testo lungo significa campionare un token, appenderlo al contesto e ripetere il calcolo. È il cuore di GPT, Claude, LLaMA e simili.

Da testo a numeri: token + embedding

Il tokenizer converte il testo in una sequenza di interi. Ogni intero viene trasformato in un vettore tramite la matrice di embedding. A questo vettore si somma un positional encoding (sinusoidale o RoPE) perché il modello percepisca l'ordine: “il gatto” e “gatto il” devono avere significati diversi.

Self-attention: la formula

Attention(Q, K, V) = softmax( QKT / √dk ) V

Per ogni token costruiamo una Query ("cosa sto cercando?"), una Key ("cosa offro?") e un Value ("cosa trasmetto?"). I prodotti scalari Q·K misurano la similarità; la softmax trasforma questi punteggi in pesi di attenzione. Infine moltiplichiamo per V per ottenere un nuovo vettore contestuale.

In un decoder autoregressivo si applica una causal mask: i pesi per le posizioni future sono forzati a zero (tecnicamente a −∞ prima della softmax), così il modello non può "barare" guardando il futuro.

Multi-head, residual e layer norm

I transformer usano più attention heads in parallelo, ognuna specializzata su diversi tipi di relazioni (sintassi, pronomi, fatti, ecc.). Le uscite vengono concatenate e proiettate. Attorno a ogni sotto-livello c'è una residual connection (input + output) e una layer normalization, che rendono il training profondo stabile.

Feed-Forward Network (FFN)

Dopo l'attention, ogni vettore passa attraverso una piccola rete neurale punto-per-punto (solitamente dmodel → 4×dmodel → dmodel) con attivazione non lineare (GELU/ReLU). È qui che avvengono gran parte delle trasformazioni semantiche.

Dal vettore finale alla probabilità

L'ultimo vettore dello strato finale (quello corrispondente all'ultimo token generato) viene moltiplicato per la matrice di output (spesso la trasposta della matrice di input embedding). Il risultato è un vettore di logits, uno per ogni token del vocabolario. La softmax:

P(i) = exp(zi) / Σj exp(zj)

Training vs inference

Durante il training il modello vede milioni di testi e regola i propri pesi per massimizzare la probabilità del token corretto. Durante l'inference (cioè quando usi ChatGPT o questa simulazione) i pesi sono congelati: il modello non impara più, limita a calcolare P(next | context) e campionare. Quello che stai vedendo qui è inference.

Temperatura, Top-K, Top-P

Temperatura divide i logit per T prima della softmax: T bassa rende il modello determinista e concentrato sul top token; T alta appiattisce la distribuzione e rende l'output più "creativo".

P(i, T) = exp(zi/T) / Σj exp(zj/T)

Top-K tiene solo i K token più probabili; Top-P (nucleus) tiene il più piccolo insieme di token la cui probabilità cumulata supera p. Infine si campiona dal sotto-insieme rimanente.

KV cache: il trucco dell'inferenza veloce

A ogni passo autoregressivo, i Key e Value dei token precedenti non cambiano. I modelli reali li memorizzano in una KV cache: a ogni nuovo token calcolano solo il nuovo Q, K, V e fanno attention tra il nuovo Q e tutti i K cached. Questo riduce la complessità da O(n²) a O(n) per passo. Il simulatore qui ricomputa tutto per rendere visibili i meccanismi.

Questo simulatore vs modelli reali

Qui usiamo 1 layer, 8 dimensioni di embedding, 2 attention heads e un vocabolario di ~40 parole. GPT-4, Claude o LLaMA hanno decine o centinaia di layer, embedding da migliaia di dimensioni, decine di attention heads e vocabolari da decine di migliaia di token. Il numero totale di parametri va da qualche miliardo a più di un bilione.

Nonostante la scala, il meccanismo è identico: ogni token viene prediso in modo autoregressivo, con la stessa formula di attention, le stesse residual connections, la stessa softmax e lo stesso campionamento.

Riferimenti

  • Vaswani et al. (2017) — Attention Is All You Need (NeurIPS)
  • Radford et al. (2019) — Language Models are Unsupervised Multitask Learners (GPT-2)
  • Li et al. (2024) — Mechanics of Next Token Prediction with Self-Attention (arXiv:2403.08081)
  • Holtzman et al. (2019) — The Curious Case of Neural Text Degeneration (top-p)