Hemos demostrado anteriormente que puede ejecutar ChatGPT en una Raspberry Pi, pero el problema es que Pi solo proporciona el lado del cliente y luego envía todas sus indicaciones al poderoso servidor de otra persona en la nube. Sin embargo, es posible crear una experiencia de chatbot de IA similar que se ejecute localmente en una Raspberry Pi de 8 GB y utilice el mismo tipo de modelos de lenguaje LLaMA que impulsan la IA en Facebook y otros servicios.
El corazón de este proyecto es llama.cpp de Georgi Gerganov. Escrito en una noche, este modelo C/C++ es lo suficientemente rápido para uso general y es fácil de instalar. Se ejecuta en máquinas Mac y Linux y, en este tutorial, modificaré el proceso de instalación de Gerganov para que los modelos se puedan ejecutar en un frambuesa pi 4. Si desea un chatbot más rápido y tiene una computadora con una serie RTX 3000 o una GPU más rápida, consulte nuestro artículo sobre cómo ejecutar un bot similar a ChatGPT en tu PC.
Manejo de expectativas
Antes de que te dirijas a este proyecto, necesito manejar tus expectativas. LLaMA en Raspberry Pi 4 es lento. La carga de un mensaje de chat puede tardar unos minutos, y las respuestas a las preguntas pueden tardar el mismo tiempo. Si la velocidad es lo que anhelas, usa una computadora de escritorio/portátil Linux. Este es más un proyecto divertido que un caso de uso de misión crítica.
Para este proyecto necesitarás
- Frambuesa Pi 4 8GB
- PC con 16 GB de RAM con Linux
- Unidad USB de 16 GB o más grande formateada como NTFS
Configuración de modelos LLaMA 7B usando una PC con Linux
La primera sección del proceso es configurar llama.cpp en una PC con Linux, descargar los modelos LLaMA 7B, convertirlos y luego copiarlos a una unidad USB. Necesitamos la potencia extra de la PC con Linux para convertir el modelo, ya que los 8 GB de RAM en una Raspberry Pi no son suficientes.
1. En su PC con Linux, abra una terminal y asegúrese de que git esté instalado.
sudo apt update && sudo apt install git
2. Usa git para clonar el repositorio.
git clone https://github.com/ggerganov/llama.cpp
3. Instale una serie de módulos de Python. Estos módulos funcionarán con el modelo para crear un bot de chat.
python3 -m pip install torch numpy sentencepiece
4. Asegúrese de tener instalado g++ y build essential. Estos son necesarios para crear aplicaciones C.
sudo apt install g++ build-essential
5. En el directorio de cambio de terminal a llama.cpp.
cd llama.cpp
6. Genere los archivos del proyecto. Presiona Enter para ejecutar.
make
7. Descarga el torrent Llama 7B usando este enlace. Usé qBittorrent para descargar el modelo.
magnet:?xt=urn:btih:ZXXDAUWYLRUXXBHUYEMS6Q5CE5WA3LVA&dn=LLaMA
8. Refine la descarga para que solo se descarguen los archivos 7B y tokenizer. Las otras carpetas contienen modelos más grandes que pesan cientos de gigabytes.
9. Copie 7B y los archivos del tokenizador en /llama.cpp/models/.
10 Abra una terminal y vaya a la carpeta llama.cpp. Esto debería estar en su directorio de inicio.
cd llama.cpp
11 Convierte el modelo 7B a formato ggml FP16. Dependiendo de su PC, esto puede tomar un tiempo. Solo este paso es la razón por la que necesitamos 16 GB de RAM. Carga todo el archivo models/7B/consolidated.00.pth de 13 GB en la RAM como un modelo pytorch. Probar este paso en una Raspberry Pi 4 de 8 GB provocará un error de instrucción ilegal.
python3 convert-pth-to-ggml.py models/7B/ 1
12 Cuantifique el modelo a 4 bits. Esto reducirá el tamaño del modelo.
python3 quantize.py 7B
13 Copie el contenido de /models/ en la unidad USB.
Ejecutando LLaMA en Raspberry Pi 4
En esta sección final, repito la configuración de llama.cpp en la Raspberry Pi 4, luego copio los modelos usando una unidad USB. Luego cargo una sesión de chat interactivo y le hago a «Bob» una serie de preguntas. Simplemente no le pidas que escriba ningún código de Python. El paso 9 de este proceso se puede ejecutar en Raspberry Pi 4 o en la PC con Linux.
1. Arranca tu Raspberry Pi 4 al escritorio.
2. Abra una terminal y asegúrese de que git esté instalado.
sudo apt update && sudo apt install git
3. Usa git para clonar el repositorio.
git clone https://github.com/ggerganov/llama.cpp
4. Instale una serie de módulos de Python. Estos módulos funcionarán con el modelo para crear un bot de chat.
python3 -m pip install torch numpy sentencepiece
5. Asegúrese de tener instalado g++ y build essential. Estos son necesarios para crear aplicaciones C.
sudo apt install g++ build-essential
6. En la terminal, cambie el directorio a llama.cpp.
cd llama.cpp
7. Genere los archivos del proyecto. Presiona Enter para ejecutar.
make
8. Inserte la unidad USB y copie los archivos en /modelos/ Esto sobrescribirá cualquier archivo en el directorio de modelos.
9. Inicie una sesión de chat interactivo con «Bob». Aquí es donde se requiere un poco de paciencia. Aunque el modelo 7B es más liviano que otros modelos, sigue siendo un modelo bastante pesado para que Raspberry Pi lo digiera. Cargar el modelo puede tardar unos minutos.
./chat.sh
10 Hágale una pregunta a Bob y presione Entrar. Le pedí que me hablara de Jean-Luc Picard de Star Trek: The Next Generation. Para salir presione CTRL + C.