S4 KV
Compresión de KV-cache int4 para vLLM
Un backend de KV-cache para vLLM v1 que sirve más usuarios concurrentes y contextos más largos por GPU. Cuantiza la KV cache a int4 (KEY por canal, VALUE por token, estilo KIVI), bit-identical con la decodificación greedy fp16 — alrededor de 3× más densidad de KV. Se lanza como endpoint vLLM compatible con OpenAI y listo para usar mediante la plantilla CloudFormation incluida.
S4 KV almacena la KV cache de paged-attention de vLLM v1 en int4 en lugar de fp16 usando cuantización estilo KIVI, bit-identical con la decodificación greedy fp16 (verificado en Qwen2.5 1.5B/3B/7B y Llama-3.2-3B / 3.1-8B). Obtiene aproximadamente 3× más densidad de KV — más peticiones concurrentes y contexto más largo en la misma GPU — sin pérdida de calidad medida. Los modelos compatibles son head_dim 128 con atención estándar (familias Qwen2.5 y Llama-3); el backend falla rápido al arrancar en vez de servir una salida incorrecta para un modelo no compatible. Precio basado en densidad y calidad, no en latencia. Se ejecuta en instancias GPU g5, g6, g6e, p4d y p5.
El problema
Al servir LLM en una GPU, el límite de solicitudes concurrentes y de la longitud de contexto utilizable suele ser la memoria de la GPU consumida por la KV cache de atención. Debido a que esa caché se mantiene en fp16, crece rápidamente a medida que las solicitudes y el contexto se alargan, limitando el rendimiento a menos que añada GPU más grandes y costosas. Su capacidad por GPU termina estando limitada por la memoria en lugar de por el cómputo.
Cómo funciona
- 1
Almacenar la KV cache en int4
Un backend de KV cache para paged attention de vLLM v1 almacena la KV cache de atención en int4 en lugar de fp16. Utiliza cuantización al estilo KIVI — int4 asimétrico por canal para KEY e int4 por token para VALUE.
- 2
Permanecer idéntico a nivel de bits a fp16
Es idéntico a nivel de bits a la decodificación greedy en fp16, verificado en Qwen2.5 1.5B/3B/7B y Llama-3.2-3B / 3.1-8B. Esto produce aproximadamente 3x más densidad de KV cache — más solicitudes concurrentes y un contexto más largo en la misma GPU — sin pérdida de calidad medida.
- 3
Iniciar un endpoint llave en mano
La imagen se entrega como un endpoint vLLM compatible con OpenAI con int4_kivi habilitado, iniciado a través de la plantilla de CloudFormation incluida. Establezca ModelId en un modelo head_dim-128 (por ejemplo, Qwen/Qwen2.5-7B-Instruct); la API está en el puerto 8000 en /v1, con health en /health.
Características destacadas
Cuantización KIVI int4, bit-identical con la decodificación greedy fp16 (verificado en Qwen2.5 / Llama-3) — sin pérdida de calidad medida.
~3× más densidad de KV: más peticiones concurrentes y contexto más largo en la misma GPU.
Endpoint vLLM compatible con OpenAI y listo para usar (CloudFormation incluido); falla rápido al arrancar con un modelo no compatible.
Qué incluye
- AMI de GPU con Ubuntu 22.04 (x86_64) — arranca un servidor vLLM compatible con OpenAI con int4_kivi habilitado listo para usar
- Un backend de KV cache en int4 para paged attention de vLLM v1 (estilo KIVI: int4 asimétrico por canal para KEY, int4 por token para VALUE)
- Aproximadamente 3x de densidad de KV cache (más solicitudes concurrentes y contexto más largo por GPU, sin pérdida de calidad medida)
- Coincidencia idéntica a nivel de bits con la decodificación greedy en fp16 (verificado en Qwen2.5 1.5B/3B/7B y Llama-3.2-3B / 3.1-8B, greedy match 1.0000)
- API compatible con OpenAI (puerto 8000 en /v1, health en /health) — iniciada con un ModelId de head_dim-128
- Plantilla de CloudFormation (deploy/cfn-gpu-serving.yaml) — crea el grupo de seguridad y el rol de IAM, y arranca el servidor OpenAI de vLLM
- Validación del modelo al inicio — admite head_dim 128 con atención estándar (familias Qwen2.5 y Llama-3); los modelos no compatibles fallan rápidamente (fail-fast) al inicio en lugar de servir un resultado incorrecto
Casos de uso
Servicio limitado por KV cache donde se desea manejar más usuarios concurrentes en una única GPU
Cargas de trabajo que necesitan un contexto más largo por solicitud sin añadir GPU
Servicio de las familias Qwen2.5 o Llama-3 (head_dim 128) detrás de una API compatible con OpenAI
Inferencia en GPU de centro de datos donde se desea una mayor capacidad (densidad) por GPU sin sacrificar la calidad
Preguntas frecuentes
¿El uso de int4 perjudica la calidad de salida?
No hay pérdida de calidad medida. Se ha verificado que el backend es idéntico a nivel de bits a la decodificación greedy en fp16, con un greedy match de 1.0000 en Qwen2.5 1.5B/3B/7B y Llama-3.2-3B / 3.1-8B. Obtiene aproximadamente 3x más densidad de KV cache sin sacrificar la calidad.
¿Qué modelos son compatibles?
Modelos con head_dim 128 y atención estándar — las familias Qwen2.5 y Llama-3. Para un modelo no compatible, el backend falla rápidamente (fail-fast) en el inicio en lugar de servir un resultado incorrecto, por lo que un modelo incompatible nunca producirá resultados erróneos de forma silenciosa.
¿Afecta a la latencia de inferencia?
Su precio se basa en la densidad y la calidad, no en la latencia. Con contextos largos en GPU de centros de datos, el backend intercambia algo de latencia de decodificación por densidad. Es ideal para cargas de trabajo cuyo objetivo es lograr más solicitudes concurrentes y un contexto más largo por GPU, y somos transparentes sobre ese compromiso.
¿En qué instancias de GPU funciona?
Funciona en instancias de GPU g5, g6, g6e, p4d y p5. Elija la instancia que mejor se adapte al rendimiento y tamaño de modelo que necesite.
¿Cómo lo despliego?
Inícielo con la plantilla de CloudFormation incluida (deploy/cfn-gpu-serving.yaml): esta crea el grupo de seguridad y el rol de IAM, y arranca el servidor OpenAI de vLLM con int4_kivi habilitado. Establezca ModelId en un modelo head_dim-128 (por ejemplo, Qwen/Qwen2.5-7B-Instruct); la API compatible con OpenAI está en el puerto 8000 en /v1, con la verificación de estado en /health.
Modelo de precios
Tarifa horaria de software + GPU EC2 (g5 / g6 / g6e / p4d / p5). Medido por tipo de instancia.
Otros productos S4
S4 — Squished S3
Gateway transparente de compresión S3 con GPU
S4 Logs
Archiva CloudWatch Logs en S3 con zstd
S4 Metrics
Gobierna la cardinalidad de métricas de CloudWatch