
En resumen. Ejecutar inferencia de LLM en un GPU VPS te da un endpoint de modelo privado, soberanía total de datos y un costo mensual fijo en lugar de facturación por token. Necesitas un GPU VPS con suficiente VRAM para tu modelo, Ubuntu 22.04 o posterior, CUDA y Ollama o vLLM como runtime. Del pedido a la primera llamada de inferencia: entre 15 y 30 minutos.
Operar tu propia inferencia te da el control que las APIs administradas no ofrecen: el modelo corre en tu hardware, y los prompts y respuestas nunca salen de tu servidor. La lógica de costos también es diferente. Pagas una tarifa mensual fija sin importar si procesas mil tokens o mil millones; no hay factura por token que crezca con el volumen. Una API administrada funciona bien para prototipos con poco tráfico, pero agrega latencia y te ata al uptime y las decisiones de precios del proveedor. Esta guía despliega un endpoint de LLM funcional en un GPU VPS desde cero.
Qué necesitas para ejecutar inferencia de LLM
Antes de aprovisionar el servidor, confirma que tienes lo siguiente:
- Un GPU VPS con suficiente VRAM para tu modelo objetivo. Busca un plan con al menos 48 GB de VRAM para ejecutar modelos 70B cuantizados en una sola tarjeta; para inferencia FP8 o FP16 con 70B, el requisito práctico es 80 GB o más. La tabla de sizing de VRAM en la siguiente sección mapea cada configuración.
- Ubuntu 22.04 LTS o 24.04 LTS. Todos los comandos de esta guía apuntan a Ubuntu. Los drivers de NVIDIA y CUDA vienen preinstalados en las imágenes de servidor de Contabo.
- Acceso root por SSH al servidor.
- Un runtime de inferencia de LLM: Ollama para una configuración rápida de usuario único, o vLLM para APIs de producción con alta concurrencia. La tabla comparativa más adelante en esta guía orienta la decisión.
- Almacenamiento para los pesos del modelo. Un modelo 7B en FP16 ocupa unos 14 GB en disco; un modelo 70B con cuantización Q4 llega a alrededor de 40 GB. Los planes de servidor de Contabo incluyen al menos 1 TB de almacenamiento, lo que cubre la mayoría de las configuraciones de modelos.
Para un servidor de inferencia de IA autoalojado sin dependencias externas, los cinco requisitos deben estar confirmados antes de comenzar.
Cómo dimensionar la VRAM para tu modelo
La VRAM es la restricción que manda. Si el modelo no cabe en la memoria de la GPU, el runtime cae a RAM del sistema y la inferencia se vuelve mucho más lenta. Usa esta tabla para elegir la GPU correcta antes de hacer tu pedido:
| Modelo | Precisión | VRAM aprox. | VRAM mínima de GPU |
|---|---|---|---|
| 7B | FP16 | ~14 GB | 24 GB |
| 7B | Q4 | ~4 GB | 8 GB |
| 13B | FP16 | ~26 GB | 32 GB |
| 13B | Q4 | ~8 GB | 16 GB |
| 70B | Q4 | ~38 GB | 48 GB |
| 70B | FP8 | ~70 GB | 80 GB |
| 70B | FP16 | ~140 GB | 141 GB |
La cuantización Q4 reduce el consumo de VRAM en aproximadamente un 75% respecto a FP16, con una pérdida de precisión moderada que funciona bien para la mayoría de tareas de hosting e inferencia de LLM. Para inferencia FP8 o FP16 con 70B, busca una GPU con al menos 80 GB de VRAM en una sola tarjeta.
Para la mayoría de los despliegues autoalojados de LLM, una GPU de 48 GB es el punto de partida práctico. Maneja cualquier modelo 70B cuantizado y deja margen para varias sesiones concurrentes. Sube a una tarjeta más grande solo si tu workload requiere precisión sin cuantizar o presiona los límites de la ventana de contexto.
Paso 1: Pedir un servidor GPU
- Aprovisiona un servidor GPU con suficiente VRAM para tu modelo objetivo. Usa la tabla de sizing de la sección anterior para confirmar tu requisito antes de hacer el pedido.
- Selecciona tu sistema operativo. Todos los comandos de esta guía están probados en la distribución Ubuntu más reciente. Elige la región más cercana a tus usuarios y completa el pedido.
- Conéctate por SSH como root:
ssh root@IP_DE_TU_SERVIDOR- Confirma que la GPU está presente y el driver de NVIDIA está cargado:
nvidia-smiUna salida correcta muestra el nombre del modelo de GPU instalado en la línea del título. La cabecera reporta las versiones del driver y CUDA: para GPUs Pre-Blackwell, espera driver 535.x o superior; para Blackwell y más recientes, 570.x o superior. En ambos casos se espera CUDA 12.x o posterior. Si nvidia-smi devuelve «command not found», el driver no está cargado.
Paso 2: Instalar CUDA y un runtime de inferencia
La ruta correcta del driver depende de tu arquitectura de GPU. NVIDIA divide el soporte de GPU para Linux en dos tracks a partir de Blackwell:
- Blackwell y más recientes: requieren el driver de módulo de kernel de GPU abierto, disponible desde la versión 570. Un driver propietario más antiguo no funciona en hardware Blackwell.
- Pre-Blackwell (Hopper, Ada Lovelace, Ampere y anteriores): usan el driver de módulo de kernel propietario tradicional, disponible desde la versión 535.
Confirma que el driver y CUDA están disponibles:
nvidia-smi
nvcc --versionPara GPUs Pre-Blackwell, un nvidia-smi correcto reporta un driver 535.x o superior. Para Blackwell y más recientes, espera 570.x o superior. Si el driver instalado no corresponde a tu arquitectura, o si nvcc devuelve «command not found», instala la versión correcta:
# Blackwell y más recientes: ruta de módulo de kernel de GPU abierto (driver 570+)
sudo apt update && sudo apt install -y nvidia-open
# Pre-Blackwell: ruta propietaria tradicional (si se requiere reinstalación)
sudo apt update && sudo apt install -y nvidia-driver-535
# CUDA toolkit (requerido en ambas rutas si no está presente)
sudo apt update && sudo apt install -y cuda-toolkit-12-4Con CUDA confirmado, elige tu runtime.
Ollama
Ollama se instala con un solo comando y se registra como servicio del sistema de inmediato:
curl -fsSL https://ollama.com/install.sh | sh
ollama --versionPara integrarlo en workflows de automatización con n8n, consulta el artículo Qué es Ollama y cómo usarlo con n8n.
vLLM
vLLM requiere Python 3.9 o posterior y CUDA 11.8 o posterior. Instala con pip:
pip install vllm
python -c "import vllm; print(vllm.__version__)"vLLM también necesita al menos 8 GB de RAM del sistema además de la VRAM de la GPU. Si trabajas en un entorno Python compartido, crea primero un entorno virtual:
python -m venv .venv && source .venv/bin/activate
pip install vllmPaso 3: Servir el modelo y probarlo
Ollama
Descarga un modelo por nombre y prueba el endpoint local:
# Descargar los pesos del modelo
ollama pull llama3.2:8b
# Ollama arranca como servicio en el puerto 11434 automáticamente
# Enviar una petición de prueba síncrona
curl http://localhost:11434/api/generate \
-d '{"model":"llama3.2:8b","prompt":"¿Cuánto es 2+2?","stream":false}'Una respuesta exitosa es un objeto JSON con un campo response que contiene la respuesta del modelo. Ese es tu endpoint de inferencia de LLM corriendo localmente. Para exponer el servidor a otras máquinas en tu red, configura OLLAMA_HOST=0.0.0.0 antes de iniciar el servicio.
vLLM
Inicia el servidor API compatible con OpenAI y envía una prueba de completion:
# Iniciar el servidor
python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Llama-3.2-8B-Instruct \
--host 0.0.0.0 --port 8000
# Prueba
curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{"model":"meta-llama/Llama-3.2-8B-Instruct","prompt":"¿Cuánto es 2+2?","max_tokens":50}'Los modelos Llama 3 en Hugging Face requieren aceptar el acuerdo de licencia de Meta antes de que la descarga comience. Ejecuta huggingface-cli login y acepta los términos en huggingface.co/meta-llama primero. Después, cualquier cliente compatible con OpenAI puede apuntar a http://IP_DE_TU_SERVIDOR:8000/v1 sin cambios en el código.
Ollama vs. vLLM: ¿qué runtime elegir?
La decisión depende de una sola variable: ¿cuántos usuarios concurrentes usarán el endpoint?
| Ollama | vLLM | |
|---|---|---|
| Tiempo de configuración | ~2 min (un comando) | 10–20 min (pip + configuración) |
| Peticiones concurrentes | Limitadas (procesamiento secuencial) | Listas para producción (continuous batching) |
| Rendimiento (throughput) | Moderado | Alto |
| Gestión de modelos | Descarga automática por nombre | Descarga manual desde Hugging Face |
| Superficie de API | REST compatible con OpenAI | REST compatible con OpenAI |
| Fine-tuning | No | Mediante tooling externo |
| Mejor para | Desarrollo, uso individual, workflows de n8n | APIs compartidas, despliegues multiusuario |
Elige Ollama si estás construyendo una herramienta interna o iterando solo, o cualquier vez que quieras que un agente hable con un modelo local con mínima configuración. De la instalación a la primera llamada de inferencia: unos dos minutos, sin nada que configurar. La API compatible con OpenAI significa que tu código cliente no necesita saber la diferencia.
Elige vLLM cuando operes un endpoint de API compartido entre un equipo o sirvas una aplicación de producción con tráfico concurrente. Su algoritmo PagedAttention maneja la gestión de memoria que hace posible la inferencia de alta concurrencia, al costo de una configuración inicial más compleja. Como ambos runtimes exponen la misma superficie de API compatible con OpenAI, migrar de Ollama a vLLM después es un solo cambio de URL base en la configuración de tu cliente.
Preguntas frecuentes: inferencia de LLM en un GPU VPS
Un modelo 70B en FP16 necesita aproximadamente 140 GB de VRAM en una sola tarjeta. Con cuantización Q4 eso baja a unos 38–40 GB, que una GPU de 48 GB maneja sin problemas. FP8 requiere alrededor de 70 GB, así que busca una tarjeta con al menos 80 GB. Para la mayoría de tareas de inferencia, Q4 es el punto de partida: pérdida de precisión pequeña, ahorro de VRAM grande.
Usa Ollama para desarrollo, uso individual o integraciones con n8n: un comando lo instala y lo inicia, y gestiona modelos por nombre. Usa vLLM para APIs compartidas con usuarios concurrentes. Su PagedAttention y continuous batching manejan cargas de producción que saturaría a Ollama. Ambos exponen una API REST compatible con OpenAI, así que cambiar después es un solo ajuste de URL base en el código de tu cliente.
A bajo volumen, las APIs administradas son más baratas porque pagas solo lo que usas. A escala, gana la tarifa mensual fija de un servidor GPU. Los equipos que procesan varios cientos de millones de tokens al día encuentran consistentemente que el autoalojamiento sale más económico a largo plazo. Además, elimina el riesgo de cambios de precio del proveedor: tu costo mensual se mantiene fijo aunque tu volumen se duplique o un proveedor de API cambie sus tarifas.
Sí, con el tooling correcto. Ollama solo maneja inferencia; para fine-tuning de un LLM necesitas un framework como Axolotl o Hugging Face Transformers. Una GPU con 80 GB o más de VRAM da margen suficiente para fine-tuning con LoRA de modelos 7B a 13B. El mismo servidor GPU se encarga de las corridas de fine-tuning; planea almacenamiento extra para checkpoints y pesos de adaptadores.
Para la mayoría de workloads de inferencia de IA, una GPU de 48 GB es la elección práctica: corre cualquier modelo 70B cuantizado en una sola tarjeta. Para inferencia FP8 o FP16 con 70B, busca un plan con 80 GB o más de VRAM. Para FP16 completo con 70B o ventanas de contexto muy grandes, un plan de tarjeta única con 141 GB es la solución limpia.