[{"data":1,"prerenderedAt":757},["ShallowReactive",2],{"blog-llama-cpp-de":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":22,"sources":34,"cover":76,"og":77,"expertise":78,"locales":79,"lang":81,"title":83,"description":84,"coverAlt":85,"metaTitle":86,"takeaways":87,"faq":93,"toc":106,"blocks":133,"others":517},"llama-cpp","2026-10-05",8,"llmops",[9,10,11,12,13],"llama.cpp","GGUF","Quantisation","Local inference","llama-server",[9,15,16,17,18,19,20,21],"llama.cpp review","GGUF quantisation levels","llama-server OpenAI compatible","llama.cpp vs Ollama","run LLM locally GDPR","llama.cpp CUDA Metal Vulkan","Q4_K_M vs Q8_0",[23,25,28,31],{"name":9,"url":24},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp",{"name":26,"url":27},"Large language model","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model",{"name":29,"url":30},"Quantization (signal processing)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantization_(signal_processing)",{"name":32,"url":33},"General Data Protection Regulation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGeneral_Data_Protection_Regulation",[35,37,40,43,46,49,52,55,58,61,64,67,70,73],{"title":36,"url":24},"llama.cpp repository: goals, backends, licence",{"title":38,"url":39},"llama.cpp releases: builds b11538 to b11541","https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases",{"title":41,"url":42},"llama.cpp build documentation: CMake flags","https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fmaster\u002Fdocs\u002Fbuild.md",{"title":44,"url":45},"llama.cpp server README: endpoints, slots and grammars","https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fmaster\u002Ftools\u002Fserver\u002FREADME.md",{"title":47,"url":48},"llama.cpp quantisation README: bits, size and speed","https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fmaster\u002Ftools\u002Fquantize\u002FREADME.md",{"title":50,"url":51},"GGUF specification in the ggml repository","https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fggml\u002Fblob\u002Fmaster\u002Fdocs\u002Fgguf.md",{"title":53,"url":54},"Performance of llama.cpp on Apple Silicon M-series","https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fdiscussions\u002F4167",{"title":56,"url":57},"Performance of llama.cpp on Nvidia CUDA","https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fdiscussions\u002F15013",{"title":59,"url":60},"Ollama README: supported backends and REST API","https:\u002F\u002Fgithub.com\u002Follama\u002Follama",{"title":62,"url":63},"LM Studio documentation: app overview","https:\u002F\u002Flmstudio.ai\u002Fdocs\u002Fapp",{"title":65,"url":66},"vLLM README: features, hardware and licence","https:\u002F\u002Fgithub.com\u002Fvllm-project\u002Fvllm",{"title":68,"url":69},"vLLM documentation: GGUF support","https:\u002F\u002Fdocs.vllm.ai\u002Fen\u002Flatest\u002Ffeatures\u002Fquantization\u002Fgguf.html",{"title":71,"url":72},"GDPR Article 28: processor","https:\u002F\u002Fgdpr-info.eu\u002Fart-28-gdpr\u002F",{"title":74,"url":75},"GDPR Article 32: security of processing","https:\u002F\u002Fgdpr-info.eu\u002Fart-32-gdpr\u002F","\u002Fimages\u002Fblog\u002Fllama-cpp\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllama-cpp\u002Fog.jpg","ai-engineer",[80,81,82],"en","de","hu","llama.cpp im Test: die lokale Engine unter Ollama und LM Studio","llama.cpp führt offene Modelle in reinem C und C++ auf Metal, CUDA, Vulkan oder der CPU aus. Ich zeige GGUF-Quants, llama-server und die Grenzen.","Eine breite Kiste auf vier verschieden geformten Beinen, ein Blatt gleitet hinein, drei Quadrate innen.","llama.cpp im Test: GGUF, Quants und Server · Balázs Csorba",[88,89,90,91,92],"llama.cpp ist die MIT-lizenzierte Engine unter Ollama und LM Studio. Nimm sie direkt, wenn du Modelldatei, Quant und jedes Serverflag selbst bestimmen willst.","Eine GGUF-Datei enthält Gewichte, Tokenizer und Metadaten. Das Build-Flag wählt das Backend, sodass dieselbe Datei auf Metal, CUDA, Vulkan oder der CPU läuft.","Q4_K_M ist ein sinnvoller Startpunkt. Die Quantisierungstabelle misst aber nur Größe und Geschwindigkeit, die Qualitätsprüfung musst du selbst durchführen.","Die Geschwindigkeit auf Apple-Chips folgt der Speicherbandbreite, aber nicht linear. Ein High-End-Chip erzeugt bei einem 7B-Modell zweistellige Tokens pro Sekunde, eine Rechenzentrums-GPU ist im selben Testtyp grob dreimal so schnell.","Lokale Inferenz hält Prompts auf deiner Hardware und nimmt damit einen Auftragsverarbeiter aus dem Inferenzschritt, aber die DSGVO-Pflichten für Logs, Zugriff und Aufbewahrung bleiben bestehen.",[94,97,100,103],{"q":95,"a":96},"Ist llama.cpp kommerziell kostenlos nutzbar?","Das Projekt steht unter der MIT-Lizenz, du kannst es also ohne Lizenzgebühr nutzen und ausliefern. Die Modellgewichte behalten ihre eigenen Lizenzen, die kommerzielle Nutzung einschränken können. Prüfe deshalb jede Modellkarte, bevor du ein Produkt darauf aufbaust.",{"q":98,"a":99},"Was ist der Unterschied zwischen llama.cpp und Ollama?","Ollama führt llama.cpp unter seinen unterstützten Backends auf und bringt eine REST-API zum Ausführen und Verwalten von Modellen mit. llama.cpp ist die Engine selbst: Du wählst die GGUF-Datei, den Quant und jedes Flag und aktualisierst das Binary selbst.",{"q":101,"a":102},"Mit welchem GGUF-Quant sollte ich anfangen?","Mit Q4_K_M. Die Quantisierungs-README verwendet eine naive Q4_K_M-Quantisierung als Beispiel. Steige auf Q5_K_M oder Q6_K um, wenn deine eigenen Evals eine Qualitätslücke zeigen, denn die Geschwindigkeitstabelle sagt nichts über die Qualität.",{"q":104,"a":105},"Hilft ein lokaler llama.cpp-Server bei der DSGVO?","Es hilft, weil kein Modellanbieter die Prompts erhält und dieser Auftragsverarbeiter aus der Kette fällt. Zugriffskontrolle, Aufbewahrung der Logs und eine Rechtsgrundlage gelten weiter. Ein gemieteter GPU-Host, der personenbezogene Daten für dich verarbeitet, ist ein Auftragsverarbeiter und braucht einen Vertrag nach Artikel 28.",[107,110,113,116,119,121,124,127,130],{"id":108,"title":109},"what-it-is","Was es ist",{"id":111,"title":112},"how-it-works","So funktioniert es",{"id":114,"title":115},"getting-started","Erste Schritte",{"id":117,"title":118},"quantisation-and-speed","Quantisierung und Geschwindigkeit",{"id":13,"title":120},"llama-server: API, Slots und strukturierte Ausgabe",{"id":122,"title":123},"cost-and-deployment","Kosten und Betrieb",{"id":125,"title":126},"where-it-falls-short","Wo es an Grenzen stößt",{"id":128,"title":129},"verdict","Fazit",{"id":131,"title":132},"sources","Quellen",[134,138,141,144,173,174,177,183,184,187,225,228,231,232,235,300,309,316,319,322,328,329,332,335,338,340,341,377,380,388,394,395,422,423,426,457,458],{"type":135,"content":136},"paragraph",[137],"llama.cpp ist die C- und C++-Engine, die offene Sprachmodelle auf Hardware ausführt, die du kontrollierst. Mehrere komfortablere lokale Werkzeuge setzen darauf auf, darunter Ollama und LM Studio. Das Urteil vorweg: Nimm es direkt, wenn du Modelldatei, Quantisierung und jedes Serverflag selbst festlegen willst, auf einem Laptop oder einem Server, den du betreibst. Lass die Finger davon, wenn du einen einzigen Befehl willst, der Modelle für dich lädt und verwaltet. Ebenso wenig eignet es sich als Serving-Schicht für einen stark genutzten GPU-Dienst mit vielen Nutzern, dafür ist vLLM die bessere Wahl.",{"type":139,"level":140,"id":108,"text":109},"heading",2,{"type":135,"content":142},[143],"Das Projekt nennt als Ziel LLM- und VLM-Inferenz mit minimalem Aufwand und Spitzenleistung auf einer breiten Palette an Hardware. Es ist eine schlanke C- und C++-Implementierung ohne externe Abhängigkeiten und baut auf der Tensor-Bibliothek ggml auf. Der neueste Build auf der Releases-Seite ist b11541, veröffentlicht am 10. Oktober 2026.",{"type":145,"ordered":146,"items":147},"list",false,[148,154,159,163,168],[149,153],{"tag":150,"children":151},"strong",[152],"MIT-Lizenz"," für das ganze Projekt, du kannst es also ohne Lizenzgebühr nutzen und ausliefern.",[155,158],{"tag":150,"children":156},[157],"Backends"," für Apple Metal, NVIDIA CUDA, AMD HIP, Vulkan, OpenCL, SYCL und WebGPU, dazu x86- und ARM-CPU-Pfade.",[160,162],{"tag":150,"children":161},[13],", ein OpenAI-kompatibler HTTP-Server mit eingebauter Web-Oberfläche.",[164,167],{"tag":150,"children":165},[166],"Quantisierung"," von 1,5 bis 8 Bit, mit GGUF als Modellformat.",[169,172],{"tag":150,"children":170},[171],"Hugging-Face-Unterstützung"," über das Flag -hf, dazu Konvertierungsskripte wie convert_hf_to_gguf.py.",{"type":139,"level":140,"id":111,"text":112},{"type":135,"content":175},[176],"Die GGUF-Datei erledigt den größten Teil der Arbeit. Die Spezifikation beschreibt GGUF als Dateiformat zum Speichern von Modellen für die Inferenz mit GGML und darauf aufbauenden Ausführungsumgebungen, ausgelegt auf schnelles Laden und Speichern. Jede Datei hat einen Header mit den Zählern für Tensoren und Metadaten, typisierte Schlüssel-Wert-Metadaten, eine Beschreibung jedes Tensors (Name, Form, Typ und Offset) und die Tensordaten, aufgefüllt auf eine Ausrichtungsgrenze. Die Spezifikation nennt Speicher-Mapping als Ziel, sodass das Betriebssystem die Gewichte einblenden statt kopieren kann. Auch der Tokenizer steckt in der Datei, unter den Schlüsseln tokenizer.ggml. Die Spezifikation warnt, dass das eingebettete Vokabular ungenauer sein kann als der Original-Tokenizer. Prüfe deshalb nach jeder Konvertierung die Ausgabequalität.",{"type":178,"src":179,"alt":180,"wide":181,"caption":182},"image","\u002Fimages\u002Fblog\u002Fllama-cpp\u002Fdiagram-6.webp","Eine GGUF-Datei, eine API Eine GGUF-Datei enthält Gewichte, Tokenizer und Metadaten. llama.cpp lädt sie und führt sie auf dem beim Build gewählten Backend aus, etwa Metal, CUDA, Vulkan oder der CPU. llama-server stellt das Modell über eine OpenAI-kompatible API bereit, die jeder OpenAI-Client aufrufen kann. Nur das Backend ändert sich mit der Hardware, Datei und API bleiben gleich.",true,"Eine GGUF-Datei und eine API: Das Backend folgt deiner Hardware, die Schnittstelle bleibt gleich.",{"type":139,"level":140,"id":114,"text":115},{"type":135,"content":185},[186],"Die Build-Dokumentation aktiviert Metal auf macOS standardmäßig, ein schlichter Build auf dem Mac enthält das Apple-Backend also schon. Die übrigen Backends brauchen beim Konfigurieren ein Flag, wie die Tabelle zeigt.",{"type":188,"head":189,"rows":196},"table",[190,192,194],[191],"Backend",[193],"Hardware",[195],"Aktivierung",[197,204,211,218],[198,200,202],[199],"Metal",[201],"Apple Silicon",[203],"Standardmäßig auf macOS aktiv",[205,207,209],[206],"CUDA",[208],"NVIDIA-GPUs",[210],"-DGGML_CUDA=ON",[212,214,216],[213],"Vulkan",[215],"GPUs mit Vulkan-Treiber",[217],"-DGGML_VULKAN=ON",[219,221,223],[220],"CPU",[222],"x86 (AVX2, AVX512, AMX) und ARM (NEON)",[224],"Im Standard-Build enthalten",{"type":226,"code":227},"code","# macOS includes Metal by default; for NVIDIA GPUs use cmake -B build -DGGML_CUDA=ON\ncmake -B build\ncmake --build build --config Release\n.\u002Fbuild\u002Fbin\u002Fllama-server -m models\u002FLlama-3.1-8B-Instruct-Q4_K_M.gguf -c 8192 -np 4 --host 127.0.0.1 --port 8080",{"type":135,"content":229},[230],"Drei Flags entscheiden das meiste. -m nennt die GGUF-Datei, -c legt die Kontextgröße in Tokens fest (0 bedeutet den Wert aus dem Modell) und -np die Zahl paralleler Slots. Der Server lauscht standardmäßig auf 127.0.0.1, andere Rechner erreichen ihn also erst, wenn du --host änderst.",{"type":139,"level":140,"id":117,"text":118},{"type":135,"content":233},[234],"Ein Quant ist die Zahl der Bits pro Gewicht, abgewogen gegen Dateigröße und Qualität. Die _K-Namen kennzeichnen k-Quants, die IQ-Typen sind i-Quants, die bis etwa 2 Bit pro Gewicht reichen; IQ1_S steht in der Tabelle der README bei 2,00 Bit. Das Beispielkommando der README ist eine naive Q4_K_M-Quantisierung mit Standardeinstellungen, deshalb ist Q4_K_M der vernünftige Startpunkt.",{"type":188,"head":236,"rows":245},[237,239,241,243],[238],"Quant",[240],"Bit pro Gewicht",[242],"Größe (GiB)",[244],"Generierung (Tokens\u002Fs)",[246,255,264,273,282,291],[247,249,251,253],[248],"Q2_K",[250],"3,16",[252],"2,95",[254],"79,85",[256,258,260,262],[257],"Q4_K_M",[259],"4,89",[261],"4,58",[263],"71,93",[265,267,269,271],[266],"Q5_K_M",[268],"5,70",[270],"5,33",[272],"67,23",[274,276,278,280],[275],"Q6_K",[277],"6,56",[279],"6,14",[281],"58,67",[283,285,287,289],[284],"Q8_0",[286],"8,50",[288],"7,95",[290],"50,93",[292,294,296,298],[293],"F16",[295],"16,00",[297],"14,96",[299],"29,17",{"type":135,"content":301},[302,303,308],"Lies die Tabelle als Abwägung. Die Größe sinkt mit der Bitzahl, und die Generierung wird schneller, wenn die Datei kleiner wird, weil jedes Token die Gewichte erneut lesen muss. F16 erzeugt 29,17 Tokens pro Sekunde gegenüber 71,93 bei Q4_K_M und braucht mehr als das Dreifache an Speicher. Die README misst Llama 3.1 8B, sagt aber nicht, welche Maschine die Zahlen erzeugt hat, lies sie also als relative Werte. Die Tabelle hat keine Qualitätsspalte, denn die README nennt weder Perplexität noch KL-Divergenz. Ich würde vor der Wahl denselben Evaluationssatz für jeden Kandidaten laufen lassen, wie ich in meinem Beitrag zu ",{"tag":304,"to":305,"children":306},"link","\u002Fblog\u002Fllm-evals-for-product-features",[307],"Evals für LLM-Produktfunktionen"," beschreibe.",{"type":310,"variant":311,"title":312,"body":313},"callout","tip","Ein Standard, der hält",[314],[315],"Starte mit Q4_K_M. Wechsle zu Q5_K_M oder Q6_K nur, wenn deine Evals eine relevante Lücke zeigen, und geh auf Q2_K nur, wenn der Speicher dazu zwingt. Miss dabei den Qualitätsverlust, statt ihn anzunehmen.",{"type":135,"content":317},[318],"Auf Apple-Chips folgt die Geschwindigkeit der Speicherbandbreite. Im Apple-Silicon-Thread erzeugt LLaMA 7B mit Q4_0 auf dem M4 Max 83,06 Tokens pro Sekunde bei 546 GB\u002Fs Speicherbandbreite, auf dem M1 Pro 36,41 bei 200 GB\u002Fs. Der M2 Ultra erreicht 94,27 bei 800 GB\u002Fs. Der Zusammenhang ist nicht linear: Der M1 Pro hat ein Viertel der Bandbreite des M2 Ultra und erreicht weniger als die Hälfte von dessen Tempo.",{"type":135,"content":320},[321],"Der CUDA-Thread sammelt llama-bench-Ergebnisse für Llama 2 7B mit Q4_0: 186,21 Tokens pro Sekunde für eine RTX 4090, 267,81 für eine H100 mit 80 GB und 290,02 für eine RTX 5090. Für die Planung heißt das: Ein Nutzer auf einem High-End-Apple-Chip bekommt bei einem 7B-Modell zweistellige Tokens pro Sekunde, und eine Rechenzentrums-GPU ist im selben Testtyp grob dreimal so schnell. Modelle und Builds unterscheiden sich zwischen den Threads, vergleiche also Größenordnungen. Keiner der beiden Threads testet einen Server unter gleichzeitiger Last, und genau dort zahlt sich eine GPU-Maschine aus.",{"type":310,"variant":323,"title":324,"body":325},"note","Miss den Build, den du betreibst",[326],[327],"Builds ändern sich schnell. Die Releases-Seite zeigte allein am 9. und 10. Oktober 2026 vier Builds. Miss mit deinem Modell, deinem Quant und deiner Hardware und notiere die Build-Nummer neben dem Ergebnis.",{"type":139,"level":140,"id":13,"text":120},{"type":135,"content":330},[331],"llama-server ist die Stelle, an der die meisten Anwendungen auf llama.cpp treffen. Seine OpenAI-kompatiblen Routen liegen unter \u002Fv1: Chat-Completions, Completions, Responses, Modelle und Embeddings. Native Routen decken Tokenisierung, Template-Rendering, den Slot-Zustand und den Health-Check ab. Ein Prometheus-Metrik-Endpunkt existiert, bleibt aber aus, bis du --metrics setzt, was du wissen solltest, bevor du einen Port veröffentlichst.",{"type":135,"content":333},[334],"Parallele Slots funktionieren so: Steht -np auf dem Standardwert auto, teilen sich die Slots einen KV-Cache-Puffer, den die README in diesem Modus standardmäßig einschaltet. Eine lange Anfrage kann so Speicher nutzen, den ein untätiger Slot sonst belegen würde. Kontinuierliches Batching ist ebenfalls standardmäßig aktiv. Die README dokumentiert den Schalter (--kv-unified) und ein Limit pro Slot (--kv-unified-per-slot), erklärt aber nicht genau, wie sich das Budget aufteilt, wenn du die Slot-Zahl von Hand setzt. Miss deshalb den Speicher, bevor du einen Server für mehrere Nutzer dimensionierst.",{"type":135,"content":336},[337],"Strukturierte Ausgabe läuft über zwei Wege. --json-schema begrenzt die Generierung auf ein JSON-Schema, --grammar nimmt eine BNF-ähnliche Grammatik; die README beschreibt beides als Wege, Generierungen einzuschränken. Der Chat-Endpunkt akzeptiert außerdem ein response_format vom Typ json_schema, wie in dieser Anfrage.",{"type":226,"code":339},"curl -s http:\u002F\u002F127.0.0.1:8080\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"messages\": [{\"role\": \"user\", \"content\": \"Extract the author from: Written by Balázs Csorba.\"}], \"response_format\": {\"type\": \"json_schema\", \"schema\": {\"type\": \"object\", \"properties\": {\"author\": {\"type\": \"string\"}}, \"required\": [\"author\"]}}}'",{"type":139,"level":140,"id":122,"text":123},{"type":188,"head":342,"rows":349},[343,345,347],[344],"Kostenposten",[346],"Was du zahlst",[348],"Hinweis",[350,356,363,370],[351,352,354],[9],[353],"Nichts",[355],"MIT-Lizenz, keine Nutzungsgebühr",[357,359,361],[358],"Eigene Hardware",[360],"Anschaffung und Strom",[362],"Der Speicher bestimmt das größte Modell und Quant, das du laden kannst",[364,366,368],[365],"Gemieteter GPU-Server",[367],"Preis des Anbieters",[369],"EU-Region wählen und einen Auftragsverarbeitungsvertrag abschließen",[371,373,375],[372],"Modellgewichte",[374],"Die eigenen Bedingungen des Modells",[376],"Die Modellkarte nennt die Lizenz",{"type":135,"content":378},[379],"Datenschutz ist das stärkste Argument für lokale Inferenz. Läuft das Modell auf eigener Hardware, bleiben Prompts, abgerufene Dokumente und Antworten auf dieser Maschine, und kein Modellanbieter erhält sie. Der Inferenzschritt hat dann keinen Auftragsverarbeiter. Artikel 28 DSGVO verlangt, dass die Verarbeitung durch einen Auftragsverarbeiter durch einen verbindlichen Vertrag geregelt wird, der ihn an dokumentierte Weisungen bindet. Ein gemieteter GPU-Host, der personenbezogene Daten für dich verarbeitet, ist ein Auftragsverarbeiter, egal wo er in der EU steht, und braucht diesen Vertrag.",{"type":135,"content":381},[382,383,387],"Lokal heißt nicht automatisch konform. Artikel 32 verlangt von Verantwortlichen und Auftragsverarbeitern angemessene technische und organisatorische Maßnahmen und nennt Verschlüsselung und Pseudonymisierung als Beispiele. Auf einem llama.cpp-Server zählen vor allem diese Einstellungen: die Bindungsadresse (127.0.0.1, außer du änderst --host), der API-Schlüssel (--api-key akzeptiert einen oder mehrere Schlüssel), der Metrik-Endpunkt (aus, außer du setzt --metrics) und deine eigenen Logs, für die dieselben Aufbewahrungsregeln gelten wie für jeden Prompt-Speicher. Die Notizen zu ",{"tag":304,"to":384,"children":385},"\u002Fblog\u002Fgdpr-llm-api-eu-data-residency",[386],"DSGVO und Datenresidenz bei LLM-APIs"," decken den Rest der Checkliste ab.",{"type":310,"variant":389,"title":390,"body":391},"warn","Das Docker-Beispiel bindet alle Schnittstellen",[392],[393],"Das Docker-Beispiel der README startet den Server mit --host 0.0.0.0. Im Container ist das normal, weil das Port-Mapping entscheidet, wer ihn erreicht. Auf einem Laptop setzt du den Server damit dem ganzen Netzwerk aus. Bleib also bei 127.0.0.1 oder setze zuerst --api-key.",{"type":139,"level":140,"id":125,"text":126},{"type":145,"ordered":146,"items":396},[397,402,407,412,417],[398,401],{"tag":150,"children":399},[400],"Es ist eine Laufzeit, keine Plattform."," Du wählst Datei, Quant, Kontextgröße und Flags und aktualisierst das Binary selbst. Das Tempo gehört dazu: Die Releases-Seite zeigte allein am 9. und 10. Oktober 2026 vier Builds.",[403,406],{"tag":150,"children":404},[405],"Keine Modellverwaltung."," Die GGUF-Datei lädst du selbst herunter. Das Flag -hf holt ein Hugging-Face-Repository und nimmt standardmäßig Q4_K_M oder die erste Datei des Repos, wenn dieser Quant fehlt.",[408,411],{"tag":150,"children":409},[410],"Keine Qualitätsmessung."," Die Quantisierungstabelle zeigt nur Größe und Geschwindigkeit, die Qualitätsprüfung bleibt also bei dir.",[413,416],{"tag":150,"children":414},[415],"Parallelität ist eine Speicherfrage."," Slots und kontinuierliches Batching gibt es, aber die Benchmark-Threads testen keinen Server unter gleichzeitiger Last, und die README erklärt die Speicheraufteilung bei handgesetzter Slot-Zahl nicht genau.",[418,421],{"tag":150,"children":419},[420],"GGUF in vLLM ist kein Abkürzungsweg für den Betrieb."," vLLM nennt seine GGUF-Unterstützung stark experimentell und nicht ausreichend optimiert und sagt, GGUF sei derzeit vor allem ein Weg, den Speicherbedarf zu senken.",{"type":139,"level":140,"id":128,"text":129},{"type":135,"content":424},[425],"Nimm llama.cpp, wenn du die Engine selbst willst, mit Datei, Quant und Flags unter deiner Kontrolle, und wenn die Daten die Maschine nie verlassen sollen. Es ist eine gute Basis für eigene Werkzeuge und einen kleinen privaten Server. Wer nur einen Befehl zum Laden eines Modells sucht, fängt besser woanders an, und als Serving-Schicht für einen stark genutzten GPU-Dienst taugt es nicht. Wenn du zwischen lokalen Optionen wählst: LM Studio führt llama.cpp auf Mac, Windows und Linux aus und nutzt auf Apple Silicon MLX. Es passt also zu Leuten, die eine App mit Oberfläche wollen.",{"type":145,"ordered":181,"items":427},[428,433,437,447],[429,432],{"tag":150,"children":430},[431],"Nimm es, wenn"," du Datei, Quant und jedes Flag auf deiner eigenen Hardware bestimmen willst.",[434,436],{"tag":150,"children":435},[431]," du einen Server willst, den du Zeile für Zeile nachvollziehen kannst, mit jeder Einstellung im eigenen Befehl sichtbar.",[438,441,442,446],{"tag":150,"children":439},[440],"Nimm es nicht, wenn"," du einen Befehl willst, der Modelle lädt und verwaltet. Dann nimm ",{"tag":304,"to":443,"children":444},"\u002Fblog\u002Follama",[445],"Ollama",", das llama.cpp unter seinen unterstützten Backends aufführt.",[448,451,452,456],{"tag":150,"children":449},[450],"Nimm es nicht für einen gemeinsamen GPU-Dienst"," mit vielen Nutzern gleichzeitig. Teste zuerst ",{"tag":304,"to":453,"children":454},"\u002Fblog\u002Fvllm",[455],"vLLM",", denn sein Kern sind PagedAttention und kontinuierliches Batching.",{"type":139,"level":140,"id":131,"text":132},{"type":145,"ordered":146,"items":459},[460,465,469,473,477,481,485,489,493,497,501,505,509,513],[461],{"tag":462,"href":24,"children":463},"a",[464],"llama.cpp-Repository: Ziele, Backends, Lizenz",[466],{"tag":462,"href":39,"children":467},[468],"llama.cpp-Releases: Builds b11538 bis b11541",[470],{"tag":462,"href":42,"children":471},[472],"llama.cpp-Build-Dokumentation: CMake-Flags",[474],{"tag":462,"href":45,"children":475},[476],"llama.cpp-Server-README: Endpunkte, Slots und Grammatiken",[478],{"tag":462,"href":48,"children":479},[480],"llama.cpp-Quantisierungs-README: Bits, Größe und Geschwindigkeit",[482],{"tag":462,"href":51,"children":483},[484],"GGUF-Spezifikation im ggml-Repository",[486],{"tag":462,"href":54,"children":487},[488],"Leistung von llama.cpp auf Apple Silicon (M-Serie)",[490],{"tag":462,"href":57,"children":491},[492],"Leistung von llama.cpp auf Nvidia CUDA",[494],{"tag":462,"href":60,"children":495},[496],"Ollama-README: unterstützte Backends und REST-API",[498],{"tag":462,"href":63,"children":499},[500],"LM-Studio-Dokumentation: Übersicht der App",[502],{"tag":462,"href":66,"children":503},[504],"vLLM-README: Funktionen, Hardware und Lizenz",[506],{"tag":462,"href":69,"children":507},[508],"vLLM-Dokumentation: GGUF-Unterstützung",[510],{"tag":462,"href":72,"children":511},[512],"DSGVO Artikel 28: Auftragsverarbeiter",[514],{"tag":462,"href":75,"children":515},[516],"DSGVO Artikel 32: Sicherheit der Verarbeitung",[518,575,643,703],{"slug":519,"published":520,"minutes":521,"category":7,"tags":522,"keywords":528,"about":542,"sources":550,"cover":569,"og":570,"expertise":78,"locales":571,"lang":81,"title":572,"description":573,"coverAlt":574},"deepseek-v4-1-flash-1017","2026-10-17",15,[523,524,525,526,527],"DeepSeek","Open-weight models","KV cache","Mixture of experts","LLM cost",[529,530,531,532,533,534,535,536,537,538,539,540,541],"DeepSeek V4.1 Flash 1017","DeepSeek V4.1 Flash","Causal Encoder-Decoder","Compressed Sparse Attention 2","CSA2","FP4 KV cache","KV cache compression","SWA Bounded Replay","Engram conditional memory","DSpark speculative decoding","DeepSeek pricing","DeepSWE benchmark","open-weight coding model",[543,545,547],{"name":523,"url":544},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDeepSeek",{"name":526,"url":546},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMixture_of_experts",{"name":548,"url":549},"Transformer (deep learning architecture)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTransformer_(deep_learning_architecture)",[551,554,557,560,563,566],{"title":552,"url":553},"DeepSeek-AI: DeepSeek-V4.1-Flash: Pushing the Limits of KV Cache Compression (arXiv:2609.19969)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2609.19969",{"title":555,"url":556},"Hugging Face: deepseek-ai\u002FDeepSeek-V4.1-Flash-1017 model card","https:\u002F\u002Fhuggingface.co\u002Fdeepseek-ai\u002FDeepSeek-V4.1-Flash-1017",{"title":558,"url":559},"OpenRouter: DeepSeek V4.1 Flash 1017, pricing and providers","https:\u002F\u002Fopenrouter.ai\u002Fdeepseek\u002Fdeepseek-v4.1-flash-1017",{"title":561,"url":562},"The Decoder: Deepseek V4.1 Flash 1017 beats larger rivals in agentic tasks while once again massively cutting per-task costs","https:\u002F\u002Fthe-decoder.com\u002Fdeepseek-v4-1-flash-1017-beats-larger-rivals-in-agentic-tasks-while-once-again-massively-cutting-per-task-costs\u002F",{"title":564,"url":565},"AI Weekly: DeepSeek opens V4.1-Flash-1017 weights and $0.75 Search API","https:\u002F\u002Faiweekly.co\u002Falerts\u002Fdeepseek-opens-v41-flash-1017-weights-and-075-search-api",{"title":567,"url":568},"DeepSeek on X: DeepSeek-V4.1-Flash-1017 announcement","https:\u002F\u002Fx.com\u002Fdeepseek_ai\u002Fstatus\u002F2111375640717033777","\u002Fimages\u002Fblog\u002Fdeepseek-v4-1-flash-1017\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fdeepseek-v4-1-flash-1017\u002Fog.jpg",[80,81,82],"DeepSeek V4.1 Flash 1017: 890 Byte KV-Cache pro Token, und was ein Agent davon hat","Technischer Deep Dive zu DeepSeek V4.1 Flash 1017: Encoder-Decoder-Aufteilung, CSA2-Cache-Sharing, FP4-KV-Cache, Benchmarks und die echten Kosten pro Agenten-Task.","Links ein hoher Stapel dünner Karten, ein Pfeil, rechts dieselben Karten auf ein Viertel der Höhe zusammengepresst.",{"slug":576,"published":520,"minutes":577,"category":7,"tags":578,"keywords":584,"about":596,"sources":606,"cover":637,"og":638,"expertise":78,"locales":639,"lang":81,"title":640,"description":641,"coverAlt":642},"llm-rate-limits-retries-provider-fallback",10,[579,580,581,582,583],"Rate limits","Retries","Fallback","Reliability","LLM gateway",[585,586,587,588,589,590,591,592,593,594,595],"llm rate limit handling","429 too many requests llm api","exponential backoff with jitter","anthropic 529 overloaded error","openai rate limit retry","llm provider fallback","litellm fallbacks","retry-after header","llm circuit breaker","multi provider llm failover","claude api rate limits",[597,600,603],{"name":598,"url":599},"Token bucket","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FToken_bucket",{"name":601,"url":602},"Exponential backoff","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FExponential_backoff",{"name":604,"url":605},"Circuit breaker design pattern","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCircuit_breaker_design_pattern",[607,610,613,616,619,622,625,628,631,634],{"title":608,"url":609},"Claude Platform Docs: Rate limits","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fapi\u002Frate-limits",{"title":611,"url":612},"Claude Platform Docs: API errors","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fapi\u002Ferrors",{"title":614,"url":615},"OpenAI API Docs: Rate limits","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Frate-limits",{"title":617,"url":618},"AWS Builders Library: Timeouts, retries and backoff with jitter","https:\u002F\u002Fbuilder.aws.com\u002Fcontent\u002F3EumjoZascWd1oZiEgL8ORlv3qE\u002Ftimeouts-retries-and-backoff-with-jitter",{"title":620,"url":621},"MDN: Retry-After header","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FHTTP\u002FReference\u002FHeaders\u002FRetry-After",{"title":623,"url":624},"Martin Fowler: Circuit Breaker (2014)","https:\u002F\u002Fmartinfowler.com\u002Fbliki\u002FCircuitBreaker.html",{"title":626,"url":627},"LiteLLM Docs: Router, retries and cooldowns","https:\u002F\u002Fdocs.litellm.ai\u002Fdocs\u002Frouting",{"title":629,"url":630},"LiteLLM Docs: Proxy fallbacks and reliability","https:\u002F\u002Fdocs.litellm.ai\u002Fdocs\u002Fproxy\u002Freliability",{"title":632,"url":633},"OpenRouter Docs: Model fallbacks","https:\u002F\u002Fopenrouter.ai\u002Fdocs\u002Fguides\u002Frouting\u002Fmodel-fallbacks",{"title":635,"url":636},"AI SDK Docs: Settings (maxRetries, timeout)","https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-core\u002Fsettings","\u002Fimages\u002Fblog\u002Fllm-rate-limits-retries-provider-fallback\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-rate-limits-retries-provider-fallback\u002Fog.jpg",[80,81,82],"LLM-Rate-Limits in Produktion: Retries, Backoff und Provider-Fallback","Wie LLM-Rate-Limits funktionieren, welche Fehler man wiederholt, Backoff mit Jitter, Retries in nur einer Schicht und Fallback-Ketten ohne kaputte Ausgaben.","Kleine Quadrate steigen drei Stufen zu einem breiten Rechteck, dahinter zwei weitere in einer Reihe.",{"slug":644,"published":520,"minutes":6,"category":7,"tags":645,"keywords":651,"about":662,"sources":672,"cover":697,"og":698,"expertise":78,"locales":699,"lang":81,"title":700,"description":701,"coverAlt":702},"prompt-versioning-management",[646,647,648,649,650],"Prompt management","Versioning","LLMOps","Evals","Langfuse",[652,653,654,655,656,657,658,659,660,661],"prompt versioning","prompt management","prompt registry","version control for prompts","langfuse prompt management","mlflow prompt registry","prompts in git","openai prompt object deprecation","prompt rollback production","prompt ci evaluation",[663,666,669],{"name":664,"url":665},"Prompt engineering","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPrompt_engineering",{"name":667,"url":668},"Version control","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVersion_control",{"name":670,"url":671},"Continuous integration","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FContinuous_integration",[673,676,679,682,685,688,691,694],{"title":674,"url":675},"OpenAI API Docs: Migrate from prompt objects","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fprompting\u002Fmigrate-from-prompt-object",{"title":677,"url":678},"OpenAI API Docs: Prompt engineering (reusable prompts deprecation note)","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fprompt-engineering",{"title":680,"url":681},"Langfuse Docs: Prompt version control","https:\u002F\u002Flangfuse.com\u002Fdocs\u002Fprompt-management\u002Ffeatures\u002Fprompt-version-control",{"title":683,"url":684},"Langfuse Docs: Prompt caching in the SDKs","https:\u002F\u002Flangfuse.com\u002Fdocs\u002Fprompt-management\u002Ffeatures\u002Fcaching",{"title":686,"url":687},"Langfuse Docs: Link prompts to traces","https:\u002F\u002Flangfuse.com\u002Fdocs\u002Fprompt-management\u002Ffeatures\u002Flink-to-traces",{"title":689,"url":690},"MLflow Docs: Prompt Registry","https:\u002F\u002Fmlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002Fprompt-registry\u002F",{"title":692,"url":693},"Promptfoo Docs: GitHub Action","https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fintegrations\u002Fgithub-action\u002F",{"title":695,"url":696},"Claude Platform Docs: Prompt caching","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fprompt-caching","\u002Fimages\u002Fblog\u002Fprompt-versioning-management\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fprompt-versioning-management\u002Fog.jpg",[80,81,82],"Prompt-Versionierung in Produktion: Git, Registries, Labels und Rollbacks","Prompts in Produktion versionieren: was zu einer Version gehört, Git oder Prompt-Registry, Labels und Rollbacks, Eval-Gates in CI und Folgen für Caches.","Fünf aufrechte Karten in einer Reihe, die dritte schwenkt an einem Bogenpfeil zurück, ein Tor vor der letzten.",{"slug":704,"published":520,"minutes":705,"category":7,"tags":706,"keywords":711,"about":722,"sources":730,"cover":751,"og":752,"expertise":78,"locales":753,"lang":81,"title":754,"description":755,"coverAlt":756},"llm-batch-api-offline-workloads",9,[707,708,648,709,710],"Batch API","Cost","Prompt caching","Data pipelines",[712,713,714,715,716,717,718,719,720,721],"llm batch api","anthropic message batches api","openai batch api","gemini batch mode","batch inference llm cost","batch api 50 percent discount","openai flex processing","bedrock batch inference","llm offline processing","batch api prompt caching",[723,726,729],{"name":724,"url":725},"Batch processing","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBatch_processing",{"name":727,"url":728},"JSON Lines","https:\u002F\u002Fjsonlines.org\u002F",{"name":26,"url":27},[731,734,736,737,740,743,745,748],{"title":732,"url":733},"Claude Platform Docs: Batch processing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fbatch-processing",{"title":735,"url":609},"Claude Platform Docs: Rate limits (Message Batches API)",{"title":695,"url":696},{"title":738,"url":739},"OpenAI API Docs: Batch API","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fbatch",{"title":741,"url":742},"OpenAI API Docs: Flex processing","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fflex-processing",{"title":744,"url":615},"OpenAI API Docs: Rate limits (batch queue limits)",{"title":746,"url":747},"Google AI for Developers: Gemini Batch API","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fbatch-api",{"title":749,"url":750},"Amazon Bedrock User Guide: Batch inference","https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fbatch-inference.html","\u002Fimages\u002Fblog\u002Fllm-batch-api-offline-workloads\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-batch-api-offline-workloads\u002Fog.jpg",[80,81,82],"LLM-Batch-APIs: Inferenz zum halben Preis für Arbeit, die warten kann","Wann sich die Batch-APIs von Anthropic, OpenAI und Gemini lohnen, wie Limits, Zuordnung und Fehler funktionieren und wie sich Rabatte mit Caching addieren.","Eine breite Kiste mit acht kleinen Quadraten, Zulauf von links, ein langer Pfeil kehrt zurück.",1792261157303]