Mascota Jacar — leyendo contigo Un portátil cuyos ojos siguen el cursor mientras lees.
Inteligencia Artificial Mac Tecnología

Desplegar Llama 3.3 y Mistral en local con Ollama y Open WebUI en Ubuntu 24.04

Desplegar Llama 3.3 y Mistral en local con Ollama y Open WebUI en Ubuntu 24.04

Actualizado: 2026-05-17

Puntos clave

  • Ollama 0.5+ corre Llama 3.3 70B Q4 cómodamente en una RTX 4090 (24 GB VRAM); Mistral Large 2 cuantizado entra en la misma máquina.
  • Open WebUI sustituye al ollama CLI para usuarios no técnicos; mismo ecosistema, UI moderna.
  • La pieza que separa “demo en mi portátil” de “servicio real” es la exposición tras Traefik con TLS y autenticación por IP/usuario — el segundo bloque del tutorial.
  • Cuantización Q4_K_M ofrece el mejor trade-off calidad/memoria en 2026; bajar a Q3 sólo si la GPU es estrecha.

Requisitos previos: Ubuntu 24.04 + drivers NVIDIA

Hardware mínimo razonable:

  • GPU NVIDIA con ≥16 GB VRAM (RTX 4080/4090, A4000, RTX 5000 Ada).
  • 32 GB RAM, 1 TB NVMe.
  • Ubuntu 24.04 LTS Server.

Drivers NVIDIA + CUDA:

bash
sudo ubuntu-drivers autoinstall
sudo reboot
nvidia-smi   # verificar que la GPU aparece

Docker + nvidia-container-toolkit (sigue como-instalar-docker-en-ubuntu-22-04 pero pasos equivalentes en 24.04):

bash
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
distribution=$(. /etc/os-release; echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | 
  sudo sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | 
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update && sudo apt install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Verificar: docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi.

Instalar Ollama y verificar GPU

bash
curl -fsSL https://ollama.com/install.sh | sh
sudo systemctl enable --now ollama
ollama --version    # debe decir 0.5+ a fecha de 2026-06

Comprobación de GPU detectada:

bash
journalctl -u ollama | grep -i "gpu|cuda" | head -10

Debe aparecer cuda y compute capability para confirmar que Ollama usa la GPU. Si dice using cpu, repasar nvidia-smi y nvidia-container-toolkit.

Descargar Llama 3.3 y Mistral cuantizados

Modelos recomendados en 2026:

bash
ollama pull llama3.3:70b-instruct-q4_K_M    # ~40 GB descarga, ~24 GB VRAM
ollama pull mistral-large:latest             # ~70 GB descarga, requiere 48 GB VRAM o offload
ollama pull qwen2.5-coder:32b-instruct-q4_K_M # gran modelo de código

Probar:

bash
ollama run llama3.3:70b-instruct-q4_K_M "Explica qué es MCP en una frase."

Latencia esperada: ~30-50 tokens/s en una RTX 4090 con un prompt corto.

Open WebUI con docker compose

yaml
# docker-compose.yml
services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: unless-stopped
    extra_hosts:
      - host.docker.internal:host-gateway
    environment:
      OLLAMA_BASE_URL: http://host.docker.internal:11434
      WEBUI_SECRET_KEY: "${WEBUI_SECRET_KEY}"
    ports:
      - "127.0.0.1:3000:8080"
    volumes:
      - open-webui-data:/app/backend/data

volumes:
  open-webui-data:

docker compose up -d. Acceso local: http://127.0.0.1:3000. Crea cuenta admin la primera vez.

Exponer detrás de Traefik con TLS

Si ya tienes Traefik (sigue como-instalar-traefik-con-docker-compose), añade etiquetas:

yaml
services:
  open-webui:
    networks: [traefik]
    labels:
      - traefik.enable=true
      - traefik.http.routers.openwebui.rule=Host(`llm.tu-dominio.com`)
      - traefik.http.routers.openwebui.entrypoints=websecure
      - traefik.http.routers.openwebui.tls.certresolver=letsencrypt
      - traefik.http.services.openwebui.loadbalancer.server.port=8080
networks:
  traefik:
    external: true

Quita el ports: localhost cuando uses Traefik.

Limitar acceso por IP y por usuario

Capa 1 — IP allowlist en Traefik:

yaml
labels:
  - traefik.http.middlewares.openwebui-ipallow.ipallowlist.sourcerange=10.0.0.0/8,192.168.1.0/24,TU.IP.PUBLICA/32
  - traefik.http.routers.openwebui.middlewares=openwebui-ipallow@docker

Capa 2 — autenticación nativa de Open WebUI: en Settings → Users marcar “Require email verification” y desactivar ENABLE_SIGNUP=false para que sólo admin invite.

Capa 3 — auditoría: configurar WEBUI_LOG_LEVEL=info y enviar a Loki o Elasticsearch para conservar quién consulta qué — en empresa, especialmente con datos sensibles, la trazabilidad es exigible.

Para el lado del fine-tuning si los modelos genéricos no bastan, ver el cluster próximo de Phase 3 sobre LoRA + Unsloth. Y para entender cómo este Ollama encaja en una pila RAG completa, RAG con Postgres + pgvector.

Repos de referencia: ollama.com[1], github.com/open-webui[2], traefik.io[3].

¿Te ha resultado útil?
[Total: 0 · Media: 0]
  1. ollama.com
  2. github.com/open-webui
  3. traefik.io

Escrito por

CEO - Jacar Systems

Apasionado de la tecnología, la infraestructura cloud y la inteligencia artificial. Escribe sobre DevOps, IA, plataformas y software desde Madrid.