Wichtigste Erkenntnisse
- Kostenlos und MIT-lizenziert quelloffen, gepflegt von ggml-org auf GitHub
- Geschrieben in C/C++, aufgebaut auf der ggml-Tensor-Bibliothek
- Definierte das GGUF-Modelldateiformat (.gguf), das im gesamten lokalen-KI-Ökosystem verwendet wird
- Hardware-Backends: CUDA, Metal, Vulkan, ROCm/HIP, SYCL und CPU (AVX/AVX2/AVX512)
- Quantisierungsunterstützung von 8-Bit bis etwa 1,5 Bit pro Gewicht
- Bringt llama-server mit, einen eingebauten OpenAI-kompatiblen HTTP-Server mit Web-UI
- Ollama nutzt llama.cpp auf den meisten Plattformen als Inferenz-Engine und ergänzt eine Modell-Registry und CLI
- Kein grafischer Installer — Nutzung über Kommandozeile, eingebaute Web-UI oder Sprachanbindungen
📍 In einem Satz
llama.cpp ist eine kostenlose, MIT-lizenzierte C/C++-Inferenz-Engine von Georgi Gerganov, die LLMs lokal auf CPU oder GPU ausführt, das GGUF-Modellformat definierte und als Inferenz-Backend dient, auf dem mehrere lokale KI-Tools — darunter Ollama, auf den meisten Plattformen — aufbauen.
💬 In einfachen Worten
Statt einer Klick-App ist llama.cpp der eigentliche Engine-Code, der eine Modelldatei lädt und Text erzeugt — Ollama und mehrere andere lokale KI-Apps führen llama.cpp im Hintergrund aus und legen eine freundlichere Oberfläche darüber.
📌Hinweis: Dieser Artikel basiert auf dem offiziellen GitHub-Repository von llama.cpp und öffentlicher Dokumentation, nicht auf unabhängigen Benchmarks. Konkrete Tokens-pro-Sekunde-Werte sind nicht enthalten, da sie für diesen Artikel nicht unabhängig gemessen wurden und stark von Hardware, Modell und Quantisierungsformat abhängen.
Was ist llama.cpp?
llama.cpp ist eine kostenlose, MIT-lizenzierte Inferenz-Engine in C/C++, die große Sprachmodelle lokal mit minimalen externen Abhängigkeiten ausführt. Sie wurde 2023 von Georgi Gerganov als von Grund auf neu geschriebener C/C++-Port von Metas LLaMA-Inferenzcode entwickelt, gebaut um auf gewöhnlicher Consumer-Hardware zu laufen — auch auf reinen CPU-Rechnern — statt eine Rechenzentrums-GPU vorauszusetzen. Das Projekt wird heute von der Organisation ggml-org auf GitHub gepflegt, mit Beiträgen einer großen Open-Source-Community, und unterstützt inzwischen zusätzlich zu reinen Text-LLMs auch Vision-Language-Modelle.
- Entwickelt von Georgi Gerganov, heute gepflegt von der Organisation ggml-org
- Geschrieben in C/C++, aufgebaut auf ggml, einer vom selben Team gepflegten Tensor-Bibliothek
- MIT-lizenziert: Der Quellcode ist öffentlich für Nutzung, Veränderung und Weitergabe gemäß den Lizenzbedingungen verfügbar
- Läuft sowohl auf reiner CPU-Hardware als auch auf GPUs — anders als Engines, die zwingend eine CUDA-fähige GPU voraussetzen
- Definierte das GGUF-Modellformat, ein Einzeldateiformat, das Modellgewichte, Quantisierungsdaten und Metadaten zusammen speichert
- Eines der meistreferenzierten Open-Source-LLM-Inferenzprojekte, mit deutlich über 100.000 GitHub-Stars
Welche Hardware-Beschleunigung unterstützt llama.cpp?
llama.cpp unterstützt eine breite Palette an Hardware-Beschleunigungs-Backends — ein Grund, warum es vom reinen CPU-Laptop bis zur Multi-GPU-Workstation läuft.
CUDA
- Details:
- Für NVIDIA-GPUs. Lagert Modell-Layer in den GPU-Speicher aus für schnellere Inferenz als reine CPU-Ausführung, mit Unterstützung für Multi-GPU-Setups.
Metal
- Details:
- Für Apple-Silicon-Macs (M1 und neuer). Nutzt Apples Metal-API, um Inferenz auf den GPU-Kernen von M-Serie-Chips auszuführen.
Vulkan
- Details:
- Eine herstellerübergreifende GPU-API für Windows und Linux, nutzbar auf GPUs mehrerer Hersteller ohne herstellerspezifisches SDK.
ROCm / HIP
- Details:
- Für AMD-GPUs über AMDs ROCm-Compute-Stack, als Alternative zu reiner CUDA-Beschleunigung.
SYCL
- Details:
- Für Intel-GPUs, einschließlich integrierter Grafik einiger Intel-CPUs, über Intels oneAPI-SYCL-Implementierung.
CPU (AVX / AVX2 / AVX512)
- Details:
- Optimierte reine CPU-Ausführung mit vektorisierten Befehlen auf modernen x86-Prozessoren — der Fallback-Pfad, der llama.cpp auch ganz ohne GPU laufen lässt.
Das Projekt dokumentiert in seiner Build-Dokumentation auf GitHub weitere und experimentelle Backends (u. a. BLAS, CANN und WebGPU); dieser Abschnitt konzentriert sich auf die Backends, zwischen denen die meisten lokalen-LLM-Nutzer tatsächlich wählen.
Was ist GGUF, und welches Quantisierungsformat sollten Sie wählen?
GGUF ist das Modelldateiformat, das llama.cpp definierte, um quantisierte Modellgewichte zusammen mit den zum Ausführen nötigen Metadaten (Tokenizer, Architektur, Kontextlänge) zu speichern — als Nachfolger des früheren GGML-Formats des Projekts. Quantisierung verringert den Speicherbedarf eines Modells, indem seine Gewichte mit geringerer numerischer Präzision als im ursprünglichen Trainingsformat gespeichert werden, was etwas Ausgabequalität gegen geringeren VRAM-/RAM-Bedarf und schnellere Inferenz eintauscht.
Q8_0
- Details:
- 8-Bit-Quantisierung, unter den gängigen Formaten von llama.cpp am nächsten am unquantisierten Originalmodell, bei der größten Dateigröße der Gruppe.
Q5_K_M
- Details:
- Ein 5-Bit-"K-Quant"-Format, das die Präzision ungleichmäßig über die Modell-Layer verteilt und Qualität über die kleinstmögliche Dateigröße stellt.
Q4_K_M
- Details:
- Ein 4-Bit-K-Quant-Format, das häufig als Balance zwischen Dateigröße und Ausgabequalität genutzt wird — eine häufige Standardempfehlung bei begrenztem VRAM.
Unter 4 Bit (Q3, Q2 und ~1,5-Bit-Formate)
- Details:
- Formate, um größere Modelle in sehr begrenzten Speicher zu bekommen. Der Qualitätsverlust wird mit sinkender Bit-Breite deutlicher spürbar, daher meist eher letzte Wahl als Standard.
Das richtige Format hängt von Ihrer Hardware und dem konkreten Modell ab — dieser Artikel enthält keine unabhängig gemessenen Qualitätsverlust-Prozentwerte für bestimmte Formate, da diese je nach Modellarchitektur und Aufgabe variieren. Ein Modell in mehr als einem Quantisierungsformat herunterzuladen und die Ausgaben an eigenen Prompts zu vergleichen, ist der zuverlässigste Weg, den Kompromiss für den eigenen Anwendungsfall zu beurteilen.
Was bietet llama-server?
llama-server ist die HTTP-Server-Binärdatei, die mit llama.cpp mitgeliefert wird. Eine einzige Binärdatei stellt die eigene native API von llama.cpp, eine OpenAI-kompatible API, einen Ollama-kompatiblen API-Shim und eine eingebaute browserbasierte Chat-Oberfläche bereit — alle auf demselben geladenen Modell und Cache basierend.
- OpenAI-kompatible Endpunkte unter /v1, sodass für die OpenAI-API gebaute Tools oft nur die Basis-URL ändern müssen, um auf eine lokale llama-server-Instanz zu zeigen
- Eine eingebaute Web-UI, direkt von der Binärdatei bereitgestellt, nutzbar ohne separates Frontend zu installieren
- Ein Ollama-kompatibler API-Shim, der einigen Ollama-orientierten Client-Tools erlaubt, sich stattdessen mit llama-server zu verbinden
- Introspektions-Endpunkte wie /props und /slots zur Einsicht in Server- und Anfragezustand
- Unterstützung mehrerer gleichzeitiger Anfrage-"Slots" gegen ein geladenes Modell, statt nur einer Anfrage nach der anderen
Wie baut und startet man llama.cpp?
llama.cpp wird typischerweise mit CMake aus dem Quellcode gebaut, das Projekt veröffentlicht auf seiner GitHub-Releases-Seite aber auch vorgefertigte Binärdateien für mehrere Plattformen, falls Sie das Kompilieren überspringen möchten.
- 1Installieren Sie ein C++-Toolchain und CMake für Ihr Betriebssystem, falls noch nicht vorhanden.
- 2Klonen Sie das Repository:
git clone https://github.com/ggml-org/llama.cpp. - 3Konfigurieren Sie den Build für Ihr Hardware-Backend — etwa durch Aktivieren von CUDA-, Metal- oder Vulkan-Unterstützung als CMake-Option, oder belassen Sie es bei reiner CPU-Nutzung.
- 4Bauen Sie das Projekt mit CMake:
cmake -B build, gefolgt voncmake --build build --config Release. - 5Laden Sie ein Modell im GGUF-Format herunter, etwa von Hugging Face, und wählen Sie ein Quantisierungsformat passend zu Ihrem verfügbaren VRAM oder RAM.
- 6Führen Sie das Modell über die Kommandozeile mit der Binärdatei
llama-clifür direkten Terminal-Chat aus, oder starten Siellama-server, um eine OpenAI-kompatible HTTP-API und Web-UI bereitzustellen. - 7Bei Nutzung von llama-server verbinden Sie sich über einen Browser mit dessen lokaler Adresse, oder richten Sie einen beliebigen OpenAI-API-kompatiblen Client auf dessen
/v1-Endpunkt.
Muss ich llama.cpp aus dem Quellcode bauen?
Nein — das Projekt veröffentlicht auf seiner GitHub-Releases-Seite auch vorgefertigte Binärdateien für mehrere Plattformen, wobei das Bauen aus dem Quellcode erlaubt, genau das für Ihre Maschine passende Hardware-Backend (CUDA, Metal, Vulkan und ähnliche) zu aktivieren.
Woher bekomme ich GGUF-Modelle?
Viele Modelle im GGUF-Format werden auf Hugging Face und anderen Modell-Plattformen veröffentlicht, meist in mehreren Quantisierungsformaten pro Modell, sodass Sie eines passend zu Ihrem verfügbaren Speicher wählen können.
Wie verhält sich llama.cpp zu Ollama?
Ollama ist eine der am weitesten verbreiteten Arten, lokale LLMs auszuführen, ohne ein Build-System anzufassen, und wird in Community- und Drittanbieter-Fachbeiträgen häufig als auf llama.cpp basierend beschrieben, als Inferenz-Engine auf den meisten Plattformen. Ollama selbst dokumentiert diese Abhängigkeit nicht ausführlich, daher gilt sie als vielfach berichtete Architektur, nicht als offizielle Spezifikation — sie ist jedoch konsistent mit Ollamas eigenem Open-Source-Code.
- llama.cpp ist die Low-Level-Inferenz-Engine; Ollama ist eine Paketierungsschicht, die eine Modell-Registry, Ein-Befehl-Downloads, eine einfachere CLI und ein eigenes Modelfile-Konfigurationssystem ergänzt
- Die direkte Wahl von llama.cpp gibt Kontrolle über exakte Build-Flags, Quantisierungsformat und Server-Konfiguration, die Ollamas vereinfachte Oberfläche nicht offenlegt
- Die Wahl von Ollama tauscht diese Kontrolle gegen einen schnelleren Weg zu einem laufenden Modell, auf Kosten etwas Flexibilität bei der Konfiguration der zugrunde liegenden Engine
- Beide können eine OpenAI-kompatible API bereitstellen — llama.cpp über llama-server, Ollama über seine eigene API-Schicht
Für wen ist llama.cpp direkt geeignet?
llama.cpp passt zu Nutzern, die direkte Kontrolle darüber wollen, wie ein Modell läuft, statt zum schnellsten Weg zu einem funktionierenden Chatfenster.
llama.cpp vs. Ollama vs. LM Studio vs. vLLM
Diese vier Tools liegen an unterschiedlichen Punkten zwischen Kontrolle und Komfort, und zwei davon (Ollama und, auf Apple Silicon, Teile des Ökosystems um LM Studio) sind selbst auf Inferenz-Engines aufgebaut, statt von Grund auf eigenständige Alternativen zu einer solchen zu sein.
llama.cpp
- Oberfläche & Setup:
- CLI, eingebaute Web-UI und OpenAI-kompatible API über llama-server. Bauen aus dem Quellcode mit CMake oder vorgefertigte Release-Binärdatei nutzen; das Quantisierungsformat wählen Sie selbst.
- Am besten für:
- Maximale Kontrolle, Embedded-/Edge-Deployment und eigene Pipelines direkt auf der Engine.
Ollama
- Oberfläche & Setup:
- CLI und REST-API, läuft Berichten zufolge auf den meisten Plattformen auf llama.cpp als Backend. Ein Befehl installiert es; ein Befehl lädt ein Modell und startet es.
- Am besten für:
- Den schnellsten Weg zu einem laufenden lokalen Modell ohne Build-Schritt, für alle ohne Bedarf an Engine-Konfiguration.
LM Studio
- Oberfläche & Setup:
- Grafische Desktop-App für Mac, Windows und Linux. Herunterladen, installieren, dann ein Modell in der App durchsuchen und herunterladen.
- Am besten für:
- Nicht-technische Nutzer, die eine Klick-Chat-App statt einer Kommandozeile wollen.
vLLM
- Oberfläche & Setup:
- Python-Server mit OpenAI-kompatibler API, per pip in einer Python-/CUDA-Umgebung installiert. Nutzt die eigene PagedAttention-Serving-Engine statt GGUF oder llama.cpp.
- Am besten für:
- Hochdurchsatz-Multi-User-GPU-Serving in Produktion, nicht Einzelnutzer-Chat lokal.
Dieser Artikel hat Geschwindigkeit oder Ausgabequalität dieser vier Tools nicht unabhängig gebenchmarkt und behauptet nicht, dass eines technisch überlegen ist — der obige Vergleich deckt nur dokumentierte Architektur-, Setup- und Zugangsfakten ab. Für Durchsatzzahlen je Hardware siehe den eigenen llama.cpp-vs.-Ollama-vs.-vLLM-Vergleich sowie den Leitfaden zu Enterprise-Inferenz-Servern, der vLLM ausführlicher behandelt.
Was deckt dieser Artikel nicht ab?
Dies ist ein Erklärartikel auf Basis der öffentlichen Dokumentation und des Repositorys von llama.cpp, kein praktischer Benchmark-Bericht.
- Keine unabhängig gemessenen Tokens-pro-Sekunde- oder Latenzwerte — der Durchsatz hängt stark von Ihrer konkreten Hardware, Ihrem Modell, Quantisierungsformat und den Build-Flags ab
- Keine unabhängig verifizierten Qualitätsverlust-Prozentwerte für bestimmte Quantisierungsformate — diese variieren je nach Modellarchitektur und Aufgabe
- Kein zeilenweises Sicherheitsaudit der llama.cpp-Codebasis — sie ist quelloffen und MIT-lizenziert, der Code selbst ist also zur Überprüfung verfügbar
- Keine Abdeckung jedes von llama.cpp unterstützten Backends oder Build-Flags — dieser Artikel konzentriert sich auf die Backends und Formate, zwischen denen die meisten lokalen-LLM-Nutzer wählen
- Keine Abdeckung kommerzieller Support-Vereinbarungen, da llama.cpp ein Community-Open-Source-Projekt ist, kein Herstellerprodukt mit Supportvertrag
Häufige Fehler beim Ausprobieren von llama.cpp
Die meiste Reibung mit llama.cpp entsteht dadurch, es wie eine Consumer-App statt eine Selbstbau-Engine zu behandeln.
Häufig gestellte Fragen
Was ist llama.cpp?
llama.cpp ist eine kostenlose, MIT-lizenzierte C/C++-Inferenz-Engine von Georgi Gerganov, die große Sprachmodelle lokal auf CPU oder GPU ausführt. Sie wird von der Organisation ggml-org auf GitHub gepflegt.
Ist llama.cpp kostenlos?
Ja. llama.cpp ist kostenlose, quelloffene Software unter der MIT-Lizenz, ohne Abonnement oder Kontopflicht.
Was ist GGUF?
GGUF ist das Modelldateiformat, das llama.cpp definierte, um quantisierte Modellgewichte zusammen mit den zum Ausführen nötigen Metadaten wie Tokenizer und Architekturdetails zu speichern. Es wird im großen Teil des lokalen-KI-Ökosystems genutzt, nicht nur von llama.cpp selbst.
Nutzt Ollama llama.cpp?
Ollama wird in Community- und Drittanbieter-Fachbeiträgen häufig als auf llama.cpp basierend beschrieben, als Inferenz-Engine auf den meisten Plattformen, ergänzt um eine eigene Modell-Registry, CLI und ein Modelfile-System. Ollama selbst dokumentiert diese Abhängigkeit nicht ausführlich.
Welche Hardware unterstützt llama.cpp?
llama.cpp unterstützt reine CPU-Ausführung (mit AVX-/AVX2-/AVX512-Optimierungen) sowie GPU-Beschleunigung über CUDA (NVIDIA), Metal (Apple Silicon), Vulkan, ROCm/HIP (AMD) und SYCL (Intel).
Welche Quantisierungsformate unterstützt llama.cpp?
llama.cpp unterstützt Quantisierung von 8-Bit-Formaten wie Q8_0 bis zu etwa 1,5-Bit-Formaten, mit weit verbreiteten mittleren Formaten wie Q5_K_M und Q4_K_M als Balance zwischen Dateigröße und Ausgabequalität.
Muss ich C++ können, um llama.cpp zu nutzen?
Nein — Modelle über die Binärdateien llama-cli oder llama-server auszuführen erfordert kein Programmieren. Das Bauen des Projekts aus dem Quellcode erfordert ein C++-Toolchain und CMake, aber kein eigenes Schreiben von C++, außer Sie möchten die Engine selbst verändern.
Hat llama.cpp eine grafische Benutzeroberfläche?
llama-server enthält eine eingebaute browserbasierte Web-UI, es gibt jedoch keinen separaten grafischen Installer oder eine Desktop-App vergleichbar mit LM Studio. Mehrere Drittanbieter-Apps, darunter Ollama-kompatible und OpenAI-API-kompatible Frontends, können sich stattdessen mit llama-server verbinden.
Ist llama.cpp besser als Ollama?
"Besser" hängt vom Bedarf ab: llama.cpp gibt direktere Kontrolle über Build-Flags, Quantisierung und Server-Konfiguration, Ollama einen schnelleren, einfacheren Weg zu einem laufenden Modell. Dieser Artikel behauptet nicht, dass eines technisch überlegen ist; siehe die Vergleichstabelle oben und den eigenen Benchmark-Vergleich für mehr Details.
Kann llama.cpp ohne GPU laufen?
Ja. llama.cpp ist so gebaut, dass es auf reiner CPU-Hardware mit vektorisierten Befehlen (AVX/AVX2/AVX512) läuft, zusätzlich zur Unterstützung von GPU-Beschleunigung, wenn verfügbar.
