Skip to main content

Velocidad de Generación (TPS / TTFT / Latencia)

Métricas clave de rendimiento de modelos de lenguaje: Time to First Token (tiempo de reacción al contexto de entrada) y Tokens Per Second (velocidad de generación de texto de salida en streaming).

1. Visión general del concepto y problema sistémico

En discusiones de ingeniería, el rendimiento de los modelos a menudo se reduce a definiciones vagas de "rápido" o "lento". Este enfoque amateur conduce al fracaso de sistemas en tiempo real: la interfaz de un bot de voz se congela durante varios segundos antes de responder, el autocompletado de código en un IDE molesta con la demora en la aparición de caracteres, y los ciclos de agentes en segundo plano se estancan en colas de horas.

La inferencia real de grandes modelos de lenguaje está sujeta a las leyes de la física de semiconductores y se divide en dos fases de hardware completamente diferentes:

  1. Fase de Prefill (Prefill / Context Phase): procesamiento paralelo del prompt de entrada.
  2. Fase de Decode (Decode / Generation Phase): generación secuencial de caracteres de salida token por token.

Las métricas TTFT (Time to First Token) y TPS (Tokens Per Second) son la brújula sistémica del ingeniero, que determina la arquitectura de colas, la elección de hardware y la experiencia del usuario en aplicaciones interactivas.

2. Taxonomía arquitectónica y modelo mental

Las métricas de latencia y rendimiento se clasifican según las etapas del ciclo de vida de la solicitud:

┌─────────────────────────────────────────────────────────────┐
│                 INFERENCE LATENCY TAXONOMY                  │
├─────────────────────────────────────────────────────────────┤
│ 1. Queue Time (Tiempo de espera por recursos GPU)           │
├─────────────────────────────────────────────────────────────┤
│ 2. Prefill Phase ➔ TTFT (Time to First Token)               │
│    • Compute-Bound (TFLOPS Núcleos Tensoriales)             │
│    • Cálculo directo del KV Cache para todo el texto de entrada│
├─────────────────────────────────────────────────────────────┤
│ 3. Decode Phase ➔ TPS / ITL (Inter-Token Latency)           │
│    • Memory-Bandwidth Bound (GB/s del bus de VRAM)           │
│    • Lectura secuencial de pesos para cada token             │
├─────────────────────────────────────────────────────────────┤
│ 4. Total E2E Latency = TTFT + (N_generated_tokens * ITL)    │
└─────────────────────────────────────────────────────────────┘
  1. TTFT (Time to First Token — tiempo hasta el primer token):
    • Número de milisegundos desde que el cliente envía la solicitud HTTP hasta que recibe el primer byte de la respuesta en streaming. Se compone de la latencia de red, la espera en la cola y el tiempo de cálculo de prefill.
  2. TPS (Tokens Per Second — velocidad de generación):
    • Número de tokens que el sistema emite en un segundo. Para un solo stream es $1 / \text{ITL}$. Para todo el servidor (Aggregate Throughput) es la cantidad total de tokens generados por todos los clientes simultáneamente.
  3. ITL (Inter-Token Latency — latencia entre tokens):
    • Tiempo entre la aparición de tokens adyacentes durante el streaming. Para el ojo humano, un valor cómodo es menos de 30 ms por token (equivalente a >33 TPS).
  4. Decodificación especulativa (Speculative Decoding):
    • Un truco algorítmico que convierte parte de las operaciones de la fase Decode en verificación paralela, aumentando el TPS neto de 2 a 3 veces sin pérdida de precisión.

3. Pipeline técnico y mecánica interna

El ciclo de vida de la inferencia bajo el microscopio de los tiempos:

  1. Recepción de la solicitud y colocación en batch: Una solicitud de 4000 tokens de código entra en el motor de inferencia (por ejemplo, vLLM).
  2. Prefill (Prefill Phase): La GPU carga las matrices de pesos y multiplica en paralelo todos los 4000 tokens en los núcleos Tensor. Se calculan los vectores Q, K, V y se inicializa la memoria del KV Cache.
  3. Emisión del primer token (Fijación de TTFT): El primer token se envía al cliente a través de Server-Sent Events. Si el prompt está en caché (Prompt Caching), esta etapa toma 50 ms; si no, entre 500 ms y 3 segundos.
  4. Ciclo secuencial de decodificación (Decode Loop):
    • Para generar un token, la tarjeta gráfica debe leer todos los 70 mil millones de parámetros del modelo desde la VRAM al caché del chip.
    • Con una memoria de ancho de banda de 1000 GB/s (RTX 4090), leer 35 GB de un modelo cuantizado toma: $$35 \text{ GB} / 1000 \text{ GB/s} = 35 \text{ ms por token} \approx 28 \text{ TPS}$$
  5. Finalización de la solicitud: La generación termina al alcanzar el token <|im_end|> o el límite de longitud, y los recursos del KV Cache se liberan para otras solicitudes.

4. Escenarios prácticos de ingeniería en producción

01. Desarrollo de un asistente de voz con reacción en vivo (Human-Like Latency)

Un humano nota una pausa en la conversación si la respuesta se retrasa más de 500 ms:

  • Los ingenieros eligen el modelo Gemini 2.0 Flash o Mistral NeMo con ubicación local.
  • Gracias a la optimización del stack, TTFT se reduce a 180 ms, la conversión de texto a voz (TTS) toma otros 120 ms. Un tiempo de reacción total de 300 ms crea el efecto de un diálogo en vivo.

02. Autocompletado de alta velocidad en IDE (Ghost Text)

Un desarrollador escribe código en Cursor a una velocidad de 5 caracteres por segundo:

  • Cualquier retraso superior a 150 ms provoca que la sugerencia aparezca después de que el desarrollador haya escrito un nuevo carácter.
  • Para tales tareas, se utilizan modelos ligeros especiales (3B–7B parámetros) o motores especulativos que emiten los primeros caracteres en 40–80 ms.

03. Procesamiento por lotes de grandes volúmenes de documentos en el backend

Procesamiento nocturno de 100,000 archivos PDF de usuarios:

  • Un TTFT separado para cada archivo no importa.
  • El servidor se optimiza para Aggregate Throughput: a través de un batching continuo (Continuous Batching) en vLLM, el clúster atiende en paralelo 256 streams, alcanzando una velocidad total de 4,000 tokens por segundo.

5. Errores comunes, trampas y seguridad

  • Caída de TPS durante el agotamiento del KV Cache: Cuando la memoria de video se llena al 95%, el motor comienza a descargar el caché en SSD o CPU. La velocidad de generación cae instantáneamente decenas de veces, paralizando el sistema.
  • Caza ciega de TPS sin control de calidad: Un modelo con alta velocidad (200 tokens/s) que genera código no funcional con errores de sintaxis solo aumenta el tiempo de desarrollo en correcciones manuales.
  • Ilusión de velocidad a través de la caché de red: Si un servidor proxy (Nginx o Cloudflare) almacena en caché la respuesta en lugar de transmitirla (falta del encabezado X-Accel-Buffering: no), el cliente no verá ningún token hasta que el modelo genere todo el texto por completo.
  • Impacto de la longitud del contexto en TTFT: Al aumentar el prompt de entrada de 2,000 a 100,000 tokens, el tiempo de prefill sin caché se incrementa desproporcionadamente, convirtiendo un modelo "rápido" en uno lento.
/ Preguntas frecuentesSchema.org FAQPage

FAQ: Velocidad de Generación (TPS / TTFT / Latencia)

La fase Prefill procesa en paralelo todo el prompt de entrada y está limitada por cálculos puros de núcleos tensoriales de GPU (Compute-Bound). La fase Decode genera tokens secuencialmente y está estrictamente limitada por la velocidad de lectura de pesos desde la memoria de video (Memory-Bandwidth Bound).
/ Enlaces internos
Todos los términos