Skip to main content

Inferencia Distribuida del modelo DeepSeek en Raspberry Pi

Introducción

Este wiki explica cómo desplegar el modelo DeepSeek en múltiples Raspberry Pi AI Boxes con distributed-llama. En este wiki, utilicé una Raspberry Pi con 8GB de RAM como nodo raíz y tres Raspberry Pis con 4GB de RAM como nodos trabajadores para ejecutar el modelo DeepSeek 8B. La velocidad de inferencia alcanzó 6.06 tokens por segundo.

Preparar Hardware

reComputer AI R2130

Preparar software

actualizar el sistema:

Abre una terminal con Ctrl+Alt+T e ingresa el comando como se muestra a continuación:

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
sudo apt update
sudo apt full-upgrade

Instalar distributed llama en tu nodo raíz y nodos trabajadores

Abre una terminal con Ctrl+Alt+T e ingresa el comando como se muestra a continuación para instalar distributed-llama:

git clone https://github.com/b4rtaz/distributed-llama.git
cd distributed-llama
make dllama
make dllama-api

Ejecutar en tu nodo trabajador

Luego ingresa el comando como se muestra a continuación para hacer que los nodos trabajadores funcionen:

cd distributed-llama
sudo nice -n -20 ./dllama worker --port 9998 --nthreads 4

Ejecutar en tu nodo raíz

Crear y activar entorno virtual de python

cd distributed-llama
python -m venv .env
source .env/bin/acitvate

Instalar librerías necesarias

pip install numpy==1.23.5
pip install tourch=2.0.1
pip install safetensors==0.4.2
pip install sentencepiece==0.1.99
pip install transformers

Instalar modelo deepseek 8b q40

git lfs install
git clone https://huggingface.co/b4rtaz/Llama-3_1-8B-Q40-Instruct-Distributed-Llama

Ejecutar inferencia distribuida en nodo raíz

Nota: --workers 10.0.0.139:9998 10.0.0.175:9998 10.0.0.124:9998 es la IP de los trabajadores.

cd ..
./dllama chat --model ./Llama-3_1-8B-Q40-Instruct-Distributed-Llama/dllama_model_deepseek-r1-distill-llama-8b_q40.m --tokenizer ./Llama-3_1-8B-Q40-Instruct-Distributed-Llama/dllama_tokenizer_deepseek-r1-distill-llama-8b.t --buffer-float-type q80 --prompt "What is 5 plus 9 minus 3?" --nthreads 4 --max-seq-len 2048 --workers 10.0.0.139:9998 10.0.0.175:9998 10.0.0.124:9998 --steps 256

Nota: Si quieres probar la velocidad de inferencia, por favor usa el siguiente comando.

cd ..
./dllama inference --model ./model/dllama_model_deepseek-r1-distill-llama-8b_q40.m --tokenizer ./model/dllama_tokenizer_deepseek-r1-distill-llama-8b.t --buffer-float-type q80 --prompt "What is 5 plus 9 minus 3?" --nthreads 4 --max-seq-len 2048 --workers 10.0.0.139:9998 10.0.0.175:9998 10.0.0.124:9998 --steps 256

Resultado

Lo siguiente es la inferencia del modelo DeepSeek Llama 8b usando 4 Raspberry Pi.

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.

Loading Comments...