Ollama


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 conhistorial persistente, usuarios, adjuntos ymemoria/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 tucomputadora,propiosin depender de la nube.CaracterísticasDescargar y ejecutar modelos de IAlocalmenteequipo.-
Interactuar con ellos medianteProporciona una interfaz dechatlíneaodedesdecomandosla(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 (
pornoejemplo,seusandoenvíanlocalhost: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),superiormanteniendoinstalado - Drivers
yNvidiacontrol.instalados
privacidad
Funcionamiento
-
Ollama instala un servidor local que gestiona los modelos.
-
Los modelos se descargan como archivos
.bino.ggufoptimizados 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 ollamaPrueba el modelo (descarga automática y usa la GPU si la detecta):
ollama run llama3.1Consejo: si el prompt responde fluido y
nvidia-smimuestra uso durante la generación, está usando GPU.Ejecuta el contenedor usando CPU soloOpen WebUI corre dentro de Docker y usa Ollama o PyTorch como backend IA.
Instalar
crea un fichero
docker-compose.yamlcon 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 -dAhora 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-textEn Open WebUI → Settings → Models selecciona tu modelo por defecto (ej.
llama3.1).