Im Inneren von vLLM: Anatomie eines Hochdurchsatz-LLM-Inferenzsystems

✍️ OpenClawRadar📅 Veröffentlicht: 7. August 2026🔗 Source
Im Inneren von vLLM: Anatomie eines Hochdurchsatz-LLM-Inferenzsystems
Ad

vLLM ist eine der am weitesten verbreiteten Open-Source-Inferenz-Engines für LLMs, und Aleksa Gordićs aktueller Beitrag bietet eine solide technische Einführung in seine internen Abläufe. Er richtet sich an Entwickler, die neugierig sind, wie moderne LLM-Engines aufgebaut sind, oder die erwägen, zu vLLM, SGLang und ähnlichen Projekten beizutragen. Die Analyse ist an den Commit 42172ad (9. August 2025) gebunden und konzentriert sich auf die neue V1-Engine (V0 ist veraltet).

Kernkomponenten der Engine

Der Artikel beginnt mit dem Offline-Synchron-Setup unter Verwendung eines einfachen LLM-Objekts. Der Engine-Konstruktor wird in mehrere Schlüsselkomponenten zerlegt:

  • vLLM-Konfiguration – Alle Einstellungen für Modell, Cache, Parallelität usw.
  • Prozessor – Konvertiert rohe Eingaben über Validierung und Tokenisierung in Engine-Core-Anfragen.
  • Engine-Core-Client – Im Beispiel ist es ein InprocClient, der prozessintern läuft; für die Produktion würde man zu einem Multiprozess-Client wie DPLBAsyncMPClient wechseln.
  • Ausgabeprozessor – Konvertiert Engine-Core-Ausgaben in benutzerfreundliche Anfrageausgaben.

Der Engine-Kern selbst enthält den Modell-Executor (der Vorwärtsdurchläufe ausführt), einen strukturierten Ausgabemanager (für geführte Dekodierung) und einen Scheduler mit Warte-/Laufwarteschlangen. Der Scheduler verwendet eine Richtlinie (FCFS oder Priorität) und enthält den KV-Cache-Manager.

Ad

Paged Attention & KV-Cache

Der KV-Cache-Manager ist das Herzstück von Paged Attention. Er verwaltet eine free_block_queue verfügbarer Blöcke, oft Hunderttausende, abhängig von VRAM und Blockgröße. Die Blockgröße für einen Standard-Transformer (nicht-MLA) berechnet sich wie folgt:

2 * block_size * num_kv_heads * head_size * dtype_num_bytes

was bei Standardeinstellungen eine praktische Blockgröße ergibt. Dieser Paging-Mechanismus ermöglicht eine effiziente Speicherverwaltung und hohen Durchsatz.

Fortgeschrittene Funktionen

Der Beitrag bleibt nicht bei den Grundlagen stehen. Er skizziert erweiterte Funktionen, die vLLM produktionsreif machen:

  • Chunked Prefill – Teilt lange Prompts in Teilblöcke auf, um sie mit der Generierung zu verschränken.
  • Prefix-Caching – Wiederverwendung des KV-Cache für gemeinsame Prompt-Präfixe.
  • Geführte Dekodierung – Beschränkt die Ausgabe auf ein Schema oder eine Grammatik.
  • Spekulative Dekodierung – Verwendet ein Draft-Modell zur Beschleunigung der Generierung.
  • Disaggregiertes P/D – Trennt Prefill und Dekodierung auf verschiedene GPUs.

Außerdem wird die Skalierung auf Multi-GPU- und Multi-Node-Setups behandelt sowie die Serving-Schicht für die Verarbeitung gleichzeitiger Webanfragen. Benchmarks und Auto-Tuning werden zur Messung von Latenz und Durchsatz erwähnt.

Für Entwickler, die LLM-Inferenzsysteme aufbauen oder erweitern, bietet dies ein klares mentales Modell, wie vLLM Planung, Speicher und Ausführung orchestriert. Es ist der erste Teil einer Serie, also erwarten Sie in Zukunft tiefere Einblicke in einzelne Subsysteme.

📖 Vollständige Quelle lesen: HN LLM-Tools

Ad

👀 Siehe auch

Relational Memory für LLMs: Drei-Schichten-System modelliert Benutzerbeziehungen
Werkzeuge

Relational Memory für LLMs: Drei-Schichten-System modelliert Benutzerbeziehungen

Ein Open-Source-Python-Tool, das relationales Gedächtnis zu LLMs hinzufügt, indem es Benutzer-KI-Beziehungen über sieben psychologische Dimensionen modelliert, anstatt flache Fakten zu speichern, und dabei eine dreischichtige Erzählstruktur verwendet.

OpenClawRadar
SkyClaw v2.2 Rust AI Agent Runtime fügt OpenAI OAuth und benutzerdefinierte Tool-Erstellung hinzu
Werkzeuge

SkyClaw v2.2 Rust AI Agent Runtime fügt OpenAI OAuth und benutzerdefinierte Tool-Erstellung hinzu

SkyClaw v2.2 führt die OpenAI OAuth-Authentifizierung mit ChatGPT Plus/Pro-Abonnements ein, ermöglicht die Erstellung benutzerdefinierter Tools, bei denen Agenten zur Laufzeit eigene Bash/Python/Node-Tools schreiben, und bietet einen Daemon-Modus für den Hintergrundbetrieb. Die Rust-basierte Laufzeitumgebung erreicht Benchmarks von 31 ms Kaltstart, 15 MB Leerlauf-RAM und 9,3 MB Binärgröße.

OpenClawRadar
Zwei Monate mit GitHub Spec-Kit und Claude Code: Was funktioniert, was nicht
Werkzeuge

Zwei Monate mit GitHub Spec-Kit und Claude Code: Was funktioniert, was nicht

Ein Entwickler teilt praktische Notizen zur Verwendung von GitHub's Spec-Driven Development Toolkit mit Claude Code und behandelt den Fünf-Phasen-Workflow, Drift-Probleme, Aufwand-Kompromisse und Einrichtungstipps.

OpenClawRadar
OpenClaw .NET: NativeAOT-Portierung mit JSON-RPC-Brücke für bestehende Plugins
Werkzeuge

OpenClaw .NET: NativeAOT-Portierung mit JSON-RPC-Brücke für bestehende Plugins

OpenClaw .NET ist ein C#-Port von OpenClaw, der zu einer ~23 MB NativeAOT-Binärdatei kompiliert. Dadurch entfallen JIT-Aufwärmzeit und Node.js-Laufzeit-Overhead, während die Kompatibilität mit bestehenden TypeScript/JavaScript-Plugins über eine integrierte JSON-RPC-Brücke erhalten bleibt.

OpenClawRadar