¿Alguna vez has querido experimentar con la potencia de un LLM pero te has encontrado con la barrera de descargar archivos de 50GB, configurar entornos de Python complejos o pelearte con drivers de CUDA? Si lo que buscas es la simplicidad de un docker pull aplicada a los modelos de lenguaje, necesitas Ollama.
Ollama es la herramienta que ha democratizado la ejecución de Large Language Models (LLMs) de forma local. Olvídate de las APIs de pago o de enviar tus datos sensibles a la nube; con Ollama, el modelo corre en tu hardware, con un rendimiento optimizado y una experiencia de usuario que se siente tan natural como usar la terminal. En esta guía, vamos a pasar de una instalación limpia a despliegues automatizados en entornos DevOps.
📦 Instalación
Dependiendo de tu sistema operativo, el camino para tener Ollama listo es muy directo.
macOS
# Usando Homebrew (recomendado)
brew install ollama
# O usando el script oficial
curl -fsSL https://ollama.ai/install.sh | sh
Linux
# Ubuntu/Debian
curl -fsSL https://ollama.ai/install.sh | sh
# O usando el paquete
sudo apt update
sudo apt install ollama
Windows
# Usando Winget
winget install Ollama.Ollama
# O descarga desde el sitio web oficial
Verificación de instalación
Una vez instalado, comprueba que todo esté en orden con este comando:
ollama --version
# Output: ollama version is 0.1.x
🚀 Primeros pasos
Iniciar Ollama
Para que Ollama pueda gestionar modelos, el servicio debe estar corriendo en segundo plano.
# Inicia el servicio (se ejecuta en background)
ollama serve
# O en macOS/Linux con launchd/systemd
brew services start ollama # macOS
sudo systemctl start ollama # Linux
Descargar tu primer modelo
No necesitas descargar todo el catálogo de una vez. Puedes listar y bajar solo lo que necesitas.
# Lista modelos disponibles
ollama list
# Descarga un modelo pequeño para empezar
ollama pull llama2:7b
# Modelos populares
ollama pull llama2 # 7B parámetros, buen balance
ollama pull codellama # Especializado en código
ollama pull mistral # Modelo eficiente
ollama pull phi # Muy pequeño, rápido
Ejecutar un modelo
Aquí es donde ocurre la magia. Puedes entrar en un modo de chat interactivo directamente desde tu terminal.
# Modo interactivo
ollama run llama2
# Una vez dentro, puedes hacer preguntas:
# >>> ¿Qué es Kubernetes?
# >>> Crea un script bash para backup
# >>> Explica el concepto de containers
🛠️ Uso avanzado
Si ya dominas lo básico, puedes empezar a jugar con diferentes tamaños de parámetros y, lo más importante, integrar Ollama en tus propias aplicaciones mediante su API.
Ejecutar modelos específicos
Dependiendo de tu hardware (especialmente de tu VRAM), puedes elegir entre velocidad o inteligencia.
# Modelos con diferentes tamaños
ollama run llama2:13b # Más inteligente, más lento
ollama run llama2:7b # Balance velocidad/inteligencia
ollama run llama2:3.2b # Muy rápido, menos inteligente
# Modelos especializados
ollama run codellama # Para generación de código
ollama run mathstral # Para matemáticas
ollama run llama2-uncensored # Sin restricciones de contenido
API REST
Ollama no es solo una herramienta de CLI; es un servidor completo. Puedes enviarle peticiones HTTP para integrar IA en tus flujos de trabajo.
# Inicia el servidor API
ollama serve
# Verifica que esté corriendo
curl http://localhost:11434/api/tags
# Ejemplo de uso con Python
import requests
response = requests.post('http://localhost:11434/api/generate',
json={
'model': 'llama2',
'prompt': 'Explica Docker en 3 líneas',
'stream': False
})
print(response.json()['response'])
Gestión de modelos
Mantener tu «biblioteca» de modelos organizada es fundamental.
# Listar modelos instalados
ollama list
# Ver información detallada
ollama show llama2
# Eliminar un modelo
ollama rm llama2:7b
# Copiar un modelo con nuevo nombre
ollama cp llama2 my-custom-model
# Crear modelo personalizado
echo 'FROM llama2
PARAMETER temperature 0.8
PARAMETER top_p 0.9' > Modelfile
ollama create my-model -f Modelfile
⚙️ Configuración y optimización
Para entornos de producción o servidores dedicados, querrás ajustar cómo Ollama utiliza tus recursos.
Variables de entorno
Puedes controlar dónde se guardan los modelos o en qué puerto escucha el servidor.
# Directorio de modelos
export OLLAMA_MODELS=/opt/ollama/models
# Puerto personalizado
export OLLAMA_HOST=0.0.0.0:8080
# GPU (si disponible)
export OLLAMA_GPU_LAYERS=35 # Para modelos grandes
Configuración del sistema
Si tu versión lo permite, puedes definir parámetros por defecto:
# ~/.ollama/config.yaml (si existe)
models:
- name: llama2
parameters:
temperature: 0.7
top_p: 0.9
max_tokens: 2048
🔧 Integración con DevOps
Aquí es donde Ollama brilla para los ingenieros de infraestructura. Puedes empaquetar modelos en contenedores o desplegarlos en clusters.
En Docker
Puedes crear una imagen que ya traiga los modelos «pre-calentados».
FROM ollama/ollama:latest
# Pre-descarga modelos
RUN ollama serve & sleep 5 && \
ollama pull llama2:7b && \
ollama pull codellama:7b
EXPOSE 11434
CMD ["ollama", "serve"]
En Kubernetes
Para escalar la inferencia, un Deployment es el camino a seguir.
apiVersion: apps/v1
kind: Deployment
metadata:
name: ollama
spec:
replicas: 1
selector:
matchLabels:
app: ollama
template:
metadata:
labels:
app: ollama
spec:
containers:
- name: ollama
image: ollama/ollama:latest
ports:
- containerPort: 11434
resources:
requests:
memory: "4Gi"
cpu: "2"
limits:
memory: "8Gi"
cpu: "4"
volumeMounts:
- name: models
mountPath: /root/.ollama/models
volumes:
- name: models
persistentVolumeClaim:
claimName: ollama-models-pvc
Scripts de automatización
Si necesitas provisionar máquinas nuevas, un script de shell te ahorrará horas de trabajo manual.
#!/bin/bash
# setup_ollama.sh
# Instalar Ollama
curl -fsSL https://ollama.ai/install.sh | sh
# Iniciar servicio
sudo systemctl enable ollama
sudo systemctl start ollama
# Esperar a que esté listo
sleep 10
# Descargar modelos esenciales
ollama pull llama2:7b
ollama pull codellama:7b
ollama pull mistral:7b
echo "Ollama configurado con modelos básicos"
📊 Monitoreo y troubleshooting
Correr modelos pesados puede ser impredecible. Aquí tienes cómo vigilar la salud de tu instancia.
Ver logs
Si algo falla, lo primero es mirar qué está diciendo el motor.
# Logs del servicio
journalctl -u ollama -f
# Logs de Ollama
tail -f ~/.ollama/logs/server.log
Problemas comunes
# Si no inicia
sudo systemctl status ollama
ps aux | grep ollama
# Si no responde
curl http://localhost:11434/api/tags
# Liberar memoria GPU
ollama stop all-models
Métricas de rendimiento
No olvides monitorear el consumo de hardware, especialmente si usas GPUs.
# Ver uso de GPU
nvidia-smi
# Ver procesos
ps aux --sort=-%mem | head
# Monitoreo continuo
watch -n 1 nvidia-smi
🎯 Casos de uso en DevOps
¿Cómo aplicamos esto al día a día de un ingeniero? No es solo para chatear; es para trabajar.
1. Análisis de logs
Pasa tus logs directamente al modelo para encontrar anomalías sin leer línea por línea.
# Analizar logs de aplicación
cat app.log | ollama run llama2 "Analiza estos logs y encuentra errores:"
# Troubleshooting Kubernetes
kubectl logs pod-name | ollama run llama2 "Explica estos errores de K8s:"
2. Generación de código
Tu asistente de scripting personal, sin salir de la terminal.
# Scripts de automatización
ollama run codellama "Crea un script bash para backup de PostgreSQL"
# Configuraciones IaC
ollama run llama2 "Genera configuración Terraform para un cluster EKS"
3. Documentación
Automatiza la parte más tediosa del ciclo de vida del software.
# Crear README
ollama run llama2 "Crea un README.md para una API REST de usuarios"
# Documentar código
ollama run codellama "Documenta esta función Python:"
🔗 Recursos adicionales
Para profundizar más, te recomiendo estos enlaces:
