Procesamiento continuo y estático por lotes: cómo funciona la planificación de LLM
Traducción automática
Este artículo se tradujo automáticamente a partir de la versión original en inglés.
El procesamiento estático por lotes agrupa solicitudes para una ejecución de inferencia. El procesamiento continuo por lotes actualiza el conjunto de solicitudes activas entre iteraciones de generación: salen las solicitudes completadas y entran las que esperan y cumplen los requisitos. Así, el servidor puede reutilizar capacidad sin esperar a que terminen todas las solicitudes originales.
Para los ingenieros de serving, el beneficio depende de la variabilidad de las longitudes de respuesta, la política de planificación, la capacidad de memoria y los requisitos de latencia.
Compara longitudes de salida desiguales
Supongamos que tres solicitudes necesitan 10, 40 y 100 tokens de salida. En un bucle sencillo de generación con un lote fijo que no sustituye las solicitudes completadas, la capacidad ocupada por las dos primeras queda disponible antes de que termine la tercera. Aun así, el servidor espera a la respuesta más larga del lote antes de iniciar otro lote completo.
Un planificador por iteración puede retirar cada solicitud completada y admitir otra. Orca presentó un diseño de serving de LLM con este enfoque de planificación. La admisión sigue necesitando bloques libres de KV cache y un presupuesto de iteración compatible. El procesamiento continuo por lotes no significa que todas las solicitudes en cola empiecen de inmediato.
Los nuevos prompts también necesitan prefill. El prefill dividido en fragmentos puede compartir el presupuesto de cada iteración con las decodificaciones en curso. Por tanto, las reglas de admisión y prioridad del planificador afectan tanto al tiempo hasta el primer token como a los intervalos entre los tokens posteriores.
Compara el planificador y el runtime completo
El experimento de Anyscale de 2023 informó de aproximadamente 4x para FasterTransformer, 8x para sus configuraciones de procesamiento continuo por lotes y 23x para vLLM frente a su implementación de referencia sencilla. Utilizó OPT-13B, una A100-40GB, 1,000 solicitudes, entradas de 512 tokens y una distribución exponencial de la longitud de salida con una media de 128 tokens. Son resultados de implementaciones completas en esa configuración, y no del efecto aislado de un único cambio de planificación.
Para tu comparación, registra:
| Comprobación | Por qué importa |
|---|---|
| Distribuciones de llegada de solicitudes y longitud de salida | Determinan la capacidad sin utilizar y la presión sobre la cola |
| Máximo de secuencias activas y presupuesto de tokens | Limitan el trabajo de cada iteración |
| Asignación de KV y preempción | Pueden impedir nuevas admisiones |
| TTFT y latencia de generación por solicitud | Muestran el coste para cada solicitud |
| Tasa de éxito y goodput | Indican si el trabajo adicional cumple el objetivo del servicio |
Examina por separado las solicitudes cortas y largas. Un mayor rendimiento total puede coexistir con una peor latencia para un grupo de solicitudes. Elige los ajustes de planificación según los requisitos de servicio medidos.
Guía de ingeniería: procesamiento continuo por lotes explica conjuntamente los mecanismos de asignación y planificación.