Je hebt een open model lokaal draaien en dat werkt prima — tot je collega’s het ook gaan gebruiken. Dan zakt het in. Ollama is gebouwd voor één gebruiker; zodra tien mensen tegelijk een vraag stellen, staan negen ervan te wachten. Dat is precies het gat dat vLLM vult. In deze gids zet je in vier stappen een eigen inference-server op die dezelfde API spreekt als OpenAI.
Stap 1: controleer of je de hardware hebt
vLLM is gebouwd voor GPU’s. Een NVIDIA-kaart met CUDA is het gangbare pad; de documentatie beschrijft daarnaast installatiepaden voor CPU en TPU, maar de CPU-variant is er om te testen, niet om productie mee te draaien.
Heb je geen kaart in huis, huur er dan één per uur bij een cloudaanbieder. Reken vooraf even door hoeveel uur je die kaart echt bezet houdt — dat is de rekensom die bepaalt of zelf draaien goedkoper is dan tokens afrekenen.
💡 Beginner-tip: twijfel je of je dit nodig hebt? Voor één persoon op één laptop is Ollama simpeler én voldoende. vLLM verdient zich pas terug bij meerdere gebruikers tegelijk.
Stap 2: installeer en start de server
Installeren gaat via pip, in een verse virtuele omgeving:
python -m venv .venv && source .venv/bin/activate
pip install vllm
Daarna start je de server met één commando, met een modelnaam van Hugging Face:
vllm serve Qwen/Qwen3-8B
De eerste keer duurt dit even: vLLM haalt de modelgewichten op en reserveert GPU-geheugen. Als het goed is, luistert de server daarna op http://localhost:8000.
Twee vlaggen die je in de praktijk het vaakst nodig hebt:
--max-model-len— maximale contextlengte. Verlaag dit als het model niet in je geheugen past.--gpu-memory-utilization— welk deel van de kaart vLLM mag claimen. Draait er nog iets anders op die GPU, zet dit dan lager.
Stap 3: praat ermee alsof het OpenAI is
Dit is de reden dat mensen voor vLLM kiezen. De server biedt endpoints in het formaat van de OpenAI API — /v1/chat/completions, /v1/completions en /v1/models — zodat je bestaande code niet hoeft te herschrijven. Je wijst de client naar je eigen adres en verzint een sleutel, want er is niets om te verifiëren:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
antwoord = client.chat.completions.create(
model="Qwen/Qwen3-8B",
messages=[{"role": "user", "content": "Vat dit contract samen in 3 bullets."}],
)
print(antwoord.choices[0].message.content)
Werkt dit, dan werkt vrijwel elke tool die met de OpenAI API overweg kan ook met jouw server. Dat is het hele punt.
Stap 4: test met meerdere gebruikers tegelijk
Hier komt de winst pas tevoorschijn, en daarom is dit een stap en geen voetnoot. Eén vraag stellen zegt niets — vuur er tien tegelijk af.
Onder water doet vLLM dan twee dingen. Continuous batching voegt binnenkomende verzoeken samen in de batch die al draait, in plaats van te wachten tot de vorige groep helemaal klaar is. PagedAttention hakt het geheugen voor de zogeheten KV-cache in vaste pagina’s, zoals een besturingssysteem met virtueel geheugen doet, waardoor er nauwelijks nog ruimte verloren gaat aan versnippering. Samen zorgen ze dat je doorvoer meestijgt met het aantal gebruikers in plaats van in te storten (Bron: RunPod).
Meet dus niet hoe snel één antwoord komt, maar hoeveel tokens per seconde je haalt bij realistische gelijktijdigheid. Dat cijfer bepaalt of je kaart de afdeling aankan.
Wanneer je dit níet moet doen
vLLM is alleen de serveerlaag. Het levert geen RAG, geen agent-framework en geen gebruikersinterface — dat bouw of koppel je er zelf omheen. Heb je geen DevOps-capaciteit om een server draaiend te houden, dan is een gehoste API bijna altijd verstandiger.
Wil je eerst begrijpen wat open modellen precies zijn en waarom bedrijven ze zelf willen draaien, lees dan onze uitleg over open-weight modellen lokaal draaien, en op hetlaatsteainieuws.nl de achtergrond bij lokale LLM’s en Ollama.
