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

La versió sense fórmules de 09 · RNN, LSTM, seq2seq i el naixement de l'atenció. Cada secció diu on és la seva part matemàtica.

09 · Llegir amb memòria, i aprendre a mirar enrere

Un text és una seqüència: les paraules venen en ordre, i el significat de cadascuna depèn del que ha vingut abans. Abans del Transformer, la manera natural de fer que una xarxa llegís era la mateixa que fem nosaltres: d'una en una, recordant el que portem llegit. Aquest capítol explica per què aquella manera tenia un límit, com es va anar apedaçant, i com la idea que la va substituir, l'atenció, va néixer precisament d'aquests pedaços. Sense conèixer les preguntes, la resposta del capítol 11 semblaria arbitrària.


1. Llegir amb una memòria que s'esborra#

Imagina que llegeixes un llibre amb una llibreta d'una sola pàgina. Després de cada paraula, apuntes a la llibreta el que creus que cal recordar. Però la pàgina no creix: per apuntar una cosa nova, has d'esborrar o comprimir part del que ja hi havia. Al cap d'unes quantes frases, el que vas llegir al principi és un rastre borrós.

Això és una xarxa neuronal recurrent (recurrent neural network, RNN). La xarxa llegeix el text paraula a paraula i, a cada pas, combina la paraula nova amb una memòria de mida fixa, l'estat ocult, que fa de resum de tot el que ha llegit. Amb la mateixa xarxa, repetida a cada pas, pot llegir textos de qualsevol llargada. És una idea neta i bonica. I té un problema.

Llegir amb una memòria que s’esborra

1/6Llegeix «El noi»

paraulaquanta n’hi queda a la memòriaElnoiqueviviaalacasadelcostatdelriuerametge

La xarxa llegeix d’una en una. Després de cada paraula, actualitza una memòria de mida fixa: un resum de tot el que ha llegit fins ara.

Esquemàtic. La barra de cada paraula és quanta empremta en queda a la memòria de la xarxa després de llegir fins al punt marcat. La forma, que el passat recent ho ocupa tot i el llunyà s’esvaeix, és la d’una xarxa recurrent simple.

El problema no és només que la memòria s'esborri; és que la xarxa no aprèn a evitar-ho. Recorda el capítol 6: una xarxa aprèn quan s'equivoca, i la correcció de l'error viatja enrere per tota la cadena de càlculs que l'ha produït. En una xarxa recurrent, aquella cadena és la frase: la correcció ha de tornar paraula a paraula fins al principi. I a cada pas enrere es multiplica pel mateix factor. Si aquest factor és més petit que u, després de trenta passos no en queda pràcticament res.

La correcció que no arriba al principi

30 passos enrereon hi ha l’error30 passos enrere hi arriba 1 part de cada 25 mil milions
Quan la xarxa s’equivoca a l’última paraula, la correcció ha de tornar enrere pas a pas fins a les primeres, i a cada pas es multiplica pel mateix factor. Amb 0,45, que és el cas de l’exercici del camí matemàtic, trenta passos enrere n’arriba 1 part de cada 25 mil milions: aquella part de la xarxa no aprèn res. Per sobre d’1, passa el contrari i la correcció es dispara.

La conseqüència és que una xarxa recurrent simple no aprèn a relacionar coses separades per més d'unes deu o vint paraules. Per al llenguatge, això és inservible: a «el noi que vivia a la casa del costat del riu on anàvem de petits era metge», el verb ha de concordar amb un subjecte que és vint paraules enrere. Si el factor és més gran que u passa el contrari, la correcció es dispara i l'entrenament es torna inestable. Cap de les dues coses s'arregla aprenent més a poc a poc: el problema és la forma de la cadena.

2. Una cinta amb portes: l'LSTM#

La solució de 1997 es diu LSTM (long short-term memory, memòria a curt termini llarga), i la idea és afegir a la xarxa una segona via, una mena de cinta transportadora que travessa tota la frase (als articles se'n diu estat de cel·la). El que hi ha a la cinta passa d'un pas al següent sense que ningú hi escrigui a sobre: només s'hi poden afegir o treure coses. I tres portes decideixen, a cada paraula, què s'hi afegeix, què es conserva i què se'n llegeix.

Una cinta amb tres portes

1/6Una cinta que travessa la frase

la cinta (estat de cel·la)El noique viviaa la casadel riuerametge

L’LSTM afegeix a la xarxa recurrent una cinta que va de la primera paraula a l’última. El que hi ha a la cinta passa d’un pas al següent sense que se li escrigui a sobre: només s’hi afegeixen o se’n treuen coses.

Esquemàtic. Les notes estan escrites en paraules perquè es puguin seguir; a la xarxa de debò són números, i què s’hi apunta i què es conserva no ho decideix ningú: ho aprèn l’entrenament.

La clau és la porta d'oblit, la que decideix què es conserva. Quan és oberta del tot, el que hi ha a la cinta passa intacte al pas següent, i la correcció de l'entrenament també torna enrere intacta: ja no es multiplica per un factor que l'encongeix. Al camí matemàtic es mesura: amb la porta oberta, la correcció travessa cinquanta passos sense perdre força, mentre que a la xarxa simple, amb la mateixa frase, la correcció arriba cent mil milions de vegades més petita. I fixa't que l'avantatge no ve de tenir més peces: si es força la porta d'oblit a la meitat, sense canviar res més, l'avantatge desapareix.

La idea de fons, sumar en comptes de reescriure, és la mateixa que divuit anys més tard va fer possibles les xarxes molt profundes: la connexió residual. La tornaràs a trobar, gairebé idèntica, al centre del Transformer. Hi ha una versió simplificada de l'LSTM, la GRU (gated recurrent unit), amb dues portes en comptes de tres i resultats semblants.

Amb l'LSTM, el processament del llenguatge amb xarxes neuronals va funcionar de debò: traducció automàtica, reconeixement de veu, i el Google Translate de 2016.

3. Resumir una frase sencera en un sol vector#

Amb l'LSTM es va poder fer una cosa ambiciosa: traduir. L'esquema, del 2014, es diu seq2seq (de seqüència a seqüència) o codificador-descodificador (encoder-decoder). Una xarxa, el codificador, llegeix tota la frase original i la resumeix en un únic vector, una llista de números de mida fixa. Una segona xarxa, el descodificador, agafa aquell vector i en treu la frase traduïda, paraula a paraula.

Pensa en un intèrpret que ha d'escoltar un discurs sencer, sense prendre notes, i només després traduir-lo. Amb frases curtes se'n surt; amb frases llargues, es deixa coses. El problema té nom: el coll d'ampolla. Tota la frase ha de passar per un forat de mida fixa, i per a frases prou llargues no hi cap.

No és una manera de parlar: es pot comptar. La unitat d'informació és el bit, la resposta a una pregunta de sí o no. Una frase feta de símbols triats entre quatre necessita dos bits per símbol (dues preguntes de sí o no distingeixen quatre opcions). Si el vector només en té dotze, una frase de deu símbols, que en necessita vint, no hi cap.

Fer passar una frase per un forat fix

la frase (20 bits)DCBADCBADCel vector de context: sempre 12 bitsfrases recuperables: 1 de cada 256en falten 8: cadascun divideix per dos el que es recupera
Frases fetes de quatre símbols possibles, resumides en un vector de sis números que només poden prendre quatre valors cadascun. Hi caben 12 bits d’informació, sempre els mateixos. Mentre la frase en necessita menys, es pot recuperar sencera; quan en necessita més, ja no hi ha prou codis diferents per a totes les frases, i el millor codificador imaginable només en pot recuperar una fracció, que es parteix per dos amb cada bit que falta. No és un defecte de l’LSTM: és aritmètica.

Això no depèn de com sigui de bo el codificador: si hi ha més frases possibles que codis diferents, algunes frases han de compartir codi, i llavors no es poden distingir. Fer el vector més gran ajorna el problema, però no l'elimina, perquè sempre hi haurà frases més llargues. Aquest problema concret és el que va originar l'atenció.

4. L'atenció: mirar enrere en comptes de recordar#

La idea que ho va canviar tot, publicada el 2014, és la del bon intèrpret que sí que pren notes: no cal resumir-ho tot en un vector. El codificador deixa una nota per a cada paraula de l'original, i el descodificador, cada vegada que ha d'escriure una paraula de la traducció, les mira totes i decideix a quines ha de fer cas.

Com decideix? Compara el que necessita en aquell moment amb cada nota i les puntua. Després reparteix cent fitxes entre les notes segons la puntuació (moltes a les que s'hi assemblen, poques a la resta), i el que s'emporta és una barreja de totes les notes, on cadascuna pesa tant com fitxes ha rebut. Aquest mecanisme s'anomena atenció (attention).

Cada paraula de la traducció mira on li cal

el2gat14negre78seu2damunt1l’1estora2theblackcatsitsonthemat
Paraula que s’està escrivint
A dalt, l’original; a baix, la traducció. Repartiments il·lustratius: al camí matemàtic, un model els aprèn sol. A cada paraula que escriu, el traductor reparteix cent fitxes entre totes les paraules de l’original, i el que s’emporta és una barreja on pesa més qui té més fitxes. Mira «black» i «cat»: es creuen, perquè en anglès l’adjectiu va davant.

Tres coses fan que això sigui tan important. Primera, el coll d'ampolla desapareix: per molt llarga que sigui la frase, el descodificador sempre té accés a totes les notes. Segona, ningú no li diu on ha de mirar: les puntuacions s'aprenen soles, perquè mirar al lloc correcte fa que la traducció surti millor. Tercera, per primera vegada es podia veure què mirava el model: dibuixant el repartiment de fitxes, apareixia l'alineació entre les paraules de les dues llengües.

Hi ha una manera útil de pensar-hi: és com consultar un arxiu on cada fitxa té una etiqueta, però sense exigir una coincidència exacta. En lloc de «dona'm la fitxa que diu X», l'atenció fa «dona'm una barreja de totes les fitxes, pesant més les que s'assemblen més al que busco». De les maneres de puntuar que es van provar, la que ha sobreviscut és la més senzilla i ràpida: comparar dues llistes de números multiplicant-les terme a terme i sumant. És la que fa servir el Transformer.

5. El salt: només atenció#

El 2017, un equip de Google es va fer la pregunta que, vista ara, sembla òbvia: si l'atenció fa tota la feina important, per a què volem la recurrència? L'article que la responia es deia «Attention Is All You Need» (l'atenció és tot el que necessites), i presentava el Transformer: una arquitectura sense cap memòria que avanci paraula a paraula, on cada paraula mira directament totes les altres.

Treure la recurrència no era una qüestió d'elegància, sinó de velocitat. Una xarxa recurrent és una fila índia: no pots calcular la paraula deu fins que has acabat la nou. Un Transformer calcula totes les paraules alhora, i les targetes gràfiques (GPU), que són màquines de fer milers de càlculs en paral·lel, s'hi adapten com un guant. En el mateix temps es podia entrenar amb moltíssim més text: desenes o centenars de vegades més.

En fila índia o tots alhora

pas 1pas 2pas 3pas 4pas 5Elgatnegredormalsofàde «El» a «sofà»: 5 passos, l’un darrere l’altrememòria mentre genera text131 kBun estat fix, llegeixi el que llegeixi32 capes, 1.024 números per vector, 2 bytes per número
Arquitectura
Una xarxa recurrent ha de llegir en ordre, i la informació de la primera paraula arriba a l’última passant per totes les del mig. El Transformer les mira totes alhora i cada paraula pot consultar directament qualsevol de les anteriors. El preu és la memòria: un model de mida mitjana (32 capes) que genera text manté 131 kB si és recurrent, passi el que passi, i 268 MB si és un Transformer amb 2.048 paraules de context, perquè guarda notes de cada paraula llegida.

El bescanvi té una segona cara, i és important ser honest amb ella: el Transformer fa més feina en total, perquè cada paraula es compara amb totes les altres, i aquesta feina creix amb el quadrat de la llargada del text. En una època de GPUs, pagar més càlcul a canvi de fer-lo tot alhora va ser la tria correcta. Però en el moment de generar text, la recurrència guanya: guarda una memòria de mida fixa passi el que passi, mentre que el Transformer ha de guardar notes de cada paraula que ha llegit. És per aquesta porta que tornen, en els darrers anys, els models d'espai d'estats com Mamba i els híbrids: recurrències modernes que intenten tenir el millor de les dues coses.

6. Què en queda#

Les xarxes recurrents ja quasi no es fan servir per al llenguatge, però gairebé cap de les seves idees s'ha perdut.

El que les xarxes recurrents ens han deixat

llavorsavuiLes portes de l’LSTMDins dels LLM d’avuiLa cinta que sumaLa connexió residualL’atenció del 2014El cor del TransformerL’esquema seq2seqTraducció, veu, imatgesCerca en feixGenerar amb restriccions
A l’esquerra, peces que van néixer amb les xarxes recurrents; a la dreta, on són avui. La recurrència com a tal també torna: els models d’espai d’estats són recurrències modernes, que aprofiten que la memòria fixa és barata.

Les portes (deixar passar una part d'un senyal segons el que diu un altre) són arreu: a dins de cada capa d'un LLM modern, als sistemes que decideixen quina part del model ha de treballar en cada paraula, i als models d'espai d'estats. La cinta que suma és la connexió residual. L'atenció és el mecanisme central de tot el que vindrà. I l'esquema codificador-descodificador continua viu allà on hi ha una entrada i una sortida de natures diferents: traducció, reconeixement de veu, models que miren imatges. Fins i tot sobreviu un truc de l'època de la traducció automàtica, la cerca en feix (beam search): en comptes de quedar-se a cada pas amb la paraula més probable, el model manté unes quantes frases candidates alhora i al final tria la millor. Encara es fa servir quan la sortida ha de complir unes regles estrictes.

Què t'has d'endur#

Quatre problemes, quatre respostes

Xarxa recurrentllegeix amb memòria, però s’esborra1990LSTMuna cinta amb portes: recorda més lluny1997Seq2seq + atencióno cal resumir: es mira on cal2014Transformernomés atenció, i tot alhora2017
Cada arquitectura resol el problema que deixava l’anterior. El Transformer es queda la millor idea de totes, l’atenció, i llença la que limitava, la fila índia.
  • Una xarxa recurrent llegeix paraula a paraula amb una memòria de mida fixa, i el passat llunyà s'hi esvaeix.
  • El problema de fons és d'aprenentatge: la correcció que torna enrere es multiplica a cada pas pel mateix factor i, després d'una vintena de paraules, pràcticament ja no hi arriba.
  • L'LSTM ho resol amb una cinta on les coses se sumen en comptes de reescriure's, i amb portes que decideixen què s'hi apunta, què es conserva i què es llegeix. És la mateixa idea que la connexió residual.
  • Resumir una frase sencera en un vector de mida fixa té un límit que és aritmètica pura: per a frases prou llargues, no hi caben.
  • L'atenció trenca aquest coll d'ampolla deixant mirar totes les paraules i repartint-hi cent fitxes. El Transformer es queda només amb l'atenció i ho calcula tot alhora, a canvi d'una memòria que creix amb el text.

Comprova que ho has entès#

0 de 3 resoltes

  1. Per què una xarxa recurrent simple no aprèn a fer concordar un verb amb un subjecte que és vint paraules enrere?
  2. Un traductor seq2seq tradueix bé les frases curtes i malament les llargues. Fer el vector de context el doble de gran ho resoldria?
  3. En què continua sent millor una xarxa recurrent que un Transformer?

Per anar més lluny#

Marca els que hagis llegit
  • Christopher Olah, Understanding LSTM Networks: les portes de l'LSTM en diagrames. Té alguna fórmula, però els dibuixos s'entenen sols (en anglès).

  • Jay Alammar, Visualizing A Neural Machine Translation Model: seq2seq i l'atenció de Bahdanau en animacions (en anglès).