llama.cpp & GGUF: LLMs lokal, effizient, ohne Cluster
Nicht jeder Inferenz-Job braucht Hochdurchsatz. Manchmal reicht ein einzelner Request, lokal, ohne API, auf der Workstation. Genau dort spielt llama.cpp seine Stärken aus.
GGUF: Quantisierung, die funktioniert
GGUF ist das Dateiformat, das llama.cpp nutzt — und das Quantisierungsverfahren, das die Szene dominiert. Aus einem 70B-Modell mit 140 GB FP16 wird mit Q4_K_M ein 40-GB-Modell, das auf eine RTX 5090 (32 GB) mit teilweisem CPU-Offload passt.
Die Quantisierung ist nicht magisch, aber sie ist viel besser, als die Zahlen vermuten lassen. Q4 verliert kaum Erkennungsqualität, Q2 merkt man. Wir setzen standardmässig Q5_K_M für ernsthafte Arbeit und Q4_K_M, wenn VRAM knapp ist.
CPU/GPU-Offload
llama.cpp kann einzelne Layer auf die GPU auslagern und den Rest auf der CPU rechnen. Das ist kein High-Performance-Setup, aber es funktioniert — und es bedeutet: Sie können grosse Modelle testen, bevor Sie Hardware kaufen.
./llama-cli -m model-q4_k_m.gguf -ngl 40 -c 8192
-ngl 40 heisst: 40 Layer auf GPU, Rest CPU. Das ist die Brücke zwischen „passt nicht" und „passt, wenn ich will".
Der Gegenpol zu vLLM
vLLM (siehe vorheriger Artikel) optimiert auf Durchsatz — viele parallele Requests, Serverbetrieb. llama.cpp optimiert auf Flexibilität: einzelne Requests, verschiedene Quantisierungen, Notbetrieb auf CPU. Beide haben denselben Output: ein LLM antwortet. Der Einsatz entscheidet.
Faustregel: vLLM als Inferenz-Server für Tools und Teams. llama.cpp für Entwicklung, lokales Testen und den einen Spezialfall, der nicht in die Server-Architektur passt.
Fazit
llama.cpp ist das Schweizer Taschenmesser der lokalen LLM-Inferenz. Es macht keinen Server, aber es macht alles möglich — und es hat den Charme, dass es auf einer Workstation läuft, die längst unterm Schreibtisch steht.