HeadlinesBriefing favicon HeadlinesBriefing.com

Por que os servidores de inferência de LLM ficam sem VRAM

Towards Data Science •
×

Os pesos de um modelo de tamanho médio cabem confortavelmente, mas o tráfego concorrente desencadeou erros de CUDA out-of-memory enquanto a utilização da GPU permaneceu baixa. O cache de chave-valor, e não o tamanho do modelo, consumiu o espaço disponível. Antes de adicionar uma GPU, o autor habilitou a alocação paginada e o cache de prefixos, aumentando o limite e expondo um problema de layout de memória.

As pilhas de serviço ingênuas reservam um bloco contíguo por solicitação para o comprimento máximo de sequência. Uma solicitação que produz 200 tokens em relação a uma reserva de 4.096 tokens deixa a maior parte inutilizada. Uma análise do v LLM descobriu que o gerenciamento ingênuo do cache KV desperdiça de 60 a 80 por cento da memória reservada. O cache cresce com solicitações simultâneas, portanto, picos de tráfego — e não prompts mais longos — empurram os servidores além do limite de memória.

A memória da GPU é compartilhada entre os pesos fixos do modelo, ativações transitórias e o cache KV variável. Cada token custa aproximadamente 320 KB para Llama 3.1 70B em BF16, com 80 camadas, 8 cabeças de chave/valor e uma dimensão de cabeça de 128. A atenção por consulta agrupada reduz o número de cabeças de chave/valor e o tamanho do cache.

Com 128 solicitações simultâneas mantendo contextos de 4K tokens, o cache sozinho precisa de cerca de 160 GB. Os pesos de 70B precisam de 140 GB em BF16, portanto, o cache pode superar o modelo. O v LLM reserva o cache como o número máximo de sequências simultâneas vezes o comprimento máximo de sequência; aumentar qualquer um deles multiplica a reserva e pode disparar um OOM na inicialização.

Entidades-chave: Empresas: NVIDIA, Towards Data Science