Inferenzoptimierung, Serving und Leistungskennzahlen
Disaggregated Serving
Heißt auch Prefill-Decode Disaggregation.
Getrennte Ressourcen oder Prozesse für Prefill und Decode.
Disaggregated Serving trennt die beiden Phasen einer Anfrage auf verschiedene Recheneinheiten: Die Verarbeitung der Eingabe läuft auf der einen Gruppe von Grafikkarten, die Erzeugung der Ausgabe auf einer anderen. Der Zwischenspeicher der Aufmerksamkeitswerte wird dazwischen übertragen. Zhong et al.: DistServe
Zwei Phasen mit gegensätzlichen Ansprüchen
Der Grund ist die gegenseitige Störung. Laufen beide Phasen auf derselben Karte, bremsen lange Eingaben die laufenden Ausgaben, und beide Phasen müssen sich dieselbe Aufteilung der Modellgewichte teilen, obwohl sie unterschiedliche Anforderungen haben.
Getrennt lassen sich beide Seiten einzeln auslegen und auf ihre jeweilige Zielgröße hin einstellen: die Zeit bis zum ersten Token auf der einen, die Zeit je weiterem Token auf der anderen. Die Alternative ist, beide Phasen auf derselben Karte zu verzahnen und die Eingabe dafür in Abschnitte zu zerlegen. Agrawal et al.
So kannst du dir das vorstellen
Eine Werkstatt trennt Annahme und Reparatur. Die Annahme kann Fahrzeuge zügig aufnehmen, ohne dass die laufenden Reparaturen unterbrochen werden. Der Preis ist, dass das Fahrzeug einmal umgesetzt werden muss. Das Bild erklärt die Trennung, nicht die Übergabe der Daten.
Was es in der Praxis bedeutet
Das Verfahren lohnt sich bei großen Aufbauten mit klaren Zusagen an Antwortzeiten, etwa wenn die Zeit bis zum ersten Token garantiert werden soll. Für kleine Installationen ist es zu aufwendig, weil die Übertragung des Zwischenspeichers schnelle Verbindungen zwischen den Karten braucht.
Bei der Bewertung von Angeboten ist die Kennzahl interessant, die dahintersteht: nicht Durchsatz allein, sondern Durchsatz unter Einhaltung von Zeitvorgaben.
Wo es verwechselt wird
Die Trennung der Phasen ist keine Trennung von Modellen: Es ist dasselbe Modell auf beiden Seiten. Und sie ersetzt nicht die Bündelung, sondern ordnet sie je Phase neu.
Verwandte Begriffe
Prefill, Decode Phase, Chunked Prefill, Model Serving, Time to First Token, KV Cache.