Hola, hoy vamos a aprender cómo podemos desplegar GPT4All, la alternativa open source y comercial de GPT4 que además consume menos recursos que Llama-2.
En este tutorial, vamos a aprender cómo podemos ejecutar GPT4All en una máquina de Docker y con una librería para poder obtener directamente los promts en código y utilizarlos fuera de un chat.
Es un modelo similar a llama-2 pero sin necesidad de utilizar GPU ni internet. Eso sí, necesitaremos más o menos unos 16GB de RAM para su correcto funcionamiento (podemos crear bloques swaps).
Si necesitas más información de GPT4All puedes consultarla en su web oficial: https://gpt4all.io/index.html
Lo primero que tenemos que hacer es tener Docker/Docker compose instalado en nuestro entorno (https://devcodelight.com/instalar-docker-y-docker-compose-en-oracle-linux/)
Una vez instalado, vamos a utilizar el siguiente contenedor docker compose.
- Creamos un archivo dentro de Dockerfile/container_python
Nuestro archivo llamado container_python contiene lo siguiente:
# syntax=docker/dockerfile:1 FROM python:3.8 #WORKDIR /app RUN apt-get update -y RUN apt install python3-pip -y RUN pip install --upgrade pip RUN pip install gpt4all RUN cd /tmp/ # Ejecutar un comando que mantenga el contenedor en ejecución CMD tail -f /dev/null
Con esta configuración ya tenemos un entorno preparado, ahora vamos a crear el archivo docker-compose.yml
version: "3.1" services: auto_chatgpt: build: context: ./Dockerfile dockerfile: container_python restart: unless-stopped container_name: auto_chatgpt working_dir: /app volumes: - ./app:/app
En este caso indicamos al contenedor que vamos a montarlo desde Dockerfile/container_python, además indicamos un volumen llamado app dónde pondremos nuestro archivo .py que vamos a crear.
Ahora creamos un archivo llamado gpt.py dentro de una carpeta app/
from gpt4all import GPT4All model = GPT4All("orca-mini-3b.ggmlv3.q4_0.bin") output = model.generate("Dime la capital de España") print(output)
Y de esta forma ya estaría listo para funcionar.
Ahora podemos lanzarlo con el siguiente comando:
docker compose up -d
Cómo no es auto-ejecutable, podremos ejecutar nuestro archivo entrando al contenedor:
docker exec -it auto_chatgpt /bin/bash
Ahora se abrirá la consola y nos deja ejecutar:
python gpt.py
Y nos dará el resultado por consola. La primera vez tarda un rato mientras descarga el modelo.
Esta es la estrucutura del proyecto:
*El gitignore lo he creado para que no me sincronice los archivos de caché.
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.