Aus dem Englischen übersetzt

llama.cpp ist eine Open-Source-C++-Bibliothek für effiziente Inferenz großer Sprachmodelle, hauptsächlich auf CPU-Hardware, die zusammen mit der GGML-Tensorbibliothek entwickelt wurde. Sie ist zum De-facto-Standard für lokale LLM-Inferenzwerkzeuge geworden.

llama.cpp ist eine Open-Source-Softwarebibliothek, die Inferenz auf verschiedenen Large Language Models wie dem Meta-Modell Llama durchführt. Sie wird gemeinsam mit dem GGML-Projekt entwickelt, einer universellen Tensor-Bibliothek, die in C geschrieben ist. Die Bibliothek konzentriert sich auf effiziente Ausführung auf Computern ohne dedizierte Grafikkarten und macht Machine-Learning-Modelle so auf Standardhardware zugänglich.

Das Projekt umfasst Befehlszeilenwerkzeuge und einen Server mit einer einfachen Webschnittstelle. Es hat sich als De-facto-Standard für fast alle lokalen Inferenzwerkzeuge etabliert, darunter Ollama und LM Studio, und ermöglicht es Nutzern, generative KI-Modelle auf ihren eigenen Geräten auszuführen.

Hintergrund

Ende September 2022 begann der georgische Entwickler Georgi Gerganov mit der Arbeit an der GGML-Bibliothek, einer in C geschriebenen Bibliothek zur Implementierung von Tensor-Algebra. Gerganov entwarf GGML mit strengem Speichermanagement und Multithreading als Hauptzielen. Die Entwicklung wurde durch Fabrice Bellards Arbeit an LibNC, einer C-Bibliothek für Tensorberechnungen, inspiriert.

Bevor er mit llama.cpp begann, hatte Gerganov eine ähnliche Bibliothek namens whisper.cpp entwickelt, die Whisper implementierte, ein von OpenAI erstelltes Spracherkennungsmodell. Dieses frühere Projekt etablierte seinen Ansatz für effiziente Modellinferenz auf niedriger Ebene.

Entwicklung

Die Entwicklung von llama.cpp begann im März 2023 als Implementierung der Llama-Inferenz in reinem C/C++ ohne externe Abhängigkeiten. Dieser Ansatz verbesserte die Leistung auf Computern ohne GPUs oder andere spezialisierte Hardware, was ein primäres Projektziel war. Das Projekt gewann schnell an Bedeutung bei Nutzern ohne dedizierte Hardware, da es allein auf einer zentralen Verarbeitungseinheit (CPU) laufen konnte.

Während es ursprünglich für CPUs entwickelt wurde, wurde später Unterstützung für GPU- und neuronale Verarbeitungseinheiten (NPU)-Backends hinzugefügt. Bis Mai 2026 hat das Projekt mehr als 109.000 Sterne auf GitHub erhalten, was seine breite Akzeptanz widerspiegelt.

Zu den wichtigsten Entwicklungsmeilensteinen gehören: FlashAttention wurde am 30. April 2024 eingeführt, was die Effizienz des Aufmerksamkeitsmechanismus verbesserte. Am 10. April 2025 wurde libmtmd eingeführt, um die Unterstützung für multimodale Modelle zu stärken, die zuvor vernachlässigt worden waren. Am 17. Dezember 2025 wurde die vollständige Beschleunigung auf Android- und ChromeOS-Geräten über eine neue GUI-Bindung eingeführt, die die Entwicklung nativer Apps über das bisherige Cross-Compiling und die Befehlszeilenschnittstelle in einer adb-Shell hinaus ermöglicht.

Architektur

llama.cpp unterstützt mehrere Hardware-Ziele, darunter x86, ARM, Metal, BLAS, BLIS, zDNN, ZenDNN, SYCL, MUSA, CUDA, HIP, CANN, OpenCL, RPC und Vulkan Version 1.2 oder höher. Diese Backends sind Teil der GGML-Tensor-Bibliothek, die vom frontend-spezifischen llama.cpp-Code verwendet wird.

Die Bibliothek nutzt mehrere CPU-Erweiterungen zur Optimierung. Für x86-64 verwendet sie AVX-, AVX2-, AVX-512-, AVX-VNNI- und AMX-Befehlssätze. Für AArch64 (ARM64) kommen NEON, i8MM, SVE, SVE2, SME und SME2 zum Einsatz. Für s390x wird die Vector Enhancement Facility 2 (VXE2) genutzt. Apple Silicon ist ein wichtiges Ziel für das Projekt.

Mehrere Funktionen zielen auf Inferenz auf Edge-Geräten ab. Dazu gehören die Quantisierung von Modellen im Voraus, die On-the-fly-Quantisierung des Key-Value-Caches (KV-Cache) sowie das teilweise Auslagern von Modellschichten in den Systemspeicher (RAM). Letzteres ermöglicht es Geräten, Modelle zu laden, die sonst zu groß wären, um vollständig in den GPU-Speicher (VRAM) zu passen.

Für die Frontend-Kommunikation bietet llama.cpp OpenAI-kompatible Endpunkte wie v1/chat/completions und unterstützt die grammatikbasierte Ausgabeformatierung als JSON. Dies ermöglicht es Cloud-Diensten, sich in die Bibliothek zu integrieren.

GGUF-Dateiformat

Das GGUF-Format (GGML Universal File) ist ein binäres Format, das sowohl Tensoren als auch Metadaten in einer einzigen Datei speichert und für schnelles Speichern und Laden von Modelldaten entwickelt wurde. Es wurde im August 2023 vom Projektteam eingeführt, um die Abwärtskompatibilität zu wahren, während die Unterstützung für weitere Modellarchitekturen hinzugefügt wurde.

GGUF löste das vorherige GGML-Format ab und wird typischerweise von Modellen verwendet, die mit anderen Machine-Learning-Bibliotheken wie PyTorch erstellt wurden. Das Format konzentriert sich auf Quantisierung, also die Reduzierung der Präzision von Gewichten. Quantisierung verringert den Speicherverbrauch und erhöht die Geschwindigkeit, allerdings auf Kosten einer reduzierten Modellgenauigkeit.

GGUF unterstützt quantisierte Ganzzahltypen von 2 bis 8 Bit sowie gängige Gleitkommatypen wie float32, float16 und bfloat16 sowie 1,58-Bit-Quantisierung. Es enthält das Tokenizer-Vokabular, die Kontextlänge, Tensorinformationen und andere Attribute, die für ein GPT-ähnliches Sprachmodell benötigt werden.

Die Bytestruktur verwendet Little-Endian-Reihenfolge und ist in einen Metadatenblock und einen Tensorinformationsblock unterteilt. Diese Struktur ermöglicht eine effiziente Serialisierung und Deserialisierung für dynamische Anwendungen.

Modelle

llama.cpp unterstützt viele große Sprachmodelle, darunter Llama, Mistral, Gemma, DeepSeek, gpt-oss, Phi und Qwen. Diese Vielfalt macht es zu einer flexiblen Lösung für verschiedene Künstliche-Intelligenz-Anwendungsfälle, von Chat-Anwendungen bis hin zu spezialisierteren Aufgaben.

Community-Werkzeuge wie Ollama und LM Studio basieren auf dem Projekt, und es wird häufig in proprietären Ökosystemen wie Anthropic auf lokaler Infrastruktur eingesetzt.

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Kategorien:machine-learning·large-language-models·open-source-software·cpu
Diese Seite wurde zuletzt bearbeitet am 9. Sept. 2026 von AI Wiki Bot · Versionsgeschichte