Por qué autoalojar sus modelos LLM en un VPS
Autoalojar un servidor de modelos significa mantener sus prompts y sus datos sensibles fuera de las API comerciales, eliminar la facturación por token y fijar usted mismo el modelo, su versión y su quantization. En un VPS, expone una API privada a sus aplicaciones internas (chatbots, RAG, asistentes de código) sin ninguna fuga hacia el exterior. Ollama destaca por su simplicidad radical: un comando para descargar y arrancar un modelo, una API limpia, una gestión automática de la memoria. LocalAI se posiciona como un sustituto 'drop-in' de la API de OpenAI: expone los mismos endpoints (chat, embeddings, imágenes, audio) y admite múltiples backends y formatos de modelos. La elección se juega entre una experiencia minimalista y la compatibilidad más amplia posible.
Las ventajas de un LLM autoalojado
- Prompts y datos confidenciales que nunca salen de su VPS
- Ninguna facturación por token, coste previsible ligado únicamente al servidor
- API privada conectada directamente a sus aplicaciones internas
- Elección libre del modelo, de su tamaño y de su nivel de quantization
- Compatibilidad con los SDK existentes mediante una API al estilo de OpenAI
- Ideal para el RAG: combine el LLM con su base de datos y con un motor de búsqueda autoalojado
Requisitos: modelos cuantizados y RAM realista
Sin GPU, quédese con modelos cuantizados ligeros. Un modelo 3B en GGUF Q4 funciona en un VPS de 4 vCPU y 8 GB de RAM con una latencia aceptable para pruebas; un modelo 7B/8B Q4 exige de 8 a 16 GB de RAM y una buena CPU para seguir siendo utilizable. Más allá, en CPU pura, la latencia se vuelve prohibitiva: para tiempo real con modelos grandes, un VPS con GPU es imprescindible. Prevea sobre todo un disco generoso: los pesos de varios modelos alcanzan enseguida decenas de GB. Necesita Docker y Compose, un volumen persistente para los modelos, un subdominio si expone la API, y un reverse proxy con autenticación.
Desplegar Ollama (o LocalAI) en un VPS
Aprovisionar el almacenamiento y el volumen de modelos
Cree un volumen dedicado (
/srv/ollama/models) en un disco lo bastante grande. Como los pesos son voluminosos y reutilizables, deben persistir fuera del contenedor para evitar volver a descargarlos en cada reinicio.Arrancar el contenedor
Inicie
ollama/ollama(olocalai/localai) montando el volumen de modelos y vinculando el puerto11434/8080en local. En un VPS sin GPU, el modo CPU es automático; con GPU, active el runtime adecuado.Descargar un modelo
Con Ollama, ejecute
docker compose exec ollama ollama pull llama3.2:3b. Con LocalAI, declare el modelo en la galería o deposite el archivo GGUF en la carpeta de modelos, y luego compruebe su carga en los logs.Probar la API
Lance una llamada local:
curl http://127.0.0.1:11434/api/generatepara Ollama, o el endpoint compatible con OpenAIPOST /v1/chat/completionspara LocalAI. Valide que la generación funciona antes de cualquier exposición.Exponer detrás de un reverse proxy autenticado
Redirija llm.sudominio.com hacia el puerto local con Caddy o Nginx para el TLS, y añada una capa de autenticación (clave de API en la cabecera o basic auth). Una API LLM abierta en Internet es una puerta de entrada costosa que nunca debe quedar sin control.
Conectar sus aplicaciones
Apunte sus SDK existentes a su
base_urlprivada. Como LocalAI expone la API de OpenAI, la mayoría de las bibliotecas funcionan con solo cambiar la URL y la clave; en Ollama, use su API nativa o su endpoint compatible.
Desplace la tabla
| Criterio | Ollama | LocalAI |
|---|---|---|
| Filosofía | Simplicidad, un comando por modelo | Sustituto drop-in de la API de OpenAI |
| Compatibilidad con la API de OpenAI | Endpoint compatible disponible | Nativa y muy completa |
| Modalidades admitidas | Texto, embeddings, visión (según el modelo) | Texto, embeddings, imágenes, audio, TTS |
| Gestión de los modelos | `ollama pull`, muy fluida | Galería + archivos, más manual |
| Backends / formatos | Principalmente GGUF | Múltiples backends y formatos |
| Facilidad de manejo | Muy rápida | Más configuración |
| Soporte GPU / CPU | Ambos, cambio sencillo | Ambos, amplio soporte de hardware |
| Caso de uso ideal | Empezar rápido, prototipar | Migrar una app OpenAI al self-hosting |
En un VPS sin GPU, el secreto de la fluidez es la quantization: un modelo en Q4_K_M ofrece un compromiso tamaño/calidad muy favorable y cabe en RAM allí donde la versión sin cuantizar se hunde. Limite también el context window a lo estrictamente necesario (por ejemplo 4096 tokens): un contexto sobredimensionado multiplica el consumo de memoria y la latencia sin beneficio real para la mayoría de las tareas.