BlendServe: Optimizing Offline Inference for Auto-regressive Large Models with Resource-aware Batching
BlendServe ist ein System, das die Offline-Inferenz autoregressiver großer Modelle optimiert, indem es einen ressourcenbewussten Präfixbaum einführt, um die Ressourcenüberlappung und das Präfix-Sharing effektiv zu kombinieren, wodurch eine bis zu 1,44-fache Durchsatzsteigerung gegenüber Industriestandards wie vLLM und SGLang erreicht wird.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich vor, Sie betreiben eine riesige, Hochgeschwindigkeitsfabrik, die maßgeschneiderte Roboter baut (dies sind die KI-Modelle). Ihre Aufgabe ist es, tausende von Aufträgen (Anfragen) zu bearbeiten, um diese Roboter zu bauen.
In der Vergangenheit mussten Sie sich entscheiden zwischen zwei Arten von Aufträgen, wenn Sie Roboter schnell bauen wollten:
- Die „Schwerlast“-Aufträge: Diese erfordern viel Muskelkraft (Rechenleistung), aber sehr wenig Speicherplatz. Denken Sie an Aufträge zum Bau eines Roboters mit einem superstarken Arm, aber ohne Lagerfächer.
- Die „Schwerer Lager“-Aufträge: Diese erfordern sehr wenig Muskelkraft, aber eine massive Menge an Speicherplatz. Denken Sie an Aufträge für einen Roboter mit einem winzigen Arm, aber einem riesigen Lagerhaus im Inneren.
Das Problem: Der Engpass in der Fabrikhalle
Ihre Fabrik verfügt über zwei Hauptressourcen:
- Muskel-Maschinen (Rechenleistung/Compute): Diese sind schnell, werden aber müde, wenn sie warten müssen.
- Lageregel (Speicher/Memory): Diese sind riesig, werden aber ineffizient, wenn sie nicht optimal genutzt werden.
Der alte Weg (Naives Batching):
Früher bearbeiteten Fabriken die Aufträge einfach in der Reihenfolge ihres Eintreffens. Wenn Sie eine Schlange von 10 „Schwerlast“-Aufträgen hatten, arbeiteten Ihre Muskel-Maschinen unter Hochtouren, aber Ihre Lageregeln standen leer und nutzlos herum. Wenn dann die nächsten 10 „Schwerer Lager“-Aufträge kamen, waren Ihre Lageregeln voll besetzt, aber Ihre Muskel-Maschinen saßen untätig herum und spielten mit den Fingern.
Das ist so, als würde man versuchen, einen Lkw nur mit Ziegeln zu füllen, dann nur mit Federn. Man kann nicht so viel hineinpassen, wie man könnte, wenn man sie miteinander mischen würde. Der Lkw (Ihr Computerchip) ist die Hälfte der Zeit halb leer.
Das neue Problem:
Es gab noch einen Trick, den Fabriken verwendeten, der sich auf „Prefix Sharing“ (Präfix-Teilung) bezog. Stellen Sie sich vor, viele Aufträge beginnen mit dem exakt gleichen ersten Schritt (wie „Male den Roboter blau“). Wenn Sie diese Aufträge direkt nacheinander ausführen, müssen Sie das Blau nur einmal malen und das Ergebnis wiederverwenden. Das spart eine Menge Zeit.
Die „beste“ Reihenfolge für das Teilen (alle „Male Blau“-Aufträge zusammen zu erledigen) bedeutete jedoch oft, dass alle „Schwerlast“-Aufträge zusammen gruppiert und alle „Schwerer Lager“-Aufträge zusammen gruppiert wurden. Dies ruinierte die „Misch“-Strategie und ließ Ihre Maschinen wieder halb leer zurück.
Die Lösung: BlendServe
Die Autoren dieser Arbeit haben ein System namens BlendServe entwickelt. Denken Sie an einen superintelligenten Fabrikmanager, der die Reihenfolge der Arbeit neu arrangiert, um das Beste aus beiden Welten zu erhalten.
1. Der „Ressourcen-bewusste“ Baum:
Anstatt einer einfachen Linie organisiert BlendServe alle Aufträge in einem riesigen Stammbaum.
- Zweige: Gruppen von Aufträgen, die dieselben ersten Schritte teilen (Prefix Sharing).
- Beschriftungen: Jeder Zweig ist mit der Menge an „Muskelkraft“ vs. „Lagerplatz“ beschriftet.
2. Der „Dual Scanner“-Algorithmus:
Das ist der magische Trick. Der Manager geht nicht einfach nur einen Weg ab. Er steht an beiden Enden des Baums gleichzeitig:
- Er schnappt sich einen „Schwerlast“-Auftrag von der linken Seite.
- Er schnappt sich einen „Schwerer Lager“-Auftrag von der rechten Seite.
- Er legt sie zusammen in denselben Batch (eine Verarbeitungseinheit).
Das Ergebnis:
Nun, wenn die Fabrik läuft, arbeiten die Muskel-Maschinen hart, während die Lageregeln gefüllt werden. Sie helfen einander. Der Lkw ist voll beladen mit einer perfekten Mischung aus Ziegeln und Federn.
Warum das wichtig ist
Das Paper behauptet, dass BlendServe durch dieses kluge Mischen bei gleichzeitiger Beibehaltung der „gemeinsamen Schritte“ Folgendes erreichen kann:
- Die Fabrik um bis zu 44 % zu beschleunigen im Vergleich zu aktuellen Top-Systemen (wie vLLM und SGLang).
- 90 % der theoretisch „perfekten“ Geschwindigkeit zu erreichen. Stellen Sie sich vor, die perfekte Geschwindigkeit wäre 100 mph; BlendServe erreicht Sie bei 90 mph, während andere Systeme vielleicht nur 60 oder 70 mph schaffen.
Der Haken (und wie sie ihn gelöst haben)
Das Paper gibt zu, dass es schwierig ist, genau vorherzusagen, wie lange ein „Schwerer Lager“-Auftrag dauern wird, da KI Text Wort für Wort generiert. Um dies zu beheben, führt BlendServe einen schnellen „Testlauf“ mit einer kleinen Stichprobe der Aufträge durch, um zu schätzen, wie lange sie dauern werden, und nutzt diese Schätzungen dann, um die perfekte Mischung aufzubauen. Selbst wenn die Schätzung leicht daneben liegt, ist das System robust genug, um sich während des Betriebs anzupassen.
Kurz gesagt: BlendServe ist ein intelligenter Scheduler, der verhindert, dass Ihr Computer untätig herumsteht. Es mischt verschiedene Arten von KI-Aufgaben so zusammen, dass das Gehirn und das Gedächtnis Ihres Computers in perfekter Harmonie arbeiten, was die Offline-KI-Verarbeitung viel schneller und kostengünstiger macht.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.