Blog articles are published in Spanish and Catalan.

Aprendiendo IA

Tokens por segundo: pregunta siempre entre cuántos

Una cifra de velocidad en IA no dice nada hasta que sabes dos cosas: por quién se divide y qué fase de la respuesta mide. Este curso breve enseña a desarmar un «tokens por segundo» en sus piezas, a hacer la división a mano y a verlo con tus propios ojos en tu ordenador, con un modelo pequeño y un cronómetro.

Viñeta: en un túnel de lavado, un grueso tubo galvanizado con una válvula de volante cruza la escena por arriba y de él cuelgan varias lanzas de agua. De la primera, un hombre con gorra dispara un chorro gordo y potente que revienta contra el capó de un coche. De la lanza de al lado, colgada del mismo tubo, solo cae un hilo de agua sobre otro coche, y su dueño la mira boquiabierto con los brazos caídos. Al fondo, el tubo se aleja con más lanzas goteando.
📷 Imagen generada con IA

En resumen

  • Una respuesta se fabrica en dos fases: el modelo lee de una vez todo lo que le has dado y después escribe la contestación token a token. Van a ritmos distintos y se atascan por motivos distintos.
  • «Tokens por segundo y usuario» es lo que ve una persona en su pantalla. «Tokens por segundo y GPU» es todo lo que produce la máquina sumando las sesiones que atiende a la vez, antes de repartirlo entre ellas.
  • Las dos cifras pueden parecerse mucho y querer decir cosas opuestas: sin saber cuántas sesiones hay dentro, no se pueden comparar.
  • La latencia tampoco es un número: la mediana cuenta el día normal y la cola cuenta el día malo, que es el que recuerda el usuario.
  • Y nada de esto hay que creérselo de palabra: con un modelo pequeño en casa se miden las dos fases por separado y se ve crecer el consumo de memoria al alargar la conversación.

Antes de contar, saber qué se cuenta

Todas las cifras de velocidad de esta industria vienen en tokens por segundo, así que el curso empieza por la unidad. El token es la pieza con la que el modelo lee y escribe: no coincide con la palabra ni con la letra, y depende de cómo se haya partido el texto. Un número de tokens por segundo, por tanto, no se traduce directamente a palabras por segundo en la pantalla.

Con eso claro, lo que queda son tres preguntas, y conviene hacerlas en este orden: qué fase de la respuesta mide ese número, entre cuántos se está dividiendo y si te dan el caso normal o el caso malo. Ninguna de las tres suele venir impresa al lado de la cifra, y las tres se comprueban en casa con el experimento del final.

Una respuesta tiene dos fases y van a ritmos distintos

Las dos fases de una respuesta
Fase Qué hace Qué la frena Qué número la mide
Prefill Lee de una vez todo lo que le has dado La capacidad de cálculo de la GPU Tiempo hasta el primer token
Decodificación Escribe la respuesta token a token La memoria y el viaje de cada token Tokens por segundo y tiempo entre tokens
Los dos números miden fases distintas: una respuesta puede tardar mucho en arrancar y luego salir muy rápida, o al contrario.

Leer y escribir —prefill y decodificación— no se parecen en nada por dentro. Al leer, el modelo puede atacar todo el texto de golpe, así que manda la capacidad de cálculo: cuantas más operaciones por segundo, antes acaba. Al escribir no puede adelantarse, porque cada token depende del anterior; ahí manda la memoria y el ir y venir de cada paso, y por eso una máquina con cálculo de sobra puede escribir despacio.

Cada fase tiene su número. La lectura se mide por el tiempo hasta el primer token: lo que pasa desde que pulsas enviar hasta que aparece algo. La escritura se mide por los tokens por segundo o por su inverso, el tiempo entre tokens.

Y de ahí la primera trampa: dos servicios con el mismo «tokens por segundo» pueden ser experiencias opuestas, uno que tarda en arrancar y luego vuela y otro que responde al instante y después gotea. Un número solo no los distingue.

La caché KV decide cuánta gente cabe en la máquina

Aquí está la pieza que une lo anterior con lo que viene. La velocidad de una máquina no se reparte entre un número fijo de usuarios: se reparte entre los que caben, y caben los que la memoria permita. Una conversación corta ocupa poco y deja sitio; una larga ocupa mucho y echa a los demás.

La consecuencia incomoda a quien quiere comparar cifras. El mismo equipo, con el mismo modelo, atiende muchas sesiones si las conversaciones son breves y pocas si son largas, así que un número medido con preguntas de una línea y otro medido con documentos enteros no describen el mismo escenario, aunque los dos estén en tokens por segundo. La caché KV es el divisor escondido: lo que decide entre cuántos se parte el rendimiento de la máquina.

Los dos denominadores: por usuario y por GPU

El mismo servicio, contado de dos maneras
Lo que se anuncia Qué significa de verdad A quién le importa
3.000 tokens por segundo y GPU La máquina entera: la suma de todas las sesiones que atiende, antes de repartirla Al que paga la factura
100 tokens por segundo y usuario Lo que ve una sola persona en su pantalla Al que espera la respuesta
30 sesiones a la vez El número que une los dos de arriba: 3.000 entre 30 son 100 A los dos
Cifras de ejemplo, no medidas de ningún producto. La moraleja es la división: sin el número de sesiones, los otros dos no se pueden comparar.

«Tokens por segundo y usuario» es lo rápido que le sale el texto a una persona: lo que ve en su pantalla, pase lo que pase con los demás. «Tokens por segundo y GPU» es la producción total del equipo: todo lo que escribe sumando las sesiones que atiende a la vez, antes de repartirlo. Dos cosas distintas con la misma unidad, y esa coincidencia es justo la que confunde.

La tabla hace la cuenta a la vista: tres mil tokens por segundo de máquina, treinta sesiones dentro, cien por usuario. Las tres cifras son la misma realidad contada desde tres sitios, y la del medio, el número de sesiones, es la que casi nunca se dice.

Y ahora el error que de verdad se comete. Si uno anuncia tres mil y otro anuncia cien, parece que el primero va treinta veces más rápido; pero si el primero cuenta la máquina entera y el segundo una pantalla, pueden ser el mismo servicio con el mismo rendimiento para el mismo usuario. Al revés funciona igual de mal: dos cifras casi iguales, una por usuario y otra por GPU, describen servicios que no tienen nada que ver, porque a la segunda le falta todavía una división. Cuál de los dos te interesa no es cuestión técnica, es cuestión de papel: el de usuario mide tu paciencia y el de GPU mide cuánto trabajo le sacas a un equipo que cuesta lo mismo lleno que vacío.

La latencia no es un número, son dos

Una mediana buena con una cola mala retrata un servicio que va fino casi siempre y se atasca justo cuando hay gente. Y la mediana sola no deja verlo: puede quedarse quieta mientras la cola se dobla, porque la cola la forman pocas respuestas y la mediana no las cuenta.

La cola, además, es la que recuerda el usuario. Nadie se acuerda de las nueve respuestas que llegaron a tiempo, sino de la décima, la que se quedó colgada en la pantalla. Y se mueve con la carga: la misma máquina que da una cola cómoda con pocas sesiones la empeora cuando se llena, sin que la mediana se mueva apenas. Una latencia que no dice con cuánta carga se midió es otro número sin denominador.

Ahora hazlo tú: el experimento de una tarde

Todo lo anterior se ve en casa, y verlo es lo que lo fija. Hacen falta un modelo pequeño corriendo en tu propio ordenador y un cronómetro. Que sea local importa: así nadie reparte la máquina contigo y lo que midas es tuyo entero.

Paso uno. Haz una pregunta corta, de una línea, y mide el tiempo desde que la envías hasta que aparece el primer token. Ese es, en esencia, el tiempo de lectura de la primera tabla.

Paso dos. Deja que termine, mide lo que tarda el resto y divídelo entre los tokens escritos: ese es el tiempo entre tokens, y su inverso, los tokens por segundo que te corresponden a ti. Ya tienes las dos fases separadas, cada una con su número.

Paso tres. Repite con una conversación larga, pegando varias páginas de texto como contexto. El tiempo hasta el primer token crecerá mucho, porque hay mucho más que leer; el tiempo entre tokens crecerá bastante menos, pero crecerá, y llegará un momento en que la máquina se queje: eso es la caché KV llenando la memoria.

Paso cuatro, el de los denominadores. Lanza dos conversaciones a la vez: la velocidad que ve cada una baja y la suma de las dos sube. El mismo equipo, contado por usuario, va más lento; contado por máquina, produce más. Y una advertencia para que el experimento sirva de algo: no intentes batir ningún récord ni comparar tu portátil con un centro de datos. Lo que se aprende aquí no es el valor, es qué palanca mueve qué número.

Cuatro preguntas antes de creerte una cifra de velocidad

Primera: ¿qué fase mide? Un «tokens por segundo» habla de la escritura y no dice nada de lo que tardas en ver la primera palabra. Segunda: ¿entre cuántos se divide? Por usuario o por máquina, y si es por máquina, cuántas sesiones había dentro. Tercera: ¿es el caso normal o el malo? Mediana, cola, o una media que no es ninguna de las dos. Y cuarta: ¿en qué condiciones se midió? Con qué largo de conversación y con cuánta gente, que es lo que fija las tres respuestas anteriores.

Si falta cualquiera de las cuatro, el número no se puede comparar con nada. No es que sea falso: es que no dice lo suficiente para hacer nada con él.

Conclusión

Un número de velocidad en IA no es un hecho suelto: es el resultado de una división, y quien lo publica elige el divisor. La misma máquina da tres mil o cien según se cuente entera o por pantalla, y la misma latencia parece buena o mala según se mire el caso de en medio o la cola. No hay engaño sofisticado en ello: hay una unidad compartida, el token, puesta debajo de magnitudes que no se parecen. La defensa cabe en una frase: cuánto, de qué fase y entre cuántos. Y si lo has medido una tarde con un modelo pequeño y un cronómetro, ninguna cifra de velocidad te volverá a parecer sencilla.

Fuentes primarias

Comentarios

Sé respetuoso. Los comentarios se moderan.

    La continuación natural

    Aprende IA a tu ritmo con nuestros cursos gratuitos.

    En nuestra plataforma de aprendizaje TAKU podrás acceder a este y muchos otros cursos de manera totalmente gratuita.

    APRENDER CON TAKU

    ← Volver al blog