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

La versió sense fórmules de 20 · Fine-tuning pràctic i PEFT. Cada secció diu on és la seva part matemàtica.

20 · Ajustar un model a la teva feina

Els capítols anteriors explicaven com es fa un model gran. Aquest és el que et pot tocar a tu: agafar un model que ja existeix i ajustar-lo (fine-tuning) a una feina concreta, amb les teves dades. La primera pregunta, però, no és com fer-ho sinó si cal. En la gran majoria de casos, la resposta és que no, i saber-ho estalvia setmanes.

1. Cal ajustar-lo?#

Ajustar un model és tornar-lo a entrenar una mica amb exemples teus. És una eina potent i cara, i abans d'agafar-la cal saber per què falla el model a la teva tasca, perquè cada motiu té un remei diferent.

Cal ajustar el model?

Primer de tot: una avaluació que digui si milloraQuè li passa?Ja funcionaLi falta informacióNo entén què volsFormat o toajustMassa lent o carajustDomini molt especialajustConducta molt precisaajustDona-li la informació: documents, cerca, eines.El que canvia o és privat va al context, no als pesos.
Què li passa al model a la teva tasca
L'arbre de decisió, recorregut. Les fulles marcades amb «ajust» són les úniques on el remei passa per tornar a entrenar el model. I a sobre de totes, la regla d'or: sense una avaluació per mesurar la millora, no ho facis.

L'ajust guanya clarament quan es vol reduir cost i latència (un model petit ajustat pot igualar-ne un de gran en una sola tasca), quan cal un format de sortida molt estricte, en dominis amb un vocabulari i unes convencions pròpies, per a un estil de marca constant, i en tasques de molt volum i poca variació. Perd quan el coneixement canvia sovint (llavors el lloc és el context, amb documents i cerca: el capítol 22), quan les tasques són poques i variades (llavors, millors instruccions: el capítol 21) i, sobretot, quan no tens una manera sòlida de mesurar si ha millorat.

La regla d'or ve d'aquí: no ajustis res abans de tenir una avaluació. Si no pots mesurar la millora, i amb un marge d'error, no saps si has millorat ni si has espatllat alguna cosa. I una qüestió de diners que sovint es passa per alt: sovint no pesa tant l'ajust com tenir el model encès. Amb un ajust de 5.000 dòlars que s'ha de pagar en un any, un model gran que costa 5 dòlars per milió de tokens i un de petit que en costa 0,30 però demana 700 dòlars al mes de GPU, l'ajust no surt a compte per sota d'uns 238 milions de tokens al mes. D'aquests 238, uns 150 els posa només la GPU.

2. LoRA: un post-it en comptes de reescriure el llibre#

Ajustar un model sencer vol dir corregir tots els seus milers de milions de números, i pagar per a cadascun la memòria d'entrenar del capítol 17: 16 bytes per número. La tècnica que ho va canviar tot, LoRA (low-rank adaptation), parteix d'una hipòtesi: el canvi que cal per adaptar un model a una tasca és molt més senzill que el model, i es pot escriure amb molt pocs números.

La manera de fer-ho és una correcció feta amb peces, la mateixa idea de les «tires primes» del capítol 1. Cada capa del model està feta de taules de números (les matrius), i en comptes d'aprendre una correcció sencera per a cada taula, LoRA n'aprèn una de construïda amb unes quantes columnes i files, com una taula de multiplicar.

Una correcció feta amb poques peces

1/4Una correcció sencera

Correcció sencera64 númerosper a 64 caselles

Una de les taules de números del model, en petit: 8 × 8 = 64 números. Corregir-la sencera vol dir aprendre els 64. En un model de debò, cada taula en té milions.

Blau, números positius; taronja, negatius; com més intens, més grans. Els números són inventats. La idea és la de LoRA: en comptes d'aprendre una correcció sencera per a cada taula del model, aprendre'n una de feta amb unes quantes columnes i files.

Amb aquesta peça, la imatge útil és la d'un llibre que no es pot reescriure i on s'hi enganxen post-its.

Un post-it en comptes de reescriure el llibre

1/6El llibre, congelat

el model🔒 congelatNo es corregeix.No es guarden gradients.

Els milers de milions de números del model són un llibre que no es toca. Ni es corregeix ni se'n guarden gradients ni memòries de l'optimitzador.

LoRA, en sis passos. On l'analogia es trenca: el post-it no va a una sola pàgina, sinó que n'hi ha un al costat de cada taula del model que s'adapta, i el que hi ha escrit és una correcció feta amb poques peces.

Els botons principals de LoRA són tres. El rang, el nombre de parelles de columnes i files: habitualment entre 8 i 64, i més per a tasques difícils, però més rang no és sempre millor. A quines taules s'aplica: a totes les de cada capa (les de l'atenció i les del bloc de càlcul); limitar-ho a dues de l'atenció, com es feia al principi, és una pràctica antiga i pitjor. I el ritme d'aprenentatge (learning rate, la mida de cada pas de l'entrenament), que amb LoRA ha de ser més alt que amb l'ajust complet. La raó: la correcció comença a zero i només es mou a través del producte de les dues peces, de manera que cada pas la mou menys que un pas sobre la taula sencera.

Aquí convé separar el que es diu del que es mesura.

El que es diu de LoRA, i el que es mesura

Ritme d'aprenentatge: LoRA contra l'ajust complet1×2×5×10×20×50×100×el que es diu: de 10 a 100mesurat: 7LoRA oblida menys, si aprèn el mateix?Es diusí, oblida menysModel petit (mesurat)no, oblida mésModels de 7.000 milionsaprèn menys, oblida menys
Dues regles que corren pel món, contra la mesura del camí matemàtic amb un model petit. El sentit de la primera es manté (LoRA vol un ritme d'aprenentatge més alt), però no la xifra. La segona, a aquesta escala, surt al revés. Que un mètode «oblidi menys» depèn de la mida del model i s'ha de mesurar a l'escala on es farà servir.

Se sol dir que el ritme ha de ser «de 10 a 100 vegades més alt», i que LoRA és «menys propens a oblidar» el que el model ja sabia. Amb el model petit que el camí matemàtic entrena de debò, la primera surt en la mateixa direcció però amb una altra xifra (7 vegades), i la segona surt al revés. La raó més probable és la mida: en un model petit, una correcció de rang 4 ja és una part gran de cada taula, i el resultat publicat que diu que LoRA «aprèn menys i oblida menys» és sobre models de 7.000 milions. La lliçó no és cap de les dues xifres, sinó que aquestes regles s'han de comprovar a l'escala on es faran servir. També la mida dels post-its depèn del rang: es diu que pesen «desenes de MB», i és cert amb rangs baixos, però amb rang 32 a les set taules de cada capa d'un model de 8.000 milions ja en fan uns 170.

Hi ha variants: QLoRA, que guarda el model comprimit a 4 bits mentre s'entrenen els post-its i deixa l'ajust d'un model de 70.000 milions a tocar d'una sola GPU de 48 GB (amb una configuració normal en surten 48,2, i cal retallar la llargada dels textos o alguna altra cosa perquè hi càpiga); DoRA, LoRA+ i rsLoRA, que en milloren detalls. I hi ha altres tècniques que només entrenen una part petita del model (afegir petites capes noves, aprendre unes quantes «paraules virtuals» al principi del text, ajustar només uns pocs números de cada capa), però LoRA i les seves variants han guanyat amb diferència.

3. Les dades: la part que realment decideix#

Si el capítol 16 deia que les dades decideixen el preentrenament, en l'ajust encara més: la major part de l'èxit és el conjunt d'exemples. Unes quantes regles:

  • Quants. Per a una tasca concreta, entre 500 i 5.000 exemples excel·lents solen bastar. Per canviar un comportament ampli, desenes de milers.
  • Llegeix-los. A mà, cent a l'atzar com a mínim. Sempre hi ha sorpreses desagradables.
  • Que siguin consistents. Si un 20 % dels exemples tenen un format diferent, el model aprendrà a barrejar els dos formats, en una proporció semblant a la de les dades. Al camí matemàtic, a més, la barreja fa el model pitjor en la tasca.
  • Que cobreixin el que trobarà, també els casos estranys i les peticions que ha de rebutjar.
  • Si els generes amb un model, filtra'ls amb una comprovació o amb un jutge i revisa'n una mostra. La recepta més fiable és generar-ne diversos i quedar-se els que passen una prova, sabent que la prova només garanteix el que comprova, i que els casos més difícils hi passen menys i acaben poc representats.
  • Separa'ls des del principi en entrenament, validació i prova, i afegeix-hi un conjunt de «regressions» per comprovar que no trenques el que ja funcionava.

Llegir-ne cent a mà

En aquesta mostra: 4 defectesProbabilitat de veure'n almenys un: 95 %Per a un 95 % de seguretat, cal llegir-ne 99
3,0 %
Cent exemples llegits a l'atzar; els vermells tenen un defecte (un format diferent, una resposta equivocada). Un defecte que afecta el 3 % del conjunt es veu gairebé segur. Un que n'afecta l'1 % s'escapa una vegada de cada tres. Llegir troba els defectes freqüents; els rars es troben amb proves.

4. Quanta memòria cal#

La pregunta pràctica de qualsevol ajust és si et cap a la GPU que tens. El compte és el del capítol 17: el que s'entrena paga 16 bytes per número i el que està congelat, 2 (o mig, si està comprimit a 4 bits). A sobre hi ha la feina del moment, els resultats intermedis, que creixen amb la llargada dels textos i amb quants se'n processen alhora.

Quanta memòria cal per ajustar un model

Total: 19,7 GB24 GB48 GB80 GBel model: 16 GBentrenar (gradients, Adam…): 0,7 GBla feina del moment: 2,9 GB
Paràmetres del model
Mètode
Comptat peça a peça, amb seqüències de 2.048 tokens d'una en una. L'ajust complet paga 16 bytes per cada número del model. LoRA paga 2 bytes per cada número del model, que no es toca, i els 16 només per als del post-it. QLoRA, a sobre, guarda el model comprimit, a poc més de mig byte per número. Un model de 70.000 milions amb QLoRA queda a tocar dels 48 GB: amb seqüències més curtes hi cap. Les xifres de la taula del camí matemàtic són aproximades, i depenen molt de la llargada dels textos.

Les xifres de referència són aproximades: un model de 8.000 milions demana de l'ordre de 120 a 160 GB per a l'ajust complet (diverses GPU), uns 20 amb LoRA i uns 8 o 10 amb QLoRA; un de 70.000 milions, més d'un terabyte complet, uns 160 GB amb LoRA i uns 46-48 amb QLoRA. Amb textos llargs, la memòria de la feina del moment creix molt, i es redueix refent càlculs en comptes de desar-los, processant pocs exemples alhora i acumulant-ne els resultats, i empaquetant els exemples curts (la secció 7).

5. Destil·lar i fusionar#

Destil·lar és passar el que sap un model gran (el mestre) a un de petit (l'alumne). La manera més senzilla, i la que fa tothom, és entrenar l'alumne amb les respostes del mestre: és una de les raons per les quals els models petits han millorat tant. (Compte amb les condicions d'ús del mestre, que sovint ho prohibeixen.) Una manera més rica és entrenar-lo amb com repartia el mestre les seves fitxes a cada paraula, que porta molta més informació per exemple. Al camí matemàtic en diuen destil·lació de logits, que són les puntuacions de les quals surt aquest repartiment.

Aprendre de la resposta o del dubte

La capital de França és …París100una0la0coneguda0Lió0el que aprèn: «París», i res més
L'alumne…
Repartiments il·lustratius. Aprenent de la resposta, cada exemple ensenya una sola paraula. Aprenent de com repartia el mestre les fitxes, cada exemple ensenya també què més hauria estat raonable i quant: molta més informació per exemple. El preu: cal tenir accés a aquestes fitxes i que mestre i alumne trossegin el text igual (el mateix tokenitzador).

Al camí matemàtic es veu bé on guanya: amb només dues seqüències del mestre, l'alumne que aprèn de les respostes se les memoritza i davant de text nou fa pitjor que si endevinés a l'atzar, mentre que el que aprèn dels repartiments ja n'aprèn alguna cosa; amb més dades, la diferència s'escurça. La tercera manera, destil·lar raonaments, és avui la més rendible, i és la del capítol 19.

Una tècnica germana sona a trampa i funciona sorprenentment bé: fusionar models (model merging). S'agafen dos ajustos diferents del mateix model base i se'n fa, literalment, la mitjana dels números (o variants més fines, que retallen els canvis petits o resolen els que es contradiuen). No cal entrenar res.

Fer la mitjana de dos models

bémalamentmodel Ameitat i meitatmodel B— com fa la feina d'A- - com fa la de Besquemàtic
Quins models es barregen
Esquema. Si es fa la mitjana dels números de dos ajustos del mateix model base, el model del mig fa força bé totes dues feines, sense entrenar res. Si els dos models guarden les coses en llocs diferents (com dues biblioteques amb els mateixos llibres en prestatges diferents), fer la mitjana dels prestatges no té sentit, i el model del mig no serveix per a res.

Funciona perquè els dos ajustos parteixen del mateix model i guarden les coses als mateixos llocs. I no és gratis: els dos canvis s'interfereixen una mica, i el model fusionat sol perdre una mica més del que sabia fer abans que cap dels dos per separat.

6. Com saber si ha servit#

Un ajust no s'acaba quan acaba l'entrenament, sinó quan saps què ha canviat. Les cinc comprovacions:

  1. Una avaluació de la tasca, amb marge d'error i comparant el model ajustat amb el de partida sobre les mateixes preguntes.
  2. Una avaluació de regressions: les capacitats generals que no vols perdre, i els casos que ja funcionaven.
  3. Comprovar si ha oblidat coses que sabia.
  4. Llegir a mà de 30 a 50 respostes. No hi ha res que ho substitueixi.
  5. Mesurar el cost: la latència i el preu per consulta, abans i després.

El punt 1 té un matís que marca la diferència. Les preguntes d'una avaluació són molt diferents entre elles, i aquesta variació és soroll. Si compares les dues notes mitjanes com si fossin de dos exàmens diferents, per veure una millora de 2 punts sobre un 70 % et calen unes 8.000 preguntes. Si compares pregunta a pregunta, el soroll de la dificultat desapareix i en calen moltes menys.

Comparar text a text

error del model en vuit textos: abans ○, després ●Quant ha empitjorat, amb el marge d'error0: no ha canviatpitjor →
Com es compara el model abans i després de l'ajust
Un ajust que empitjora una mica el model en text general. Els textos de prova són molt diferents entre ells (uns són fàcils, d'altres difícils), i aquesta variació amaga el canvi si només es comparen les mitjanes: el marge d'error inclou el zero i la regressió passaria per soroll. Comparant cada text amb ell mateix, la variació entre textos desapareix i el canvi es veu clar. Marges del camí matemàtic, sobre 40 textos; els punts de dalt són esquemàtics.

7. Receptes ràpides#

Una recepta típica d'ajust lleuger amb LoRA, en paraules: correccions de rang 32 a totes les taules de cada capa; un ritme d'aprenentatge més alt que el d'un ajust complet; dues passades per les dades; quatre exemples per GPU i acumular-ne vuit tandes abans de cada correcció; números de 16 bits; empaquetar els exemples curts i refer càlculs per estalviar memòria. Per a l'ajust de preferències (DPO, del capítol 18), una sola passada i un ritme encara més petit.

No fer càlcul sobre el buit

10 files · 61 % de càlcul sobre buitfila 1fila 2fila 3fila 4fila 5fila 6fila 7fila 8fila 9fila 10
Com es preparen els exemples
Esquema. Cada fila és una seqüència de llargada fixa, que és el que la GPU processa de cop. Amb un exemple per fila, la resta s'omple de buit, i la GPU hi fa càlcul igualment. Empaquetant-los (packing), les mateixes dades caben en moltes menys files. La recepta del text, a més, ajunta 4 files per GPU i acumula 8 passades abans de corregir el model: cada correcció veu un lot efectiu de 32 seqüències, sense haver-les de tenir totes a la memòria alhora.

Les eines que ho fan sense haver de programar-ho tot: les biblioteques de Hugging Face (TRL i PEFT), Axolotl i LLaMA-Factory (que es configuren amb un fitxer de text), Unsloth (molt ràpida i estalviadora amb una sola GPU) i torchtune.

Què t'has d'endur#

  • Abans d'ajustar un model, pregunta't per què falla. La majoria de vegades el remei és donar-li informació o demanar-li millor les coses, i sense una avaluació no ajustis res.
  • LoRA no reescriu el model: hi afegeix una correcció petita, feta amb unes quantes columnes i files, que comença en blanc i es pot treure, canviar o fusionar.
  • Les regles que corren sobre LoRA (quant més alt ha de ser el ritme d'aprenentatge, si oblida més o menys) depenen de la mida del model: comprova-les a la teva.
  • Les dades decideixen l'ajust: poques, excel·lents, consistents, revisades a mà i amb proves per als defectes rars.
  • Destil·lar d'un mestre i fusionar ajustos del mateix model són maneres barates de passar capacitat d'un model a un altre.
  • Compara el model ajustat amb el de partida pregunta a pregunta, i mira també el que pot haver espatllat.

D'on surt un ChatGPT: on som

Llegir mig internetendevinar la paraula següentmodel baseRepartir-ho entre milers de xipsperquè hi càpiga i acabi a tempsEnsenyar amb conversesajust supervisat (SFT)Aprendre del que preferimun jutge, una corretja, DPOassistentAprendre a pensarrecompenses que es poden comprovarmodel de raonament▶ Ajustar-lo a una feinaLoRA, dades, avaluaciómodel teu
Les sis etapes del bloc 5, de dalt a baix. La de preentrenament dona el model base; les tres del mig el converteixen en assistent; l'última l'adapta a una feina concreta. La segona no és una etapa del model sinó la manera de fer possibles totes les altres.

Comprova que ho has entès#

0 de 3 resoltes

  1. Un assistent intern s'equivoca sobre els preus dels vostres productes, que canvien cada setmana. Què hi faries?
  2. Per què el post-it de LoRA ha de començar en blanc (una de les dues peces a zero)?
  3. Has ajustat un model i la nota mitjana a la teva avaluació ha pujat 2 punts, però el marge d'error és més gran que la millora: la de debò podria ser zero. Què hauries de provar abans de concloure que no ha millorat?