Atto 3 · Pagina 7

Da parole a numeri

Ogni token viene tradotto in una lista di numeri, un vettore: è l'unico linguaggio che il modello capisce. Da qui in avanti non ci sono più parole, soltanto numeri.

📖 Livello di lettura
🧭 Come le coordinate: un luogo sulla Terra diventa due numeri, la latitudine e la longitudine. Una parola diventa anch'essa una lista di numeri, soltanto con molte più di due dimensioni.
Predici Sbilanciati prima di vedere i numeri
Tre coppie di parole. Secondo te quale otterrà i numeri più simili?
Scegli: poi calcolo le somiglianze per davvero, e scopri se avevi ragione.

Prova Dieci parole, e i numeri che ci stanno sotto

Clicca due parole: la prima va a sinistra, la seconda a destra.

seleziona una parola

seleziona una parola
Somiglianza dei numeri in attesa…

Appena arrivano i vettori ti dico qui, in una riga, che cosa sta misurando la barra.

I numeri sembrano casuali, ma non lo sono: parole di significato simile ottengono liste simili.

💡 La sorpresa: il significato di una parola, per la macchina, è una posizione numerica. Non esiste un dizionario di definizioni: esiste una geometria. "gatto" e "cane" hanno numeri vicini; "gatto" e "auto" no.

La barra che hai appena mosso misura una quantità precisa: la similarità coseno, cioè il coseno dell'angolo fra i due vettori. Non la loro distanza, e non è un dettaglio pedante. In spazi con centinaia di dimensioni la lunghezza del vettore dipende in buona parte da quanto una parola è frequente nel corpus, mentre la direzione porta l'informazione semantica: normalizzando si butta via la prima e si tiene la seconda. Ecco perché due parole rare possono risultare vicinissime pur avendo vettori «corti».

L'idea che rende possibile tutto questo ha settant'anni ed è linguistica, non informatica: è l'ipotesi distribuzionale, riassunta dalla formula di John Rupert Firth per cui una parola si conosce dalla compagnia che frequenta. Se «gatto» e «cane» compaiono negli stessi contesti — si accarezzano, mangiano, dormono sul divano — allora un modello che predice il contesto a partire dalla parola è costretto ad assegnare loro coordinate simili. Il significato non viene definito: viene ricostruito dalla co-occorrenza. È anche il limite della faccenda, perché nulla in quello spazio distingue una relazione vera da una regolarità statistica del corpus: se i testi associano una professione a un genere, lo spazio impara anche quello.

Il salto tecnico arriva nel 2013 con word2vec di Tomáš Mikolov e colleghi: addestrando una rete neurale minima a predire le parole vicine si ottengono vettori densi in cui la geometria diventa manipolabile, e da lì l'aritmetica diventata famosa, re − uomo + donna ≈ regina. Vale la pena sapere che quel risultato è più fragile di come viene raccontato: Tal Linzen ha mostrato nel 2016 che in molti casi il vettore «giusto» si ottiene semplicemente prendendo il più vicino al termine di partenza, senza che l'operazione vettoriale aggiunga nulla, e che i test standard vengono superati anche da baseline che ignorano la sottrazione. L'analogia funziona su relazioni molto rappresentate nei dati, non è una legge dello spazio.

Un'ultima distinzione, quella che separa il 2013 dai modelli di oggi. I vettori di word2vec sono statici: «riso» ha una sola posizione, e deve mediare fra il cereale e la risata. Nei transformer l'embedding iniziale è solo il punto di partenza; il vettore che attraversa gli strati è contestuale, ricalcolato in funzione delle parole intorno, ed è per questo che la stessa parola in due frasi diverse finisce in due posizioni diverse. Le dimensioni danno l'ordine di grandezza, e sono più grandi di quanto si immagini: 768 per BERT-base, che con un vocabolario di circa 30.000 token (Devlin et al., 2019) significa 23 milioni di numeri spesi nella sola tabella degli embedding, circa un quinto dei 110 milioni di parametri del modello; 3072 per gemini-embedding-001, il modello che alimenta questa pagina quando il proxy risponde.

E qui arriva il problema che la demo ti mette davanti, lo stesso di chiunque usi embedding sul serio. Quando i vettori sono veri, il coseno non si distribuisce fra −1 e 1 come suggerirebbe la geometria del liceo: si accalca in alto. Il fenomeno ha un nome, anisotropia — le direzioni occupate dai vettori non sono uniformi, stanno tutte dentro un cono stretto — e Kawin Ethayarajh l'ha misurato (EMNLP 2019) arrivando a un caso limite memorabile: nell'ultimo strato di GPT-2 due parole prese a caso hanno in media una similarità coseno quasi perfetta. Se prendessi quel numero alla lettera, «pane» e «regina» risulterebbero parenti stretti. Per questo, quando la pagina lavora sui vettori veri, non ti mostro il coseno grezzo ma la sua posizione relativa: calcolo tutte le 45 coppie possibili delle dieci parole — dieci elementi presi a due a due — assegno 0% alla più lontana e 100% alla più vicina, e distribuisco il resto in mezzo. Il coseno grezzo resta scritto nella didascalia, così vedi di quanto la scala si sposta. In modalità imitazione la barra torna a essere il coseno nudo, perché lì i numeri sono costruiti apposta per essere leggibili.

C'è poi un seguito, e riguarda che cosa ci sia dentro quello spazio oltre alle parole. L'embedding iniziale assegna una posizione a un token, ma nel mezzo della rete i concetti sembrano vivere come direzioni, e non una per neurone: un singolo neurone si accende per cose che non c'entrano nulla fra loro — si chiama polisemanticità — mentre certe combinazioni di neuroni si comportano come unità di significato pulite. Il modo attuale di tirarle fuori è lo sparse autoencoder, una rete addestrata a riscrivere l'attivazione interna come somma di poche componenti, ciascuna delle quali risulta poi interpretabile: nel lavoro di Adly Templeton e colleghi su Claude 3 Sonnet (Anthropic, 2024) ce n'è una che risponde al codice difettoso, una alle vulnerabilità informatiche e una — diventata celebre — al Golden Gate Bridge. Se ti va di vederle con i tuoi occhi, Neuronpedia (Decode Research) ne raccoglie oltre novanta milioni, estratte da più di sedici modelli, e le lascia cercare in linguaggio naturale: scrivi «dogs» o «chemical formulas» e ti restituisce le feature che rispondono a quel concetto, ognuna con la sua scheda. Se è la prima volta, conviene entrare dalla porta giusta: Gemma Scope, la demo guidata costruita con il team di interpretabilità di Google DeepMind nel luglio 2024, parte da zero, fa accendere le feature dentro Gemma 2 e alla fine te le lascia manipolare. È in inglese e vuole uno schermo grande.

Il mito: «somiglianza 80% vuol dire simili all'80%». Il coseno è una quantità ben definita — il prodotto scalare fra vettori normalizzati — ma non è una percentuale di significato condiviso, e non è confrontabile fra modelli diversi. Harald Steck, Chaitanya Ekanadham e Nathan Kallus l'hanno mostrato per via analitica («Is Cosine-Similarity of Embeddings Really About Similarity?», WWW 2024): in modelli lineari regolarizzati il coseno degli embedding può dipendere dalla regolarizzazione più che dai dati, al punto di produrre somiglianze arbitrarie, e nelle reti profonde la faccenda è ancora più opaca. La morale operativa è quella che trovi applicata qui sopra, nella demo: un coseno serve a ordinare — questa coppia è più vicina di quest'altra — ed è rischioso leggerlo come misura assoluta. Per questo la didascalia della demo ti dà anche un rango («terza coppia più vicina su 45») e non solo una percentuale.

Da provare nella demo. Confronta «felice» e «triste». Sono opposti, eppure finiscono quasi sempre fra le coppie più vicine, e non è un errore del calcolo: gli antonimi compaiono negli stessi contesti («oggi sono…», «un finale…»), e uno spazio costruito sulla co-occorrenza registra il contesto condiviso, non l'opposizione. È il limite strutturale di questa geometria, che sa dire «stesso argomento» e non sa dire «segno contrario».

Che cosa vedi davvero in questa demo. Senza chiave API i dodici numeri sono un'imitazione deterministica: derivano da un hash della parola più un gruppo semantico assegnato a mano, quindi la somiglianza che leggi è vera rispetto a quel modello giocattolo e non rispetto alla lingua; in quel caso la barra è il coseno grezzo. Con il proxy collegato arrivano invece i vettori di gemini-embedding-001, di cui vedi i primi dodici valori su 3072: sono numeri minuscoli perché il vettore è normalizzato e la sua «lunghezza» si spalma su migliaia di componenti, e la barra diventa la scala relativa alle 45 coppie. Il chip accanto alla barra dice sempre in quale dei due mondi ti trovi. Tenerli separati è parte del punto della pagina.

Qui sto semplificando: un vettore vero ha migliaia di numeri (3072, per il modello che uso). Ne mostro 12. Senza chiave i numeri sono un'imitazione coerente; con gli embedding reali di Gemini diventano quelli veri, e in quel caso la barra confronta la coppia con tutte le altre 44 possibili invece di dare un voto assoluto. Il chip accanto alla barra te lo dice ogni volta.

Fonti Per approfondire

Complessità della fonte: divulgativa approfondimento tecnica o accademica

  • Gioco Neuronpedia · Google DeepMind, «Gemma Scope», luglio 2024 — demo guidata per principianti: accendi le feature dentro Gemma 2 e provi a manipolarle. In inglese, meglio da computer. Dati Gemma Scope del Language Model Interpretability Team di Google DeepMind. neuronpedia.org
  • Saggio J. Alammar, «The Illustrated Word2vec» — la spiegazione illustrata più chiara di come una parola diventi un vettore. jalammar.github.io
  • Fonte Neuronpedia (Decode Research), «Search Explanations» — ricerca in linguaggio naturale fra oltre 90 milioni di feature estratte da più di 16 modelli: la geometria dei significati resa navigabile. Codice MIT, contenuti citabili con credito. neuronpedia.org
  • Paper T. Mikolov, K. Chen, G. Corrado, J. Dean, «Efficient Estimation of Word Representations in Vector Space», 2013 — word2vec: i vettori densi e l'aritmetica delle parole. arxiv.org
  • Paper T. Linzen, «Issues in evaluating semantic spaces using word analogies», RepEval 2016 — perché il test delle analogie misura meno di quanto sembra. aclanthology.org
  • Paper K. Ethayarajh, «How Contextual are Contextualized Word Representations?», EMNLP-IJCNLP 2019 — l'anisotropia: nell'ultimo strato di GPT-2 due parole a caso hanno coseno quasi perfetto. È la ragione della scala relativa di questa demo. aclanthology.org
  • Paper H. Steck, C. Ekanadham, N. Kallus, «Is Cosine-Similarity of Embeddings Really About Similarity?», WWW 2024 Companion — quando il coseno degli embedding produce somiglianze arbitrarie. arxiv.org
  • Paper A. Templeton, T. Conerly et al., «Scaling Monosemanticity: Extracting Interpretable Features from Claude 3 Sonnet», Anthropic, maggio 2024 — i concetti come direzioni estratte con sparse autoencoder: il Golden Gate Bridge, il codice difettoso, le vulnerabilità. transformer-circuits.pub
  • Paper J. Devlin et al., «BERT: Pre-training of Deep Bidirectional Transformers», NAACL 2019 — gli embedding contestuali, le 768 dimensioni e i 110 milioni di parametri di BERT-base. arxiv.org
  • Fonte Google, «Embeddings» — documentazione dell'API Gemini — gemini-embedding-001 restituisce 3072 dimensioni per impostazione predefinita. ai.google.dev
  • Wiki Distributional semantics — l'ipotesi distribuzionale da Harris e Firth in avanti. wikipedia.org