Technischer Leitfaden

Disaggregierte Vorabfüllung und Dekodierungsbereitstellung

Eine Bereitstellungsarchitektur, die die Inferenz großer Sprachmodelle in zwei separate Phasen aufteilt – Vorabfüllung und Dekodierung – und diese auf verschiedenen GPU-Pools ausführt.

  • 2 Minuten gelesen
  • Zuletzt aktualisiert
Auf dieser Seite2 Minuten gelesen
  1. Übersicht
  2. Tiefer Einblick
  3. Strategische Auswirkungen
  4. Die Zukunft des disaggregierten Prefill- und Decode-Servings
  5. Reale Umsetzung
  6. Risiken und Leitplanken
  7. Implementierungs-Roadmap
  8. Entdecken Sie weiter
  9. Häufig gestellte Fragen

Übersicht

It matters because these two phases have opposite hardware appetites, and forcing them onto the same machines wastes capacity and hurts latency.

Tiefer Einblick

Wenn ein LLM antwortet, erfolgt die Arbeit in zwei Schritten. Prefill liest die gesamte Eingabeaufforderung auf einmal und erstellt den Schlüsselwert-Cache (KV). Dies ist ein großer, paralleler, rechengebundener Burst, der die mathematischen Einheiten der GPU überlastet. Die Dekodierung generiert dann nacheinander Token, wobei jeder Schritt den gesamten KV-Cache liest – ein an die Speicherbandbreite gebundenes Rinnsal mit geringem Rechenaufwand. Zusammengenommen blockiert ein langes Vorfüllen die Dekodierung aller (Head-of-Line-Blockierung), und die Stapelung beider führt zu Interferenzen. Durch die Disaggregation wird ein GPU-Pool vorbefüllt und ein anderer dekodiert, wobei der KV-Cache zwischen ihnen über schnelle Verbindungen wie NVLink oder InfiniBand übertragen wird. Jeder Pool wird unabhängig optimiert und skaliert, wodurch der Goodput verbessert, die Tail-Latenz geglättet wird und es den Betreibern ermöglicht wird, gleichzeitig enge Ziele für die Zeit bis zum ersten Token und die Zeit pro Ausgabe-Token zu erreichen.

Strategische Auswirkungen

Kosten und Budget

Architekturentscheidungen beeinflussen über Jahre hinweg die Leistung und die Betriebskosten.

Klarere Entscheidungen

Technische Schulungen helfen Teams dabei, den richtigen Stack auszuwählen, nicht nur den neuesten.

Qualitätskontrolle

Bessere technische Entscheidungen reduzieren Zuverlässigkeitsvorfälle in der Produktion.

Die Zukunft des disaggregierten Prefill- und Decode-Servings

Erwarten Sie, dass die Disaggregation in Produktions-Stacks zum Standard wird. Systeme wie DistServe, Splitwise und Mooncake haben es populär gemacht, und vLLM und NVIDIA Dynamo bieten jetzt disaggregierte Modi an. Die Forschung treibt die Optimierung der KV-Cache-Übertragung, das Cache-Pooling und die Wiederverwendung über mehrere Anfragen hinweg, die dynamische Neuausrichtung der Vorfüll-/Dekodierungsverhältnisse bei wechselndem Datenverkehr sowie eine engere Integration mit Präfix-Caching und Chunked Prefill voran. Da Kontextfenster Millionen von Token umfassen, wird die Trennung dieser Phasen für eine kostengünstige Bereitstellung mit geringer Latenz immer wichtiger.

Reale Umsetzung

Ein Chat-Assistent leitet Eingabeaufforderungen für lange Dokumente an einen rechenintensiven Prefill-Cluster weiter und streamt dann Antworten von einem speicheroptimierten Dekodierungscluster, um eine reibungslose Eingabelatenz zu gewährleisten.

Mit NVIDIA Dynamo und vLLM können Betreiber separate Vorfüll- und Dekodierungs-Worker-Gruppen bereitstellen, sodass eine Reihe langer Eingabeaufforderungen laufende Generationen nicht einfrieren.

Mooncake (verwendet von Kimi von Moonshot AI) disaggregiert Vorfüllung und Dekodierung und fügt einen verteilten KV-Cache-Pool hinzu, um redundante Prompt-Neuberechnungen im großen Maßstab zu reduzieren.

Ein Code-Vervollständigungsdienst stellt einen kleinen Vorfüllpool für kurze Eingabeaufforderungen und einen großen Dekodierungspool zur Verfügung, da die meisten Kosten durch das Streamen vieler Ausgabetoken entstehen.

Risiken und Leitplanken

  • Die Optimierung eines Benchmarks kann umfassendere Systemschwächen verbergen.

  • Infrastruktur- und Wartungskosten werden oft unterschätzt.

  • Sicherheits- und Beobachtbarkeitslücken können größer werden, wenn die Systeme komplexer werden.

Implementierungs-Roadmap

  1. Definieren Sie vor der Implementierung Latenz-, Qualitäts- und Kostenziele.

  2. Benchmark unter realistischen Last- und Datenbedingungen.

  3. Instrumentenüberwachung auf Fehler, Drift und Benutzereinflüsse.

  4. Bereiten Sie vor der Skalierung Rollback- und Incident-Response-Pfade vor.

Entdecken Sie weiter

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Disaggregated Prefill and Decode Serving quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Quiz starten

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Häufig gestellte Fragen

What is Disaggregated Prefill and Decode Serving?

Eine Bereitstellungsarchitektur, die die Inferenz großer Sprachmodelle in zwei separate Phasen aufteilt – Vorabfüllung und Dekodierung – und diese auf verschiedenen GPU-Pools ausführt. Dies ist wichtig, da diese beiden Phasen unterschiedliche Hardware-Anforderungen haben und wenn sie auf dieselben Maschinen gezwungen werden, wird Kapazität verschwendet und die Latenz beeinträchtigt.

Was ist der Hardware-Hauptgrund für die Trennung von Vorfüllung und Dekodierung auf verschiedene GPU-Pools?

Prefill verarbeitet die gesamte Eingabeaufforderung parallel und sättigt die Rechenleistung, während Decode bei jedem Schritt den KV-Cache liest und durch die Speicherbandbreite begrenzt ist – gegensätzliche Wünsche, die separate, unabhängig abgestimmte Pools rechtfertigen.

Welche Datenstruktur muss von Prefill-Workern auf Decode-Worker übertragen werden?

Prefill erstellt den KV-Cache für die Eingabeaufforderung. Die Dekodierung benötigt diesen Cache, um mit der Generierung fortzufahren. Daher wird der Cache über eine schnelle Verbindung an den Dekodierungspool gesendet.

Welches Problem reduziert die Disaggregation konkret in einem Shared-GPU-Setup?

Auf gemeinsam genutzten GPUs kann ein langer Prefill-Burst laufende Dekodierschritte blockieren; Ihre Trennung verhindert diese Interferenz und stabilisiert die Tail-Latenz.

Warum kann die Vorfüllung aggressiv gestapelt werden, die Dekodierung aber Vorteile durch unterschiedliche Abstimmungen?

Prefill verarbeitet alle Prompt-Tokens zusammen, sodass größere Chargen die Tensorkerne gut versorgen; decode generiert jeweils ein Token und wird durch den Speicher gesteuert, sodass es unterschiedlich skaliert.

Welche Verbindungen werden normalerweise verwendet, um den KV-Cache zwischen disaggregierten Pools zu verschieben?

Damit die KV-Cache-Übertragung nicht zum neuen Engpass wird, sind Verbindungen mit hoher Bandbreite und geringer Latenz wie NVLink (knotenintern) und InfiniBand (knotenintern) erforderlich.