senn-techsenn-tech
KI & Entwicklung
KI & Entwicklung2025-05-06· von Mag. (FH) Franz Senn

Hochdurchsatz-LLM-Inferenz mit vLLM auf eigener Hardware

Lokale LLMs sind kein Hype mehr — sie sind Werkzeuge. Aber rohe Inferenz mit Transformers ist langsam. vLLM adressiert genau das.

PagedAttention: Der Schlüssel

Klassische Inferenz speichert den Key-Value-Cache jedes Tokens linear: das führt zu Speicherfragmentierung und Ineffizienz beim Batching. vLLM nutzt stattdessen PagedAttention: der KV-Cache wird in Blöcken (Pages) verwaltet, wie virtueller Speicher. Das erlaubt Sharing, Wiederverwendung und vor allem kontinuierliches Batching.

Das bedeutet konkret: Neue Requests müssen nicht warten, bis der aktuelle Batch geschlossen wird. Sie rücken in den nächsten freien Block ein, sobald Platz ist. Der Durchsatz richtet sich nach der GPU, nicht nach der Starrheit des Batch-Rasters — und genau dieser kleine Unterschied macht im Dauerbetrieb viel aus.

Ergebnis: 10 gleichzeitige Requests laufen nicht 10× langsamer, sondern vielleicht 2×, weil Speicher und Rechenzeit dynamisch geteilt werden.

Betrieb auf einer RTX 5090

Die 5090 mit 32 GB VRAM ist unsere Standard-Inferenzkarte. Mit vLLM läuft darauf problemlos ein 70B-Modell mit Q4-Quantisierung oder ein 13B-Modell mit vollen Gewichten. Die OpenAI-kompatible API integriert sich nahtlos in jedes Tool, das openai als Backend erwartet.

python -m vllm.entrypoints.openai.api_server \
  --model mistralai/Mixtral-8x22B-Instruct-v0.1 \
  --tensor-parallel-size 1 --max-model-len 8192

Dann zeigt jedes Tool, das „OpenAI-kompatibel" kann, einfach auf http://<server>:8000/v1.

Was im Betrieb wirklich zählt

Bei hoch verfügbarem Einsatz sind drei Dinge entscheidend: VRAM-Budget sauber setzen (--max-model-len und --gpu-memory-utilization auf den konkreten Host abstimmen, sonst gibt es OOM unter Last), Token-Raten monitoren (Prometheus-Endpoint von vLLM liefert Latenz und Durchsatz pro Modell), und die Quantisierung bewusst wählen. Für Text reicht Q4 oft völlig; für Strukturierung und Ziffern-Extraktion bevorzugen wir hingegen FP8, weil es die Trefferquote der Ergebnisse spürbar hebt.

Wann vllm, wann llama.cpp?

vLLM glänzt bei hohem Durchsatz, vielen parallelen Requests und Server-Betrieb. Für einzelne Requests, CPU-Offload oder exotische Quantisierungen ist llama.cpp besser. Beide haben ihre Berechtigung — siehe nächster Artikel.

Warum selbst hosten statt Cloud-API?

Für den Mittelstand rechnet sich der Eigenbetrieb schnell. Eine einzelne RTX 5090 im eigenen Rack deckt die Last dutzender Nutzer ab — ohne pro-Token-Abrechnung und ohne dass ein Beleg das Haus verlässt. Die Cloud-API rechnet sich bei kleinem Volumen oder bei Modellen, die lokal nicht laufen; sobald aber Daten-Souveränität, gleichbleibende Latenz und berechenbare Kosten zählen, ist on-prem die klarere Lösung.

Dazu kommt die Vorhersagbarkeit: Eine lokale Karte skaliert linear bis zu ihrem Limit, während Cloud-Preise je nach Tarif, Region und verwendetem Modell schwanken. Wer eine Extraktions-Pipeline im Dauerbetrieb hält, weiß am Ende des Monats ganz genau, was die Karte gekostet hat: Stromrechnung inklusive.

Fazit

Wenn Sie LLMs für mehr als einen einzelnen Nutzer bereitstellen wollen, ist vLLM die erste Wahl. Die Architektur mit PagedAttention spart VRAM und erhöht den Durchsatz messbar. Für den Mittelstand heißt das: eine einzelne eigene Karte ersetzt mehrere teure Cloud-API-Abos, und die Daten bleiben im Haus.

FAQ
Warum eine eigene Karte betreiben statt einer Cloud-API?+

Eine einzelne RTX 5090 im eigenen Rack deckt die Last dutzender Nutzer ab — ohne pro-Token-Abrechnung und ohne dass ein Beleg das Haus verlässt. Sobald Daten-Souveränität, gleichbleibende Latenz und berechenbare Kosten zählen, ist on-prem klar überlegen. Die Cloud-API rechnet sich nur bei kleinem Volumen oder bei Modellen, die lokal nicht laufen.

Wann ist llama.cpp die bessere Wahl als vLLM?+

vLLM glänzt bei hohem Durchsatz, vielen parallelen Requests und Server-Betrieb. Für einzelne Requests, CPU-Offload oder exotische Quantisierungen ist llama.cpp besser geeignet. Beide haben ihre Berechtigung — die Frage ist nicht, welches Tool „besser“ ist, sondern ob Sie viele gleichzeitige Anfragen bedienen oder einzelne Läufe auf begrenzter Hardware fahren.

Worauf kommt es im Dauerbetrieb wirklich an?+

Drei Dinge: das VRAM-Budget sauber setzen (--max-model-len und --gpu-memory-utilization auf den Host abstimmen, sonst gibt es OOM unter Last), die Token-Raten über den Prometheus-Endpoint monitoren und die Quantisierung bewusst wählen. Für Text reicht oft Q4; für Strukturierung und Ziffern-Extraktion bevorzugen wir FP8, weil es die Trefferquote spürbar hebt.