Chunked Prefill
Descubre cómo el prellenado por fragmentos mejora la latencia y el rendimiento de la inferencia de los LLM al dividir los prompts largos en fragmentos de tokens para ofrecer un servicio más fluido con cargas de trabajo simultáneas.
La precarga fragmentada es una técnica de planificación de inferencia que divide un prompt de entrada largo en grupos más pequeños de tokens, en lugar de procesar todo el prompt en una única operación ininterrumpida. Un motor de inferencia puede intercalar estos fragmentos con la generación de tokens de otras solicitudes, evitando que un prompt largo monopolice la GPU. El resultado suele ser una latencia más uniforme con cargas de trabajo simultáneas, un mejor aprovechamiento del hardware y un servicio más predecible para aplicaciones interactivas de modelos de lenguaje grandes.
Cómo funciona la precarga fragmentada#
La inferencia autorregresiva de Transformer tiene dos fases principales:
- Precarga: El modelo procesa todos los tokens de entrada, calcula sus estados de atención y rellena la caché KV. La precarga evalúa muchos tokens en paralelo y normalmente está limitada por la capacidad de cómputo.
- Decodificación: El modelo genera la salida token a token mientras lee los estados almacenados previamente en la caché. La decodificación suele estar limitada por el ancho de banda de memoria más que por la capacidad de cálculo bruta.
Sin fragmentación, una solicitud de 20.000 tokens puede ocupar un paso de inferencia durante mucho más tiempo que una solicitud corta. Las generaciones activas pueden experimentar pausas, lo que aumenta la latencia entre tokens aunque sus propios prompts sean pequeños.
Con la precarga fragmentada, el planificador asigna a cada iteración un presupuesto de tokens. Primero planifica las operaciones de decodificación activas y después utiliza el presupuesto restante para uno o varios fragmentos del prompt. Si un prompt no cabe, los tokens restantes esperan a una iteración posterior. La guía actual de optimización de vLLM describe este enfoque como una forma de combinar el trabajo de precarga, intensivo en cómputo, con la decodificación, intensiva en memoria.
La fragmentación cambia cuándo se procesan los tokens del prompt, no su orden ni su significado. Cada fragmento completado amplía el estado de atención almacenado en caché de la solicitud hasta que todo el prompt está listo y puede comenzar la decodificación.
Por qué es importante la precarga fragmentada#
La precarga fragmentada aborda objetivos de rendimiento contrapuestos en la ejecución de modelos en producción:
- Latencia entre tokens: Dar prioridad a las solicitudes de decodificación existentes ayuda a que las respuestas transmitidas continúen sin pausas prolongadas.
- Tiempo hasta el primer token: Los fragmentos grandes terminan antes el procesamiento de un prompt nuevo, mientras que los fragmentos muy pequeños pueden retrasar su primer token generado.
- Rendimiento: Combinar el trabajo de precarga y decodificación puede utilizar de forma más eficaz la capacidad de cómputo de la GPU y el ancho de banda de memoria.
- Equidad: Es menos probable que los prompts largos bloqueen muchas solicitudes interactivas cortas.
Por tanto, la configuración del fragmento o del presupuesto de tokens implica un compromiso. La configuración del planificador de vLLM ofrece controles para los límites de tokens agrupados, las precargas parciales y los umbrales para prompts largos. Los presupuestos más pequeños suelen favorecer una decodificación más ágil, mientras que los más grandes favorecen una ingestión más rápida del prompt.
La fragmentación no elimina todos los cuellos de botella. Los contextos largos siguen consumiendo memoria de caché, y una admisión demasiado agresiva puede provocar presión sobre la caché, desalojo de solicitudes o trabajo repetido. Los operadores deben medir la latencia de inferencia mediana y de cola, el tiempo hasta el primer token, la latencia entre tokens, el rendimiento y el uso de memoria de la GPU con distribuciones de prompts realistas.
Conceptos relacionados de inferencia#
La precarga fragmentada está estrechamente relacionada con varias optimizaciones, pero tiene un propósito distinto:
- Agrupación continua: Añade y elimina solicitudes dinámicamente durante la generación. La precarga fragmentada la complementa al permitir planificar el procesamiento de prompts largos en límites a nivel de token.
- Almacenamiento en caché de prompts: Reutiliza estados calculados previamente para un prefijo de prompt repetido. La precarga fragmentada planifica nuevos cálculos; no los omite.
- Gestión paginada de la caché KV: Organiza los estados de atención almacenados en caché en bloques de memoria. La descripción general de TensorRT-LLM de NVIDIA incluye el almacenamiento en caché paginado y la agrupación durante la ejecución junto con optimizaciones del procesamiento de prompts.
- Agrupación dinámica: Combina solicitudes independientes en lotes, como se explica en la guía de agrupación dinámica de NVIDIA Triton. No divide necesariamente un prompt largo individual en precargas parciales.
- Precarga y decodificación desagregadas: Ejecuta las fases en workers independientes. La guía de NVIDIA para el despliegue de precarga y decodificación muestra cómo escalar las fases de forma independiente.
Aunque el flujo de trabajo de despliegue de Ultralytics YOLO26 en Triton admite la inferencia escalable de visión por computador y la agrupación automática, la detección de objetos estándar de YOLO no tiene una fase autorregresiva de precarga de texto. La precarga fragmentada se aplica principalmente a modelos generativos de lenguaje y multimodales.
Aplicaciones en el mundo real#
-
Asistentes de documentos: Un asistente con recuperación aumentada puede recibir un informe largo mientras atiende simultáneamente a usuarios con preguntas breves. Fragmentar la precarga del informe permite que los chats en curso continúen con la decodificación en lugar de quedar bloqueados hasta que se procese todo el contexto.
-
Análisis de vídeo multimodal: Un modelo de visión y lenguaje puede recibir características de imágenes, descripciones de objetos y una instrucción de texto larga. Una canalización de visión puede producir primero detecciones mediante la predicción de Ultralytics YOLO y después enviar contexto visual estructurado al modelo generativo. La precarga fragmentada ayuda a planificar los tokens visuales y textuales resultantes junto con otras solicitudes. El flujo de trabajo multimodal de codificación, precarga y decodificación de NVIDIA ilustra por qué gestionar estas fases de forma independiente puede mejorar la escalabilidad.
Recomendaciones prácticas para el despliegue#
Activa la precarga fragmentada únicamente mediante un motor de ejecución que admita oficialmente la arquitectura de destino. Por ejemplo, la configuración del backend de TensorRT-LLM documenta los controles de contexto fragmentado para los despliegues compatibles.
Realiza pruebas de rendimiento con concurrencia, longitudes de entrada y longitudes de salida realistas, en lugar de basarte en una sola solicitud. Empieza con el presupuesto de tokens recomendado por el entorno de ejecución y ajústalo mientras observas el tiempo hasta el primer token y la latencia entre tokens. Por último, prueba cargas de trabajo mixtas que contengan prompts muy largos y muy cortos; aquí es donde la precarga fragmentada ofrece su valor operativo más evidente.









