Servidor de Inferencia Local con Ollama y Modelos LLM
1. PARTE 1 - Preparar el servidor Linux #
2. Comprobar memoria disponible #
1free -h
Con 2GB debería mostrar algo como:
Mem: 1.9Gi
Si tienes menos de 1.5GB libres → activa swap (opcional pero recomendado):
1sudo fallocate -l 2G /swapfile 2sudo chmod 600 /swapfile 3sudo mkswap /swapfile 4sudo swapon /swapfile
3. Instalar Ollama #
1curl -fsSL https://ollama.com/install.sh | sh
Comprobar que está instalado:
1ollama --version
4. PARTE 2 - Descargar y probar el modelo #
5. Descargar Qwen 0.5B #
1ollama pull qwen2.5:0.5b
6. Probar que funciona #
1ollama run qwen2.5:0.5b
Escribe algo como:
Explica qué es Linux en una frase.
Si responde → perfecto ✅ Ya sabes que tu servidor lo soporta.
Sal con:
/bye
7. PARTE 3 - Configurarlo como servicio accesible desde el exterior #
Por defecto, Ollama escucha solo en localhost.
Debemos hacer que escuche en red.
8. Editar el servicio systemd #
1sudo systemctl edit ollama
Se abrirá un editor. Añade:
1[Service] 2Environment="OLLAMA_HOST=0.0.0.0:11434"
Guarda y sal.
9. Reiniciar el servicio #
1sudo systemctl daemon-reexec 2sudo systemctl restart ollama
Comprobar que está activo:
1sudo systemctl status ollama
Debe decir:
active (running)
10. PARTE 4 - Abrir el puerto en el firewall #
Si usas UFW:
1sudo ufw allow 11434/tcp
Verificar:
1sudo ufw status
Debe aparecer:
11434/tcp ALLOW
11. PARTE 5 - Probar desde el propio servidor #
1curl http://localhost:11434/api/tags
Debe devolver algo como:
1{ 2 "models": [ 3 { "name": "qwen2.5:0.5b" } 4 ] 5}
12. PARTE 6 - Probar desde Windows (otro equipo) #
Ahora necesitas la IP del servidor:
1ip a
Busca algo como:
192.168.1.50
13. En Windows (PowerShell) #
1curl http://192.168.1.50:11434/api/generate ` 2 -Method POST ` 3 -ContentType "application/json" ` 4 -Body '{ 5 "model": "qwen2.5:0.5b", 6 "prompt": "Explica qué es Docker en una frase" 7 }'
Si devuelve texto → 🎉 ya estás usando tu modelo remoto.
14. PARTE 7 - Usarlo desde código (ejemplo práctico) #
15. PARTE 9 - Optimización para 2GB RAM #
Puedes limitar memoria reduciendo contexto:
En las llamadas API añade:
1"options": { 2 "num_ctx": 256 3}
Ejemplo completo:
1{ 2 "model": "qwen2.5:0.5b", 3 "prompt": "Explica Linux", 4 "options": { 5 "num_ctx": 256 6 } 7}
Menos contexto → menos RAM.
Resumen del tema
Conceptos clave #
- Servidor de Inferencia Local (Ollama): motor de ejecución y orquestación de modelos de lenguaje (LLM) auto-hospedado en Linux.
- Modelos Ligeros y Gestión de Memoria: descarga y ejecución de modelos compactos (
qwen2.5:0.5b) optimizados para entornos con recursos limitados (2 GB RAM con swap ynum_ctx: 256). - Exposición en Red Local: configuración de la variable de entorno
OLLAMA_HOST=0.0.0.0:11434en la unidad systemd para admitir peticiones remotas. - Consumo de la API REST: interacción con el endpoint
/api/generatemediante peticiones HTTP POST desde JavaScript (fetch), Python (requests) o Java (HttpClient). - Seguridad en Firewall: apertura del puerto 11434 (
sudo ufw allow 11434/tcp).
Qué debes recordar #
Ollama permite ejecutar LLMs locales en Linux exponiendo una API REST en el puerto 11434 (OLLAMA_HOST=0.0.0.0:11434) integrable con cualquier lenguaje de programación.