En esta ocasión vamos a ver como ejecutar modelos LLM[1] de forma local. Para ello vamos a usar Ollama[2], una herramienta que permite ejecutar modelos LLM de forma local y Docker, para ejecutar Ollama en un contenedor.
Si aún no has interactuado con modelos de inteligencia artificial, puedes hacerlo de forma anónima desde el sitio web de DuckDuckGo[3].
DuckDuckGo AI Chat
Por qué de forma local?
Esta es la forma en la que normalmente uso modelos de IA como ChatGPT[4], ya que me proporciona algunas ventajas. La primera es que suele funcionar sin conexion a internet, con sus limites pero funciona. Por otro lado, debido a mi ubicación, no tengo acceso a los servicios de OpenAI[5], por lo que no puedo usar ChatGPT. Aún teniendo las credenciales necesitaría conectarme a una VPN[6] para poder acceder, lo cual agrega complejidad a la hora de usar el servicio. Y por último, me ofrece privacidad ya que mis consultas se procesan localmente y no en la máquina de terceros.
Configuramos Ollama
Para este ejemplo necesitaremos tener instalado Docker o Podman. Dependiendo de tu sistema operativo, los pasos pueden variar. Estos son los pasos para hacerlo desde la terminal de Linux.
1. Descargar la imagen de docker para Ollama
La imagen de docker la podemos encontrar desde su blog. Y la descargamos con el siguiente comando:
docker pull ollama/ollama
2. Crear contenedor a partir de la imagen de docker
De acuerdo a la documentación, se puede crear el contenedor con el siguiente comando:
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
3. Ejecutar ollama desde el contenedor
Primero ejecutamos bash dentro del contenedor, de esta forma podremos acceder a sus recursos y el que necesitamos especificamente es ollama para descargar los modelos.
sudo docker exec -it ollama bash
4. Descargar modelos desde ollama
Desde el sitio web oficial podemos ver el listado de modelos, elegimos uno y ejecutamos el siguiente comando dentro del contenedor. Para este ejemplo vamos a descargar llama3.2:3b.
ollama pull llama3.2:3b
Una vez completada la descarga podemos acceder al modelo desde una interfaz, que debemos crear y configurar aparte, o desde la misma terminal, como podemos ver a continuación.