Skip to main content

Ollama

image.pngimage.png

Arquitectura

              ┌───────────────────────────────────────────────────────────────┐
              │                        USUARIO                                │
              │───────────────────────────────────────────────────────────────│
              │  💬 Usa navegador web (Chrome, Firefox, etc.)                 │
              │  🌐 Accede a http://tu-servidor:3000                          │
              └───────────────┬───────────────────────────────────────────────┘
                              │ 1️⃣ Escribe / envía prompt
                              ▼
        ┌──────────────────────────────────────────────────────────────────────┐
        │                      🖥️  Open WebUI (contenedor Docker)              │
        │──────────────────────────────────────────────────────────────────────│
        │ - Interfaz tipo ChatGPT                                              │
        │ - Guarda historiales de chat (persistencia)                          │
        │ - Tiene “Knowledge Base” (memoria larga / aprendizaje)               │
        │ - Llama al modelo LLM a través de API local                          │
        └───────────────┬──────────────────────────────────────────────────────┘
                        │ 2️⃣ Envía prompt al motor de IA local (Ollama)
                        ▼
        ┌──────────────────────────────────────────────────────────────────────┐
        │                 🧠 Ollama (host, fuera del contenedor)               │
        │──────────────────────────────────────────────────────────────────────│
        │ - Maneja modelos LLM (Llama 3, Mistral, Phi-3, etc.)                 │
        │ - Usa GPU vía CUDA para acelerar inferencia                          │
        │ - Expone API local http://localhost:11434                            │
        │ - Compatible con múltiples modelos y embeddings                      │
        └───────────────┬──────────────────────────────────────────────────────┘
                        │ 3️⃣ Llama a la GPU para procesar el modelo
                        ▼
        ┌──────────────────────────────────────────────────────────────────────┐
        │             ⚙️ NVIDIA Container Toolkit + Drivers CUDA               │
        │──────────────────────────────────────────────────────────────────────│
        │ - “Puentea” la GPU física hacia los contenedores                     │
        │ - Permite ejecutar CUDA/Tensor ops dentro de Docker                  │
        │ - Asegura compatibilidad entre driver y librerías del contenedor     │
        └───────────────┬──────────────────────────────────────────────────────┘
                        │ 4️⃣ Acceso a la GPU física
                        ▼
        ┌──────────────────────────────────────────────────────────────────────┐
        │                 💻 GPU Física (RTX, CUDA cores, VRAM)                │
        │──────────────────────────────────────────────────────────────────────│
        │ - Ejecuta el modelo LLM en paralelo masivo                           │
        │ - Usa librerías CUDA/cuDNN/TensorRT instaladas en Ubuntu             │
        │ - Devuelve resultados procesados a Ollama                            │
        └──────────────────────────────────────────────────────────────────────┘

Requisitos

Ubuntu 24.04 o superior instalado

Drivers Nvidia instalados

  • Ollama → ejecuta el modelo LLM local (usa tu GPU NVIDIA).

  • Open WebUI → interfaz web tipo ChatGPT con historial persistente, usuarios, adjuntos y memoria/Knowledge Base.

  • (Opcional) ChromaDB → memoria vectorial para que “aprenda” de tus chats y documentos (RAG).

OLLAMA

Ollama es una plataformaherramienta y herramientaplataforma quediseñada permitepara ejecutar ejecutar modelos de lenguaje grandes (LLMs) de manera local en tu computadora, sin depender de servidores en la nube.

En términos simples, es una forma de usar modelos tipo ChatGPT o LLaMA directamente en tu máquina.

  • Permite descargar y correr modelos de IA (como LLaMA,LLaMA 2, Mistral, Gemma, Phi-3, entre otros— directamenteetc.) en tu computadora,propio sin depender de la nube.

    Características

    • Descargar y ejecutar modelos de IA localmenteequipo.

    • Interactuar con ellos medianteProporciona una interfaz de chatlínea ode desdecomandos la(CLI) terminal.

    • Integrar esos modelos en aplicaciones cony una API local, con la que puedes integrar los modelos en tus propias aplicaciones.

    • Se encarga de gestionar la descarga, ejecución y optimización del modelo, para que no tengas que configurar manualmente entornos complejos.

    Características

    • Ejecución local: todos los cálculos se hacen en tu computadora (porno ejemplo,se usandoenvían localhost:11434)datos a la nube).

    • EvitarCompatibilidad multiplataforma: disponible para macOS, Windows y Linux.

    • Modelos variados: soporta modelos de código abierto como LLaMA 2, Mistral, Gemma, Phi-3, Command-R, entre otros.

    • Integración sencilla: se puede usar desde terminal o con peticiones HTTP a http://localhost:11434.

    • Privacidad y control: ideal si quieres mantener tus datos en local o experimentar con IA sin depender de serviciosOpenAI, externosAnthropic, (comoetc.

      OpenAI

    Requisitos

    • Ubuntu 24.04 o Anthropic),superior manteniendoinstalado
    • privacidad
    • Drivers yNvidia control.

      instalados

    Funcionamiento

    • Ollama instala un servidor local que gestiona los modelos.

    • Los modelos se descargan como archivos .bin o .gguf optimizados para CPU o GPU.

    • Puedes ejecutar comandos como:

    Instalación

    curl -fsSL https://ollama.com/install.sh | sh
    
    # Arranca el servicio (si no arrancó solo):
    sudo systemctl enable --now ollama

    Prueba el modelo (descarga automática y usa la GPU si la detecta):

    ollama run llama3.1

    Consejo: si el prompt responde fluido y nvidia-smi muestra uso durante la generación, está usando GPU.Ejecuta el contenedor usando CPU solo

    🏡 Home | Open WebUI

    Open WebUI corre dentro de Docker y usa Ollama o PyTorch como backend IA.

    Instalar

    crea un fichero docker-compose.yaml con el contenido:

    services:
      open-webui:
        image: ghcr.io/open-webui/open-webui:main
        container_name: open-webui
        restart: unless-stopped
        network_mode: "host"
        environment:
          - OLLAMA_BASE_URL=http://127.0.0.1:11434
        volumes:
          - open-webui:/app/backend/data
        deploy:
          resources:
            reservations:
              devices:
                - capabilities: [gpu]
    
    volumes:
      open-webui:

    Levanta el contenedor:

    docker compose up -d

    Ahora ya puedes acceder a Open WebUI en http://IP-Host:8080


    Elegir y preparar el modelo

    Modelos conversacionales muy buenos y “ligeros”:

    # Llama 3.1 Instruct (8B)
    ollama pull llama3.1
    
    # Mistral (7B)
    ollama pull mistral
    
    # (Opcional) Un modelo de embeddings para RAG
    ollama pull nomic-embed-text

    En Open WebUI → Settings → Models selecciona tu modelo por defecto (ej. llama3.1).