Run copilot locally

elferrer

Raül Martínez i Peris

Posted on April 15, 2024

Run copilot locally

Vamos a instalarnos nuestro propio copilot ejecutándose en local, de forma que no necesitemos ninguna conexión a internet para disfrutar de ello. Evidentemente, la potencia del ordenador será determinante para que sea agradable o no.

Tengo instalada la distro 'neon-user-20240229-0716.iso' y este documento utiliza como referencia todas aquellas acciones necesarias para esta distribución Linux.

Documentación

Puedes encontrar la documentación de Ollama en su web: https://ollama.com

Su repositorio es https://github.com/ollama/ollama/tree/main

Y su imagen docker es https://hub.docker.com/r/ollama/ollama

Los modelos disponibles en este momento para Ollama están listado aquí: https://ollama.com/library

La memoria necesaria dependerá del tipo de modelos que queramos. Un modelo de 2B necesita unos 2 GB de RAM aproximadamente, mientras que un modelo de 7B necesita unos 8 GB, un modelo 13B utilizará unos 16 GB y un modelo 33B consumirá unos 32 GB. Se recomienda tener un buen SSD y al menos 20 GB libres.

Olvídate de la SWAP: muerte y destrucción.

Instalación

Antes de empezar a instalar, debemos tener en cuenta que "deberíamos" tener una muy buena GPU y Cuda convenientemente configurados. Sobre esto ya hablamos en otro articulito. Pero como no nos sobra el dinero, pues veremos cómo tener nuestro copilot con GPU y solo con CPU.

Vayamos primero a lo rapidito.

Instalación de Ollama para utilizar GPU y Cuda

Es es la parte más fácil, ejecuta en la consola:

curl -fsSL https://ollama.com/install.sh | sh
Enter fullscreen mode Exit fullscreen mode

ahora puedes ejecutar comandos desde su interfaz, como por ejemplo /? o /bye. Sal de 'Ollama' y continuemos con nuestra consola. Vamos a instalarnos la versión 2B de Gemma (la IA de Google en su versión básica):

ollama run gemma:2b
Enter fullscreen mode Exit fullscreen mode

Al ser la primera vez tardará bastante, después ya será más rapido el inicio de sesión.

Ya tienes instalado Ollama y Gemma, puedes comprobar la versión de Ollama lanzando:

ollama --version
Enter fullscreen mode Exit fullscreen mode

o, si tienes ganas de empezar a preguntarle cosas:

echo "¿Entiendes la lengua de Cervantes?" | ollama run gemma:2b
Enter fullscreen mode Exit fullscreen mode

También puedes realizar la consulta a través de su API, te pongo un ejemplo con curl:

curl -X POST http://localhost:11434/api/generate -d '{ "model": "gemma:2b", "prompt":"¿Entiendes la lengua de Cervantes?"}'
Enter fullscreen mode Exit fullscreen mode

Si quieres desinstalarlo, sigue los pasos indicados en su repositorio:

https://github.com/ollama/ollama/blob/main/docs/linux.md
Enter fullscreen mode Exit fullscreen mode

Recuerda, la instalación nativa se ejecuta directamente sobre la GPU y la memoria necesaria tiene que ser VRAM disponible por la GPU... sí, también puede pedirse que se ejecute por CPU, pero si vas a necesitar utilizar la CPU mejor que pruebes con el siguiente apartado.

Instalación de Ollama para utilizarse solo con la CPU

La diferencia estriba en utilizar la imagen docker, que podemos lanzar la imagen solo para CPU (la parte fácil) o configurarla para utilizarlo con la GPU en la dockerización.

En la documentación del repo de Ollama se indica como poner en funcionamiento el docker para utilizar la GPU. No es necesario que replique aquí los pasos, pero, necesitarás instalarte el 'NVIDIA Container Toolkit'.

Vayamos a lo importante. Descargar la imagen de Ollama:

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
Enter fullscreen mode Exit fullscreen mode

Y lanzar una ejecución, en esta primera ejecución descargaremos un modelo, esta vez 'llama2':

docker exec -it ollama ollama run llama2
Enter fullscreen mode Exit fullscreen mode

O puedes descargarte un 'codellama', 'codegemma', ...

Vamos a pedirle alguna cosica:

docker exec -it ollama ollama run llama2 "Summarize this file: $(cat README.md)"
Enter fullscreen mode Exit fullscreen mode

No sé si pedírselo en inglés o en castellano, bueno, total, para un copy/paste lo mismo daba :)

Algunas cosas más

En los casos que has visto, Ollama está en el puerto 11434, por lo que entrando a tu localhost:11434 tendrás un bonito mensajito.

Si prefieres tener una WebUI, tienes el siguiente repo que te dice cómo: https://github.com/ollama-webui/ollama-webui

Hay más cosas, pero eso será otro día.

💖 💪 🙅 🚩
elferrer
Raül Martínez i Peris

Posted on April 15, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Run copilot locally
linux Run copilot locally

April 15, 2024