¿Cómo afecta la longitud del contexto al rendimiento de los LLM locales?

Eva Wong es la Redactora técnica y manitas residente en ZimaSpace. Una geek de toda la vida con pasión por los homelabs y el software de código abierto, se especializa en traducir conceptos técnicos complejos en guías accesibles y prácticas. Eva cree que el autoalojamiento debe ser divertido, no intimidante. A través de sus tutoriales, empodera a la comunidad para desmitificar las configuraciones de hardware, desde construir su primer NAS hasta dominar los contenedores Docker.

Un contexto más largo normalmente reduce el rendimiento de los LLM locales al aumentar el cálculo de prellenado, la memoria de la caché KV, el trabajo de decodificación y la contención por la capacidad de secuencias simultáneas.

El efecto no sigue una única curva universal de tokens por segundo. La longitud del prompt amplía principalmente la fase de prellenado, mientras que el contexto activo creciente hace que los pasos posteriores de decodificación atiendan a más claves y valores almacenados en la caché. Si la memoria se llena, el servidor puede aceptar menos solicitudes, pausar secuencias, descargar la caché o rechazar trabajo, por lo que el rendimiento depende del modelo, el kernel de atención, el hardware, el planificador y la combinación de cargas de trabajo.

La longitud del prompt amplía el trabajo de prellenado antes del primer token

Durante el prellenado, el modelo procesa todos los tokens del prompt para crear los estados ocultos y la caché inicial de claves y valores. El trabajo de atención estándar crece considerablemente con la longitud de la secuencia, aunque los kernels optimizados reducen el tráfico de memoria y los factores constantes sin hacer que la entrada sea gratuita.

El artículo sobre atención consciente de la E/S presenta un algoritmo de atención exacta consciente de la E/S que reduce las transferencias entre los niveles de memoria de la GPU. Sus mejoras de velocidad muestran por qué la elección del kernel cambia la curva, mientras que el contexto subyacente sigue requiriendo cálculo y movimiento de memoria.

Un servidor que informe únicamente de tokens por segundo durante la decodificación puede ocultar este coste. Para RAG y conversaciones largas, el tiempo hasta el primer token y los prompts procesados por segundo son métricas necesarias junto con el rendimiento de salida. Esta distinción sigue siendo visible durante las pruebas domésticas posteriores.

La caché KV crece con cada token de contexto activo

La decodificación autorregresiva almacena las claves y los valores de los tokens anteriores para no tener que recalcularlos. La memoria de la caché escala con la longitud de la secuencia activa, el número de capas, las dimensiones, la precisión y las secuencias simultáneas; por lo tanto, los contextos más largos reducen el número de solicitudes que caben a la vez.

El artículo de vLLM sobre PagedAttention presenta PagedAttention para reducir la fragmentación de la caché KV y permitir un uso compartido flexible. Una mejor asignación aumenta la capacidad utilizable, pero no elimina los bytes necesarios para el contexto retenido. El resultado intermedio debe seguir siendo inspeccionable antes de automatizar el proceso.

Cuando se agota la capacidad, los sistemas pueden poner en cola las nuevas solicitudes, expulsar o recalcular la caché, intercambiar datos con la memoria del sistema o reducir el tamaño del lote. Estas políticas pueden convertir una prueba estable con un solo usuario en un buen rendimiento inestable con varios usuarios. Ese límite debe medirse por separado en condiciones operativas realistas.

Los pasos de decodificación leen más historial a medida que crece el contexto

Cada token generado consulta la caché acumulada, por lo que las lecturas de memoria y el trabajo de atención aumentan con la longitud de la secuencia. El modelo puede seguir limitado por el ancho de banda de memoria, y la compresión del contexto o la cuantización de la caché intercambian ahorro de memoria por precisión y compatibilidad con el kernel.

El trabajo sobre cuantización de la caché KV cuantiza la caché KV para permitir contextos mucho más largos e identifica explícitamente la capacidad de la caché como un cuello de botella para contextos largos. Esto demuestra que el contexto máximo anunciado y el rendimiento sostenido eficiente son propiedades diferentes. La consecuencia práctica aparece cuando varias fuentes compiten por un contexto limitado.

El límite de fallo consiste en comparar dos contextos mientras se cambian la composición del prompt, la longitud de salida, la concurrencia o la precisión de la caché. La calidad de recuperación puede mejorar al añadir evidencia incluso cuando el rendimiento del sistema disminuye, por lo que el rendimiento y la utilidad de la respuesta necesitan ejes separados.

Compara el rendimiento en distintos intervalos de longitud del prompt

Crea intervalos fijos de prompts, como 512, 2.048, 8.192 y 16.384 tokens, con longitudes de salida controladas. Ejecuta cada uno con un usuario y con una concurrencia creciente, registrando los tokens del prompt por segundo, los tokens de salida por segundo, el tiempo hasta el primer token, la latencia entre tokens, el uso de la caché, el tiempo en cola, las pausas y los fallos.

Compara la curva con la ralentización de conversaciones largas descrita en la ralentización de la ventana de contexto. Mantén constantes el modelo, la cuantización, el muestreo, el planificador y el hardware, y después repite las pruebas con caché de prefijos o cuantización de la caché únicamente como experimentos independientes. Esta dependencia debe seguir siendo explícita en la interfaz final.

Establece un presupuesto de contexto operativo a partir del buen rendimiento bajo el objetivo de latencia requerido, no a partir de la longitud máxima aceptada por el modelo. Recupera o resume información únicamente cuando la mejora de calidad resultante justifique el coste medido de prellenado y de la caché.

Centro de Tecnología e IA

Más para leer

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.