Guia de carga de trabalho de GPU
De quanto VRAM de GPU você realmente precisa?
Um orçamento prático de memória para inferência, ajuste fino, geração de imagens e cargas de trabalho de vídeo—de 24 GB a 192 GB.
Por AnchorGPU · Atualizado · 6 min de leituraVRAM é um orçamento, não um rótulo de modelo
A memória da GPU é consumida por várias categorias independentes: pesos do modelo, cache KV de inferência, ativações temporárias, espaços de trabalho do framework, cache do alocador e — durante o treinamento — gradientes e estado do otimizador. Um modelo que cabe em uma configuração não prova que caberá com um contexto mais longo, lote maior, precisão diferente ou mais solicitações simultâneas.
Planeje a partir da revisão exata do modelo e da configuração de execução. Rótulos como 7B, 13B ou 70B descrevem a escala de parâmetros, não a memória operacional total, portanto nunca devem ser mapeados universalmente para uma GPU.
Estime primeiro os pesos brutos
Como um exemplo explicitamente hipotético, suponha que um modelo tenha exatamente 13 bilhões de parâmetros e armazene cada parâmetro em um formato de 16 bits. O armazenamento bruto de pesos é 13,000,000,000 × 2 bytes = 26,000,000,000 bytes, ou cerca de 24.2 GiB. Esse número exclui todas as outras alocações, portanto é um limite inferior e não uma recomendação de GPU.
A quantização pode reduzir o armazenamento de pesos, mas os footprints reais também incluem escalas, metadados, buffers de desquantização, tensores duplicados e espaços de trabalho de runtime. Use o formato produzido pelo carregador real em vez de dividir a contagem de parâmetros por uma largura de bits nominal e tratar o resultado como final.
A inferência adiciona cache KV e memória de trabalho
A inferência autorregressiva retém tensores de chave e valor para sequências ativas. A demanda de cache KV depende da arquitetura do modelo, da precisão do cache, das sequências concorrentes e do número de tokens ativos nessas sequências. Aumentar o contexto máximo ou a concorrência pode esgotar a memória mesmo quando os pesos carregam com sucesso.
Ativações temporárias, espaços de trabalho de atenção, kernels compilados, buffers de comunicação e o alocador do framework consomem memória adicional. O vLLM informa a capacidade disponível de cache KV da GPU e uma concorrência estimada para o comprimento de sequência configurado; trate esses números de inicialização como evidência de planejamento e, em seguida, reproduza prompts representativos antes de comprometer uma carga de trabalho de produção.
O treinamento tem um formato de memória diferente
O ajuste fino adiciona gradientes, estado do otimizador, ativações salvas e, às vezes, cópias adicionais em precisão total. O tamanho exato depende do otimizador, da política de precisão, do conjunto de parâmetros treináveis e da estratégia de fragmentação, portanto um único multiplicador de inferência é enganoso.
O DistributedDataParallel replica o estado de treinamento necessário para cada worker; ele não transforma várias GPUs em um único pool de memória contíguo. O Fully Sharded Data Parallel pode fragmentar parâmetros, gradientes e estados do otimizador entre os workers, enquanto o checkpointing de ativação reduz a memória de ativações salvas ao recomputar trabalho selecionado durante o backward. Ambas as técnicas trocam simplicidade ou computação por memória.
Meça a configuração que você vai executar
Teste o carregamento do modelo e um pedido de inferência representativo completo ou passo de treino, incluindo a atualização do otimizador, com a framework, precisão, contexto, lote e definições de paralelismo exatos. Registe o pico de memória alocada e reservada e repita com concorrência realista ou acumulação de gradientes. Deixe margem operacional em vez de visar o último byte disponível.
Escolha uma GPU com mais memória quando o pico medido não puder ser reduzido com segurança. Adicione GPUs somente quando o software fragmentar explicitamente o modelo ou a carga de trabalho e a interconexão entregue for conhecida. Repita a medição após qualquer mudança de modelo, runtime, quantização, contexto ou lote.
Fontes e método editorial
A documentação oficial sustenta as explicações técnicas. As recomendações de hardware são nossa interpretação dependente da carga de trabalho, não uma garantia de desempenho medida.
vLLM — paralelismo e escalonamento ↗PyTorch — FullyShardedDataParallel ↗PyTorch — checkpointing de ativação ↗