05 · Aprendre d'exemples
Diem que una màquina «aprèn», però què vol dir exactament? I com saps si ha après o si només s'ha après les respostes de memòria? Aquest capítol respon totes dues preguntes, i la segona és la més important: gairebé tot el que fa la gent seriosa en aquest camp existeix per protegir-se de l'autoengany.
1. Aprendre d'exemples, no de regles#
Imagina que has d'escriure les instruccions perquè un ordinador distingeixi el correu brossa. Comences per regles: si diu «has guanyat», és brossa; si diu «creuer gratis», també. Al cap d'una setmana tens tres-centes regles, la meitat es contradiuen i els que envien brossa ja han après a escriure «h@s gu@nyat». Hi ha una altra manera de fer-ho: recollir milers de correus que una persona ja ha marcat com a brossa o no, i deixar que la màquina busqui sola la regla que els separa.
Això és el machine learning (aprenentatge automàtic): en comptes d'escriure la regla, dones exemples amb la resposta i la màquina ajusta els seus paràmetres fins que s'equivoca poc. Els paràmetres són els botons interns del model: números que es poden girar amunt i avall. «Aprendre» vol dir girar aquests botons perquè l'error baixi, que és exactament baixar la muntanya del capítol 2.
Però el que vols no és que s'equivoqui poc amb els exemples. Els exemples ja els tens; ja saps què diuen. Vols que s'equivoqui poc amb els casos que encara no ha vist. I aquí hi ha la trampa de tot el camp: l'error amb els exemples vistos és l'únic que pots mesurar fàcilment, i és un mal testimoni de l'altre. Pensa en l'estudiant que s'aprèn de memòria les respostes de l'examen de l'any passat: si li poses el mateix examen, treu un deu; si li canvies les preguntes, no en sap res.
Aprendre la regla o aprendre-se els exemples
- Error amb els exemples que ha vist0,032
- Error amb exemples nous0,081
Barres en escala de potències de deu: cada quart de barra és multiplicar l'error per més de trenta.
A la figura, la corba de punts té més o menys llibertat per doblegar-se. Amb poca, no arriba ni a seguir la forma general. Amb massa, passa per cada exemple, soroll inclòs, i entremig fa voltes absurdes: l'error amb els exemples vistos s'acosta a zero mentre l'error de debò es multiplica per milers. Dir que un model generalitza vol dir que funciona fora dels exemples; dir que fa sobreajust (overfitting) vol dir que s'ha après el soroll dels exemples en comptes de la regla.
2. D'on surt la correcció#
Per aprendre, el model necessita que algú, o alguna cosa, li digui si ho ha fet bé. El que distingeix les maneres d'aprendre és d'on surt aquesta correcció.
D'on surt la correcció
Autosupervisat: la resposta surt de les dades mateixes. Amagues la paraula següent i la fas endevinar. Ningú no ha etiquetat res, i tanmateix cada posició és un exercici corregit.
En l'aprenentatge supervisat, cada exemple porta la resposta posada per una persona: aquesta foto és un gat, aquest correu és brossa. En el no supervisat no hi ha respostes, i el model només pot buscar estructura: grups de punts, direccions on les dades varien. En el per reforç, el model actua i rep una recompensa, sovint tard i sense saber quina de les seves accions l'ha guanyada, com qui aprèn a jugar als escacs sabent només si ha guanyat o perdut la partida.
I hi ha el mig paradigma que ho ha canviat tot: l'autosupervisat. Agafes un text qualsevol, amagues la paraula següent i demanes al model que l'endevini. La resposta correcta ja és al text; ningú no l'ha hagut d'escriure. Cada posició d'una frase és un exercici corregit, i internet en té bilions. Per fer-te'n una idea de l'escala: si cadascuna de les peces de text amb què s'entrena un model gran (n'hi ha uns quinze bilions) l'hagués d'etiquetar una persona a dotze cèntims i vint segons per etiqueta, costaria 1,8 bilions d'euros i uns 83.000 milions d'hores de feina.
3. L'examen de l'any passat#
Si l'error amb els exemples vistos menteix, com saps quant val el model? La resposta és guardar exemples que el model no veu mai, i guardar-los de debò.
Entrenament, validació i test
1/7Un munt d’exemples
Tens seixanta exemples amb la seva resposta. La temptació és fer-los servir tots per entrenar. No ho facis.
Els exemples es parteixen en tres munts abans de començar. Amb el d'entrenament, el model ajusta els paràmetres. Amb el de validació, tu prens decisions: quin model, de quina mida, quan parar d'entrenar. I el de test es fa servir una sola vegada, al final, per donar la nota. La distinció entre validació i test és la que més s'oblida: si mires el test, no t'agrada el número i hi tornes a ajustar alguna cosa, les teves decisions ja s'han adaptat al test, i el test s'ha convertit en una segona validació.
L'error que fa més mal és la fuita de dades (data leakage): informació del test que s'escola a l'entrenament. Hi ha tres casos de manual. Duplicats: el mateix exemple a tots dos munts, cosa molt freqüent en textos trets d'internet. Dades amb ordre temporal partides a l'atzar: el model veu el dia d'abans i el d'després de cada dia del test i només ha d'interpolar; amb dades que segueixen el temps, el test ha de ser el futur. I, la més subtil, preparar les dades amb números calculats sobre tot el conjunt, test inclòs: sol fer poc mal, i justament per això sobreviu anys dins del codi de tothom. Quan un model de llenguatge s'ha llegit sense voler les preguntes d'una prova (la contaminació dels benchmarks), és exactament aquest problema a escala planetària.
Amb poques dades es fa una rotació: es parteixen en cinc trossos i cada tros fa de validació una vegada (validació creuada). Amb els models de llenguatge gairebé no es fa, perquè entrenar cinc vegades costa massa; es fan servir molts conjunts d'avaluació i un marge d'error al costat de cada número.
La sorpresa: més gran, de vegades millor
La figura de la secció 1 suggereix una regla: un model massa flexible memoritza i empitjora. Durant dècades aquesta va ser la lliçó de tots els manuals. Però si continues fent el model més gran, molt més enllà del punt on pot passar exactament per tots els exemples, passa una cosa que els manuals no deien: l'error amb dades noves torna a baixar. Se'n diu doble descens (double descent).
El doble descens, mesurat
La zona perillosa és el mig, quan el model té just la flexibilitat per passar per tots els exemples i només hi ha una manera de fer-ho, que acostuma a ser retorçada. Quan en té molta més, hi ha infinites maneres de passar per tots els exemples, i l'entrenament no en tria una qualsevol: tendeix a la més senzilla, la que mou menys els botons. Aquesta tria implícita funciona com un fre que ningú no ha posat a propòsit.
L'analogia de l'estudiant aquí es trenca, i val la pena dir on. Un estudiant que s'ho aprèn tot de memòria no comprèn res; un model enorme que passa per tots els exemples pot, tot i així, haver trobat una regla senzilla. Els models de llenguatge viuen en aquest règim: són enormes i, a més, solen veure cada text una sola vegada, de manera que el sobreajust clàssic no és el seu problema principal mentre aprenen a llegir. Sí que ho és quan després se'ls ajusta amb poques dades, que és quan es torna a mirar la validació amb lupa.
4. Quatre maneres de traçar una frontera#
Abans de les xarxes neuronals hi havia, i encara hi ha, models més senzills. No els explico perquè els hagis de fer servir, sinó perquè cadascun és una idea que tornarà a sortir dins dels models grans.
Quatre maneres de traçar una frontera
Els punts encerclats i esvaïts són els exemples nous, que el model no ha vist.
Errors amb els exemples vistos
13 %
Errors amb els exemples nous
15 %
Una recta, i prou. No es pot doblegar, per molts exemples que li donis. És el mateix tipus de model que l’última capa d’un LLM, que tria entre desenes de milers de paraules.
La recta (la regressió logística, i la seva germana per predir números, la regressió lineal) és el model més simple: traça una frontera recta i dona una probabilitat segons a quina banda caus i com de lluny. No ho menystinguis: l'última capa d'un model de llenguatge és aquest mateix model, estès per triar entre totes les paraules possibles, amb tot el model a sota preparant-li les dades. Els veïns propers no aprenen res: per a un cas nou, miren els exemples més semblants i en copien la resposta. Un sistema que busca documents semblants a la teva pregunta i els passa a un model (el que en diuen RAG, al capítol 22) és aquesta mateixa idea. Els arbres fan preguntes de sí o no, una darrere l'altra, i combinats en grups grans continuen sent l'eina a batre quan les dades són una taula: si el teu problema és un full de càlcul, no hi posis un model de llenguatge. I la similitud compara cada cas nou amb tots els exemples i els barreja segons com s'hi assemblen, que és la idea que tornarà amb el nom d'atenció.
Una família més, sense respostes, serveix per mirar les dades: agrupar-les per semblança o trobar-ne les direccions principals. Amb aquestes eines s'exploren els mapes de paraules del capítol 1 i es troben textos repetits abans d'entrenar.
5. L'encert que menteix#
Per saber si un model funciona has de triar un número que ho mesuri, i el número més evident, el percentatge d'encerts (en anglès, accuracy), és sovint el pitjor.
El 99,7 % que no serveix de res
Encert (casos ben classificats)
997 / 1.000 = 99,7 %
Casos que importen, trobats
0 / 3 = 0 %
Els quadrats vermells són els tres positius; els cercles, els casos normals.
Quan el que busques és rar, comptar encerts no serveix. Calen dues preguntes separades. De les alarmes que fa el detector, quantes eren de debò? És la precisió. Dels casos de debò, quants n'ha trobat? És la sensibilitat o recall. Totes dues es poden resumir en una sola nota (la F1) que només és alta si ho són totes dues. I sempre convé mirar la matriu de confusió, la taula que separa els quatre resultats possibles (alarmes encertades, alarmes falses, casos perduts i silencis encertats), perquè els errors no són intercanviables: no és el mateix deixar passar un frau que molestar un client.
Quan el model dona un número, com un preu, es mesura quant s'allunya de la resposta de mitjana. Quan genera text, comptar paraules coincidents amb una resposta de referència correlaciona malament amb la qualitat, i avui es mesura sobretot amb preferències de persones o amb un altre model que fa de jutge. I quan busca documents, la pregunta clau és si el bo és entre els primers que torna: si no hi és, cap model que vingui després no el pot fer servir.
6. On poses el llindar#
Molts models no diuen «sí» o «no», sinó una probabilitat. Ets tu qui decideix a partir de quina probabilitat actues, i aquesta decisió no la pot prendre el model per tu.
On poses el llindar
Fraus aturats
7,9
Fraus que passen
39,3
Clients molestats
5,0
per cada 1.000 pagaments, dels quals uns 50 són frau
Cost amb aquest llindar: 7.885 per cada mil pagaments (cada frau que passa, 200; cada client molestat, 5).
El llindar de la meitat només és el bo quan els dos errors costen el mateix, i gairebé mai és el cas. Quan deixar passar un frau costa molt més que una trucada de confirmació, convé bloquejar molt abans, i el millor llindar es calcula a partir dels costos, sobre el conjunt de validació, no a ull.
Perquè això funcioni, la probabilitat que dona el model ha de voler dir el que diu: quan diu 70 %, ha d'encertar set de cada deu vegades. Un model així està ben calibrat, i la idea és la del capítol 4; si no ho està, es pot corregir després d'entrenar. I quan una classe és molt més rara que l'altra, es pot donar més pes als seus exemples. En els models de llenguatge, aquest mateix problema es diu d'una altra manera: quina proporció de codi, de català o de matemàtiques hi ha a la barreja de textos amb què aprèn.
7. De fabricar pistes a aprendre-les#
Durant dècades, el que separava un bon projecte de machine learning d'un de dolent era la persona que decidia quines pistes calia donar al model.
Inventar la pista o deixar que l'aprengui
Errors amb exemples nous: 58 %
Amb només la posició de cada punt, el millor que pot fer una recta és tallar el pla per algun lloc. S’equivoca més o menys la meitat de les vegades: no ho fa millor que tirar una moneda.
Aquestes pistes es diuen característiques (features), i inventar-les era la feina: per detectar cares, algú decidia que calia mirar contrastos entre els ulls i el front; per a cada problema nou, una pista nova. Les xarxes neuronals, que són el tema del capítol 6, aprenen les seves pròpies pistes a partir de les dades crues. I quan això es combina amb l'aprenentatge autosupervisat sobre tot internet, el canvi és complet: abans calien dades etiquetades del teu domini, un model per a cada tasca i tornar a entrenar per adaptar-lo; ara un sol model serveix per a milers de tasques i s'adapta amb unes instruccions, uns documents o un ajust lleuger.
8. Com t'enganyes a tu mateix#
Els errors més cars no són de programació sinó de mesura, i tots s'assemblen: fan que el número surti millor del que és.
El millor de trenta, per pura sort
En aquesta tirada, la guanyadora surt 4,8 punts per sobre del que val.
El de la figura és el més corrent. Proves trenta variants, mires quina va millor al test i publiques aquell número. Encara que totes valguin el mateix, la guanyadora sempre sortirà per sobre, perquè l'has triada precisament per la seva sort: amb aquestes xifres, uns quatre punts de més. El remei és el de la secció 3: tria amb la validació i guarda el test per al final.
Els altres són parents d'aquest. Partir a l'atzar dades que segueixen el temps, que regala al model el futur. Optimitzar una mètrica que només s'assembla al que vols, fins que deixa de mesurar-ho (la llei de Goodhart: quan una mesura es converteix en objectiu, deixa de ser una bona mesura). No comparar mai amb una solució trivial: abans de posar un model de llenguatge a classificar tiquets, mira quant encerta dient sempre la categoria més freqüent, o amb un grapat de regles per paraules clau, perquè sovint la diferència és molt més petita del que esperes. I comparar números sense marge d'error, que és llegir soroll com si fos progrés.
Què t'has d'endur#
El camí d'un model honest
- Aprendre vol dir ajustar els paràmetres d'un model a partir d'exemples, però l'objectiu són els casos que no ha vist, i l'error amb els exemples vistos és un mal testimoni d'aquest altre error.
- Els models de llenguatge aprenen de manera autosupervisada: la resposta correcta, la paraula següent, ja és al text, i això converteix internet en bilions d'exercicis gratuïts.
- Els exemples es parteixen en entrenament, validació i test, i el test es fa servir una sola vegada; qualsevol fuita entre munts infla el resultat.
- Un model més gran no sempre memoritza més: passat el punt on pot copiar tots els exemples, l'error pot tornar a baixar, i els models grans viuen en aquest règim.
- El percentatge d'encerts enganya quan el que busques és rar, i el llindar de decisió depèn del que costa cada error, no de la meitat.
- La manera més fàcil d'equivocar-se és triar mirant el test: la guanyadora sempre surt millor del que val.
Comprova que ho has entès#
0 de 3 resoltes
- Un model encerta el 100 % dels exemples d'entrenament i el 60 % dels exemples nous. Què és el més probable?
- Proves vint versions d'un model, cadascuna amb el seu número al conjunt de test, i et quedes la millor. Quin problema té publicar aquell número?
- Un model de cribratge mèdic dona una probabilitat de malaltia. Deixar passar un malalt és molt pitjor que fer una prova de més a una persona sana. On hauria d'anar el llindar per enviar a la prova?