Migração 100% grátis + 1 mês grátis com cupom MIGRAR1MES · novos clientes em planos até R$ 200/mês Migrar agora

Servir Llama 3 com vLLM

Como instalar e configurar o vLLM para servir Llama 3 (8B ou 70B) com throughput 5x maior que Ollama via continuous batching.

O Ollama é ótimo para começar e para uso casual. Mas em produção com requests concorrentes, ele serializa as inferências — uma chamada lenta segura todas. O vLLM resolve isso com continuous batching: ele processa múltiplas requests em paralelo na mesma forward pass da GPU.

Quando trocar Ollama por vLLM

CenárioUse
1-5 chamadas simultâneasOllama
Dev / experimentaçãoOllama
10+ chamadas concorrentesvLLM
Quer API compatível OpenAI com logprobsvLLM
Otimizar custo por token em produçãovLLM

Pré-requisitos

  • GPU NVIDIA com 16+ GB VRAM (A100, A6000, RTX 4090) — recomendamos GPU Estação
  • CUDA 12.1+ instalado
  • Python 3.9+
  • Token Hugging Face com acesso ao modelo Llama 3

Instalação rápida via Docker

docker run --runtime nvidia --gpus all \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  --env "HUGGING_FACE_HUB_TOKEN=hf_seu_token" \
  -p 8000:8000 \
  --ipc=host \
  vllm/vllm-openai:latest \
  --model meta-llama/Meta-Llama-3-8B-Instruct \
  --max-model-len 8192 \
  --gpu-memory-utilization 0.92

Isso sobe um servidor compatível OpenAI em http://localhost:8000/v1.

Testar

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "meta-llama/Meta-Llama-3-8B-Instruct",
    "messages": [{"role": "user", "content": "Em uma frase: por que o céu é azul?"}],
    "max_tokens": 100
  }'

Parâmetros importantes

  • --max-model-len 8192 — limite de contexto. Quanto maior, mais VRAM consumido
  • --gpu-memory-utilization 0.92 — fração da VRAM usada (deixe ~8% livre para overhead)
  • --tensor-parallel-size 2 — usar 2 GPUs em paralelo (precisa interconnect NVLink ou PCIe rápido)
  • --quantization awq — usar modelo quantizado AWQ (1/4 VRAM, perda mínima)

Servir Llama 3 70B em GPU única

Em A100 80GB, use AWQ:

docker run --runtime nvidia --gpus all \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  --env "HUGGING_FACE_HUB_TOKEN=hf_seu_token" \
  -p 8000:8000 \
  --ipc=host \
  vllm/vllm-openai:latest \
  --model casperhansen/llama-3-70b-instruct-awq \
  --max-model-len 8192 \
  --quantization awq \
  --gpu-memory-utilization 0.95

Integrar com n8n

No HTTP Request node:

  • URL: http://seu-servidor:8000/v1/chat/completions
  • Header: Authorization: Bearer dummy (vLLM não exige token, mas o n8n precisa do header)
  • Body: payload OpenAI-compatible

Ou use o nó nativo do OpenAI apontando a URL base para http://seu-servidor:8000/v1.

Próximos passos

Última atualização: