vLLM: o que é, para quem é e quando usá-lo ?
vLLM é um motor de inferência open source, criado em 2023 em Berkeley, que disponibiliza um LLM para vários usuários ao mesmo tempo em GPU, por meio de uma API compatível com a API da OpenAI. Graças ao PagedAttention e ao batching contínuo, ele oferece uma taxa de processamento total várias vezes superior à de um servidor tradicional quando as requisições chegam simultaneamente. Ele não acelera uma única conversa: para uso individual no seu computador, Ollama ou LM Studio continuam sendo as opções adequadas.
vLLM é um motor de inferência open source projetado para servir um LLM a vários usuários ao mesmo tempo, em GPU, por meio de uma API compatível com a OpenAI. Em 20 de setembro de 2026, é a referência para disponibilizar um modelo com pesos abertos para uma equipe ou aplicação. Não é um concorrente do Ollama no seu computador: as duas ferramentas não respondem à mesma pergunta. Esta página explica o que o vLLM faz, o que ele exige e como saber se você precisa dele.
#vLLM em três frases
vLLM é uma biblioteca Python e um servidor de inferência criados em 2023 no Sky Computing Lab da Universidade de Berkeley e publicados sob a licença Apache 2.0, uma licença permissiva que autoriza a reutilização comercial sem restrições. Ele carrega um modelo no formato Hugging Face, geralmente em safetensors, em uma ou mais GPUs e o expõe por uma API HTTP compatível com a API da OpenAI, o que permite conectar qualquer cliente já escrito para a API da OpenAI sem alterar uma linha do código da aplicação, apenas a URL base. Sua razão de ser se resume a uma palavra: vazão, isto é, o número total de tokens produzidos por segundo pela GPU quando dez, cinquenta ou duzentas requisições diferentes chegam ao mesmo tempo e todas precisam receber uma resposta rápida.
#O problema que o vLLM resolve
Seu ChatGPT privado e gratuito na sua máquina em 1 hora — LM Studio, Ollama, Open WebUI, seus documentos, sem nuvem.
- Espaço online vitalício
- PDF + arquivos
- Atualizações vitalícias
Quando um LLM gera texto, ele mantém em memória um registro de tudo o que já leu e escreveu: o cache KV. Esse cache cresce a cada token, e seu tamanho final é imprevisível, pois não se sabe de antemão se a resposta terá vinte palavras ou duas mil. Os servidores de inferência de primeira geração, portanto, reservavam, para cada requisição, um bloco contíguo de memória dimensionado para o pior caso.
O resultado numérico está descrito explicitamente no artigo fundador do vLLM (Kwon et al., SOSP 2023) e é retomado pela própria equipe do projeto: nos sistemas existentes, de 60 a 80% da memória reservada para o cache KV era simplesmente desperdiçada, devido à reserva excessiva por precaução e à fragmentação que deixa espaços inutilizáveis entre os blocos alocados. Menos memória efetivamente útil disponível significa, por consequência direta, menos requisições atendidas em paralelo na mesma placa e, portanto, uma GPU de vários milhares de euros que, no fim, opera a uma fração ínfima de sua capacidade teórica, mesmo que a conta de eletricidade e a amortização do equipamento permaneçam iguais.
#PagedAttention e batching contínuo
vLLM se baseia em duas ideias. A primeira, PagedAttention, vem dos sistemas operacionais: em vez de um grande bloco contíguo por requisição, o cache KV é dividido em pequenas páginas de tamanho fixo, alocadas sob demanda e armazenadas em qualquer lugar da memória. Uma tabela faz a correspondência entre a ordem lógica dos tokens e a localização física das páginas, exatamente como a memória virtual de um computador. O desperdício cai para menos de 4%, segundo os autores.
A segunda ideia é o batching contínuo, complementar à primeira. Um servidor clássico agrupa as requisições em lotes e espera que todas as requisições de um mesmo lote sejam concluídas antes de iniciar outro: a requisição curta, que poderia ter sido liberada imediatamente, espera desnecessariamente atrás da longa, que ainda monopoliza a GPU. Já o vLLM recompõe inteiramente o lote a cada token gerado, em cada etapa de decodificação. Assim que uma resposta termina, seu lugar no lote é imediatamente atribuído a uma requisição que aguarda na fila, e a GPU nunca fica trabalhando em vão com preenchimento inútil. É a combinação dessa reutilização contínua dos lugares no lote com a memória paginada que produz a maior parte do ganho de vazão observado em comparação com os motores de inferência projetados para um único usuário por vez.
- Prefixos compartilhados
- Quando várias requisições começam exatamente com o mesmo texto (um prompt de sistema, um documento comum), as páginas correspondentes são calculadas uma única vez e compartilhadas entre essas requisições. Isso é o prefix caching.
- Paralelismo tensorial
- Um modelo muito voluminoso para caber em uma única placa é distribuído automaticamente em vários GPUs de uma mesma máquina com apenas uma opção de inicialização, --tensor-parallel-size.
- Quantização no lado do servidor
- vLLM lê os formatos AWQ, GPTQ e FP8, projetados para cálculo GPU em lote. O GGUF é suportado apenas experimentalmente.
- API compatível com OpenAI
- As rotas /v1/chat/completions e /v1/completions respondem exatamente como as de OpenAI: uma aplicação já existente muda apenas a URL de base, sem precisar reescrever uma única linha de código de negócio.
#O que vLLM carrega em memória
Essa é a surpresa mais comum para quem vem do Ollama e espera manter os mesmos hábitos. O Ollama baixa por padrão um GGUF quantizado em 4 bits, pensado para caber em uma placa voltada ao consumidor comum. O vLLM, por sua vez, carrega por padrão os pesos exatamente como são publicados no Hugging Face, geralmente em BF16 (precisão de 16 bits), ou seja, cerca de 2 GB por bilhão de parâmetros do modelo. O mesmo modelo ocupa, portanto, aproximadamente três vezes mais memória no vLLM do que no Ollama, antes mesmo de contar o cache KV, que cresce com cada conversa em andamento. Isso explica por que uma placa suficiente para o Ollama pode ter memória muito abaixo da necessária para o vLLM se o formato dos pesos não for alterado.
| Modelo | BF16 (padrão vLLM) | GGUF Q4_K_M (padrão Ollama) | Placa mínima para BF16 |
|---|---|---|---|
| Qwen 3 8B | 16 GB | 5 GB | RTX 4090 ou 5090 (24-32 GB) |
| Gemma 4 12B | 24 GB | 7 GB | RTX 5090 (32 GB) |
| Qwen 3 14B | 28 GB | 9 GB | RTX 5090 (32 GB), contexto curto |
| Mistral Small 3.2 24B | 48 GB | 14 GB | 2 × RTX 5090 (64 GB) |
| Qwen 3.8 27B | 54 GB | 16 GB | Placa de 80 GB, ou 2 × RTX 5090 com contexto curto |
| Llama 3.3 70B | 140 GB | 40 GB | 2 × placas de 80 GB |
A solução mais comum consiste em servir uma versão já quantizada para GPU em vez dos pesos originais completos: um modelo AWQ ou GPTQ em 4 bits ocupa aproximadamente a mesma quantidade de memória que um GGUF Q4 equivalente, e o formato FP8 reduz aproximadamente à metade o tamanho do BF16 nas placas recentes que o suportam nativamente. A grande maioria dos modelos realmente populares já está publicada em um desses formatos no Hugging Face, muitas vezes no mesmo dia de seu lançamento oficial.
#Hardware e sistemas suportados
| Plataforma | Status | Na prática |
|---|---|---|
| Linux + GPU NVIDIA (CUDA) | Alvo principal | O caminho mais testado. Capacidade de computação mínima de 7,0, ou seja, a partir das gerações Volta e Turing (RTX 20). |
| Linux + GPU AMD (ROCm) | Suportado | Placas Instinct e Radeon recentes. Imagem Docker dedicada recomendada. |
| Windows | Sem versão nativa | Usar WSL2 com um GPU NVIDIA. |
| Mac Apple Silicon | GPUs com suporte desde 22/09/2026 (plugin separado) | O plugin oficial vllm-metal, anunciado em 22 de setembro de 2026, traz o escalonador, a paginação do cache KV e o servidor do vLLM compatível com OpenAI para o Apple Silicon, com MLX e Metal para a execução. A instalação é separada da do pacote principal e ainda é recente: verifique a compatibilidade do seu chip antes de migrar uma carga de produção. |
| Apenas CPU (x86, ARM) | Suportado | Útil para testar uma integração, não para servir o modelo. |
#Colocá-lo em execução em cinco minutos
Em uma máquina Linux com uma GPU NVIDIA e drivers atualizados, a instalação completa cabe em poucas linhas em um ambiente Python limpo, sem precisar escrever previamente uma configuração complexa. O comando vllm serve baixa o modelo indicado do Hugging Face na primeira execução, carrega-o na memória e abre imediatamente a API na porta 8000 por padrão, pronta para receber requisições no formato padrão da OpenAI.
Vale a pena definir explicitamente a opção --max-model-len já na primeira execução: sem ela, o vLLM dimensiona o cache KV para a janela de contexto máxima anunciada pelo modelo, às vezes 128.000 tokens ou mais nos modelos recentes, e simplesmente se recusa a iniciar se a memória disponível na placa não comportar esse dimensionamento padrão, um erro frequente na primeira tentativa. A entrada em produção propriamente dita, com contêiner Docker, autenticação das chamadas, monitoramento contínuo e aumento gradual da carga, é abordada em um guia separado e mais detalhado.
- Implantar vLLM em produção: Docker, segurança, monitoramento
- Documentação oficial do vLLM
- O artigo PagedAttention (Kwon et al., 2023)
- Fonte: anúncio oficial do vllm-metal (22/09/2026)
- Fonte: repositório oficial do projeto vLLM no GitHub
#Para quem é indicado e para quem não é
| Sua situação | vLLM? | Por quê |
|---|---|---|
| Você conversa sozinho com um modelo no seu PC | Não | Nenhum ganho de velocidade para uma única requisição, e três vezes mais VRAM em BF16. |
| Você tem um Mac | Talvez, de uns tempos para cá | O plugin vllm-metal (22/09/2026) oferece suporte à GPU via MLX/Metal, mas ainda é muito recente. Em 28/09/2026, MLX e llama.cpp continuam sendo as opções já comprovadas. |
| Você tem 8 a 12 GB de VRAM | Raramente | Um GGUF Q4 com transferência parcial do processamento para a CPU é mais útil. |
| Uma equipe de 5 a 50 pessoas compartilha um modelo | Sim | O batching contínuo atende a todos em uma única GPU. |
| Uma aplicação faz chamadas ao modelo em rajadas | Sim | Fila de espera, alto throughput, API padrão. |
| Você processa 10.000 documentos em lote | Sim | É o caso de uso em que a diferença na taxa de processamento é mais evidente. |
- llama.cpp vs vLLM vs ExLlama : três motores, três usos
- llama.cpp: o que é e vale a pena abandonar o Ollama?
- Calcular a VRAM necessária para o seu modelo
#FAQ
O vLLM é mais rápido que o Ollama?+
vLLM é gratuito?+
O vLLM funciona no Windows ou no Mac?+
É possível usar um arquivo GGUF com vLLM?+
Quantos usuários uma GPU pode atender com o vLLM?+
Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.