La expresión «tokens por segundo» requiere especial cuidado. Nombra una unidad, no una métrica completa. Aún necesitas saber de quién se contaron los tokens y qué intervalo de tiempo se utilizó.
Qué mide cada métrica
Latencia de inferencia
La latencia de inferencia es el tiempo transcurrido de una solicitud. Para una respuesta generada, la «latencia de extremo a extremo» normalmente va desde el envío o la recepción de la solicitud hasta la recepción de su salida final.
Responde a la pregunta: ¿Cuánto falta para que termine esta solicitud?
Ese límite no es universal. Una medición del lado del cliente puede incluir el enrutamiento, la transferencia de red, la espera en cola y el procesamiento de la respuesta. Un servidor de inferencia puede iniciar su reloj después de algunos de esos pasos. Un benchmark que solo dice «latencia» no proporciona información suficiente para reproducir el número.
La latencia también depende directamente de la longitud de la salida. Una respuesta concisa y una larga pueden tener el mismo TTFT y el mismo ritmo de generación, pero la respuesta larga tarda más en terminar.
Tiempo hasta el primer token
El tiempo hasta el primer token, o TTFT, va desde el límite de la solicitud hasta el primer token de salida no vacío en una respuesta transmitida.
Responde a la pregunta: ¿Cuánto falta para que empiece a aparecer la respuesta?
El TTFT suele incluir la espera en cola, el procesamiento de entrada, el trabajo de prellenado del modelo sobre el prompt, la generación del primer token y cualquier tiempo de red que quede dentro del límite elegido. Es parte de la latencia de extremo a extremo, no un nombre alternativo para ella.
Un TTFT bajo hace que una interfaz parezca receptiva. Por sí solo, no dice nada sobre la fluidez con la que llegará el resto de la respuesta ni sobre cuándo terminará.
Tokens por segundo
Los tokens por segundo son la cantidad de tokens de salida dividida entre los segundos transcurridos. En las comparaciones de productos, a menudo significa la velocidad de generación de una solicitud después del primer token.
Responde a la pregunta: ¿Con qué rapidez llega el texto generado una vez iniciada la generación?
Para una respuesta con (N) tokens de salida, hay (N-1) intervalos entre el primer y el último token. Si esos intervalos tardan (G) segundos, la tasa posterior al primer token es:
[\n\\text{tasa de generación por solicitud} = \\frac{N-1}{G}\n]
Es el recíproco del tiempo promedio por intervalo entre tokens de salida cuando cada evento medido contiene un token. Las API de transmisión reales pueden entregar fragmentos que contienen varios tokens, por lo que el cliente debe contar los tokens en lugar de suponer que hay un token por evento.
Algunas herramientas dividen, en cambio, todos los tokens de salida entre la latencia completa de extremo a extremo de la solicitud. Otras combinan los tokens de todas las solicitudes simultáneas. Esas decisiones producen números diferentes, aunque todos puedan etiquetarse como TPS o tokens/s.
Rendimiento de inferencia
El rendimiento de inferencia es la cantidad total de trabajo que un sistema completa por unidad de tiempo bajo una carga de trabajo determinada. Puede medirse en tokens de salida por segundo, tokens totales por segundo, solicitudes por segundo, muestras por segundo u otra unidad adecuada para la carga de trabajo.
Responde a la pregunta: ¿Cuánta carga puede manejar el sistema?
El rendimiento es una propiedad agregada. Necesita un intervalo de prueba y un patrón de carga. La concurrencia, la tasa de llegada de solicitudes, las longitudes de los prompts y las respuestas, el procesamiento por lotes, el número de réplicas y la gestión de solicitudes fallidas pueden modificarlo.
El rendimiento de solicitudes y el rendimiento de tokens no son intercambiables. Un servidor puede completar muchas solicitudes cortas o menos solicitudes largas mientras produce la misma cantidad de tokens de salida por segundo.
La distinción real
| Metric | Clock stops at | Typical scope | Typical unit | The question it answers |
|---|---|---|---|---|
| Latency | Final response output | One request | ms or s/request | When is this request finished? |
| TTFT | First content token | One streamed request | ms or s/request | When does the answer begin? |
| Tokens per second | Depends on the stated formula | One request or the whole system | output tokens/s | How fast are tokens arriving, and for whom? |
| Throughput | End of a test interval | System or deployment | tokens/s, requests/s, or samples/s | How much work is completed under load? |
Tres preguntas permiten desambiguar casi cualquier resultado reportado:
- ¿Qué se cuenta? ¿Tokens de salida, todos los tokens, solicitudes completadas o muestras?
- ¿Dónde empieza y termina el reloj? ¿Al enviar desde el cliente, al recibir en el servidor, en el primer token, en el token final o en límites fijos de la prueba?
- ¿Cuál es el alcance? ¿Una solicitud, un usuario, una réplica o toda la implementación bajo carga simultánea?
Si un benchmark no puede responder las tres preguntas, su número no está listo para compararse.
Un ejemplo práctico
Imagina una solicitud que devuelve 81 tokens de salida:
- La solicitud se envía en el segundo 0,0.
- El primer token llega en el segundo 0,8.
- El token final llega en el segundo 2,8.
Su TTFT es de 0,8 segundos. Su latencia de extremo a extremo es de 2,8 segundos. La generación posterior al primer token abarca 2,0 segundos y contiene 80 intervalos entre tokens, por lo que su tasa posterior al primer token es de 40 tokens por segundo.
Si una herramienta cuenta los 81 tokens de salida y los divide entre la latencia completa de 2,8 segundos, informa de aproximadamente 29 tokens por segundo. No se trata de un desacuerdo matemático. Es un límite temporal y un numerador diferentes.
Ahora coloca muchas solicitudes en un servidor. Durante una ventana de prueba de 10 segundos, el servidor genera 3.000 tokens de salida y completa 50 solicitudes:
- Rendimiento de tokens de salida: (3.000 / 10 = 300) tokens por segundo
- Rendimiento de solicitudes: (50 / 10 = 5) solicitudes por segundo
Los 300 tokens por segundo del servidor son la salida combinada de las solicitudes activas. Un usuario individual aún puede recibir la salida a 40 tokens por segundo, o menos si el aumento de carga incrementa la espera en cola y los retrasos de decodificación.
Cuándo importa cada métrica
Para una interfaz de chat, un asistente de programación u otra interacción transmitida, el TTFT describe la pausa inicial. La tasa de generación por solicitud, o su inverso, el tiempo por token de salida, describe el ritmo posterior a esa pausa. La latencia de extremo a extremo importa cuando el usuario u otro programa necesita la respuesta completa antes de continuar.
Para un trabajo por lotes, el rendimiento suele importar más que el TTFT. El trabajo se preocupa por la tasa total de finalización, siempre que los fallos y la calidad de salida sigan siendo aceptables.
Para planificar la capacidad, utiliza el rendimiento junto con un objetivo de latencia. Aumentar la concurrencia suele mejorar al principio el rendimiento agregado porque el hardware realiza más trabajo en paralelo. La misma concurrencia puede aumentar la espera en cola y ralentizar a cada usuario. Después de la saturación, el rendimiento puede estabilizarse o disminuir mientras la latencia sigue aumentando.
En una API sin streaming, el TTFT puede no ser observable en el cliente porque la respuesta solo se entrega cuando está completa. El servidor aún puede medir las etapas internas, pero el rendimiento visible para el cliente es la latencia de extremo a extremo.
Qué se confunde y por qué
Un TTFT bajo no garantiza una latencia baja
Una respuesta puede comenzar rápidamente y después generarse lentamente. El TTFT solo captura el primer hito. La latencia total también incluye el tiempo de generación restante.
Bajo una definición explícita posterior al primer token, la relación es:
[\n\\text{latencia de extremo a extremo} = \\text{TTFT} + (N-1)\\times\\text{tiempo promedio por intervalo entre tokens de salida}\n]
Las implementaciones utilizan distintas convenciones de conteo, así que comprueba la fórmula del benchmark antes de reconstruir una métrica a partir de otra.
Los tokens por segundo pueden ser rendimiento
«Tokens por segundo» a veces significa el ritmo de generación de un usuario. También puede ser la unidad del rendimiento agregado de tokens de salida. La etiqueta por sí sola no permite distinguirlos.
Busca calificadores como por solicitud, por usuario, por flujo, agregado, o del sistema. Si no aparece ninguno, examina la fórmula y la configuración de la prueba.
Un rendimiento alto no garantiza solicitudes rápidas
Un servidor puede procesar por lotes muchas solicitudes para producir más tokens totales por segundo, mientras cada solicitud espera más o recibe tokens con menor frecuencia. Por eso, las pruebas serias de servicio informan del rendimiento junto con percentiles de latencia o calculan el goodput: trabajo completado mientras se cumple un objetivo de servicio establecido.
Las cargas de trabajo diferentes producen resultados diferentes
El TTFT cambia con la longitud del prompt y la espera en cola. La latencia de extremo a extremo cambia con la longitud de la respuesta. El rendimiento cambia con la concurrencia, el patrón de llegada, el procesamiento por lotes y la asignación de hardware. Las tasas de tokens también dependen del tokenizador utilizado para contar la salida.
Compara sistemas solo con el mismo comportamiento del modelo, las mismas distribuciones de prompts y salidas, el mismo patrón de carga, modo de streaming, configuración de muestreo, tokenizador, límite de medición y criterios de éxito. Una única solicitud inactiva prueba algo diferente de un servidor saturado.
Los promedios ocultan las solicitudes que los usuarios recuerdan
Un TTFT o una latencia promedio pueden parecer saludables mientras una pequeña proporción de solicitudes espera mucho más en una cola. Informa de una distribución, incluidos los percentiles de cola relevantes, y del número de observaciones. Para el rendimiento, informa de los errores y las solicitudes rechazadas en lugar de contar solo el trabajo exitoso sin indicarlo.
Cómo leer un benchmark de inferencia
Antes de confiar en un gráfico o en una afirmación de una tarjeta del modelo, comprueba que indique:
- si los tokens por segundo son por solicitud o agregados;
- si cuenta solo los tokens de salida o los tokens de entrada más los de salida;
- si el TTFT o el primer token se incluye en el cálculo de la tasa de tokens;
- si la latencia se mide del lado del cliente, del lado del servidor o solo en el modelo;
- las distribuciones de longitud de prompts y salidas;
- la concurrencia y el patrón de llegada de solicitudes;
- el calentamiento, la duración de la prueba y la gestión de los límites inicial y final;
- la latencia media y de cola, no solo un promedio;
- los criterios para solicitudes exitosas y errores;
- el modelo, la precisión, el hardware, el motor y el número de réplicas.
La mejor métrica no es una de estas cuatro de forma aislada. Es la métrica que coincide con el objetivo visible para el usuario u operativo, medida con una carga realista y con todos los límites declarados.
Qué leer después
Lee ¿Qué es la latencia de inferencia? para conocer los límites temporales de las solicitudes, ¿Qué es el tiempo hasta el primer token? para conocer el retraso inicial de una respuesta transmitida, ¿Qué son los tokens por segundo? para consultar las fórmulas de las tasas de tokens, y ¿Qué es el rendimiento de inferencia? para conocer la capacidad del sistema bajo carga.