Ollama: Instalación y primeros pasos¶
Ollama es una herramienta que simplifica la ejecución de Large Language Models (LLMs) localmente. Esta guía te ayudará a instalar y comenzar a usar Ollama en tu entorno DevOps.
📦 Instalación¶
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¶
ollama --version
# Output: ollama version is 0.1.x
🚀 Primeros pasos¶
Iniciar Ollama¶
# 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¶
# 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¶
# 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¶
Ejecutar modelos específicos¶
# 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¶
# 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¶
# 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¶
Variables de entorno¶
# 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¶
# ~/.ollama/config.yaml (si existe)
models:
- name: llama2
parameters:
temperature: 0.7
top_p: 0.9
max_tokens: 2048
🔧 Integración con DevOps¶
En Docker¶
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¶
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¶
#!/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¶
Ver logs¶
# 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¶
# 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¶
1. Análisis de logs¶
# 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¶
# 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¶
# 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:"