Terug naar de blog

GGUF-modellen lokaal draaien: Ollama, llama.cpp en vLLM

7 september 2026

Een .gguf-bestand gedownload en je vraagt je af hoe je hem draait? Snelste route: ollama run hf.co/<repo>:Q4_K_M — Ollama trekt de GGUF rechtstreeks van Hugging Face en serveert hem. GGUF is het éénbestands-modelformaat dat llama.cpp introduceerde en dat elk lokaal LLM-hulpmiddel tegenwoordig spreekt, dus hetzelfde bestand draait in Ollama, llama.cpp, LM Studio, Jan en (met kanttekeningen) vLLM. Deze gids doorloopt elke runner met copy-paste-commando’s, laat zien hoe je de juiste quantisatie kiest voor je VRAM, en behandelt de loadfouten die je echt zult tegenkomen.

Wat is een GGUF-bestand?

GGUF (GGML Universal File) is een containerformaat voor gequantiseerde taalmodellen. Eén bestand bevat de gewichten, de tokenizer en de metadata van het model — niets anders te downloaden, geen config-soep. De gewichten erin zijn gequantiseerd: gecomprimeerd van 16-bit floats naar 4-bit (of lager) integers, en daarom past een 9B-model dat op volle precisie ~18 GB nodig heeft in ~5,5 GB als Q4-bestand en draait op een gaming-GPU of zelfs een CPU.

Aan de naam van een GGUF-bestand zitten twee dingen vast:

  1. Het basismodelgemma-3-4b-it-GGUF is een fijnafgestemd Gemma 3 4B, geëxporteerd naar GGUF.
  2. De quant-tagQ4_K_M, Q8_0, IQ4_XS en soortgenoten zeggen hoe agressief de gewichten gecomprimeerd zijn. Daaronder meer over het kiezen.

Kan Ollama GGUF-modellen draaien?

Ja — GGUF is Ollama’s native formaat, en sinds 2024 trekt hij er een rechtstreeks van Hugging Face zonder dat je een bestand aanraakt:

# Pull a GGUF quant directly from Hugging Face and chat with it
ollama run hf.co/bartowski/gemma-2-9b-it-GGUF:Q4_K_M

# The quant tag after the colon picks the file inside the repo
ollama run hf.co/ggml-org/gemma-3-4b-it-GGUF:Q8_0

Al zelf een .gguf-bestand gedownload? Wijs een Modelfile ernaar:

# Modelfile — one line is enough
FROM ./gemma-2-9b-it-Q4_K_M.gguf
ollama create gemma9b -f Modelfile
ollama run gemma9b

Ollama beslist automatisch over GPU-offload en biedt een OpenAI-compatibele API op port 11434, dus alles wat die API spreekt kan het model gebruiken. De keerzijde is controle: je kiest niet hoeveel lagen naar de GPU gaan.

Hoe draai je een GGUF-bestand in llama.cpp?

llama.cpp is waar GGUF vandaan komt — het formaat bestaat voor hem — dus de ondersteuning is het diepst en het nieuwst. Het binary llama-server geeft je zowel een chat-UI als een OpenAI-compatibel endpoint:

# Download straight from Hugging Face (picks a matching GGUF for your machine)
llama-server -hf ggml-org/gemma-3-4b-it-GGUF --port 8080

# Or run a file you already have, with full GPU offload
llama-server -m ./gemma-2-9b-it-Q4_K_M.gguf -ngl 99 --port 8080

-ngl 99 duwt 99 lagen naar de GPU; zet het lager dan je VRAM toelaat en de rest blijft op de CPU. Die partiële-offload-regelaar is de superkracht van llama.cpp — een 9B-model draait prima op een kaart van 6 GB met 20 van 48 lagen geoffload, alleen langzamer. Voor eenmalige prompts in plaats van een server, verwissel llama-server voor llama-cli met dezelfde -m-flag.

LM Studio is dezelfde engine achter een desktop-GUI: leg een .gguf-bestand in zijn models-map (of zoek Hugging Face in de app) en klik op load. Voor de toolkeuze zelf behandelt de Ollama vs LM Studio-vergelijking welke je onder je modellen legt.

Welke GGUF-quantisatie download je?

Standaardantwoord: Q4_K_M. Dat is de sweet spot van de community — binnen een procent of twee van volledige precisie op ongeveer een kwart van de grootte. De ladder, van groot naar klein:

  • Q8_0 — vrijwel verliesvrij; gebruik het als je VRAM 8,5 bits per gewicht verteert zonder te knipperen.
  • Q6_K / Q5_K_M — een stap kleiner, nog steeds uitstekend voor 30B+-modellen.
  • Q4_K_M — de standaard. Voor 7–14B-modellen piekt de kwaliteit-per-GB hier.
  • IQ4_XS / Q3_K_M — om een groot model op een kleine kaart te wurmen; kwaliteitsverlies wordt merkbaar.
  • Q2_K en lager — laatste redmiddel; het model begint halverwege zinnen tot onzin te vervallen.

De vuistregel voor passen: bestandsgrootte in GB plus zo’n 1–2 GB context-overhead moet in je VRAM passen. Een Q4_K_M van 4,7 GB voor een 9B-model is comfortabel op een kaart van 8 GB. Kies liever een kleiner model op een hogere quant dan een groter model op een vreselijke quant — een Q8 4B wint het meestal van een Q2 9B.

GGUF vs Safetensors: welk formaat heb je nodig?

Safetensors is het ongequantiseerde archiefformaat — gewichten op volle precisie voor training, fine-tunen en tools als transformers en ComfyUI. GGUF is het gequantiseerde, draaibare formaat voor inferentie op je eigen hardware. Je kunt een GGUF niet fine-tunen, en een safetensors-bestand draait niet in Ollama of llama.cpp zonder eerst te converteren (daarvoor is het script convert_hf_to_gguf.py in llama.cpp). Regel: trainen of image-pipelines → safetensors; lokaal chatten en serveren → GGUF. Begon je zoekopdracht als gguf-vs-safetensors, dan is die scheiding het hele antwoord.

Welke GGUF-runner gebruik je?

RunnerBest voorInstallatieGPU-offloadOpenAI-compatibele API
OllamaInstellen en vergetencurl-eenregelaarAutomatischJa (:11434/v1)
llama.cppMaximale controle, nieuwste featuresBuild of pakketbeheerderHandmatige -ngl-regelaarJa (llama-server)
LM StudioDesktop-GUI, modellen browsenApp-downloadAutomatischJa (lokale server)
vLLMGebatcht meergebruiker-serverenpip install vllmAutomatischJa (native)

Kies Ollama als je het aan wilt zetten bij het opstarten en uit het zicht wilt — het is wat ik op mijn homelab gebruik om modellen aan het hele netwerk te serveren. Kies llama.cpp als je een feature dezelfde dag wilt dat hij uitkomt (nieuwe architecturen landen daar eerst) of geheugencontrole op laagniveau wilt. Kies LM Studio voor een GUI. Kies vLLM alleen als één model veel gelijktijdige gebruikers moet bedienen — zijn GGUF-ondersteuning werkt, maar is tweede klas naast zijn native formaten.

Waarom laadt mijn GGUF-model niet?

De vier fouten die de meeste gevallen dekken:

  1. unknown model architecture — de GGUF gebruikt een architectuur die ouder is dan je runtime (nieuwe MoE- en vision-modellen komen constant bij). Werk Ollama bij of rebuild llama.cpp; er is geen andere fix.
  2. Out of memory bij het laden — de quant is te groot voor je VRAM plus context. Ga één tree lager (Q4_K_MQ3_K_M), verlaag -ngl of verklein de context met -c 4096.
  3. Download afgebroken / corrupt — het laden van de GGUF faalt met een magic-number- of metadatafout. Download opnieuw en vergelijk de SHA256 van de Hugging Face-pagina.
  4. ollama run ./model.gguf weigert — verwacht: de run van Ollama neemt modelnamen, geen bestandspaden. Gebruik de Modelfile-route hierboven.

Nog een laatste hoek om te kennen: een lokaal GGUF-endpoint combineert goed met agentische coding-tools — wijs een OpenAI-compatibele client erop en completions kosten alleen elektriciteit. De beste lokale LLM’s voor code testte welke modellen de plek verdienen zodra het loodgieterswerk in deze gids werkt.

Zodra de runtimevraag opdoemt, lees je llama.cpp vs Ollama — een week naast elkaar gebruikt, en de trade-offs zijn niet wat de README’s suggereren.

FAQ

Wat is een GGUF-bestand?

De modelcontainer van llama.cpp: gewichten, tokenizer en metadata in één bestand, gequantiseerd zodat het model op consumentenhardware past.

Heb ik een GPU nodig om GGUF-modellen te draaien?

Nee. llama.cpp en Ollama draaien op CPU en offloaden lagen naar een GPU als die er is — RAM bepaalt wat past, VRAM bepaalt de snelheid.

Ollama, llama.cpp of vLLM — wat gebruik ik?

Ollama voor gemakkelijk dagelijks gebruik, llama.cpp voor controle en exotische hardware, vLLM voor meergebruiker-serveren met continuous batching.

— mrsaynothing

— mrsaynothing

Veldnotities over AI, Linux en self-hosting.

Bespreek deze post op dev.to dev.to ↗

De volgende how-to per e-mail

Eén e-mail per post. Fix het en ga door.

self-hosted · geen derden · uitschrijven met één klik

wat is dit?

Fork synchroniseren met upstream: 3 veilige methodes

Schrijf je dit met plezier? Dit bouw ik professioneel. huur me in