01 · Vectors i matrius
Un model de llenguatge no veu paraules: veu llistes de números. Aquest capítol respon una pregunta que sembla tècnica però que és la base de tot el que ve després: com es pot guardar el significat d'una paraula en una llista de números, i què vol dir fer-hi operacions. Quan acabis, sabràs llegir les dues peces amb què està construït qualsevol LLM: els vectors i les matrius.
1. Un vector és un punt en un mapa de significats#
Pensa en un mapa. Cada poble hi té dues coordenades, i dos pobles amb coordenades semblants són a prop. Ara imagina un mapa on, en comptes de pobles, hi ha paraules, i on la posició no la decideix la geografia sinó el significat: «gat» queda a tocar de «gos», i lluny de «formatge». Un vector és això: una llista de números que fan de coordenades d'un punt.
Un mapa on la distància vol dir semblança
En un LLM (un gran model de llenguatge, large language model), cada tros de text amb què treballa el model (el token, que veuràs al capítol 10) es converteix en un vector que, en els models grans d'avui, sol tenir entre 2.048 i 16.384 números. El mapa, doncs, no té dos eixos sinó milers. No el podem dibuixar, però la idea és la mateixa: la proximitat vol dir semblança. Tot el que el model fa després són operacions sobre aquests punts.
Un vector també es pot llegir com una fletxa que surt de l'origen (el punt on tots els números valen zero) i arriba fins al punt. Una fletxa té una direcció i una llargada, i aquesta segona lectura és la que fa servir l'operació més important de tot el camp.
Quant apunten cap al mateix lloc
Imagina que il·lumines dues fletxes des de dalt i mires l'ombra que la fletxa B fa sobre la recta de la fletxa A. Si apunten cap al mateix costat, l'ombra és llarga i cau endavant. Si són perpendiculars, no hi ha ombra. Si apunten cap a costats oposats, l'ombra cau enrere. El producte escalar (dot product) és la llargada d'aquesta ombra multiplicada per la llargada d'A: un sol número que diu quant apunten cap al mateix lloc dues fletxes, positiu, zero o negatiu.
Quant apunten cap al mateix lloc
El mecanisme d'atenció d'un Transformer, que veuràs al capítol 11, fa milions d'aquestes comparacions per decidir quina paraula té a veure amb quina. La cerca de documents del capítol 22 també: la pregunta és una fletxa, cada document és una fletxa, i es busquen les que apunten cap al mateix lloc.
Si et fixes només en la direcció i oblides les llargades, tens la similitud cosinus (cosine similarity): un número entre −1 (apunten just al revés) i 1 (apunten exactament cap al mateix lloc), que val zero quan les fletxes són perpendiculars, és a dir, quan no tenen res a veure.
Quan la llargada fa trampa
L'analogia del mapa es trenca en un punt: en un model de debò, els eixos no tenen noms com «és un animal» o «es menja». Cada eix barreja moltes coses, i el que té sentit són les distàncies i les direccions, no els eixos un per un.
2. Una matriu és una manera de deformar l'espai#
Dibuixa una graella en un full de goma i després estira'l, gira'l o inclina'l. Cada punt del full es mou, però amb unes regles: les rectes continuen sent rectes, les paral·leles continuen sent paral·leles i el centre no es mou. Una matriu és la recepta d'una deformació com aquesta: diu on va a parar cada punt de l'espai, tots alhora.
Una matriu deforma tot l'espai alhora
L'última opció, «aixafar», és especial: tot el pla cau sobre una recta, i dos punts que eren diferents poden acabar al mateix lloc. Ho recuperarem a la secció 4.
Hi ha una segona manera de llegir una matriu, i és la que fa servir l'aprenentatge profund (deep learning, les xarxes neuronals de moltes capes que veuràs al capítol 6). Una matriu és també una taula de números, i cada fila de la taula es pot veure com un detector: es compara amb el vector d'entrada (amb el producte escalar d'abans) i dona un número que diu quant s'hi assembla. Aplicar la matriu és passar l'entrada per tots els detectors alhora.
Cada fila de la matriu és un detector
Una capa d'una xarxa neuronal és, en bona part, un banc de detectors com aquest, amb milers de files que ningú no ha escrit a mà: les ajusta l'entrenament. Ho veuràs al capítol 6.
Multiplicar dues matrius vol dir encadenar dues deformacions: primer una, després l'altra. I l'ordre importa.
L'ordre de les deformacions importa
Encadenar deformacions és, literalment, on se'n va gairebé tot el càlcul d'entrenar un LLM: milers de milions de multiplicacions i sumes, que les targetes gràfiques fan molt ràpid. Quan n'encadenes tres, el resultat no depèn de quines dues ajuntes primer, però el cost sí, i molt. Ho veuràs amb números a la secció 4.
3. Algunes deformacions especials#
Algunes deformacions surten tan sovint que tenen nom propi. Totes tres d'aquesta figura reapareixen dins de qualsevol LLM modern.
Què conserva cada matriu especial
- No fer res (la identitat). Al voltant de cada capa d'un model hi ha una drecera que deixa passar l'entrada tal com era i hi suma el que la capa hi afegeix. És el que fa possible apilar-ne desenes sense que el senyal es perdi pel camí (capítol 11).
- Escalar cada eix pel seu compte (una matriu diagonal). Cada coordenada es multiplica pel seu factor, sense barrejar-se amb les altres. És el retoc final de les normalitzacions que fan servir els models (capítol 12).
- Girar (una matriu ortogonal). Res no s'allarga ni s'escurça, i els angles entre fletxes es mantenen. Per això els models moderns marquen la posició de cada paraula girant els vectors amb què l'atenció la compara amb les altres, un angle que depèn de la posició: la llargada no canvia i el significat queda intacte; el que canvia és l'orientació (capítol 12).
N'hi ha dues famílies més que el tema matemàtic anomena, les simètriques i les definides positives. Les trobaràs al capítol 2 amb una cara molt concreta: la forma de bol que té el paisatge de l'error al voltant d'un mínim.
4. Comprimir: per què funciona LoRA#
Imagina un full de càlcul de 4.096 files per 4.096 columnes on, si t'hi fixes, cada fila és només una barreja de 16 files «bàsiques». No cal guardar-lo sencer: n'hi ha prou de guardar les 16 files bàsiques i la recepta de com es barregen. El nombre de direccions realment diferents que té una matriu es diu rang (rank). La deformació «aixafar» de la secció 2 era de rang 1: tot el pla queda sobre una sola recta.
Aquesta idea té una aplicació directa. Quan vols adaptar un model ja entrenat a una tasca nova (el fine-tuning, al capítol 20), la manera ingènua és tornar a ajustar totes les matrius senceres. LoRA (Low-Rank Adaptation) fa una cosa més barata: deixa la matriu original quieta i n'aprèn una correcció fabricada amb dues tires primes. Amb matrius de 4.096 i tires de gruix 16, ajustes 131.072 números en comptes de 16,7 milions: 128 vegades menys.
Una matriu sencera contra dues tires primes
Per què funciona? És una hipòtesi comprovada a la pràctica, no un teorema: un model necessita moltíssimes direccions per fer tot el que fa, però adaptar-lo a una tasca concreta en necessita poques.
Fer servir la correcció també té un truc, i és el de l'ordre de les multiplicacions de la secció 2. Pots fabricar el quadrat sencer i després passar-hi una paraula, o passar la paraula per una tira i després per l'altra. El resultat és el mateix; el preu, no.
El mateix resultat, a preus molt diferents
5. Les direccions que no giren#
Quan estires una massa de pa amb un corró, gairebé qualsevol ratlla que hi hagis dibuixat canvia de direcció. Però les ratlles que van just en la direcció en què l'estires no giren: només s'allarguen. (Les que hi van de través tampoc no giren: es queden com eren o s'encongeixen.) Les direccions que una deformació no fa girar es diuen vectors propis (eigenvectors), i el factor amb què s'estiren, valors propis (eigenvalues).
Les direccions que no giren
Aquestes direccions apareixen en dos llocs que veurem aviat. El primer és el paisatge de l'error del capítol 2: a prop d'un mínim, cada direcció s'empina a un ritme diferent (és el que mesuren aquests factors), i quan una direcció és molt més costeruda que una altra (una vall estreta i llarga), baixar-la fent passos és difícil. Per això existeixen els trucs d'entrenament que veuràs allà.
El segon és què passa quan apliques la mateixa deformació moltes vegades seguides. El que mana és el factor d'estirada: si és una mica més gran que 1, el resultat explota; si és una mica més petit, s'apaga.
La mateixa estirada, cinquanta vegades
Les xarxes recurrents del capítol 9 aplicaven la mateixa matriu a cada paraula d'una frase, i això és exactament el que els passava: el senyal d'aprenentatge explotava o desapareixia al cap de poques desenes de passos.
6. Girar, estirar, girar#
Hi ha un resultat que sorprèn: qualsevol deformació, per estranya que sigui, es pot fer en tres etapes. Primer un gir, després estirar o encongir al llarg dels eixos, i finalment un altre gir. Aquesta descomposició es diu SVD (singular value decomposition), i els factors d'estirada, valors singulars.
Girar, estirar, girar
1/5El punt de partida
Un cercle i dues fletxes marcades, perquè es vegi què gira i què s'estira.
Els valors singulars s'ordenen de més gran a més petit, i diuen quines direccions importen més. Això dona la millor manera possible de comprimir una matriu: quedar-se amb les direccions dels valors més grans i llençar la resta. Hi ha un teorema (d'Eckart i Young) que garanteix que cap altra aproximació amb el mateix nombre de peces ho fa millor. Una imatge en blanc i negre és una matriu de números (la lluminositat de cada píxel), i es pot comprimir així:
Comprimir quedant-se amb les direccions importants
Aquesta mateixa idea és a la base de moltes eines: resumir dades en poques direccions (l'anàlisi de components principals, PCA), comprimir els pesos d'un model, analitzar què aprèn LoRA, o diagnosticar un model que, durant l'entrenament, «col·lapsa» i acaba fent servir només unes poques direccions. Un dels avantpassats dels embeddings que veuràs al capítol 8 era precisament això: una SVD d'una taula enorme de paraules i documents.
7. Caixes de números#
Fins ara hem parlat de vectors (una fila de números) i de matrius (una taula). Un model de debò treballa amb caixes: per exemple, 8 frases alhora, de 512 paraules cadascuna, amb 768 números per paraula. A aquestes caixes de números de més de dues dimensions se'n diu tensors.
Una caixa de números
La lliçó pràctica és modesta però important: quan programes un model, la majoria d'errors són de mides que no encaixen. Una caixa de 8 per 512 per 1 es pot combinar amb una de 8 per 512 per 768 perquè la primera s'estén sola (el broadcasting); una de 8 per 512 per 10 no. Si no saps exactament quines mides té cada caixa, el càlcul pot fer una cosa diferent de la que creus sense queixar-se.
8. Quan hi ha milers d'eixos#
Aquí la intuïció de tres dimensions et traeix. Agafa dues fletxes a l'atzar. En un pla, l'angle entre elles pot ser qualsevol. En un espai de milers d'eixos, passa una cosa estranya: gairebé sempre són gairebé perpendiculars. Com més eixos, més s'amunteguen els angles al voltant de 90°.
En molts eixos, gairebé tot és perpendicular
Aquest fet té tres conseqüències que tornaran a sortir:
- Hi caben molts més conceptes que eixos. Com que hi ha moltíssimes direccions gairebé perpendiculars entre si, un model de 4.096 eixos pot guardar molts més de 4.096 conceptes, cadascun en una direcció que gairebé no trepitja les altres. Se'n diu superposició (superposition), i és el motiu pel qual una sola «neurona» d'un model sovint respon a coses que no tenen res a veure entre elles: no hi ha prou eixos per donar-ne un a cada concepte. El preu és que les direccions no són perfectament perpendiculars i es fan una mica de soroll entre elles.
- Gairebé tot el volum és a la pell. En una esfera de molts eixos, gairebé tot l'espai de dins és a tocar de la superfície, i punts escampats a l'atzar acaben tenint gairebé tots la mateixa llargada. Per això igualar les llargades sol fer perdre poca cosa, tot i que, com has vist a la secció 1, en un model entrenat la llargada de vegades sí que porta informació.
- Buscar el veí més proper és caríssim. Amb milions de punts en milers d'eixos, trobar el més proper exacte és inviable, i els sistemes de cerca es conformen amb trobar-ne un de gairebé el més proper (capítol 22).
Què t'has d'endur#
- Un vector és una llista de números que fa de coordenades d'un punt, en un mapa on la proximitat vol dir semblança de significat.
- El producte escalar diu quant apunten dues fletxes cap al mateix lloc; si només mires la direcció, tens la similitud cosinus. La llargada pot fer trampa si no s'iguala.
- Una matriu és una deformació de l'espai, i també un banc de detectors; multiplicar matrius és encadenar deformacions, i l'ordre importa.
- Una matriu de rang baix té poques direccions realment diferents i es pot guardar amb dues tires primes: és el truc de LoRA.
- Tota deformació és girar, estirar i girar; quedar-se amb les estirades més grans és la millor manera de comprimir.
- En espais de milers d'eixos, gairebé tot és perpendicular, i per això hi caben molts més conceptes que eixos.
On tornaràs a trobar aquestes idees
Paraules com a punts
Els embeddings, i com s’aprenen les posicions: capítol 8 →
«Quant apunten cap al mateix lloc»
L’atenció compara així cada paraula amb les altres: capítol 11 →
Matrius com a bancs de detectors
Les capes d’una xarxa neuronal: capítol 6 →
Girar sense espatllar
Com un model sap en quina posició és cada paraula: capítol 12 →
Tires primes en lloc de quadrats
Ajustar un model gran amb poc cost (LoRA): capítol 20 →
Massa eixos per buscar exacte
Buscar documents semblants entre milions: capítol 22 →
Comprova que ho has entès#
0 de 4 resoltes
- Busques documents per a la pregunta «receptes de pa». Un article llarg sobre pa queda més lluny de la pregunta que una nota curta sobre pastissos. Què és el més probable que estigui passant?
- Amb LoRA, la correcció que s'aprèn té exactament la mateixa mida que la matriu original. On és, doncs, l'estalvi?
- Un model representa cada paraula amb 4.096 números. Quants conceptes diferents hi pot guardar?
- Per què girar el vector d'una paraula és una bona manera d'indicar en quina posició de la frase és?
Per anar més lluny
3Blue1Brown, Essence of Linear Algebra: una sèrie de vídeos curts (en anglès, amb subtítols) que explica vectors, matrius i valors propis gairebé només amb animacions. És la millor intuïció visual que existeix sobre aquest tema.