Volver a artículos

Montando un servidor de inferencia con Ollama y vLLM en local

10 may 2026
OllamavLLMNVIDIAinferencia

Motivación

Ejecutar modelos de lenguaje grandes en local ofrece ventajas claras: privacidad total de los datos, sin límites de rate, sin costes por token y control completo sobre la infraestructura. Con hardware adecuado, montar un servidor de inferencia local es un proyecto de fin de semana.

Ollama: la vía rápida

Ollama es la forma más sencilla de empezar con inferencia local. Instalación en un solo comando:

curl -fsSL https://ollama.com/install.sh | sh

Descargar y ejecutar un modelo:

ollama pull qwen3:8b ollama run qwen3:8b

Ollama expone una API REST en localhost:11434 compatible con OpenAI:

curl http://localhost:11434/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model":"qwen3:8b","messages":[{"role":"user","content":"Hola"}]}'

Ventajas de Ollama

  • Gestión automática de modelos (descarga, caché, limpieza)

  • Soporte para GGUF multicapa (split entre GPU y RAM)

  • API REST compatible con OpenAI

  • Templates de chat preconfigurados por modelo

Limitaciones

  • No soporta inferencia por lotes (batching)

  • Latencia mayor que vLLM en cargas concurrentes

  • Menos control sobre parámetros de sampling avanzados

vLLM: alto rendimiento

vLLM es un motor de inferencia diseñado para máximo throughput. Soporta batching continuo, atención PagedAttention y cuantización FP8 nativa.

pip install vllm vllm serve Qwen/Qwen3.6-35B-A3B --dtype float16 --max-model-len 32768

Ventajas de vLLM

  • PagedAttention: gestión eficiente de KV cache

  • Batching continuo: agrupa peticiones automáticamente

  • Soporte nativo para FP8 sin pérdida significativa de calidad

  • API compatible con OpenAI

  • Prefix caching: reutiliza computación entre peticiones similares

Configuración de GPUs NVIDIA

Para inferencia con GPUs NVIDIA necesitas:

  • Drivers NVIDIA ≥ 535

  • CUDA toolkit ≥ 12.1

  • Variables de entorno: CUDA_VISIBLE_DEVICES=0,1

Verifica que las GPUs son detectadas:

nvidia-smi python3 -c "import torch; print(torch.cuda.device_count())"

Mi configuración

Normalmente mantengo dos servidores de inferencia simultáneos:

  • Ollama: 14 modelos para tareas generales, chat y embeddings

  • vLLM: Qwen3.6-35B-A3B en FP8 para tareas de alta demanda

Ambos sirven a través de una capa de proxy que enruta según el tipo de petición. La combinación permite flexibilidad para desarrollo y rendimiento para producción.