HeadlinesBriefing favicon HeadlinesBriefing.com

Por qué los servidores de inferencia de LLM se quedan sin VRAM

Towards Data Science •
×

Los pesos de un modelo de tamaño mediano caben cómodamente, pero el tráfico concurrente desencadenó errores de CUDA out-of-memory mientras la utilización de la GPU se mantuvo baja. El caché de clave-valor, no el tamaño del modelo, consumió el espacio libre. Antes de agregar una GPU, el autor habilitó la asignación paginada y el caché de prefijos, elevando el techo y exponiendo un problema de diseño de memoria.

Las pilas de servicio ingenuas reservan un bloque contiguo por solicitud para la longitud máxima de secuencia. Una solicitud que produce 200 tokens frente a una reserva de 4,096 tokens deja la mayor parte sin usar. Un análisis de v LLM encontró que la gestión ingenua del caché KV desperdicia del 60 al 80 por ciento de la memoria reservada. El caché crece con las solicitudes concurrentes, por lo que los picos de tráfico —no los prompts más largos— empujan a los servidores más allá del límite de memoria.

La memoria de la GPU se comparte entre los pesos fijos del modelo, las activaciones transitorias y el caché KV variable. Cada token cuesta aproximadamente 320 KB para Llama 3.1 70B en BF16, con 80 capas, 8 cabezas de clave/valor y una dimensión de cabeza de 128. La atención por consulta agrupada reduce el número de cabezas de clave/valor y el tamaño del caché.

Con 128 solicitudes concurrentes que mantienen contextos de 4K tokens, el caché solo necesita alrededor de 160 GB. Los pesos de 70B necesitan 140 GB en BF16, por lo que el caché puede superar al modelo. v LLM reserva el caché como el número máximo de secuencias concurrentes veces la longitud máxima de secuencia; aumentar cualquiera de ellos multiplica la reserva y puede provocar un OOM al iniciar.

Entidades clave: Empresas: NVIDIA, Towards Data Science