Ollama vs. llama.cpp
Was dieser Artikel über Ollama vs. llama.cpp behandelt
- Wo die Gemeinsamkeiten und Unterschiede zwischen Ollama und llama.cpp liegen.
- Welche Software sich für welchen Anwendungsfall besser eignet.
- Wie Installation, Performance, Modell-Unterstützung und API verglichen werden.
- Wann Du auf Ollama setzen solltest und wann llama.cpp die bessere Wahl ist.
- Welche typischen Stolpersteine bei der Wahl auftreten und wie Du sie vermeidest.
Einleitung: Ollama vs. llama.cpp verständlich erklärt
Ollama und llama.cpp sind zwei der wichtigsten Tools, um lokale Sprachmodelle auf eigener Hardware zu betreiben. Beide basieren auf derselben zugrundeliegenden Inferenz-Engine, nehmen aber völlig unterschiedliche Blickwinkel ein. Ollama ist ein kompletter Modellserver mit einfacher Installation, eigener API und Modellverwaltung. llama.cpp ist die zugrundeliegende C++-Bibliothek, die maximale Flexibilität und Performance bietet, aber mehr manuelle Konfiguration verlangt.
Dieser Artikel richtet sich an Entwicklerinnen und Entwickler, die lokale KI betreiben wollen und vor der Wahl stehen, welches Tool sie nutzen. Du solltest verstehen, was lokale KI ist und wie Quantisierung funktioniert. Wer Grundlagen der Programmierung lernen möchte, findet auf IRC-Coding.de Tutorials zu Python, C# und mehr.
Warum brauche ich diesen Vergleich?
Stell Dir vor, Du willst ein 7B-Modell lokal betreiben. Du suchst nach der passenden Software und findest Ollama und llama.cpp. Beide klingen ähnlich, beide können GGUF-Modelle laden, beide laufen auf CPU und GPU. Welche sollst Du wählen?
Die falsche Wahl kostet Dich Zeit und Nerven. Ollama ist einfacher, aber weniger flexibel. llama.cpp ist mächtiger, aber komplexer. Wer nur schnell ein Modell testen will, ist mit Ollama in fünf Minuten startklar. Wer maximale Performance braucht oder spezielle Hardware nutzt, kommt an llama.cpp nicht vorbei.
Ollama vs. llama.cpp kurz erklärt
Ollama ist ein Modellserver, der llama.cpp als Inferenz-Engine nutzt und darum eine komplette Plattform baut: Modellverwaltung, REST API, CLI, Docker-Integration. llama.cpp ist die nackte Engine, die Du direkt kompilieren und aufrufen kannst, mit allen Optimierungsmöglichkeiten, aber ohne Komfortfunktionen.
Der Kerngedanke lautet: Ollama ist das fertige Auto, llama.cpp ist der Motor. Beides hat seine Daseinsberechtigung.
Für wen ist dieser Vergleich gedacht?
- Entwicklerinnen und Entwickler, die lokale KI betreiben wollen und die passende Software wählen müssen.
- Systemadministratoren, die Inferenz-Server aufsetzen und zwischen Komfort und Kontrolle abwägen.
- Hobby-Bastler, die erste Schritte mit lokaler KI machen und verstehen wollen, welche Tooling-Ebene sie brauchen.
- Forscherinnen und Forscher, die Performance-Optimierungen vornehmen und maximale Kontrolle brauchen.
Vorkenntnisse in lokaler KI, GGUF-Modellen und grundlegender Kommandozeilen-Bedienung sind hilfreich.
Wichtige Begriffe rund um Ollama und llama.cpp
- Ollama - Modellserver mit CLI, API und Modellverwaltung. Wann nützlich: wenn Du schnell starten willst.
- llama.cpp - C++-Bibliothek für GGUF-Inferenz. Wann nützlich: wenn Du maximale Kontrolle brauchst.
- GGUF - Dateiformat für quantisierte Modelle. Wann nützlich: das Standardformat für beide Tools.
- Quantisierung - Reduzierung der Modellgröße. Wann nützlich: um Modelle auf begrenzter Hardware zu betreiben.
- CUDA / ROCm / Metal - GPU-Beschleunigung. Wann nützlich: für schnellere Inferenz.
- Docker - Container-Plattform. Wann nützlich: Ollama lässt sich einfach in Docker betreiben.
- OpenAI-kompatible API - API-Standard, den Ollama unterstützt. Wann nützlich: für Kompatibilität mit bestehenden Tools.
Direkter Vergleich: Ollama vs. llama.cpp
| Eigenschaft | Ollama | llama.cpp |
|---|---|---|
| Installation | Ein Befehl, fertig | Kompilieren aus Source |
| Modell-Download | ollama pull llama3.1 | Manuell GGUF herunterladen |
| CLI | Ja, intuitiv | Ja, aber technisch |
| REST API | Ja, OpenAI-kompatibel | Nur in llama-server, rudimentär |
| Modellverwaltung | Automatisch, eigene Bibliothek | Manuell, Datei-Management |
| Docker-Integration | Offizielles Image | Community-Dockerfiles |
| GPU-Unterstützung | CUDA, ROCm, Metal | CUDA, ROCm, Metal, Vulkan, SYCL |
| Performance | Gut, aber Overhead durch Server | Maximal, direkter Aufruf |
| Flexibilität | Eingeschränkt auf Ollama-Features | Vollständig, alle Parameter zugänglich |
| Quantisierungs-Optionen | Vordefinierte Quants | Alle Quants, auch experimentell |
| Custom Modelle | Über Modelfile | Direktes Laden jeder GGUF |
| Community | Groß, aktiv | Groß, technisch |
| Lernkurve | Flach | Steil |
Installation im Vergleich
Ollama installieren
# Linux
curl -fsSL https://ollama.com/install.sh | sh
# macOS
brew install ollama
# Windows
# Download von ollama.com
# Modell laden und starten
ollama pull llama3.1
ollama run llama3.1
Ollama ist nach einem Befehl startklar. Die GPU-Erkennung erfolgt automatisch, Modelle werden aus der eigenen Bibliothek geladen.
llama.cpp installieren
# Source klonen
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
# Mit CUDA bauen
make GGML_CUDA=1
# Oder mit CPU
make
# Modell herunterladen (manuell)
wget https://huggingface.co/bartowski/Llama-3.1-8B-Instruct-GGUF/resolve/main/Llama-3.1-8B-Instruct-Q4_K_M.gguf
# Inferenz starten
./llama-cli -m Llama-3.1-8B-Instruct-Q4_K_M.gguf -p "Hallo, wie geht es Dir?"
llama.cpp muss aus dem Source gebaut werden. Die GPU-Unterstützung muss beim Bau aktiviert werden. Modelle müssen manuell als GGUF-Datei heruntergeladen werden.
Performance im Vergleich
Ollama nutzt llama.cpp als Inferenz-Engine, daher ist die rohe Performance ähnlich. Der Unterschied liegt im Overhead:
- Ollama läuft als Server-Prozess, der Anfragen über HTTP annimmt. Das kostet etwas Latenz, ist aber für die meisten Anwendungen vernachlässigbar.
- llama.cpp kann direkt als Binary aufgerufen werden, ohne HTTP-Layer. Das ist minimal schneller, besonders bei einzelnen Inferenz-Aufrufen.
Für Benchmarks ist llama.cpp besser geeignet, weil Du alle Parameter direkt kontrollieren kannst. Für produktive Workloads ist Ollama besser geeignet, weil der Server-Overhead durch Caching und Parallelisierung ausgeglichen wird.
Wichtige Performance-Parameter, die nur in llama.cpp direkt zugänglich sind:
--n-gpu-layers: Anzahl der Layer auf der GPU--threads: CPU-Threads--batch-size: Batch-Größe für Prompt-Verarbeitung--ctx-size: Kontextlänge--rope-freq-scale: RoPE-Skalierung für lange Kontexte
Ollama erlaubt einige dieser Parameter über Modelfiles, aber nicht alle. Wer feine Kontrolle braucht, nutzt llama.cpp direkt.
API im Vergleich
Ollama API
Ollama bringt eine REST API mit, die OpenAI-kompatibel ist:
curl http://localhost:11434/api/chat -d '{
"model": "llama3.1",
"messages": [{"role": "user", "content": "Hallo"}]
}'
Die API unterstützt Streaming, Function Calling, Bild-Eingabe und ist mit vielen Tools kompatibel (Open WebUI, LangChain, n8n).
llama.cpp API
llama.cpp bringt llama-server, einen einfachen HTTP-Server:
./llama-server -m model.gguf --port 8080
Die API ist rudimentärer als die von Ollama. Es gibt keine Modellverwaltung, kein automatisches Laden, keine OpenAI-Kompatibilität out-of-the-box. Wer eine vollständige API braucht, ist mit Ollama besser bedient.
Modell-Unterstützung
Ollama hat eine eigene Modell-Bibliothek, aus der Du Modelle mit ollama pull laden kannst. Die Auswahl ist groß, aber auf Modelle beschränkt, die Ollama kuratiert.
llama.cpp kann jede GGUF-Datei laden, die es gibt. Das ist flexibler, besonders für experimentelle Modelle oder eigene Fine-Tunes, die nicht in Ollamas Bibliothek stehen.
Wer eigene Modelle trainiert oder spezielle Quants braucht, ist mit llama.cpp besser bedient. Wer Standard-Modelle wie Llama, Mistral oder Qwen nutzen will, ist mit Ollama einfacher.
Praxisbeispiel: Wann welches Tool?
Szenario 1: Schneller Start mit lokaler KI
Du willst lokal KI ausprobieren, hast eine GPU mit 8 GB VRAM und willst in 10 Minuten chatten. Ollama ist die richtige Wahl. Ein Befehl installiert, ein Befehl lädt das Modell, ein Befehl startet den Chat.
Szenario 2: Maximale Performance für Benchmarking
Du willst verschiedene Modelle und Quants benchmarken, mit voller Kontrolle über alle Parameter. llama.cpp ist die richtige Wahl. Du kompilierst mit den passenden Flags, lädst jede GGUF-Datei und kontrollierst jeden Parameter.
Szenario 3: Produktiver Inferenz-Server
Du willst einen Inferenz-Server für mehrere Nutzer betreiben, mit API, Authentifizierung und Monitoring. Ollama ist die richtige Wahl. Die REST API, die Docker-Integration und die Modellverwaltung machen den Betrieb einfach.
Szenario 4: Eigenes Fine-Tune-Modell
Du hast ein eigenes Fine-Tune trainiert und willst es lokal betreiben. llama.cpp ist die richtige Wahl. Du konvertierst das Modell in GGUF, lädst es direkt und hast volle Kontrolle. Ollama kann Custom-Modelle über Modelfiles laden, aber der Prozess ist umständlicher.
Typische Stolpersteine bei der Wahl
- Ollama für maximale Performance genutzt: Wer alle Parameter kontrollieren will, ist mit Ollama eingeschränkt. Lieber llama.cpp direkt nutzen.
- llama.cpp für einfachen Chat genutzt: Wer nur chatten will, ist mit llama.cpp überfordert. Lieber Ollama nutzen.
- GPU-Support vergessen: Bei llama.cpp muss CUDA/ROCm beim Bau aktiviert werden. Wer das vergisst, hat nur CPU-Inferenz.
- Falsches GGUF-Format: Nicht jedes GGUF läuft auf jeder Hardware. Ollama wählt automatisch den passenden Quant, bei llama.cpp musst Du selbst wählen.
- Keine Modellverwaltung bei llama.cpp: Wer viele Modelle nutzt, muss selbst Ordnung halten. Ollama übernimmt das automatisch.
Weiterführende Links und Infos zu Ollama vs. llama.cpp
- Ollama installieren - Schritt-für-Schritt-Anleitung.
- llama.cpp einrichten - Kompilieren und starten.
- Quantisierung Grundlagen - Wie Quants funktionieren.
- Ollama vs. LM Studio - Vergleich mit einer GUI-Alternative.
- Lokale KI Grundlagen - Was lokale KI ist.
- GGUF-Import in Ollama - Eigene Modelle in Ollama laden.
Key Takeaways:
- Ollama ist der fertige Modellserver, llama.cpp ist die nackte Engine.
- Ollama ist einfacher, llama.cpp ist flexibler.
- Für schnellen Start und produktive Server: Ollama.
- Für maximale Performance und Custom-Modelle: llama.cpp.
- Beide nutzen GGUF und unterstützen CUDA, ROCm und Metal.
FAQ: Ollama vs. llama.cpp - Typische Fragen
Was ist der Hauptunterschied zwischen Ollama und llama.cpp?
Welches Tool ist schneller?
Welches Tool ist einfacher zu nutzen?
Kann ich eigene GGUF-Modelle in beiden Tools laden?
Welches Tool hat die bessere API?
Welches Tool unterstützt mehr GPUs?
Lässt sich beides in Docker betreiben?
Wann soll ich Ollama nutzen?
Wann soll ich llama.cpp nutzen?
Kann ich beide Tools parallel nutzen?
Quellen und weiterführende Literatur
- Ollama Dokumentation - Offizielle Ollama-Docs.
- llama.cpp GitHub - Source und Anleitung.
- GGUF Format - Spezifikation des GGUF-Formats.
- Ollama GitHub - Source und Issues.


