✔️✔️ Doppie Spunte Blu Cap. 10 · Sotto il cofano: cos'è davvero un LLM

Puntata 104

Puntata 104 — Contesto e finestra di contesto

Livello: ✔️✔️ Doppie Spunte Blu · Capitolo 10 · Sotto il cofano: cos’è davvero un LLM

Quanti token può “tenere in testa” insieme. È RAM, non disco. E come la RAM, costa, fa fatica ai bordi, e a volte dimentica il centro.

un nastro lungo lungo srotolato sul tavolo, con appoggiati centinaia di mattoncini-token. Una lente d’ingrandimento sopra mostra i token centrali offuscati (“lost in the middle”), mentre gli estremi sono nitidi

Definizione operativa

La context window (o context length) è il numero massimo di token che un LLM può leggere e processare contemporaneamente in un singolo turno di inferenza.

È tutto quello che il modello “vede” nello stesso istante: system prompt + history conversazionale + documenti caricati + il prompt corrente + (a volte) anche la sua risposta in costruzione.

Se superi la finestra, il modello non vede la parte in eccesso. Punto.


La gara delle finestre (2026)

ModelloContext windowNote
GPT-3 (2020)2.048 token~1.500 parole inglesi
GPT-4 base (2023)8k → 32kEsplosione iniziale
GPT-4 Turbo / 4o128k~95.000 parole, ~300 pagine
Claude 3.5 (2024)200kStandard “long context”
Gemini 1.5 Pro1M (sperimentale 10M)“Native long context”
GPT-5 / Claude 4.7200k - 1MRange tipico 2026
Gemini 2.5 Pro2MStato dell’arte
Llama 4 / open-source frontier128k - 10M(limitato in pratica dalle GPU)

Vedi puntata 210 (livello Yoda) per le tecniche che permettono i contesti enormi.


”Tutto si tiene in testa” — fino a un punto

Avere 1M token di context non significa che il modello li usi tutti bene. Studi 2023-26 (Liu et al. “Lost in the Middle”) hanno mostrato un fenomeno robusto:

qualità su info nei primi token   ████████████████████ ottima
qualità su info nei token centrali ████████░░░░░░░░░░░░ degrada
qualità su info negli ultimi token ████████████████░░░░ buona

L’AI ricorda meglio l’inizio e la fine del contesto e tende a perdere il centro. Si chiama needle-in-a-haystack problem quando l’informazione cruciale è sepolta nel mezzo.

Implicazione operativa: in RAG (puntata 238), in chat lunghe, in documenti caricati → metti l’informazione cruciale all’inizio o alla fine, non nel mezzo.


Il costo della context window

L’attention del transformer è O(n²) rispetto alla lunghezza della sequenza. Raddoppiare il context quadruplica il compute.

Esempi pratici (ordine di grandezza, 2026):

Context usatoCosto relativo input
1k token
8k token~64×
100k token~10.000×
1M token~1.000.000× (in teoria pura)

In pratica i provider applicano ottimizzazioni (FlashAttention, Ring Attention, sparse attention) per cui il costo cresce meno del quadratico — ma rimane molto più ripido del lineare.

Conseguenza: un prompt lungo costa molto di più di uno breve, sia in $ che in latenza. Per applicazioni produttive: tagliare il prompt è ottimizzazione che paga.


Cosa entra nel context window

Quando usi ChatGPT/Claude/Gemini in chat, dietro le quinte il context window contiene:

[system prompt nascosto del provider]      ← ~1k-5k token
[memorie personali se attive]               ← ~0-2k token
[history conversazione corrente]            ← variabile
[documenti caricati]                        ← grosso, se PDF
[il tuo prompt attuale]                     ← variabile
[output che sta generando]                  ← cresce

Se la chat diventa molto lunga, i messaggi più vecchi vengono troncati o compressi (riassunti automatici lato server). Spesso non te ne accorgi, ma il modello dimentica parti di conversazione.


I 3 modi per gestire context lunghi (in app reali)

1. Truncation

Buttare via i pezzi vecchi quando il limite si avvicina. Brutale, ma semplice. Usato spesso in chatbot consumer.

2. Summarization

Riassumere periodicamente la history in un blocco compatto. Le AI come ChatGPT lo fanno automaticamente in chat lunghe. Perdita di dettaglio, ma scalabile.

3. RAG (Retrieval-Augmented Generation)

Indicizzare tutto in un vector database, recuperare solo i pezzi rilevanti per la query corrente, iniettarli nel prompt. Il modo “scalabile” per gestire documenti enormi. Vedi capitolo 22 (235-246).


Mito da sfatare: “context = memoria persistente”

No. Il context è stateless per default: appena finisce la chiamata API, il modello dimentica tutto.

La “memoria” che vedi in ChatGPT/Claude (puntata 87) non è il context. È un sistema esterno che salva fatti in un database e li reinietta nel context all’inizio di ogni chat.

Per memorie davvero persistenti e ricche → architetture come MemGPT, Letta, sistemi di long-term memory (puntata 272). Sempre con un database esterno, mai dentro il modello.


Long context vs RAG: la diatriba 2024-26

Domanda calda: “Adesso che Gemini fa 2M token, RAG è morto?”

Risposta breve: no. Motivi:

  1. Costo: 2M token in input costa ~10$ a query. RAG con vector db: pochi cent.
  2. Latenza: 2M token in input = secondi/decine di secondi. RAG: millisecondi.
  3. Lost in the middle: il long context degrada nel mezzo. Un retrieval mirato è più preciso.
  4. Sicurezza: con RAG controlli cosa entra nel prompt. Con long context, dipende dal modello.

Approccio moderno (2026): ibrido. RAG per recuperare i 5-20 chunk rilevanti + modello con context decente (128k-1M) per ragionare su quelli. Best of both worlds.


Token count: come saperlo prima

Prima di mandare un prompt, conviene sapere quanto pesa.

Tool:

  • tiktoken (OpenAI, libreria Python).
  • anthropic.count_tokens(text) (Anthropic SDK).
  • tiktokenizer.vercel.app (online, multi-modello).
  • Su ChatGPT/Claude consumer: non c’è un contatore esposto, ma l’app ti avvisa se superi il limite.

In produzione, mai assumere: misura sempre. Specie con input utente.


Trucchi pratici per non sprecare context

  1. Sistema prompt conciso. Ogni token del system prompt si paga ad ogni messaggio. Compressione = soldi.
  2. Documenti pre-processati. Caricare un PDF di 200 pagine consuma 100k+ token. Riassunti, estratti mirati, RAG → 1k token.
  3. Liste invece di prosa. “1. Roma 2. Milano 3. Napoli” costa meno di “La prima città è Roma, la seconda è Milano, la terza è Napoli”.
  4. Lingua appropriata. Per task tecnico, prompt in inglese costa meno (puntata 102). Per task culturale italiano, il prompt italiano vale la pena.
  5. Caching dei prompt. Provider come Anthropic e OpenAI offrono prompt caching: paghi 10% se ripeti lo stesso prefisso. Massivo risparmio per system prompt lunghi. Vedi puntata 296.

La frontiera: streaming context

Le architetture sperimentali del 2025-26 stanno superando il concetto di “finestra fissa”:

  • Mamba e State Space Models (puntata 205): context teoricamente illimitato, costo lineare.
  • Hybrid Transformer-SSM (Jamba, Samba): sezioni a costo lineare miste con attention classica.
  • Infini-attention (Google 2024): comprime token vecchi in stato interno permanente.
  • Memoria addestrabile (Titans, 2025): il modello “ricorda” oltre la finestra letterale.

Non sono ancora mainstream, ma indicano dove si va.


TEST pratico (5 minuti)

  1. Apri chatgpt.com o claude.ai.
  2. Copia un articolo lungo (es. una pagina Wikipedia in italiano).
  3. Incollalo come messaggio aggiungendo: “In quale paragrafo (numerato) si parla di [TOPIC SPECIFICO]?”.
  4. Test 1: chiedi su info che è all’inizio dell’articolo. Risposta corretta?
  5. Test 2: chiedi su info che è nel mezzo (dopo 1500-2000 parole). Risposta corretta?
  6. Test 3: chiedi su info che è alla fine. Risposta corretta?

Quasi sempre il mezzo è il punto debole. Da qui in poi, sapendolo, strutturi i prompt importanti mettendo le info-chiave all’inizio o alla fine.


Take-away in una riga

Context window = RAM dell’LLM: limitata, costosa, asimmetrica (centro debole). Più grande non sempre è meglio: spesso meglio RAG + retrieval mirato.

➡️ Prossima puntata: Temperatura — il termostato della creatività (pilot già scritto: puntata 105).