Skip to content

Tu propia IA en local sin coste (incluye interfaz + stable diffusion)

License

Notifications You must be signed in to change notification settings

molidev/LOCAL-AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 

Repository files navigation

LOCAL-AI

¿Quieres ejecutar una IA en tu ordenador? 😎

Has llegado al lugar adecuado, ármate de paciencia que ya comenzamos! A continuación tienes una guía para poder configurar y ejecutar una IA en tu ordenador.
Para ello, usaremos herramientas como WSL, Docker, Ollama y Stable Diffusion.

Esta guía se encuentra en continua actualización, por lo que irá evolucionando. Se agradece cualquier consejo, recomendación y si dejais una star se agradece


¿Qué vamos a ver? 🔎

🔹 1. Requisitos Previos
🔹 2. Configuración Inicial
🔹 3. Instalación de Ollama
🔹 4. Instalación de Docker
🔹 5. Instalación de Stable Diffusion
🔹 6. Ventajas e Inconvenientes


Requisitos Previos 💻

  • Un ordenador con Windows 10/11 (con soporte para WSL) / sistema operativo Linux nativo / virtualizado (Ubuntu 24.04.1 nativo)
  • Una tarjeta gráfica (GPU) compatible con CUDA (opcional para mejor rendimiento).

Configuración Inicial ✅

1. Configura WSL (Windows Subsystem for Linux)

⚠️ Este paso es sólo para las personas que quieran usar el sistema sin utilizar linux nativo

  1. Instala WSL y Ubuntu 24.04.1 :

    Nos dirijimos al símbolo del sistema (CMD) o PowerShell para introducir el siguiente comando:

    wsl --install

    Para evitar problemas, es necesario reiniciar el ordenador una vez finalice la instalación. Una vez reiniciado accederemos de nuevo a ubuntu con:

    wsl -d Ubuntu

    Una vez instalado introduciremos un nombre de usuario y contraseña (al escribirla, no se verá por pantalla)

  2. Actualización del sistema ubuntu

    ⚠️ Este paso es común para las personas que decidan optar por usar WSL o Linux nativo

    sudo apt-get update
    sudo apt-get upgrade

    Es recomendable tener actualizado el sistema para evitar problemas futuros en los siguientes pasos 😉


Instalación de OLLAMA

Cuando hemos terminado la configuración inicial ya podemos proceder a instalar OLLAMA (herramienta para ejecutar localmente modelos de redes neuronales) Gracias a esta herramienta podemos utilizar distintos modelos, nosotros utilizaremos para probar llama3.2

Procedemos a instalarla con el siguiente comando, el cuál podemos ver en la página oficial de Ollama:

curl -fsSL https://ollama.com/install.sh | sh

Para comprobar que la instalación se ha realizado correctamente, nos dirijimos a un navegador web (Chrome, Firefox, Opera..) y accedemos a la siguiente dirección: localhost:11434 en ella debe aparecernos un mensaje que pondrá: "Ollama is running"

Ahora vamos a proceder a descargar el modelo llama3.2, en la terminal, escribiremos el siguiente comando:

ollama pull llama3.2

Ya va siendo hora de probar, no? 😜 Para poder hacer una primera prueba desde la terminal, escribimos el comando:

ollama run llama3.2

Esto funciona... pero nosotros queremos una interfaz tipo ChatGPT que sea más fácil de gestionar.
Por ello, procederemos con los siguientes pasos donde utilizaremos open-webui 🔎


Instalación de Docker

Una forma rápida y sencilla es ejecutar sobre contenedores docker toda lo que necesitamos.
¿No sabes lo que es docker? Puedes verlo aquí.

1. Actualiza los paquetes y agrega la clave GPG de Docker:

sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Añadiremos la nueva source y actualizaremos

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

2. Instalación de componentes + docker

Instalamos docker para poder ejecutar open-webui 😎

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Lanzamos el contenedor con open-webui, es decir, controlaremos absolutamente todo desde una interfaz muy sencilla. No sólo, podemos usar el modelo Llama3.2 sino los que queramos a la vez, como iremos viendo.
⚠️ Si observamos el comando, le estamos indicando la url donde tenemos funcionando previamente OLLAMA

sudo docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main

Mediante el comando sudo docker ps podemos ver que está en funcionamiento:

Y si has llegado hasta aquí, ahora sí, puedes ir al a tu navegador web y poner la dirección: localhost:8080 aquí:

Crearemos una cuenta y ya podremos disfrutar de "correr" nuestro propio modelo de IA en nuestro PC con toda la privacidad que ello conlleva:

En la imagen salen otros modelos que debido a las pruebas realizado ya he instalado

3. Instalar más modelos + configuración

Nos dirijimos a esta sección : Panel de administración

Aquí debemos tener la siguiente configuración, en la que le indicamos la BASE_URL de OLLAMA:

Para instalar más modelos únicamente basta con ir a modelos y seleccionar el que mejor se adapte a nuestra máquina. Lo puedes ver de forma más gráfica aquí, hay que fijarse en el nombre exacto para que pueda ser instalado:

Selecciona el modelo en el chat para poder utilizarlo:

⚠️ Recuerda que cuanto más sea pesado(más parámetros admita) el modelo, será más completo pero tienes que tener en cuenta los requisitos de tu máquina


Instalación Stable Diffusion

Nos permitirá crear todo tipo de imágenes introduciendo el prompt que queramos
Comenzaremos con la parte de requisitos de instalación, por ello ejecutaremos el siguiente comando:

sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev git

Instalamos Pyenv

curl https://pyenv.run | bash

Establecemos la path necesaria

export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

Recargamos la consola, ya que hemos establecido el path

cd ~
source .bashrc

El comando pyenv -h ya debería de funcionar.

Instalamos python 3.10 + lo ponemos global

pyenv install 3.10
pyenv global 3.10

Ya tenemos los prerequisitos y ahora nos falta instalar stable diffusion:

mkdir stablediffusion
cd stablediffusion

Descargamos de Automatic1111 el instalador

wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh

Ponemos el permiso de ejecución y lo ejecutamos:

chmod +x webui.sh
./webui.sh --listen --api

Desde la la dirección locahost:7860 ya os dejará probarlo:

image

He llegado hasta aquí y quiero añadir stable diffusion a open-webui vamos a ello:

Primero vamos a esta sección de open-webui:

image

y después añadir lo siguiente:

image

Para finalizar, se usa de la siguiente manera, le pedimos que genere una imagen de X cosa y en la parte inferior seleccionaremos:

image


Ventajas e Inconvenientes

Una vez que he probado con totalidad el sistema, te dejo por aquí una tabla resumen con algunas ventajas e inconvenientes para tener en cuenta, para mi la principal ventaja que tiene es la privacidad que tiene respecto a servicios contratados y que en una misma conversación utilizando el símbolo de @ permite mencionar a otros modelos que tengas instalados.

Ventajas Inconvenientes
Control total sobre la configuración de tu IA. Requiere conocimientos técnicos avanzados.
No dependes de servicios en la nube. Puede consumir muchos recursos del sistema.
Personalización según tus necesidades. Configuración inicial puede ser compleja y lenta.
Ahorro en costes de uso de servicios externos. No es viable sin hardware compatible (GPU potente).

About

Tu propia IA en local sin coste (incluye interfaz + stable diffusion)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published