Springe zum Inhalt

mit lokaler KI „spielen“

Ich finde den Gedanken sehr interessant, einen potenten PC im Haus zu haben, den mensch bei Bedarf einschaltet und dann von beliebigen anderen Geräten im Haushalt dessen angebotenes KI-Modell bequem á la chatgpt nutzen kann.

Dafür habe ich einen Ryzen 7700X mit 32 GB DDR5-RAM und einer GeForce 4800.

Das ist kein ultimatives KI-Setup, auch weil die Grafikkarte nur 16 GB vram hat, aber zum "Spielen" also zum Ausprobieren und schauen, was geht, was fehlt und wo es hingeht, reicht es allemal.

Hier meine kleinen Notizen:

Ich habe ubuntu 26.04 lts installiert (später vielleicht auf ubuntu server ohne gui gehen). Danach habe ich mich dafür entschieden, llama.cpp auszuprobieren. Im Vergleich zu ollama soll das schwieriger zu konfigurieren sein, aber ich wollte ihm mal ne Chance geben.

Mit dieser Anleitung von Frank -klick- hat es auf Anhieb überraschend einfach funktioniert. Meine kleinen Anpassung wegen neuer Versionen sahen dann so aus.



# System aktualisieren: Paketlisten abrufen und bereits installierte Pakete auf Updates prüfen.
sudo apt update && sudo apt upgrade -y

# Basis-Entwicklungsumgebung installieren:
# Benötigt für: Compilierung von Code, Git für Versionskontrolle, CMake für Build-System,
# sowie CUDA-spezifische Bibliotheken (libomp, curl, zlib) für die spätere Installation.
sudo apt install build-essential git cmake libomp-dev libcurl4-openssl-dev curl zlib1g-dev

# CUDA-Repo hinzufügen:
# Download der GPG-Schlüsselring-Debian-Paket, um den offiziellen NVIDIA-Softwarequellen zu aktivieren.
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2604/x86_64/cuda-keyring_1.1-1_all.deb

# Den Schlüsselring installieren, damit "apt" jetzt CUDA-Pakete findet.
sudo dpkg -i cuda-keyring_1.1-1_all.deb

# Repo erneut aktualisieren, damit CUDA-Pakete sichtbar werden.
sudo apt update && sudo apt upgrade -y

# Versuchsweise CUDA Toolkit 12.6 installieren (dies wird oft überschrieben oder ignoriert).
sudo apt install cuda-toolkit-12-6

# Suchen nach dem aktuellen CUDA-Paketnamen.
sudo apt-cache search cuda-toolkit

# Tatsächliche Installation des neuesten CUDA Toolkits (hier 13.1).
sudo apt install cuda-toolkit-13-1

# Build-Abhängigkeiten für CUDA-Bibliotheken (cublas) installieren.
sudo apt install build-essential git cmake libcublas-dev libomp-dev libcurl4-openssl-dev curl zlib1g-dev

# Überprüfen, ob libcublas-Pakete verfügbar sind.
sudo apt-cache search libcublas

# Installieren der spezifischen CUDA-Bibliothek für CUDA 13.1.
sudo apt install build-essential git cmake libcublas-dev-13-1 libomp-dev libcurl4-openssl-dev curl zlib1g-dev

# Arbeitsverzeichnis für das LLM-Projekt erstellen.
mkdir ~/llama
# In das Verzeichnis wechseln.
cd ~/llama

# Den Open-Source-Code für LLaMA von der GitHub-Repository klonen.
git clone https://github.com/ggerganov/llama.cpp.git
# In das geklonte Projekt wechseln.
cd llama.cpp

# Konfiguration des Build-Prozesses starten:
# Aktiviert CUDA-Geschwindigkeitsoptimierung (-DGGML_CUDA=ON).
sudo cmake .. -DGGML_CUDA=ON
# Hinweis: Da cmake hier als root ausgeführt wird, passiert dies oft ohne Ausgabe oder im Hintergrund,
# bevor das Build-Verzeichnis erstellt wird (siehe unten).

# Verzeichnisinhalt anzeigen (zeigt die Struktur nach dem Klonen).
ls

# Build-Verzeichnis innerhalb des Projekts erstellen.
mkdir build
# In das Build-Verzeichnis wechseln (Best Practice bei cmake, um Code und Build getrennt zu halten).
cd build

# Konfiguration erneut aufrufen (diesmal korrekt im build-Verzeichnis, um Dateien zu generieren).
sudo cmake .. -DGGML_CUDA=ON
# Kompilierung des Codes starten:
# --build . : Startet den Build im aktuellen Verzeichnis
# --config Release : Baut die Release-Version (optimiert)
# -j $(nproc) : Nutzt alle verfügbaren CPU-Kerne parallel für schnelleres Compilieren.
sudo cmake --build . --config Release -j $(nproc)

# Zielverzeichnis für heruntergeladene Modelle erstellen.
mkdir /opt/models
# Als root das Zielverzeichnis erstellen (falls vorherige Fehlschläge existierten).
sudo mkdir /opt/models
# Berechtigungen setzen (777): Jeder kann lesen, schreiben und ausführen.
# ⚠️ Sicherheitshinweis: 777 ist sehr offen; normalerweise reicht 755 oder 770 für Modelle.
chmod 777 /opt/models
# Berechtigungen als root erneut setzen (sicherstellen).
sudo chmod 777 /opt/models
# Zurück in das Modelle-Verzeichnis wechseln.
cd /opt/models/

# ============================================================================
# Hab dann diese Modelle heruntergeladen (und bisher nur Qwen3.5-9B-Q4_K_M.gguf getestet)
# - Qwen3.5-9B-DeepSeek-V4-Flash-Q4_K_M.gguf
# - Qwen3.5-9B-Q4_K_M.gguf
# - gemma-4-12b-it-Q4_K_M.gguf
# - gemma-4-E4B-it-Q4_K_M.gguf
# ============================================================================

# Alle Dateien mit der Endung .gguf aus dem Download-Ordner in das aktuelle Verzeichnis verschieben.
mv ~/Downloads/*.gguf ./

# Installationsbefehle aus dem vorherigen Build-Projekt in das Systempfad /usr/local/libexec/llama installieren.
sudo cmake --install .
# Bibliothekspfade neu laden, damit das System die neu kompilierten CUDA-Bibliotheken sofort finden kann.
sudo ldconfig 

# Startbefehl für den LLM-Server:
# --model : Pfad zum spezifischen Modell (Qwen3.5).
# --host 0.0.0.0 : Macht den Server auf allen Netzwerkschnittstellen erreichbar (nicht nur localhost).
# --port 8080 : Der Port, auf dem der Server lauscht.
llama-server --model /opt/models/Qwen3.5-9B-Q4_K_M.gguf --host 0.0.0.0 --port 8080

... sieht dann so aus:


Anmerkung:

Wenn die CUDA-Driver noch nicht installiert sind, sollte das jetzt nachgeholt werden. In diesem Konfigurator kannst du dein Betriebssystem und eine Installationsmethode auswählen, um dir die Befehle für deinen Server anzeigen zu lassen.