Bemerkung

Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauchen Sie mit anderen Enthusiasten tiefer in Raspberry Pi, Arduino und ESP32 ein.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Probleme nach dem Kauf und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Tutorials aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und Sneak Peeks.

  • Sonderrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Bereit, mit uns zu entdecken und zu gestalten? Klicken Sie auf [here] und treten Sie noch heute bei!

4. Text, Vision und Sprache mit Ollama

In dieser Lektion lernen Sie, wie Sie Ollama verwenden – ein Werkzeug zum lokalen Ausführen großer Sprach- und Vision-Modelle. Wir zeigen Ihnen, wie Sie Ollama installieren, ein Modell herunterladen und Fusion HAT+ damit verbinden.

Mit dieser Konfiguration kann Fusion HAT+ ein Kamerabild aufnehmen, und das Modell kann es sehen und beschreiben — Sie können beliebige Fragen zum Bild stellen, und das Modell antwortet in natürlicher Sprache.

1. Ollama (LLM) installieren und Modell herunterladen

Sie können selbst entscheiden, wo Sie Ollama installieren möchten:

  • Auf Ihrem Raspberry Pi (lokale Ausführung)

  • Oder auf einem anderen Computer (Mac/Windows/Linux) im gleichen lokalen Netzwerk

Empfohlene Modelle je nach Hardware

Sie können jedes Modell verwenden, das auf Ollama Hub verfügbar ist. Modelle gibt es in unterschiedlichen Größen (3B, 7B, 13B, 70B …). Kleinere Modelle laufen schneller und benötigen weniger Speicher, während größere Modelle eine bessere Qualität liefern, dafür aber leistungsfähigere Hardware erfordern.

Die folgende Tabelle hilft Ihnen dabei, die passende Modellgröße für Ihr Gerät auszuwählen.

Modellgröße

Erforderlicher Mindest-RAM

Empfohlene Hardware

~3B Parameter

8GB (16GB besser)

Raspberry Pi 5 (16GB) oder PC/Mac der Mittelklasse

~7B Parameter

16GB+

Pi 5 (16GB, gerade noch nutzbar) oder PC/Mac der Mittelklasse

~13B Parameter

32GB+

Desktop-PC / Mac mit viel RAM

30B+ Parameter

64GB+

Workstation / Server / GPU empfohlen

70B+ Parameter

128GB+

High-End-Server mit mehreren GPUs

Auf dem Raspberry Pi installieren

Wenn Sie Ollama direkt auf Ihrem Raspberry Pi ausführen möchten:

  • Verwenden Sie ein 64-Bit-Raspberry-Pi-OS

  • Nachdrücklich empfohlen: Raspberry Pi 5 (16GB RAM)

Führen Sie die folgenden Befehle aus:

# Install Ollama
curl -fsSL https://ollama.com/install.sh | sh

# Pull a lightweight model (good for testing)
ollama pull llama3.2:3b

# Quick run test (type 'hi' and press Enter)
ollama run llama3.2:3b

# Serve the API (default port 11434)
# Tip: set OLLAMA_HOST=0.0.0.0 to allow access from LAN
OLLAMA_HOST=0.0.0.0 ollama serve

Auf Mac / Windows / Linux installieren (Desktop-App)

  1. Laden Sie Ollama von Ollama Download Page herunter und installieren Sie es.

    ../_images/llm_ollama_download.png
  2. Öffnen Sie die Ollama-App, gehen Sie zum Model Selector und verwenden Sie die Suchleiste, um ein Modell zu finden. Geben Sie zum Beispiel llama3.2:3b ein (ein kleines und leichtgewichtiges Modell für den Einstieg).

    ../_images/llm_ollama_choose.png
  3. Sobald der Download abgeschlossen ist, geben Sie im Chatfenster etwas Einfaches wie „Hi“ ein. Ollama beginnt beim ersten Verwenden des Modells automatisch mit dem Herunterladen.

    ../_images/llm_olama_llama_download.png
  4. Gehen Sie zu Settings → aktivieren Sie Expose Ollama to the network. Dadurch kann Ihr Raspberry Pi über das lokale Netzwerk darauf zugreifen.

    ../_images/llm_olama_windows_enable.png

Warnung

Wenn eine Fehlermeldung wie diese erscheint:

Error: model requires more system memory ...

ist das Modell für Ihr Gerät zu groß. Verwenden Sie ein kleineres Modell oder wechseln Sie zu einem Computer mit mehr RAM.

2. Ollama testen

Sobald Ollama installiert ist und Ihr Modell bereitsteht, können Sie es mit einer minimalen Chat-Schleife schnell testen.

IP-Adresse festlegen

  1. Öffnen Sie das Beispielskript:

    cd ~/ai-lab-kit/llm/
    sudo nano llm_ollama.py
    
  2. Passen Sie die Parameter nach Bedarf an:

    • llm = Ollama(ip="localhost", model="llama3.2:3b"): Aktualisieren Sie sowohl ip als auch model entsprechend Ihrer eigenen Konfiguration.

      • ip: Wenn Ollama auf demselben Pi läuft, verwenden Sie localhost. Wenn Ollama auf einem anderen Computer im lokalen Netzwerk läuft, aktivieren Sie in Ollama Expose to network und setzen Sie ip auf die LAN-IP dieses Computers.

      • model: Muss exakt mit dem Modellnamen übereinstimmen, den Sie in Ollama heruntergeladen bzw. aktiviert haben.

Programm ausführen

cd ~/ai-lab-kit/llm
sudo python3 llm_ollama.py

Jetzt können Sie direkt im Terminal mit Fusion HAT+ chatten.

  • Sie können jedes Modell verwenden, das auf Ollama Hub verfügbar ist. Kleinere Modelle (z. B. moondream:1.8b, phi3:mini) werden jedoch empfohlen, wenn Sie nur 8–16GB RAM haben.

  • Stellen Sie sicher, dass das im Code angegebene Modell mit dem Modell übereinstimmt, das Sie bereits in Ollama heruntergeladen haben.

  • Geben Sie exit oder quit ein, um das Programm zu beenden.

  • Falls keine Verbindung hergestellt werden kann, stellen Sie sicher, dass Ollama läuft und sich beide Geräte im selben lokalen Netzwerk befinden, wenn Sie einen Remote-Host verwenden.

Code

from fusion_hat.llm import Ollama

INSTRUCTIONS = "You are a helpful assistant."
WELCOME = "Hello, I am a helpful assistant. How can I help you?"

# Change this to your computer IP, if you run it on your pi, then change it to localhost
llm = Ollama(
   ip="localhost",
   model="llama3.2:3b"
)

# Set how many messages to keep
llm.set_max_messages(20)
# Set instructions
llm.set_instructions(INSTRUCTIONS)
# Set welcome message
llm.set_welcome(WELCOME)

print(WELCOME)

while True:
   input_text = input(">>> ")

   # Response without stream
   # response = llm.prompt(input_text)
   # print(f"response: {response}")

   # Response with stream
   response = llm.prompt(input_text, stream=True)
   for next_word in response:
      if next_word:
            print(next_word, end="", flush=True)
   print("")

3. Vision Talk mit Ollama

In dieser Demo nimmt die Pi-Kamera jedes Mal ein neues Bild auf, sobald Sie eine Frage eingeben. Das Programm sendet Ihren eingegebenen Text zusammen mit dem neuen Foto über Ollama an ein lokales Vision-Modell und gibt anschließend die Antwort des Modells in einfachem Englisch als Stream aus. Dies ist eine minimale „See & Tell“-Basis, die Sie später um Farb-, Gesichts- oder QR-Erkennung erweitern können.

Bevor Sie beginnen

  1. Öffnen Sie die Ollama-App (oder starten Sie den Dienst) und stellen Sie sicher, dass ein visionfähiges Modell heruntergeladen wurde.

    • Wenn Sie über genügend Speicher verfügen (≥16GB RAM), können Sie llava:7b ausprobieren.

    • Wenn Sie nur 8GB RAM haben, sollten Sie ein kleineres Modell wie moondream:1.8b oder granite3.2-vision:2b bevorzugen.

    ../_images/llm_ollama_image_model.png

Demo ausführen

  1. Wechseln Sie in den Beispielordner und starten Sie das Skript:

    cd ~/ai-lab-kit/llm
    python3 llm_ollama_with_image.py
    
  2. Was beim Ausführen passiert:

    • Das Programm zeigt eine Begrüßungszeile an und wartet auf Ihre Eingabe (>>>).

    • Jedes Mal, wenn Sie etwas eingeben (z. B. „hello“, „Is there yellow?“, „Any faces?“, „What is on the desk?“), passiert Folgendes:

      • Es wird ein Foto mit der Pi-Kamera aufgenommen (gespeichert unter /tmp/llm-img.jpg).

      • Ihr Text zusammen mit dem Foto wird über Ollama an das Vision-Modell gesendet.

      • Die Antwort des Modells wird als Stream im Terminal ausgegeben.

    • Geben Sie exit oder quit ein, um das Programm zu beenden.

Code

from fusion_hat.llm import Ollama
from picamera2 import Picamera2
import time

'''
You need to setup ollama first, see llm_local.py

You need at leaset 8GB RAM to run llava:7b large multimodal model
'''

INSTRUCTIONS = "You are a helpful assistant."
WELCOME = "Hello, I am a helpful assistant. How can I help you?"

llm = Ollama(
   ip="localhost",          # e.g., "192.168.100.145" if remote
   model="llava:7b"         # change to "moondream:1.8b" or "granite3.2-vision:2b" for 8GB RAM
)

# Set how many messages to keep
llm.set_max_messages(20)
# Set instructions
llm.set_instructions(INSTRUCTIONS)
# Set welcome message
llm.set_welcome(WELCOME)

# Init camera
camera = Picamera2()
config = camera.create_still_configuration(
   main={"size": (1280, 720)},
)
camera.configure(config)
camera.start()
time.sleep(2)

print(WELCOME)

while True:
   input_text = input(">>> ")

   # Capture image
   img_path = '/tmp/llm-img.jpg'
   camera.capture_file(img_path)

   # Response without stream
   # response = llm.prompt(input_text, image_path=img_path)
   # print(f"response: {response}")

   # Response with stream
   response = llm.prompt(input_text, stream=True, image_path=img_path)
   for next_word in response:
      if next_word:
            print(next_word, end="", flush=True)
   print("")

Troubleshooting

  • Ich erhalte eine Fehlermeldung wie: `model requires more system memory …`.

    • Das bedeutet, dass das Modell für Ihr Gerät zu groß ist.

    • Verwenden Sie ein kleineres Modell wie moondream:1.8b oder granite3.2-vision:2b.

    • Alternativ können Sie auf einen Computer mit mehr RAM wechseln und Ollama im Netzwerk verfügbar machen.

  • Der Code kann keine Verbindung zu Ollama herstellen (connection refused).

    Überprüfen Sie Folgendes:

    • Stellen Sie sicher, dass Ollama läuft (ollama serve oder die Desktop-App geöffnet ist).

    • Wenn Sie einen entfernten Computer verwenden, aktivieren Sie Expose to network in den Ollama-Einstellungen.

    • Prüfen Sie, ob ip="..." im Code mit der korrekten LAN-IP übereinstimmt.

    • Stellen Sie sicher, dass sich beide Geräte im selben lokalen Netzwerk befinden.

  • Meine Pi-Kamera nimmt kein Bild auf.

    • Prüfen Sie, ob Picamera2 installiert ist und mit einem einfachen Testskript funktioniert.

    • Kontrollieren Sie, ob das Kamerakabel korrekt angeschlossen ist und in raspi-config aktiviert wurde.

    • Stellen Sie sicher, dass Ihr Skript Schreibrechte für den Zielpfad besitzt (/tmp/llm-img.jpg).

  • Die Ausgabe ist zu langsam.

    • Kleinere Modelle antworten schneller, liefern jedoch einfachere Antworten.

    • Sie können die Kameraauflösung reduzieren (z. B. 640×480 statt 1280×720), um die Bildverarbeitung zu beschleunigen.

    • Schließen Sie andere Programme auf dem Pi, um CPU- und RAM-Ressourcen freizugeben.