Saltar a contenido

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:"

🔗 Recursos adicionales