Ollama: Instalación y primeros pasos

Guía completa de Ollama: instalación, gestión de modelos locales, APIs REST, integración con Docker y casos de uso en DevOps

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

Suscríbete al blog por correo electrónico

Introduce tu correo electrónico para suscribirte a este blog y recibir avisos de nuevas entradas.

Deja un comentario