Durante la inferencia, un modelo puede devolver un resultado, como una puntuación de fraude, o transmitirlo por partes, como ocurre con el texto generado. Una predicción única suele tener un punto de finalización evidente. Una respuesta transmitida no: la primera salida visible y la respuesta terminada llegan en momentos distintos.

Cómo se mide la latencia de inferencia

Comienza por definir el límite de la medición.

La latencia del modelo

La latencia del servicio

La latencia de extremo a extremo

Estas etiquetas no están perfectamente estandarizadas. La «latencia del modelo» de una plataforma puede incluir trabajo que otra plataforma registra como sobrecarga. Por tanto, las marcas de tiempo forman parte de la definición. «Desde que el cliente envía la solicitud hasta que recibe la respuesta final» es comparable; «la latencia fue de 800 ms» no lo es.

En un modelo de lenguaje que transmite texto, el temporizador también puede detenerse en distintos eventos de salida:

  • El tiempo hasta el primer token (TTFT) termina cuando se recibe el primer token de salida. Indica cuánto se tarda en comenzar a mostrar una respuesta.
  • La latencia de la solicitud de extremo a extremo, denominada a veces tiempo hasta el último token, termina cuando se recibe la respuesta completa.
  • La latencia entre tokens (ITL) mide los intervalos entre tokens de salida sucesivos una vez iniciada la generación. Algunas herramientas denominan a esto tiempo medio por token de salida.

Según una convención habitual:

latencia de extremo a extremo = TTFT + tiempo de generación

Si una respuesta contiene n tokens de salida, su latencia media entre tokens después del primero es:

(latencia de extremo a extremo - TTFT) / (n - 1)

El denominador es n - 1 porque n tokens contienen esa cantidad de intervalos después del primer token. Comprueba la definición de la herramienta antes de comparar resultados. Algunas herramientas incluyen la espera del primer token en el promedio por token, mientras que otras la excluyen.

Un ejemplo práctico

Supongamos que un cliente registra estas marcas de tiempo para una respuesta transmitida hipotética:

  • Solicitud enviada: 0 ms
  • Primer token de salida recibido: 450 ms
  • Token de salida final recibido: 1.400 ms
  • Longitud de la salida: 20 tokens

El TTFT observado por el cliente es de 450 ms. La latencia de extremo a extremo es de 1.400 ms. La generación posterior al primer token tarda 950 ms, distribuidos en 19 intervalos entre tokens:

950 ms / 19 = 50 ms

Por tanto, la misma solicitud tiene una latencia hasta el primer token de 450 ms, una latencia media entre tokens de 50 ms y una latencia de finalización de 1,40 s. Ninguna de estas cifras sustituye a las demás.

Supongamos ahora que el servidor del modelo informa de 720 ms de trabajo dentro del contenedor del modelo. Eso no demuestra que los 680 ms restantes correspondan a la latencia de red. Los temporizadores del cliente y del servidor pueden abarcar etapas superpuestas o definidas de manera distinta. Para explicar la diferencia, se necesitan marcas de tiempo alineadas para la espera en cola, el preprocesamiento, la ejecución del modelo, el posprocesamiento y la transferencia de red.

Qué cambia la latencia de inferencia

La latencia es el resultado de una prueba completa, no una propiedad permanente de un modelo. Cambia según:

  • La forma y el tamaño de la entrada. Una entrada más grande puede requerir más preprocesamiento y trabajo del modelo.
  • La forma y el tamaño de la salida. Una respuesta generada más larga requiere más pasos secuenciales de generación.
  • El tráfico y la concurrencia. Las solicitudes pueden tener que esperar capacidad cuando otro trabajo utiliza los mismos recursos de servicio.
  • El procesamiento por lotes y la planificación. Agrupar solicitudes puede mejorar la eficiencia total del sistema y, al mismo tiempo, hacer que una solicitud individual tenga que esperar.
  • El hardware y el software de servicio. Los aceleradores, la precisión numérica, el movimiento de memoria, los kernels y los motores de inferencia afectan al tiempo de ejecución.
  • El estado caliente o frío. Una solicitud puede ser más lenta si el código, los datos del modelo o las cachés no están preparados.
  • Las etapas de la aplicación. La recuperación, las comprobaciones de seguridad, las herramientas y el posprocesamiento pueden añadir un retraso visible para el usuario fuera del modelo.
  • La red y la ubicación del cliente. Un punto de referencia del lado del servidor no incluye todos los saltos que experimenta un usuario remoto.

En el caso del texto generado, la longitud de la entrada suele afectar a la espera antes de que comience la salida, mientras que la longitud de la salida afecta considerablemente al momento en que termina la respuesta. La transmisión puede hacer que la interfaz parezca más receptiva al mostrar antes una salida parcial, pero por sí sola no garantiza una menor latencia de finalización.

Por qué el promedio no es suficiente

Un servicio en producción gestiona solicitudes de distintos tamaños bajo una carga variable. Un único promedio comprime esa distribución y puede ocultar las solicitudes con las esperas más largas.

La latencia suele comunicarse mediante percentiles. Una latencia de finalización p95 es el valor en el que el 95 % de las solicitudes medidas terminó o por debajo de él. El 5 % restante tardó más. p50 describe la solicitud intermedia, mientras que p95 o p99 revelan una mayor parte de la cola lenta.

Todo percentil comunicado sigue necesitando contexto. Como mínimo, etiqueta un resultado con:

  1. Límite: del cliente al primer token, del cliente al resultado final o un intervalo específico del lado del servidor.
  2. Carga de trabajo: modelo, distribución de entradas, distribución de salidas y configuración de las solicitudes.
  3. Carga: concurrencia o patrón de llegada de las solicitudes.
  4. Estadístico: p50, p95, p99, media o valor por solicitud.

Por ejemplo, «latencia p95 del cliente al resultado final para esta carga de trabajo con 20 solicitudes simultáneas» es una medición utilizable. Una cifra menor obtenida con una combinación de prompts diferente o con una carga de una sola solicitud no demuestra que el sistema de producción sea más rápido.

Por qué importa la latencia de inferencia

La latencia determina cuánto espera una solicitud. El punto de finalización relevante depende del producto.

A una interfaz interactiva puede importarle sobre todo la primera salida visible. A un clasificador en segundo plano le importa la predicción completa. Un sistema de varios pasos no puede iniciar su siguiente paso dependiente hasta que se completa el resultado anterior, por lo que la latencia de finalización puede acumularse a lo largo de la secuencia.

La latencia también interactúa con el rendimiento, que mide cuánto trabajo completa un sistema a lo largo del tiempo. Aumentar el tamaño del lote o la concurrencia puede elevar el rendimiento total y, a la vez, aumentar la espera de cada solicitud. Por tanto, un sistema puede procesar más tokens totales por segundo y seguir pareciendo más lento para un usuario individual.

Conceptos erróneos habituales

«Latencia de inferencia» siempre significa tiempo de ejecución del modelo. No es así. El término también se utiliza para la medición a nivel de servicio y la observada por el cliente. Busca el límite de medición.

El tiempo hasta el primer token es la latencia de respuesta. Es un hito de la respuesta. A un primer token rápido puede seguirle una generación larga.

La transmisión hace que la inferencia termine más rápido. La transmisión cambia el momento en que se entregan los resultados parciales. Puede mejorar la capacidad de respuesta percibida aunque el resultado final llegue al mismo tiempo.

Un modelo tiene una única cifra de latencia. El resultado depende de las entradas, las salidas, la carga, el hardware, el software y el estadístico comunicado.

Más tokens totales por segundo implican menor latencia. El rendimiento agregado y el tiempo de espera por solicitud pueden moverse en direcciones opuestas.

Qué consultar a continuación

Usa el tiempo hasta el primer token cuando importe el inicio de una respuesta transmitida. Usa tokens por segundo para describir el ritmo de generación y el rendimiento de inferencia para describir la capacidad total de servicio. Para una distinción comparativa, consulta latencia frente a TTFT frente a tokens por segundo frente a rendimiento.