Por Qué es Clave Servir LLMs de Forma Eficiente

Modelos abiertos de frontera como las series Kimi K y GLM son poderosos, pero también muy exigentes. Son grandes, de contexto largo y usan arquitectura de mezcla de expertos. En GPUs, la memoria se llena rápido—muchas veces el caché KV, no los pesos, es el cuello de botella. Workers AI de Cloudflare lo resuelve con tres técnicas: cuantizar el caché KV, comprimir los pesos del modelo y proteger el caché compartido. ¡Vamos a ver cada una!

Si estás construyendo infraestructura de IA, entender estas optimizaciones es esencial. Para una visión más amplia sobre resiliencia de infraestructura, mira nuestro Informe de Disrupciones de Internet del Q1 2026.

GPU server rack with multiple accelerators for high-performance AI inference Algorithm Concept Visual

Técnica 1: Cuantización del Caché KV

El caché KV almacena las claves y valores de atención para cada token procesado, permitiendo conversaciones largas. Por defecto, es de 16 bits (BF16). Cloudflare lo almacena en 8 bits (FP8), reduciendo el uso de memoria a la mitad. Para Kimi K2.6, la capacidad de contexto salta de ~686K a ~1.37M tokens.

Compensaciones de Rendimiento:

  • En cualquier nivel de concurrencia, BF16 es unos pocos por ciento más rápido por token.
  • BF16 se queda sin memoria con 32 solicitudes concurrentes; FP8 continúa hasta 64, alcanzando 2,192 tokens/seg—41% más que el pico de BF16, con ~30% menos costo por token.

Impacto en la Precisión: En todos los benchmarks (GSM8K, ARC, MMLU), FP8 y BF16 son indistinguibles—las diferencias están dentro del ruido.

Ejemplo de Código (Conceptual):

# Ejemplo: Configurando cuantización de caché KV en SGLang para producción
import sglang as sgl

llm = sgl.Engine(
    model_path="/models/kimi-k2.6",
    kv_cache_dtype="fp8_e4m3",  # Usa FP8 para caché y ahorrar memoria
    mem_fraction_static=0.8,     # Asigna 80% de memoria GPU a caché/pesos
    enable_mixed_dtype=True,     # Permite dtypes diferentes para prefill/decode
)

# Prefill usa BF16 para fase de cómputo intensivo, decode usa FP8 para ahorro de memoria
llm.set_cache_dtype(phase="prefill", dtype="bf16")
llm.set_cache_dtype(phase="decode", dtype="fp8_e4m3")

Developer monitoring KV cache usage and model performance on a dashboard Technical Structure Concept

Técnica 2: Compresión de los Pesos del Modelo

Para GLM 5.2, los pesos se comprimen de FP8 a INT4, reduciendo el checkpoint de 705GB a 421GB (40% más pequeño). Esto reduce la memoria por GPU de ~88GB a ~52GB, liberando espacio para ~1.18M tokens de caché KV.

Ganancias de Velocidad:

  • Decode se vuelve más rápido porque está limitado por ancho de banda; INT4 reduce el movimiento de datos.
  • Con 1 solicitud concurrente, decode de GLM pasa de 60 a 92 tokens/seg (+55%).
  • Prefill está limitado por cómputo; INT4 requiere expansión, haciéndolo más lento (8,660 vs 10,160 tok/s). Cloudflare usa pools separados para aplicar INT4 en decode y FP8 en prefill.

Precisión: INT4 y FP8 son indistinguibles en todos los benchmarks, con diferencias menores a 0.8 puntos.

Network diagram showing distributed inference nodes and cache sharing Developer Related Image

Técnica 3: Protegiendo un Caché KV Compartido

Con más solicitudes compartiendo la misma GPU, la integridad del caché es crítica. Cloudflare implementa un sistema de etiquetas: cada página física del caché recibe una etiqueta que cambia cuando se reasigna, y las solicitudes verifican sus páginas esperadas antes de leer. Si hay discrepancia, la solicitud se aborta para evitar corrupción de datos.

Overhead:

  • Impacto en el throughput: menos del 1% en todos los niveles de concurrencia.
  • Impacto en la latencia p95: menos del 1%.
  • La verificación corre como un lote separado, evitando condiciones de carrera en la GPU.

Limitaciones y Advertencias

  • Compensaciones de la cuantización: Aunque la precisión se mantiene en los benchmarks probados, casos extremos pueden revelar diferencias sutiles. Siempre valida con tus propios datos.
  • Dependencia de hardware: El soporte para FP8 e INT4 varía por arquitectura; Blackwell introduce NVFP4, que puede mejorar aún más la eficiencia.
  • Complejidad: Estas técnicas requieren conocimiento profundo de frameworks como SGLang y pueden no ser necesarias para modelos más pequeños.

Próximos Pasos para Aprender

  • Sumérgete en el código fuente de SGLang para entender atención paginada y gestión de caché.
  • Experimenta con diferentes niveles de cuantización (FP8, INT4, NVFP4) y mide el impacto en tus cargas de trabajo.
  • Explora arquitecturas de prefill/decode separados para optimizar tu stack de inferencia.

Conclusión

Servir LLMs eficientemente es hacer compensaciones inteligentes entre memoria, velocidad y precisión. Al cuantizar el caché KV y los pesos, y garantizar la seguridad del caché, Cloudflare ofrece inferencia de alto rendimiento a menor costo. Esta mentalidad de ingeniería—medir, validar e iterar—es clave para construir infraestructura de IA escalable.

Para más sobre construcción de sistemas de IA con privacidad, mira nuestra guía sobre clasificación de datos nativa de IA.

Este contenido fue redactado con la asistencia de herramientas de IA, basándose en fuentes confiables, y fue revisado por nuestro equipo editorial antes de su publicación. No reemplaza el asesoramiento de un profesional especializado.