Salta al contingut
Entendre els LLMs
🧭 Camí intuïtiuBloc 135-45 min
IntuïtiuMatemàtic

La versió sense fórmules de 01 · Àlgebra lineal per a deep learning. Cada secció diu on és la seva part matemàtica.

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

gatgoscavallgatetpaformatgepomapastísBarcelonaParísRomacórrercaminarnedarcada paraula és un punt: una llista de coordenades
Tria una paraula
Les tres paraules més properes a gat són gatet, gos, cavall; la més llunyana és caminar. Dibuix esquemàtic: les posicions són triades a mà per a l'exemple, i un model de debò no fa servir dos eixos sinó milers.

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

ombra endavantAB
La franja de color és l'ombra de B sobre la direcció d'A. Aquí les fletxes apunten cap a un costat semblant. La puntuació del producte escalar és 1,72: positiva si l'ombra cau endavant, zero si no n'hi ha, negativa si cau enrere. Si només mires la direcció (sense les llargades), la semblança val 0,77, sempre entre −1 i 1.

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

la preguntaABmés a prop: Bmateixa direcció: AA: article llarg sobre paB: nota curta sobre pastissos
Llargades
Si mires quin punt és més a prop, guanya B; si mires quina fletxa apunta més cap al mateix lloc, guanya A. Els dos criteris es contradiuen perquè la llargada (aquí, la mida del document) s'ha ficat al mig.

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

Deformació
Estira en horitzontal i aixafa en vertical. Les línies segueixen sent rectes i paral·leles. La graella fina és el pla d'abans; la gruixuda, el de després. La caseta clara és l'original i la fosca, la deformada.

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

té pèles mou solés dolçes menjaté carrersgatdetector d’animal−2,0detector de postres−-0,5detector de lloc−-0,5
Entrada
Cada detector compara les seves caselles amb les de l'entrada: on totes dues són fortes, suma; on el detector té un pes negatiu, resta. Davant de gat s'encén sobretot el detector d’animal. Trets i pesos inventats per a l'exemple: els d'un model de debò els aprèn l'entrenament i no tenen noms tan clars.

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

gira, després estiraestira, després gira
Les mateixes dues operacions, girar 45 graus i estirar el doble en horitzontal, fetes en ordre diferent. A l'esquerra, la caseta ja girada s'estira de costat i les parets deixen de fer angle recte; a la dreta, primer s'eixampla (les parets continuen fent angle recte) i després gira sencera. Amb matrius, «A i després B» no és el mateix que «B i després A».

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

Llargades✓ es conservenAngle entre fletxesabans 59°ara 59° ✓
Matriu
Girar no allarga ni escurça res, i l'angle entre les dues fletxes es manté. Per això els models poden marcar la posició d'una paraula girant el seu vector: el significat (la llargada, les distàncies) no es fa malbé.
  • 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

ajustar-ho tot4.096 × 4.096LoRA: dues tires×4.096 × 16 i 16 × 4.096(la tira horitzontal, escurçada perquè hi càpiga)
Mida del model
Gruix de les tires
La matriu sencera té 16.777.216 números; les dues tires, 131.072, que són 128 vegades menys. Multiplicades, les tires tornen a fer un quadrat de la mateixa mida que l'original: el que és petit no és la matriu, sinó la quantitat de coses que pots ajustar. A escala, les tires serien més primes que una ratlla: les hem engruixit perquè es vegin.

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

primer el quadrat, després la paraulala paraula, tira a tira← gairebé invisible a la mateixa escala
Gruix de les tires
Per passar una paraula (un vector de 4.096 números) per les dues tires de LoRA, pots fabricar primer el quadrat sencer i aplicar-l'hi (285.212.672 multiplicacions) o passar-la per una tira i després per l'altra (131.072). El resultat és idèntic; el segon camí és 2.176 vegades més barat.

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

gir22°estirada× 2,52
La fletxa d'entrada (puntejada) surt girada 22° i estirada × 2,5. Mou-la fins a trobar les direccions on la sortida no gira: n'hi ha dues.

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

0,0010,010,11101001.000passos →
Factor de cada pas
Després de 50 passos, × 1,1 s'ha convertit en × 117. Una cosa que es multiplica molts cops seguits per un factor més gran que 1 explota; si és més petit que 1, s'esvaeix. Escala vertical comprimida: cada ratlla multiplica per deu.

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.

Tota matriu, per estranya que sigui, es pot descompondre en aquestes tres etapes. La descomposició d'aquesta figura està calculada, no dibuixada a mà.

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

originalamb 4 peces
Imatge
Guardant 4 peces fas servir 260 números en comptes dels 1.024 de la imatge, i la reconstrucció es desvia de l'original un 42 % (com més petit, més s'hi assembla). Una imatge amb formes reconeixibles es deixa comprimir bastant, però no tant com les franges.

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

512 paraules8 frases768 númerosper paraula
Vista
Un model no processa una paraula cada vegada, sinó una caixa sencera: 8 frases, cadascuna de 512 paraules, i cada paraula feta de 768 números. Totes les operacions s'apliquen a tota la caixa de cop.

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

0°45°90°135°180°mateixa direccióoposades
Nombre d'eixos
300 parelles de fletxes triades a l'atzar en un espai de 3 eixos; d'aquestes, un 7 % forma un angle d'entre 85° i 95°, a tocar de l'angle recte. En dos o tres eixos els angles s'escampen; en milers, s'amunteguen tots al voltant de 90°.

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 →

Les idees d'aquest capítol són vocabulari: no les tornarem a explicar, les farem servir.

Comprova que ho has entès#

0 de 4 resoltes

  1. 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?
  2. Amb LoRA, la correcció que s'aprèn té exactament la mateixa mida que la matriu original. On és, doncs, l'estalvi?
  3. Un model representa cada paraula amb 4.096 números. Quants conceptes diferents hi pot guardar?
  4. 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

Marca els que hagis llegit
  • 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.