Aprenent IA
Tokens per segon: pregunta sempre entre quants
Una xifra de velocitat en IA no diu res fins que no saps dues coses: entre quants es reparteix i quina fase de la resposta mesura. Aquest curs breu ensenya a desmuntar un «tokens per segon» peça per peça, a fer-ne la divisió a mà i a veure-ho tu mateix a l'ordinador de casa, amb un model petit i un cronòmetre.
En resum
- Una resposta es fabrica en dues fases: el model llegeix de cop tot el que li has donat i després escriu la contestació token a token. Van a ritmes diferents i s'encallen per motius diferents.
- «Tokens per segon i usuari» és el que veu una persona a la seva pantalla. «Tokens per segon i GPU» és tot el que produeix la màquina sumant les sessions que atén alhora, abans de repartir-ho entre elles.
- Les dues xifres es poden assemblar molt i voler dir coses oposades: sense saber quantes sessions hi ha a dins, no es poden comparar.
- La latència tampoc no és un número: la mediana explica el dia normal i la cua explica el dia dolent, que és el que recorda l'usuari.
- I res de tot això no cal creure-s'ho de paraula: amb un model petit a casa es mesuren les dues fases per separat i es veu créixer el consum de memòria a mesura que la conversa s'allarga.
Abans de comptar, saber què es compta
Totes les xifres de velocitat d'aquesta indústria es donen en tokens per segon, així que el curs comença per la unitat. El token és la peça amb què el model llegeix i escriu: no coincideix amb la paraula ni amb la lletra, i depèn de com s'hagi trossejat el text. Una xifra de tokens per segon, per tant, no es tradueix directament a paraules per segon a la pantalla.
Amb això clar, el que queda són tres preguntes, i convé fer-les en aquest ordre: quina fase de la resposta mesura aquell número, entre quants s'està dividint i si et donen el cas normal o el cas dolent. Cap de les tres no sol anar impresa al costat de la xifra, i totes tres es comproven a casa amb l'experiment del final.
Una resposta té dues fases i van a ritmes diferents
| Fase | Què fa | Què la frena | Quin número la mesura |
|---|---|---|---|
| Prefill | Llegeix de cop tot el que li has donat | La capacitat de càlcul de la GPU | Temps fins al primer token |
| Descodificació | Escriu la resposta token a token | La memòria i el viatge de cada token | Tokens per segon i temps entre tokens |
Llegir i escriure —prefill i descodificació— no s'assemblen gens per dins. Quan llegeix, el model pot atacar tot el text de cop, així que el que mana és la capacitat de càlcul: com més operacions per segon, abans acaba. Quan escriu no pot avançar-se, perquè cada token depèn de l'anterior; aquí manen la memòria i l'anar i venir de cada pas, i per això una màquina amb càlcul de sobres pot escriure a poc a poc.
Cada fase té el seu número. La lectura es mesura pel temps fins al primer token: el que passa des que prems enviar fins que apareix alguna cosa. L'escriptura es mesura pels tokens per segon o pel seu invers, el temps entre tokens.
I d'aquí surt la primera trampa: dos serveis amb el mateix «tokens per segon» poden ser experiències oposades, un que triga a arrencar i després vola i un altre que respon a l'instant i després degota. Un número sol no els distingeix.
La memòria cau KV decideix quanta gent cap dins la màquina
Aquí hi ha la peça que uneix el que hem vist amb el que ve. La velocitat d'una màquina no es reparteix entre un nombre fix d'usuaris: es reparteix entre els que hi caben, i hi caben els que la memòria permeti. Una conversa curta ocupa poc i deixa lloc; una de llarga ocupa molt i fa fora els altres.
La conseqüència incomoda qui vol comparar xifres. El mateix equip, amb el mateix model, atén moltes sessions si les converses són breus i poques si són llargues, així que un número mesurat amb preguntes d'una línia i un altre mesurat amb documents sencers no descriuen el mateix escenari, tot i que tots dos estiguin en tokens per segon. La memòria cau KV és el divisor amagat: el que decideix entre quants es parteix el rendiment de la màquina.
Els dos denominadors: per usuari i per GPU
| El que s'anuncia | Què vol dir de debò | A qui li importa |
|---|---|---|
| 3.000 tokens per segon i GPU | La màquina sencera: la suma de totes les sessions que atén, abans de repartir-la | A qui paga la factura |
| 100 tokens per segon i usuari | El que veu una sola persona a la seva pantalla | A qui espera la resposta |
| 30 sessions alhora | El número que uneix els dos de dalt: 3.000 entre 30 són 100 | A tots dos |
«Tokens per segon i usuari» és la velocitat a què li surt el text a una persona: el que veu a la seva pantalla, passi el que passi amb els altres. «Tokens per segon i GPU» és la producció total de l'equip: tot el que escriu sumant les sessions que atén alhora, abans de repartir-ho. Dues coses diferents amb la mateixa unitat, i aquesta coincidència és justament la que confon.
La taula fa el compte a la vista: tres mil tokens per segon de màquina, trenta sessions a dins, cent per usuari. Les tres xifres són la mateixa realitat explicada des de tres llocs, i la del mig, el nombre de sessions, és la que gairebé mai no es diu.
I ara l'error que de debò es comet. Si un anuncia tres mil i un altre anuncia cent, sembla que el primer vagi trenta vegades més ràpid; però si el primer compta la màquina sencera i el segon una pantalla, poden ser el mateix servei amb el mateix rendiment per al mateix usuari. A l'inrevés funciona igual de malament: dues xifres gairebé iguals, una per usuari i l'altra per GPU, descriuen serveis que no tenen res a veure, perquè a la segona encara li falta una divisió. Quin dels dos t'interessa no és una qüestió tècnica, és una qüestió de paper: el d'usuari mesura la teva paciència i el de GPU mesura quanta feina treus d'un equip que costa el mateix ple que buit.
La latència no és un número, són dos
Una mediana bona amb una cua dolenta retrata un servei que va fi gairebé sempre i s'encalla justament quan hi ha gent. I la mediana tota sola no ho deixa veure: pot quedar-se quieta mentre la cua es dobla, perquè la cua la formen poques respostes i la mediana no les compta.
La cua, a més, és la que recorda l'usuari. Ningú no recorda les nou respostes que van arribar a temps, sinó la desena, la que es va quedar penjada a la pantalla. I es mou amb la càrrega: la mateixa màquina que dona una cua còmoda amb poques sessions l'empitjora quan s'omple, sense que la mediana es mogui gaire. Una latència que no diu amb quanta càrrega s'ha mesurat és un altre número sense denominador.
Ara fes-ho tu: l'experiment d'una tarda
Tot el que hem vist es veu a casa, i veure-ho és el que ho fixa. Calen un model petit que corri al teu propi ordinador i un cronòmetre. Que sigui local importa: així ningú no es reparteix la màquina amb tu i el que mesuris és tot teu.
Primer pas. Fes una pregunta curta, d'una línia, i mesura el temps des que l'envies fins que apareix el primer token. Aquest és, en essència, el temps de lectura de la primera taula.
Segon pas. Deixa que acabi, mesura el que triga la resta i divideix-ho pels tokens escrits: aquest és el temps entre tokens, i el seu invers, els tokens per segon que et toquen a tu. Ja tens les dues fases separades, cadascuna amb el seu número.
Tercer pas. Repeteix-ho amb una conversa llarga, enganxant diverses pàgines de text com a context. El temps fins al primer token creixerà molt, perquè hi ha molt més per llegir; el temps entre tokens creixerà bastant menys, però creixerà, i arribarà un moment en què la màquina es queixarà: això és la memòria cau KV omplint la memòria.
Quart pas, el dels denominadors. Engega dues converses alhora: la velocitat que veu cadascuna baixa i la suma de les dues puja. El mateix equip, comptat per usuari, va més lent; comptat per màquina, produeix més. I un advertiment perquè l'experiment serveixi d'alguna cosa: no intentis batre cap rècord ni comparar el teu portàtil amb un centre de dades. El que s'aprèn aquí no és el valor, és quina palanca mou quin número.
Quatre preguntes abans de creure't una xifra de velocitat
Primera: quina fase mesura? Un «tokens per segon» parla de l'escriptura i no diu res del que trigues a veure la primera paraula. Segona: entre quants es divideix? Per usuari o per màquina, i si és per màquina, quantes sessions hi havia a dins. Tercera: és el cas normal o el dolent? Mediana, cua, o una mitjana que no és cap de les dues. I quarta: en quines condicions s'ha mesurat? Amb quina llargada de conversa i amb quanta gent, que és el que fixa les tres respostes anteriors.
Si en falta qualsevol de les quatre, el número no es pot comparar amb res. No és que sigui fals: és que no diu prou per fer-hi res.
Conclusió
Un número de velocitat en IA no és un fet solt: és el resultat d'una divisió, i qui el publica tria el divisor. La mateixa màquina dona tres mil o cent depenent de si es compta sencera o per pantalla, i la mateixa latència sembla bona o dolenta segons si es mira el cas del mig o la cua. No hi ha cap engany sofisticat en això: hi ha una unitat compartida, el token, posada sota magnituds que no s'assemblen. La defensa cap en una frase: quant, de quina fase i entre quants. I si ho has mesurat una tarda amb un model petit i un cronòmetre, cap xifra de velocitat no et tornarà a semblar senzilla.
Fonts primàries
La continuació natural
Aprèn IA al teu ritme amb els nostres cursos gratuïts.
A la nostra plataforma d'aprenentatge TAKU podràs accedir a aquest i a molts altres cursos de manera totalment gratuïta.
APRENDRE AMB TAKU
Comentaris