¿Quieres desplegar tu propio servidor de Inteligencia Artificial de forma sencilla y eficiente? En esta guía detallada, te mostraremos cómo configurar y ejecutar Ollama y Open WebUI utilizando Docker. Aprenderás a aprovechar la potencia de Ollama para ejecutar modelos de lenguaje localmente y a interactuar con ellos a través de una interfaz web intuitiva con Open WebUI. Este tutorial, ideal tanto para principiantes como para usuarios con experiencia, te guiará paso a paso en la instalación, configuración y optimización de tu servidor de IA en Docker, permitiéndote experimentar con modelos de lenguaje de última generación sin complicaciones. Descubre cómo simplificar el despliegue de modelos de IA y potenciar tus proyectos con esta poderosa combinación de herramientas.
Ollama:
Ollama es una herramienta de línea de comandos que simplifica la ejecución de modelos de lenguaje grandes (LLMs) localmente en tu propia máquina. En lugar de depender de servicios en la nube, Ollama te permite descargar y ejecutar modelos populares como Llama 2, Mistral, Gemma y muchos más, directamente en tu ordenador. Es ideal para desarrolladores, investigadores y cualquier persona que quiera experimentar con IA sin depender de una conexión a internet constante o preocuparse por los costos de los servicios en la nube.
Ollama se destaca por su facilidad de uso: con unos pocos comandos, puedes descargar un modelo, ejecutarlo y comenzar a interactuar con él. Es una excelente opción para prototipos rápidos, desarrollo offline y para aquellos que buscan tener un control total sobre sus modelos de IA.
Más información: https://ollama.com/
Open WebUI:
Open WebUI es una interfaz web de código abierto diseñada para facilitar la interacción con modelos de lenguaje grandes (LLMs) como los que se ejecutan con Ollama. Proporciona una forma intuitiva y fácil de usar de conversar con tus modelos, realizar tareas de generación de texto, y explorar sus capacidades. En lugar de tener que usar la línea de comandos de Ollama, Open WebUI te ofrece una interfaz gráfica con funciones como historial de conversaciones, configuración de parámetros del modelo, y soporte para múltiples modelos.
Open WebUI es ideal para aquellos que prefieren una experiencia visual y cómoda al interactuar con modelos de IA, o para quienes necesitan una forma de integrar estos modelos en aplicaciones web. Es altamente configurable y extensible, permitiendo a los usuarios personalizar la interfaz y agregar nuevas funciones según sus necesidades.
Más información: https://github.com/open-webui/open-webui
Consideraciones:
Asumo que tenemos un Ubuntu 24.04 con Docker y Docker Compose V2. En este post explico como instarlar estos componentes: Como instalar Docker y Docker Compose v2 en Ubuntu 24.04 .
Seguramente se pueda ejecutar en otros sistemas con docker / docker compose, pero puede que tengas que adaptar algo de procedimiento.
Procedimiento:
Yo opte por poner los docker compose en una estructura de directorios del tipo /opt/docker/aplicacion/.
Para este caso, cree el directorio /opt/docker/ia/ y dentro cree un archivo compose.yml con el siguiente contenido.
services:
ollama:
image: ollama/ollama
container_name: ollama
hostname: alphaprime
volumes:
- ./ollama:/root/.ollama #llm storage
ports:
- 11434:11434 # Web UI
restart: unless-stopped
open-webui:
build:
context: .
args:
OLLAMA_BASE_URL: '/ollama'
dockerfile: Dockerfile
image: ghcr.io/open-webui/open-webui
container_name: open-webui
volumes:
- ./open-webui:/app/backend/data
depends_on:
- ollama
ports:
- 3000:8080
environment:
- 'OLLAMA_BASE_URL=http://ollama:11434'
- 'WEBUI_SECRET_KEY='
extra_hosts:
- host.docker.internal:host-gateway
restart: unless-stopped
Podemos ejecutar el compose con el siguiente comando:
docker compose up -d

Si todo anduvo bien, podemos ingresar a la url http://xx.xx.xx.xx:3000 y vamos a tener la página de bienvenida de Open WebUI.

Nos pide registrar un usuario (es un usuario local, yo de todas formas no expuse esto a Internet).

Finalizado el paso de registro llegamos a la interface de trabajo de Open WebUI.

Para saber que LLM podemos desplegar en Ollama podemos ingresar a la página de la librería de modelos https://ollama.com/library .
Por ejemplo podemos ver que esta llama 3.2 y que es un LLM de 3B de parámetros y pesa 2GB.

Si no tenemos ningún modelo o el que queremos ejecutar no esta disponible, desde la web podemos desplegarlo.

Con esto damos por finalizado el procedimiento de despliegue.
Verificación del correcto funcionamiento de Ollama y Open WebUI:
Desde la interface de Open WebUI, le podemos pegruntar algo a nuestro LLM (revisar que haya quedado seleccionado llama3.2).

Observaciones:
Podemos tener varios «LLM» descargados al mismo tiempo.

Hay que tener en cuenta que los «LLM» van a requerir varios GB de storage.
Correr LLM en forma local es muy exigente para el equipo. Yo estoy ejecutando este contendor en una mini-pc que tengo en casa con un i7-8700T y 32GB de ram.
Con varios amigos estuvimos haciendo prueba de performance con este comando:
docker exec -it ollama ollama run --verbose llama3.2 "Que se puede hacer en Mar del Plata en invierno?"
En mi equipo las métricas informa que obtengo casi 11 tokens por segundo.

¿Queres compartir tu prueba en los comentarios? Pone CPU / RAM / eval rate. En mi caso sería i7-8700T / 32GB / 10.92 tokens/s
Para poder ejecutar Ollama necesitamos un equipo con llama3.2 necesitamos un equipo que tenga al menos 8GB de memoria RAM (yo recomendaría al menos 16GB).

Deja un comentario