Per l'IA il significato non è una definizione: è una posizione. Prima di dirti come si chiama, ti chiedo di indovinarne le regole.
Clicca una parola: si illuminano le tre più vicine. O rifai l'aritmetica con altre parole.
Sto semplificando molto. Lo spazio vero ha migliaia di dimensioni e non si può disegnare: questo è il suo schiacciamento su un foglio, con tutte le altre direzioni compresse via. E finché il cartellino sopra la mappa dice «esempio illustrativo», le posizioni le ho scelte io a mano per far vedere l'idea: diventano quelle vere — calcolate dai numeri del modello — solo quando premi «Aggiungi alla mappa», e allora il cartellino diventa verde. Anche con i vettori veri, però, l'aritmetica non torna sempre alla perfezione: è un limite noto e studiato, non un difetto di questa pagina.
Quando dico «spazio» non sto usando una metafora comoda: uso la parola nel senso preciso che le
dà la geometria. Un punto sul foglio ha due coordinate, un punto nella stanza ne ha tre, e un
embedding — il vettore che il modello associa a un pezzo di testo — ne ha quante gliene ha
assegnate l'architettura. Il modello che questa pagina interroga davvero quando premi «Aggiungi
alla mappa» è gemini-embedding-001, e di default restituisce un vettore di
3072 numeri
(documentazione dell'API Gemini).
Un vettore, in matematica, è esattamente questo: una lista ordinata di numeri, ciascuno una
coordinata lungo un asse. Con 3072 coordinate in virgola mobile la parola «cane», che di lettere
ne ha quattro, diventa un oggetto da dodici kilobyte. E nessuno di quegli assi porta un nome
scelto da un essere umano: non c'è l'asse «regalità» accanto all'asse «femminile». Gli assi sono
quelli che l'addestramento ha trovato convenienti, e capire che cosa significhino è un problema
di ricerca ancora aperto.
Immaginare 3072 dimensioni è fuori portata, ma il loro comportamento si calcola, ed è il comportamento a sorprendere. In uno spazio a d dimensioni due vettori presi a caso sono quasi sempre quasi perpendicolari: il coseno dell'angolo che formano ha valore atteso zero e deviazione standard 1/√d, cioè circa 0,018 per d = 3072. Tradotto: peschi due parole a caso e la loro somiglianza è praticamente nulla. Lo spazio è quasi tutto vuoto, ed è proprio questo vuoto a permettergli di ospitare un numero enorme di concetti distinti senza che si pestino i piedi — il lato buono di ciò che di solito si chiama maledizione della dimensionalità.
La mappa che hai davanti ha due dimensioni, e quindi per costruzione mente: sta comprimendo 3072 numeri in 2. Il modo in cui li comprime si chiama analisi delle componenti principali (PCA), e il criterio è dichiarato: fra tutte le direzioni possibili dello spazio, la PCA cerca quella lungo cui i punti si sparpagliano di più — la direzione di massima varianza — poi, fra quelle perpendicolari alla prima, di nuovo quella che sparpaglia di più, e adotta le due come asse orizzontale e asse verticale del disegno. È il modo più onesto di spendere due soli numeri per punto. Resta che tutto il resto viene schiacciato via.
Quanto resto? È una quantità misurabile, e questa pagina la misura invece di raccontartela: quando i vettori veri arrivano, sotto la mappa compare la quota di varianza che le due direzioni disegnate riescono a trattenere — con diciotto parole divise in quattro gruppi netti la percentuale non è nemmeno bassa, ed è comunque quello che perdi. Perché la conseguenza è seria: due parole che sul foglio sembrano vicine possono stare lontanissime lungo una delle 3070 direzioni che non stai vedendo. Vale anche per le mappe più celebri — Martin Wattenberg, Fernanda Viégas e Ian Johnson hanno mostrato su Distill che nelle nuvole disegnate con t-SNE, l'algoritmo che produce la maggior parte delle mappe di embedding in circolazione, la dimensione dei grappoli e le distanze fra un grappolo e l'altro spesso non vogliono dire niente. La metafora della carta geografica regge fino a un certo punto, e conviene dire dove si spezza: la proiezione di Mercatore deforma le aree ma conserva gli angoli, e si sa esattamente che cosa sacrifica; una proiezione da 3072 dimensioni a 2 butta via informazione senza che nessuna regola semplice dica quale. Una mappa dello spazio latente è un'illustrazione, non una misura.
Con i vettori veri attivi, i tre vicini che la mappa collega col tratteggio non sono i più vicini
sul disegno: sono i più vicini nello spazio intero a 3072 dimensioni, calcolati con la
distanza euclidea. Per vettori di norma 1 — e quelli di gemini-embedding-001 a piena
dimensione lo sono — ordinare per distanza euclidea crescente o per coseno decrescente dà la
stessa classifica, perché vale l'identità qui sopra. L'aritmetica delle analogie fa eccezione: il
vettore a − b + c non ha norma 1, l'equivalenza salta, e il risultato dipende da quale
delle due misure si sceglie. È una di quelle decisioni che nei paper finiscono in nota, e che
spiegano perché due implementazioni della stessa analogia possano non essere d'accordo.
Fin qui la mappa è fatta di parole intere. Dentro un modello, però, i concetti non stanno nelle parole: stanno nei numeri che scorrono da uno strato all'altro — e da qualche anno esiste un modo per andarli a guardare uno per uno. La finestra qui sotto è uno di quei concetti, estratto da un modello vero di Google e messo online da Neuronpedia: il concetto «cane». Scrivi una frase nel campo di prova e guarda su quali parole si accende.
Se apri un neurone di un modello linguistico e guardi quando si attiva, quasi sempre lo trovi polisemantico: risponde ai gatti, a certe righe di codice e a un paio di cognomi, tutto insieme. Nel 2022 Nelson Elhage e colleghi hanno proposto la spiegazione oggi più accreditata, la sovrapposizione (superposition): il modello ha molti più concetti da rappresentare di quanti neuroni possieda, e allora li impacchetta come direzioni non perpendicolari dentro lo stesso spazio, accettando un po' di interferenza in cambio di parecchia capacità in più. È qui che torna il conto di prima: se in 3072 dimensioni due direzioni prese a caso sono già quasi perpendicolari, se ne possono stipare molte più di 3072 restando quasi distinguibili. E se i concetti sono direzioni e non neuroni, cercarli neurone per neurone è cercarli nel posto sbagliato.
Lo strumento che li tira fuori si chiama sparse autoencoder: una rete piccola addestrata a riscrivere l'attivazione di uno strato come somma di pochissimi elementi presi da un dizionario molto più grande dello strato stesso. Ogni elemento del dizionario è una feature, e a differenza dei neuroni le feature tendono a essere monosemantiche: una vuol dire «cani», un'altra «viaggi nel tempo», un'altra ancora il ponte di San Francisco — quella che nel 2024 Anthropic ha amplificato a mano per ottenere il Golden Gate Claude. Nello stesso anno Google DeepMind ha pubblicato Gemma Scope, centinaia di sparse autoencoder aperti addestrati su tutti gli strati di Gemma 2 (Lieberum et al., 2024), proprio perché addestrarli costa troppo per chi non sia un'azienda; Neuronpedia le ha messe online una per una. Quella qui sotto è la feature 12082 dello strato 20 di Gemma 2 2B.
Neuronpedia (neuronpedia.org) · dati Gemma Scope, Google DeepMind 2024
Complessità della fonte: divulgativa approfondimento tecnica o accademica
gemini-embedding-001) e la normalizzazione: il numero usato in questa pagina. ai.google.dev