Tutorial completo de Ollama: Instalación y uso de modelos locales

 ¿Qué es Ollama?

Ollama es una herramienta que permite ejecutar modelos de lenguaje grandes (LLMs) localmente en tu computadora, sin necesidad de conexión a internet constante. Soporta modelos como Llama 3, Mistral, Gemma, y muchos otros.

Instalación de Ollama

Windows

  1. Descarga el instalador:

    • Ve a ollama.com

    • Haz clic en "Download for Windows"

    • Ejecuta el instalador descargado

  2. Instalación alternativa (Winget):

    powershell
    winget install Ollama.Ollama
  3. Iniciar Ollama:

    • Busca "Ollama" en el menú Inicio

    • O ejecuta en PowerShell:

    powershell
    ollama serve

macOS

bash
# Descarga e instalación directa
brew install ollama

# Iniciar el servicio
ollama serve

Linux

bash
# Instalación con curl
curl -fsSL https://ollama.com/install.sh | sh

# O manualmente
# Descargar el binario
curl -L https://ollama.com/download/ollama-linux-amd64 -o ollama
chmod +x ollama
sudo mv ollama /usr/local/bin/

# Iniciar como servicio
sudo systemctl enable ollama
sudo systemctl start ollama

Uso básico de Ollama

1. Listar modelos disponibles

bash
ollama list

2. Descargar/pull un modelo

bash
# Modelos populares:
ollama pull llama3.2        # Llama 3.2 (3B parámetros)
ollama pull llama3.2:1b     # Versión más pequeña
ollama pull mistral         # Mistral 7B
ollama pull gemma:2b        # Gemma 2B
ollama pull codellama:7b    # Especializado en código
ollama pull phi             # Microsoft Phi

3. Ejecutar un modelo

bash
# Ejecutar en modo interactivo
ollama run llama3.2

# Con un prompt específico
ollama run llama3.2 "Hola, ¿cómo estás?"

# Especificar parámetros
ollama run llama3.2 --verbose

4. Chat interactivo

Una vez dentro del modelo:

text
>>> Hola, ¿puedes ayudarme con matemáticas?
>>> ¿Cuál es la capital de Francia?
>>> /bye  # Para salir

5. Ver información del modelo

bash
ollama show llama3.2 --modelfile

Ejemplos prácticos

Ejemplo 1: Conversación básica

bash
ollama run mistral
# Luego en el prompt:
# > Escribe un poema corto sobre el mar
# > Traduce esto al francés: "Buenos días, ¿cómo estás?"

Ejemplo 2: Procesamiento de archivos

bash
# Usar contenido de un archivo como prompt
cat documento.txt | ollama run llama3.2 "Resume este texto:"

Ejemplo 3: API REST

Ollama incluye una API REST:

bash
# Consultar modelos disponibles
curl http://localhost:11434/api/tags

# Generar texto
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "¿Por qué el cielo es azul?",
  "stream": false
}'

# Chat completions (similar a OpenAI API)
curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2",
  "messages": [
    {"role": "user", "content": "Hola"}
  ]
}'

Ejemplo 4: Python con Ollama

python
import requests
import json

def ask_ollama(prompt, model="llama3.2"):
    response = requests.post(
        'http://localhost:11434/api/generate',
        json={
            "model": model,
            "prompt": prompt,
            "stream": False
        }
    )
    return response.json()['response']

# Uso
respuesta = ask_ollama("Explica la teoría de la relatividad en términos simples")
print(respuesta)

Modelos recomendados para empezar

ModeloTamañoUso recomendadoComando
Llama 3.21B, 3BGeneral, buen equilibrioollama pull llama3.2
Mistral7BRazonamiento, instruccionesollama pull mistral
Gemma2BRápido, eficienteollama pull gemma:2b
Phi2.7BEducativo, diálogoollama pull phi
CodeLlama7BProgramaciónollama pull codellama:7b

Parámetros avanzados

Ejecutar con opciones específicas:

bash
ollama run llama3.2 --temperature 0.7 --num-predict 256

Variables disponibles:

  • --temperature: Controla la creatividad (0.0-1.0)

  • --seed: Para resultados reproducibles

  • --num-predict: Límite de tokens de respuesta

  • --top-k: Control de vocabulario

  • --top-p: Control de probabilidad acumulada

Crear modelos personalizados

1. Crear un Modelfile:

dockerfile
FROM llama3.2

# Ajustar parámetros
PARAMETER temperature 0.8
PARAMETER num_predict 512

# Agregar mensajes del sistema
SYSTEM """
Eres un asistente útil especializado en historia mexicana.
Responde siempre en español formal.
"""

2. Construir el modelo personalizado:

bash
ollama create mi-modelo-historia -f ./Modelfile

3. Usar tu modelo:

bash
ollama run mi-modelo-historia

Solución de problemas comunes

Error: "ollama is not recognized"

bash
# En Windows, agregar al PATH
setx PATH "%PATH%;C:\Users\<tu_usuario>\.ollama\bin"

# Reiniciar terminal

Modelo no descarga

bash
# Ver logs
ollama serve

# Forzar descarga
ollama pull llama3.2 --insecure

Memoria insuficiente

  • Usa modelos más pequeños (1B, 2B, 3B)

  • Reduce --num-predict

  • Cierra otras aplicaciones

Integraciones

Con Visual Studio Code:

  1. Instala extensión "Continue"

  2. Configura Ollama como proveedor

Con Open WebUI (interfaz web):

bash
docker run -d -p 3000:8080 \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

Accede en: http://localhost:3000

Comandos útiles de mantenimiento

bash
# Actualizar Ollama
ollama upgrade

# Eliminar un modelo
ollama rm nombre-modelo

# Ver espacio usado
ollama list

# Ver logs
ollama serve  # Mostrará logs en tiempo real

Consejos para mejores resultados

  1. Especifica el idioma: Siempre indica que quieres respuesta en español

  2. Sé explícito: Describe claramente lo que necesitas

  3. Proporciona contexto: Da información relevante antes de preguntar

  4. Experimenta con parámetros: Ajusta temperature según necesites precisión o creatividad

  5. Usa modelos especializados: Para código, usa CodeLlama; para diálogo, Phi o Llama

Recursos adicionales

Comentarios

Entradas más populares de este blog

1-Instalación y Primeros Pasos con Ollama

3- Creando tu Primer Entorno Virtual Python con Flask

2- Cómo Usar Ollama con Postman (APIs y Comunicación)