Il viaggio del tuo messaggio · Tappa 0

Premi invio.

Lo fai mille volte al giorno. Ma dove va, davvero, quello che scrivi?

Scrivi una frase qualunque e premi invio: da lì comincia il viaggio. La frase resta nel tuo browser, non parte per nessun server.

↓ segui il pacchetto

La mappa del viaggio · tre atti, dodici tappe

Mappa del percorso in tre atti Un percorso a serpentina in tre righe: la prima riga verde è l'Atto 1 (il mondo fisico, tre tappe), la seconda rosa è l'Atto 2 (come nasce un modello, due tappe), la terza blu è l'Atto 3 (il modello al lavoro, sette tappe). Il pallino grosso all'inizio della prima riga è il punto in cui ti trovi adesso. ATTO 1 · IL MONDO FISICO ATTO 2 · COME NASCE ATTO 3 · IL MODELLO AL LAVORO SEI QUI
Atto 1Dove sta andando?Il mondo fisico: cavi, data center, corrente. Tappe 1-3.
Atto 2Da dove viene chi risponde?Mesi di addestramento, miliardi di pesi. Tappe 4-5.
Atto 3Che cosa gli succede — e come torna solo da te?Token, vettori, attenzione, risposta. Tappe 6-12.

📦 Atterrata:

Parti dall'Atto 1 →
Prologo · Pagina 0

Che cosa hai messo in moto

Fra il tuo invio e la prima parola della risposta passa meno di un battito di ciglia. Dentro quel battito ci stanno una stretta di mano crittografica, qualche migliaio di chilometri di fibra e una fila.

📖 Livello di lettura
📮 Come imbucare una lettera: sparisce in una fessura e, in qualche modo, arriva. Questo viaggio segue proprio quel «in qualche modo», un passo alla volta.

Premere invio è il gesto più banale che ci sia, e nell'istante in cui lo fai la tua frase smette di essere una riga di lettere sullo schermo. Diventa un pacchetto di numeri che parte: esce dal telefono, attraversa il router di casa, entra in una fibra e comincia a correre verso un edificio che non hai mai visto, spesso in un altro continente. Là dentro non c'è nessuna nuvola. Ci sono armadi di computer, ventole che urlano e una bolletta della corrente, ed è la prima tappa del percorso: il mondo fisico.

Prima ancora di partire, però, succede qualcosa che non vedi. Il tuo browser e il computer dall'altra parte si mettono d'accordo su una specie di lingua segreta, in modo che nessuno, lungo la strada, possa leggere quello che hai scritto: è il lucchetto che compare accanto all'indirizzo, e se ti va di vedere come funziona c'è un fumetto che lo spiega benissimo (in inglese, ma è quasi tutto disegnato). Poi la frase parte, arriva, e trova la fila. Perché in questo stesso momento non sei l'unico ad aver premuto invio: migliaia di richieste aspettano il proprio turno, e solo quando arriva il tuo la macchina comincia davvero a lavorare.

Il viaggio dura dodici tappe. Le prime raccontano dove vive l'intelligenza artificiale, quelle di mezzo come è nata, le ultime che cosa fa esattamente con le tue parole. Alla fine non avrai in mano tutto il territorio, ma una mappa sì: abbastanza per non confondere la magia con l'ingegneria.

La tua frase, come la vede la rete calcolato qui, adesso

Scrivi nel riquadro della chat, in cima alla pagina, e guarda che cosa cambia qui sotto: quello che parte non sono le lettere che vedi, sono i byte che le rappresentano.

0 caratteri 0 byte in UTF-8 0 byte di corpo JSON
POST /v1/chat/completions HTTP/2

Questa è la forma di una richiesta a un servizio di chat: un metodo, un indirizzo, qualche intestazione e un corpo in JSON. Content-Length è il numero di byte del corpo, contato davvero sul testo che hai scritto. Prova a mettere una lettera accentata: vale due byte. Prova con un'emoji: quattro. I caratteri che vedi e i byte che partono sono due conti diversi, ed è la stessa ragione per cui, più avanti, l'italiano costa più dell'inglese.

Meccanica I primi millisecondi

Fra il tuo invio e il primo byte che lascia il dispositivo c'è una sequenza fissa, e nessuno dei suoi passaggi è gratis. Il browser deve tradurre il nome del servizio in un indirizzo IP (è il DNS), aprire una connessione di trasporto e negoziare la crittografia. Quest'ultima parte si chiama handshake, stretta di mano: client e server si scambiano numeri casuali e chiavi pubbliche finché non condividono un segreto che nessun terzo può ricostruire. La versione corrente del protocollo, TLS 1.3 (RFC 8446, 2018), chiude la stretta di mano in un solo giro di andata e ritorno — un round-trip, in gergo 1-RTT — mentre TLS 1.2 ne chiedeva due; e se quel server lo hai già visitato, il client può spedire i primi dati già nel primo volo, a 0-RTT (§2.3 della stessa RFC). Con QUIC (RFC 9000, 2021), il trasporto su cui gira HTTP/3, la stretta di mano del trasporto e quella crittografica si fondono in un unico scambio.

Un round-trip non è un'astrazione da manuale: è chilometri. La luce in una fibra ottica viaggia a circa 200.000 km/s, perché l'indice di rifrazione del vetro sta intorno a 1,5 e la rallenta a due terzi della velocità nel vuoto. Ilya Grigorik, nella tabella 1-1 di High Performance Browser Networking, mette in fila i conti: da New York a Londra ci sono 5.585 km, che in fibra fanno 28 ms all'andata e 56 ms di andata e ritorno; New York-Sydney sale a 160 ms. Sono numeri ottimisti, perché presuppongono che il cavo segua la rotta più corta sul globo, e quasi mai è così. Il conto pratico è questo: un handshake da un giro, su una tratta transatlantica, può essere già costato più di un ventesimo di secondo prima che la tua frase si muova di un millimetro. È anche il motivo per cui gli operatori mettono i server vicino a te: la fisica non si contratta.

Quello che parte, poi, non è la tua frase e basta. Il browser la impacchetta in una richiesta HTTP — quasi sempre un POST con un corpo in JSON, come quello del riquadro qui sopra — e in quel corpo, accanto al tuo testo, viaggiano l'istruzione di sistema che decide il carattere dell'assistente e l'intera conversazione precedente, turno per turno. Non è un dettaglio implementativo: è la ragione per cui il modello sembra ricordare (non ricorda: rilegge) e per cui chi scrive quell'istruzione ha in mano una leva enorme (lo steering). La lunghezza del corpo, Content-Length, è in byte e non in caratteri, perché UTF-8 codifica le lettere latine con un byte, le accentate con due e la maggior parte delle emoji con quattro.

All'arrivo la richiesta non trova una GPU che ti aspetta a braccia aperte: trova una coda. Le schede grafiche rendono solo se elaborano molte richieste insieme, e buona parte della ricerca sull'inferenza degli ultimi anni sta proprio in come si compone quel lotto. Orca (OSDI 2022) ha introdotto lo scheduling a livello di iterazione: invece di programmare l'esecuzione di una richiesta intera, lo scheduler fa girare il modello un'iterazione alla volta, cioè un token alla volta, così chi ha finito esce subito dal lotto e chi arriva entra senza aspettare che il giro si chiuda. Su un GPT-3 da 175 miliardi di parametri, gli autori misurano 36,9 volte il throughput di NVIDIA FasterTransformer a parità di latenza. L'anno dopo vLLM (SOSP 2023) ha applicato alla cache delle chiavi e dei valori l'idea della memoria virtuale dei sistemi operativi — la PagedAttention — portando lo spreco di memoria vicino a zero e guadagnando altre 2-4 volte a parità di latenza. Per te tutto questo si condensa in un numero solo, il tempo al primo token: quanto aspetti prima che compaia la prima parola.

Un'ultima onestà. Quale sia lo stack esatto dell'assistente che apri ogni giorno non lo so, e non lo sa nessuno fuori dall'azienda che lo gestisce: le architetture di servizio non si pubblicano. Quella che ho descritto è l'architettura standard, documentata nei paper e implementata nei sistemi aperti come vLLM, che oggi serve una parte consistente dei modelli che si possono installare per conto proprio.

Il mito: «c'è il lucchetto, quindi quello che scrivo non lo legge nessuno». TLS protegge il canale, non il destinatario. L'RFC 8446 è esplicita sull'obiettivo del protocollo — riservatezza, integrità e autenticazione del server contro un attaccante che controlla la rete lungo il percorso — e si ferma lì. Chi sta all'altro capo riceve il testo in chiaro, perché per dare la tua frase in pasto al modello deve poterla leggere. Il lucchetto dice «nessuno ti sta ascoltando per strada», non «nessuno leggerà mai questa frase»: sono due promesse diverse, e vale la pena tenerle separate nel momento in cui decidi che cosa scrivere in una chat.
💡 La sorpresa: la parte lenta del viaggio spesso non è il pensiero della macchina, è l'attesa. La tua richiesta arriva insieme a migliaia di altre e aspetta di entrare in un lotto: una fetta dei secondi che passi a fissare il cursore che lampeggia può essere coda, non calcolo. Lo stesso vale in senso inverso — quando un modello risponde in un lampo, non è diventato più intelligente: è che in quel momento c'era meno gente in fila.

Come funziona questa pagina, detto senza trucchi. Non manda niente a nessuno: la frase che scrivi resta sul tuo dispositivo, salvata in localStorage con la chiave insegnai_msg, così le tappe che vengono dopo possono lavorare sulla tua frase invece che su una d'esempio; se la vuoi cancellare basta svuotare i dati del sito dalle impostazioni del browser. Il conteggio dei byte è vero, calcolato adesso con l'API TextEncoder. Il pacchetto rosa che vola sulla mappa, invece, è un disegno: il viaggio vero è quello raccontato qui sopra, e i millisecondi che costa li trovi nelle fonti.

Fonti Per approfondire

Complessità della fonte: divulgativa approfondimento tecnica o accademica

  • Gioco «How HTTPS works» — la stretta di mano crittografica raccontata a fumetti, un capitolo per volta. In inglese, ma quasi tutto è disegnato. howhttps.works
  • Saggio I. Grigorik, «High Performance Browser Networking», O'Reilly, 2013 — il libro è leggibile gratis online; la tabella 1-1 del primo capitolo dà i millisecondi di ogni tratta intercontinentale in fibra. hpbn.co
  • Fonte E. Rescorla, «The Transport Layer Security (TLS) Protocol Version 1.3», RFC 8446, IETF, 2018 — lo standard: handshake in 1-RTT, dati anticipati a 0-RTT (§2.3), e la dichiarazione esplicita di che cosa il protocollo protegge e che cosa no. rfc-editor.org
  • Fonte J. Iyengar, M. Thomson (a cura di), «QUIC: A UDP-Based Multiplexed and Secure Transport», RFC 9000, IETF, 2021 — il trasporto di HTTP/3: connessione e crittografia negoziate insieme. rfc-editor.org
  • Paper G.-I. Yu, J. S. Jeong, G.-W. Kim, S. Kim, B.-G. Chun, «Orca: A Distributed Serving System for Transformer-Based Generative Models», OSDI 2022 — lo scheduling a livello di iterazione: 36,9× il throughput di FasterTransformer su GPT-3 175B a parità di latenza. usenix.org
  • Paper W. Kwon et al., «Efficient Memory Management for Large Language Model Serving with PagedAttention», SOSP 2023 — la cache delle chiavi e dei valori gestita a pagine come la memoria virtuale: spreco vicino a zero, 2-4× di throughput a parità di latenza. È il paper di vLLM. arxiv.org
  • Fonte MDN, «Window.localStorage» — che cos'è lo spazio in cui questa pagina mette da parte la tua frase, e come si svuota. developer.mozilla.org