Anleitung zur Offline-KI

auf einem Raspberry PI 5 für STM32 Programmierung

Raspberry Pi System updaten:
sudo apt update && sudo apt upgrade -y
sudo apt install git build-essential curl python3 python3-pip -y

Jetzt brauchen wir ja noch ein Model, am besten von hier:
🔗 Direktlink zu CodeLlama 7B Code Q4_K_M (GGUF):
https://huggingface.co/TheBloke/CodeLlama-7B-Instruct-GGUF

(Nicht verwechseln mit „base“ oder „chat“ – du brauchst instruct oder code.)
Allgemeine Info`s für Modelle:

ModellTypVorteile
llama2:7bgeneralistischfunktioniert, aber sehr groß
mistral:7bkompaktergute Qualität, läuft mit Quantisierung
codellama:7bcode-optimiertgut für Programmierung
tinyllamasehr kompaktschnell, aber weniger genau
So jetzt brauchen wir noch Docker, so geht`s:

sudo apt update
sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

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

sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER

Um nicht alles von Hand zu Schreiben, nutze diesen Link (das Model ist schon enthalten) und entpacke es auf deinem Raspi und gehe in das Verzeichnis: stm32-ki-webui-docker

Hier führe jetzt folgendes aus:
docker-compose up --build

"auf meinem MAC mit M3, mag er diesen Befehl nicht und muss dann diesen nehmen: docker compose up --build"
Leider streikt er bei dem llama-cpp-xx, hier kann man dann in Python eine env erstellen und es dann darüber laufen lassen. Das funktioniert, habe es gerade mit dem DeepSeek Coder V2 mit knapp 17GB erstellt. 

Wenn fertig ist, gehe einfach auf http://<deine Raspi-IP>:5000
Voila du kannst die KI nutzen.

Und wer das als Docker Image weitergeben oder nutzen möchte, muss dies dann noch tun:
docker build -t stm32ki .

Exportieren mit:
docker save stm32ki | gzip > stm32ki.tar.gz

Im anderen Docker laufen lassen:
gunzip -c stm32ki.tar.gz | docker load
docker run -p 5000:5000 -p 88:88 stm32ki

Wenn man keinen Docker daraus machen will und es einfach mal so lokal Testen will:
(für die API):
llama-cpp-python --model ./models/codellama-7b-Instruct.Q4_K_M.gguf --host 127.0.0.1 --port 8000

(für den Webserver):
cd ~/stm32-ki/web
python3 app.py

(für den Webzugriff):
http://<raspi-IP>t:5000

Jetzt brauchst du nur noch der KI mitteilen was du haben willst, hier ein Beispiel Kontext:
Ich arbeite mit einem STM32H743IIT6.
Mein Ziel: Touchdaten auslesen und per UART senden
GT911-Touchscreen ist an I2C4 (PB9/PH7)
INT ist auf PH7, RST auf PD11
Ich verwende STM32CubeIDE

Dieser KI muss man eigentlich nichts mehr beibringen, da sie schon von Meta und Co. trainiert wurde, auf (C, C++, Python, sogar STM32/CubeMX/Arduino-ähnliches Zeug).

Tags:

Comments

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Search


Categories


Recent Posts


Tags