Debido al auge que han tenido los LLMs (grandes modelos de lenguaje), que consumen grandes recursos (procesador, memoria, almacenamiento) durante su entrenamiento, es también importante estimar el consumo de recursos cuando desplegamos esos modelos en producción.
De hecho, la escalada de precios actual de la memoria RAM, HBM (Memoria de Alto Ancho de Banda) y el almacenamiento se debe a su alta demanda para construir data center para aprendizaje e inferencia.
Los recursos destinados a inferencia de un LLM en producción son:
- RAM de GPU (VRAM): Depende principalmente del número de parámetros y la precisión usada. Un modelo en FP16 requiere ~2 bytes/parámetro; en INT8, ~1 byte; en INT4, ~0,5 bytes. Además, la KV Cache crece con el número de usuarios concurrentes y la longitud de contexto. La KC Cache almacena temporalmente los vectores Clave (Key) y Valor (Value) generados durante la lectura de la secuencia, para no tener que recalcularlos.
- Almacenamiento: Los pesos del modelo (fríos) más espacio para logs, artefactos temporales y réplicas de alta disponibilidad.
- RAM del sistema (CPU): Generalmente 2-3× la VRAM, usada para prefetching de pesos, gestión de colas y preprocessing de batches.
La fórmula principal de la KV Cache por usuario es: KV Cache por usuario = 2 × capas × cabezas_KV × dim_cabeza × longitud_contexto × bytes_elemento,
donde las capas son el número de capas (layers) del Transformer en el modelo, cabezas_KV es el número de cabezas de atención (attention heads), dim_cabeza son las dimensiones de cada cabeza de atención, longitud de contexto es el número de tokens en el prompt más los tokens generados y bytes_elemento son los bytes necesarios para el almacenamiento (2 para FP16).
Por ejemplo, a continuación vemos los recursos para un modelo de 70 mil millones de parámetros (70 B) con 80 capas, 8 cabezas, una dimensión de 8192, 50 usuarios concurrentes, una longitud de contexto de 8192 tokens y una precisión de 2 bytes. Hay que tener en cuenta que la dimensión de 8192 se divide entre todas las cabezas de atención.

Vemos que para 50 usuarios concurrentes la KV cache supera al almacenamiento del modelo y que es el cuello de botella. Por eso se usan técnicas como GQA (Grouped-Query Attention) y MLA (Multi-head Latent Attention, usada en DeepSeek) que reducen drásticamente la KV cache.
A continuación vemos como escala la VRAM total con el número de usuarios concurrentes.

Hemos visto como calcular los recursos necesarios para desplegar un LLM en producción y como la KV cache domina al almacenamiento del modelo en la RAM cuando hay muchos usuarios concurrentes.

Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.