Servir Llama 3 con vLLM
Cómo instalar y configurar vLLM para servir Llama 3 (8B o 70B) con un throughput 5x mayor que Ollama gracias al continuous batching en GPU.
Ollama es excelente para empezar y para uso casual. Pero en producción con requests concurrentes, serializa las inferencias: una llamada lenta retiene a todas. vLLM resuelve esto con continuous batching: procesa múltiples requests en paralelo en el mismo forward pass de la GPU.
Cuándo cambiar Ollama por vLLM
| Escenario | Usa |
|---|---|
| 1-5 llamadas simultáneas | Ollama |
| Desarrollo / experimentación | Ollama |
| 10+ llamadas concurrentes | vLLM |
| Quieres API compatible con OpenAI con logprobs | vLLM |
| Optimizar el costo por token en producción | vLLM |
Requisitos previos
- GPU NVIDIA con 16+ GB de VRAM (A100, A6000, RTX 4090). Recomendamos GPU Estação
- CUDA 12.1+ instalado
- Python 3.9+
- Token de Hugging Face con acceso al modelo Llama 3
Instalación rápida vía 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
Esto levanta un servidor compatible con OpenAI en http://localhost:8000/v1.
Probar
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: límite de contexto. Cuanto mayor, más VRAM consume--gpu-memory-utilization 0.92: fracción de la VRAM utilizada (deja ~8% libre para overhead)--tensor-parallel-size 2: usar 2 GPUs en paralelo (necesita interconexión NVLink o PCIe rápido)--quantization awq: usar un modelo cuantizado AWQ (1/4 de VRAM, pérdida mínima)
Servir Llama 3 70B en una sola GPU
En A100 80GB, usa 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 con n8n
En el nodo HTTP Request:
- URL:
http://seu-servidor:8000/v1/chat/completions - Header:
Authorization: Bearer dummy(vLLM no exige token, pero n8n necesita el header) - Body: payload compatible con OpenAI
O usa el nodo nativo de OpenAI apuntando la URL base a http://seu-servidor:8000/v1.
Próximos pasos
- Instalar Ollama en un VPS
- n8n + EvolutionAPI + OpenAI: reemplaza el nodo OpenAI por tu vLLM
Última actualización: