Dein Warenkorb ist gerade leer!
Anleitung zur Offline-KI
auf einem Raspberry PI 5 für STM32 Programmierung
Raspberry Pi System updaten:sudo apt update && sudo apt upgrade -ysudo 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:
| Modell | Typ | Vorteile |
|---|---|---|
llama2:7b | generalistisch | funktioniert, aber sehr groß |
mistral:7b | kompakter | gute Qualität, läuft mit Quantisierung |
codellama:7b | code-optimiert | gut für Programmierung |
tinyllama | sehr kompakt | schnell, 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:

Schreibe einen Kommentar