Cómo montar un servidor de LLMs con Debian y Ollama
Cómo montar un servidor de LLMs con Debian y Ollama
En un artículo anterior, configuramos un portátil viejo con Debian como servidor para acceder de forma remota. Ahora es el momento de montar un servidor de modelos de lenguaje grande (LLMs) utilizando Debian y Ollama, y de configurar Docker para poder gestionar todo de manera eficiente.
1. Instalación de Docker
Docker permite usar contenedores y gestionar la instalación de aplicaciones de manera eficiente gracias a que aisla dichas aplicaciones.
Por eso, vamos a instalarlo para gestionar la interfaz web que vamos a utilizar.
Lo primero será instalar las dependencias con:
sudo apt -qy install software-properties-common apt-transport-https ca-certificates curl gnupg lsb-release
Para luego añadir la clave GPG de Docker con:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
y configurar los repositorios de Docker para que apt (el gestor de paquetes de Debian) sepa desde dónde tiene que instalarlo:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Una vez tenemos esto, nos basta con actualizar la información de los repositorios con:
sudo apt -qy update
E instalar Docker con:
sudo apt -qy install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Para ganar algo de seguridad, vamos a permitir el uso de Docker sin privilegios de superusuario (lo que se conoce como uso rootless), para lo cual añadiremos nuestro usuario al grupo de usuarios con permiso sobre Docker con:
sudo usermod -aG docker $USER
No necesitamos sustituir nada porque el sistema ya tiene nuestro usuario en la variable $USER
desde el inicio de sesión.
2. Instalación de Ollama
Ollama es la herramienta que utilizaremos para gestionar los LLM en nuestro servidor. La instalación es sencilla y se realiza con un solo comando:
curl -fsSL https://ollama.com/install.sh | sh
Esto descargará e instalará Ollama, dejándola lista para gestionar los modelos en nuestro servidor.
Sé que existe una instalación con Docker, pero aún no he podido mirarlo, aunque actualizaré este artículo en un futuro para añadir esa alternativa.
3. Habilitar las conexiones desde la red local
Para poder acceder a Ollama desde otros dispositivos en la red local, necesitamos modificar su configuración para que acepte conexiones externas.
Para ello, lo primero es… ¡copia de seguridad!
sudo cp /etc/systemd/system/ollama.serve /etc/systemd/system/ollama.serve.bak
Luego lo abrimos con nano
:
sudo nano /etc/systemd/system/ollama.serve
Busca la línea en la que pone [Service]
y, justo debajo, añade las siguientes líneas:
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"
Puede que las líneas existan ya, bien comentadas o bien con otros valores. Lo importante es que el archivo quede con las líneas como te las he puesto.
Con esto Ollama aceptará conexiones desde cualquier origen, facilitando el acceso remoto a los modelos desde cualquier dispositivo de la red local.
4. Instalación de Open Web UI
Open Web UI es la interfaz gráfica de administración que nos facilita la interacción con Ollama desde cualquier navegador. Instalamos la interfaz web utilizando Docker:
sudo docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://$(hostname -I | awk '{print $1}'):11434 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
Este comando ya se encarga de todo lo necesario:
- Configurar la interfaz para que se inicie automáticamente,
- Apuntar a la dirección y puerto en la que está escuchando Ollama,
- y configurar un puerto en el que estará escuchando peticiones.
Con esto podrás acceder a la web desde http://192.168.1.100:3000
(o la IP que configurases como IP fija de tu servidor).
5. Instalación de LLMs
Ya tenemos todo listo para instalar los modelos… así que ¡vamos a instalar alguno!
Lo único que necesitamos es ejecutar el siguiente comando:
ollama pull <modelo>
Puedes ver qué modelos están disponibles para Ollama en su página web.
Necesitarás sustituir <modelo>
por el LLM que quieras instalar y ya está.
Problemas que me he encontrado
Durante la configuración y el uso de Ollama, me he encontrado algunos problemas. A continuación, te cuento los problemas que me he encontrado y cómo los he resuelto.
Error: no suitable llama server found
Este error suele indicar que no se ha podido cargar el modelo. En general, los modelos se cargan en la carpeta /tmp
, así que lo primero que hice fue comprobar que hubiera espacio suficiente en esa carpeta y, al ampliar el espacio (o borrar algunos archivos en el disco), desapareció el problema.
Conclusión
Con estos pasos, hemos montado un servidor de modelos de lenguaje grande (LLMs) utilizando Debian, Ollama y Docker. Ahora, cualquier dispositivo de tu red local puede acceder a los modelos instalados a través de la interfaz web, lo que hace que este entorno sea ideal para pruebas y experimentación.
También ayuda a acercar estas tecnologías a todos los miembros de la familia con total seguridad.
¡Espero que disfrutes explorando el potencial de los LLMs en tu propio servidor!