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

La versió sense fórmules de 14 · Context llarg i atenció eficient. Cada secció diu on és la seva part matemàtica.

14 · Llegir un llibre sencer d'una tirada

Els models d'avui anuncien finestres de context de cent mil tokens, de mig milió, d'un milió: un llibre sencer, un repositori de codi, cent contractes. Però «hi cap» no és el mateix que «el llegeix bé». Aquest capítol explica per què donar molt de text a un model és car, què fan els enginyers perquè ho sigui menys, i com es mesura si el model fa servir de debò el que li has donat.

1. Tres problemes que no són el mateix#

Imagina una reunió on cada persona, abans de parlar, ha d'escoltar el que ha dit cadascuna de les altres. Amb deu persones va bé. Amb cent, la reunió s'eternitza, i no perquè hi hagi deu vegades més gent, sinó perquè cada una de les cent ha d'escoltar les noranta-nou restants.

L'atenció funciona així: cada paraula mira totes les anteriors per decidir què li importa. Aquest és el primer problema, el cost. Si dobles el text, no dobles la feina: la multipliques gairebé per quatre.

Cada paraula mira totes les d’abans

36 parelles

A mida real

  • 8.000 tokens: 32 milions parelles, a cada capa i a cada cap.
  • 128.000 tokens: 8,2 mil milions parelles, a cada capa i a cada cap.
  • 1.000.000 tokens: 500 mil milions parelles, a cada capa i a cada cap.
Cada fila és una paraula, i les caselles pintades, les paraules que mira (ella mateixa i les anteriors). Dobla les paraules i les caselles es multipliquen gairebé per quatre: el cost del context llarg no creix com el text, creix com la seva superfície.

Però no és l'únic problema, i confondre'ls porta a conclusions errònies. El segon és de posició: si un model s'ha entrenat amb textos de 8.000 tokens, no ha vist mai una paraula a la posició 30.000, i no sap què vol dir estar tan lluny. El tercer és d'ús: encara que la informació hi sigui i el model la pugui abastar, no està garantit que en faci cas.

Per això, quan es parla de context, hi ha tres finestres que convé no barrejar.

Tres finestres que no són la mateixa

Nominal · el que hi capCost: pagues totes les parellesEntrenada · el que ha vist de debòPosició: més enllà, distàncies mai vistesEfectiva · el que fa servir béÚs: hi és, però no en fa cas
«Té un milió de context» sol voler dir la primera barra. Les proporcions són esquemàtiques, però l’última és realista: els exàmens seriosos de context llarg troben que la finestra que el model fa servir bé sovint és un quart o menys de la que anuncia.

Quan algú diu «aquest model té un milió de context però no serveix», normalment ha topat amb la tercera.

2. FlashAttention: la mateixa feina, a trossos#

Per entendre FlashAttention cal saber una cosa sobre les targetes de càlcul (GPU). Tenen dues memòries. Una és gran i relativament lenta, com un magatzem al soterrani. L'altra és dins del xip, minúscula però molt més ràpida, com la taula on treballes. Calcular és ràpid; el que fa perdre temps és anar i venir del magatzem.

La manera ingènua de fer l'atenció calcula la taula sencera de puntuacions, cada paraula contra cada paraula, i la deixa al magatzem per tornar-la a buscar dues vegades. Amb 32.000 tokens i 32 caps, aquesta taula ocupa desenes de GB a cada capa.

FlashAttention fa exactament el mateix càlcul, però a trossos que caben a la taula de treball, i amb un truc perquè no calgui veure mai una fila sencera.

FlashAttention: la mateixa feina, sense desplegar la taula

1/5La manera ingènua

magatzemgran i lent (HBM)taula de treballpetita i ràpida (SRAM)escrita i rellegidaMemòria: la taula sencera, que creix amb el quadrat

Es calcula la taula sencera de puntuacions (cada paraula contra cada paraula), es desa al magatzem —la memòria gran i lenta de la targeta— i es torna a llegir per repartir les fitxes i per barrejar els continguts (values). Amb 32.000 tokens, són desenes de GB per capa que van i vénen.

La lliçó va més enllà de l’atenció: en el maquinari d’avui, el que fa lent un càlcul sol ser moure dades, no fer números.

Dues coses en fan una peça important. La primera, que és exacta: no és una aproximació. El resultat només difereix a l'última xifra decimal, com quan sumes uns números en un altre ordre. Al camí matemàtic, la diferència és de dues unitats de l'últim decimal; la d'una finestra lliscant, que sí que és una aproximació, és de desenes de milers d'unitats. La segona, que la lliçó és general: en el maquinari d'avui, el que limita la velocitat sol ser moure dades, no fer números. Ho tornaràs a trobar al capítol 15.

Avui ningú no l'ha de programar: les eines habituals ja la fan servir sense que hi pensis.

3. Mirar només una part#

Si mirar-ho tot és massa car, una alternativa és no mirar-ho tot. Cada paraula pot mirar només les poques que té just abans: una finestra lliscant (sliding window). Sembla una pèrdua greu, però hi ha un detall que la salva: el model té moltes capes, i a cada capa les paraules ja porten el que han recollit a la capa anterior. És com córrer la veu: cada persona només parla amb els veïns, però després d'unes quantes rondes la notícia ha travessat tota la sala.

Mirar només els veïns, i deixar que les capes facin córrer la veu

paraula que es mira →paraula que mira →Cadascú mira els 3anteriors: una franjaestreta.On arriba la darrera paraula4 de 16
Patró
A la graella, cada fila és una paraula i les caselles pintades, les que pot mirar directament. A la tira de baix, les paraules on arriba la darrera, comptant que cada capa pot mirar el que les anteriors ja havien recollit. Amb una finestra de 3 veïns, cada capa n’hi afegeix 3 més.

Hi ha variants d'aquesta idea:

  • Uns quants tokens globals: tothom els mira i ells ho miren tot, i fan de missatgers entre punts llunyans.
  • Alternar capes: moltes capes amb finestra curta i, de tant en tant, una amb atenció completa (per exemple, cinc a una). Retalla molt els apunts que l'atenció guarda de cada paraula (el KV-cache del capítol 12) i conserva la capacitat de fer salts llargs.
  • Que el model aprengui on mirar: en lloc d'un patró fix, el model decideix quins trossos del text resumeix, quins llegeix sencers i quins ignora.
  • StreamingLLM: es guarden els primers tokens, on l'atenció aboca les fitxes que no necessita (les aigüeres del capítol 12), i una finestra recent. Permet escriure indefinidament amb memòria constant, però el mig s'oblida: el que ha quedat fora de la finestra no es pot recuperar, i el camí matemàtic ho comprova.

4. Fer que el model llegeixi més enllà del que ha vist#

Recorda del capítol 11 que el model sap l'ordre de les paraules perquè cada posició fa girar els seus números uns angles (RoPE). Imagina-ho com un rellotge amb moltes agulles que giren a velocitats diferents: la ràpida, com la dels segons, distingeix paraules veïnes; les lentes, com la de les hores, distingeixen paraules molt llunyanes.

Si el model s'ha entrenat amb textos curts, les agulles lentes només han recorregut un tros petit de l'esfera. Dona-li un text quatre vegades més llarg i aquestes agulles arriben a angles que no ha vist mai: el model es desorienta i la qualitat cau en picat. La solució és alentir les agulles perquè no surtin de la zona coneguda. La pregunta és quines.

Les agulles que el model no ha vist mai

ràpidavistveïns: 90°mitjanavistveïns: 23°lentamai vistveïns: 2°molt lentamai vistveïns: 0,6°

Sense tocar res, les agulles lentes arriben a angles que el model no ha vist mai: es desorienta.

Mètode
Entrenat amb 32 posicions, fet servir a la 120. La zona ombrejada és la part de l’esfera que cada agulla ha recorregut a l’entrenament; l’agulla, on és a la posició 120. Vermella vol dir angle mai vist. «Veïns» és quant gira l’agulla d’una posició a la següent: com més, més fàcil distingir-les.
  • Interpolació de posicions (PI): alentir-les totes igual. Simple, però perd precisió a curta distància.
  • NTK: alentir molt les lentes i gens la ràpida. Millor, però alguna agulla intermèdia s'alenteix massa poc i encara surt de la zona coneguda.
  • YaRN: decidir agulla per agulla segons quantes voltes ha fet a l'entrenament, i ajustar una mica l'atenció. És el més usat, i amb un reentrenament curt estén el context de vuit a setze vegades.
  • Entrenar per fases: el que fan els models grans. Primer s'entrenen amb textos curts, que és barat, i al final s'hi afegeix una fase amb textos llargs de debò.

5. Com saber si de debò el fa servir#

La prova més famosa és l'agulla al paller (needle in a haystack): s'amaga una frase en un text llarguíssim i es pregunta per ella. Va ser útil fa uns anys. Avui gairebé tots els models la passen, i una prova que tothom aprova ja no distingeix ningú.

El problema és que és massa fàcil. El paller és palla: text que no s'assembla gens a l'agulla. Però a la vida real, el que envolta la informació bona sol ser informació semblant.

Una agulla entre palla, o entre altres agulles

7421
El paller
La pregunta és «quina és la clau?», i la resposta, 7421. Amb farciment neutre, l’atenció va directa a l’agulla. Amb papers que s’hi assemblen, es reparteix entre candidats i s’equivoca molt més sovint. El gruix del marc, esquemàtic, indica on va l’atenció.

Els distractors, la informació semblant però equivocada, fan caure el rendiment molt més que la llargada. El camí matemàtic ho mesura: allargar el context amb text neutre gairebé no fa mal, posar-hi informació semblant sí. És el cas habitual quan es busquen documents per donar-los al model: si el cercador en torna deu del mateix tema, està fabricant distractors.

L'altre fenomen conegut és que es perd al mig (lost in the middle): els models grans recuperen millor la informació que és al principi o al final del context que la que és al mig. D'aquí surt un consell pràctic: posa el més important al principi o al final del que escrius. Però el camí matemàtic hi afegeix un matís que no se sol explicar.

Es perd al mig?

al principial migal finalon és la informació dins del contextaltbaixencert
Model
Formes esquemàtiques, no dades. Als models grans, la informació del principi i del final es recupera millor que la del mig. Al model petit entrenat al camí matemàtic, la corba surt plana: un cop ha après a buscar i copiar, li és igual on és el que busca. La U no ve del mecanisme d’atenció, ve de les dades: els textos amb què s’entrenen solen posar el més important al principi i al final.

Les proves serioses de context llarg (RULER, LongBench i altres) fan preguntes que demanen combinar diversos fets, seguir una cadena o resumir tot el text, i hi posen distractors. El que troben és que la finestra que el model fa servir bé sovint és un quart o menys de la que anuncia.

6. Context llarg o buscar abans (RAG)#

Si has de respondre preguntes sobre una biblioteca, tens dues opcions. Pots carregar-te tots els llibres i fullejar-los cada vegada, que és el context llarg. O pots tenir un bibliotecari que, per a cada pregunta, et porta els quatre llibres que toquen, que és la recuperació (retrieval-augmented generation, RAG, el tema del capítol 22).

El primer criteri és el preu, perquè els models es cobren per token llegit.

Quant costa una pregunta

Tot el corpus al prompt60,7 cèntimsEl mateix, amb memòria cau6,75 cèntimsRecuperar 4.000 tokens (RAG)1,95 cèntimsper consulta, en cèntims de dòlar
Preus d’exemple: 3 dòlars per milió de tokens llegits i 15 per milió d’escrits, respostes de 500 tokens, i un 90 % de descompte quan el principi del prompt ja és a la memòria cau (de la segona consulta en endavant). Amb context llarg, el que pagues és el prompt; la resposta és gairebé gratis.

Amb 200.000 tokens de corpus, posar-lo sencer al prompt costa uns 61 cèntims per pregunta; amb la memòria cau (prompt caching), que guarda els apunts d'un principi de prompt que es repeteix, unes nou vegades menys; i buscant abans, unes trenta vegades menys. Però el preu no ho és tot. El context llarg pot raonar sobre tot el corpus a la vegada, si hi cap; la recuperació depèn que el bibliotecari encerti els llibres. La recuperació funciona amb biblioteques de qualsevol mida i s'actualitza fàcilment; el context llarg té el sostre de la finestra.

La resposta pràctica d'avui és que no són alternatives: buscar bé i després donar molt de context. Un cercador generós, un segon filtre que ordena el que ha trobat, i una finestra gran per posar-ho tot, sovint dins d'un agent que decideix quan cal buscar més.

7. Una llibreta de mida fixa#

Tot el que hem vist fins aquí conserva la idea de l'atenció: guardar uns apunts de cada paraula i poder tornar-hi. Hi ha una família de models que hi renuncia. En lloc d'apunts que creixen amb el text, porten una llibreta de mida fixa on van resumint el que llegeixen: l'atenció lineal, els models d'espai d'estats com Mamba, RWKV i altres.

El guany és evident: la memòria no creix, i el cost tampoc. El preu també ho és: un resum de mida fixa no pot guardar-ho tot literalment, i quan cal recuperar un detall exacte del principi del text, potser ja no hi és.

Apunts que creixen o una llibreta de mida fixa

paraules llegides →mésmemòria

Memòria: creix amb cada paraula.

«Quin número exacte hi havia a la línia 37?» — El té apuntat literalment: el pot recuperar.

Model
Les mides són esquemàtiques: el que compta és la forma de cada línia. L’híbrid té una capa d’atenció completa de cada 8 i la resta amb llibreta fixa. La pregunta de sota posa a prova el que es perd amb la llibreta.

És important no confondre-ho amb FlashAttention. FlashAttention calcula exactament la mateixa atenció de manera més intel·ligent; l'atenció lineal canvia el càlcul per un altre que es pot fer més barat, i per tant dona resultats diferents.

Com que cada opció és bona en una cosa, la resposta guanyadora avui és l'híbrid: moltes capes amb llibreta fixa i unes poques d'atenció completa, que són les que conserven la capacitat de recuperar un detall exacte.

Què t'has d'endur#

On som: el viatge d’una pregunta pel model

El model: el mateix bloc, desenes de vegades12× 30 a 80 capesi torna a entrarLa teva preguntaLlegir-la senceraprefill: totes les paraules alhora15Atenció: mirar enrereetiquetes i continguts compartits · fins on mira12 · 14Peça de càlculun sol bloc, o un equip d’especialistes (MoE)13Escriure una parauladecode: triar-la i tornar a començar15Els apuntsKV-cache12 · 15La resposta
Les peces ressaltades són les d’aquest capítol. El número petit de cada caixa diu en quin capítol del bloc s’explica.
  • El context llarg és tres problemes: el cost (cada paraula mira totes les altres), la posició (distàncies que el model no ha vist) i l'ús (tenir-ho davant no és fer-ne cas).
  • FlashAttention fa la mateixa atenció, exacta, però a trossos que caben a la memòria ràpida: el guany és de viatges al magatzem, no de càlculs.
  • Les finestres lliscants, el YaRN i les llibretes de mida fixa abarateixen o estenen el context, i cadascuna té un preu concret.
  • Una prova que tothom aprova, com l'agulla al paller, ja no mesura res. Els distractors fan més mal que la llargada, i la finestra útil sol ser un quart o menys de l'anunciada.
  • «Es perd al mig» és real en models grans, però ve de les dades d'entrenament, no del mecanisme d'atenció.

Comprova que ho has entès#

0 de 3 resoltes

  1. Què guanya FlashAttention, exactament?
  2. Un sistema busca documents i en dona deu al model, tots sobre el mateix tema. Per què pot respondre pitjor que si en donés tres?
  3. Per què un model entrenat amb textos de 8.000 tokens falla amb un de 32.000, encara que el puguis carregar sencer?