Utilizar y desplegar GPT4ALL alternativa a Llama-2 y GPT4 pero para PCs con bajos recursos con Python y Docker

Tiempo de lectura: 2 minutos

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é.

Deja un comentario