Zurück zum Archiv
#ai#llm#glossary#aigen

Continuous Batching

Ein Server erzeugt zwei Antworten gleichzeitig. Eine endet schnell, die andere ist lang. Wenn der nächste Nutzer warten muss, bis das gesamte Paar fertig ist, bleibt der frei gewordene Platz viele Schritte lang ungenutzt.

Continuous Batching erlaubt es, die Zusammensetzung der bearbeiteten Anfragen zwischen aufeinanderfolgenden Modelliterationen zu ändern. Eine fertige Antwort verlässt den Batch — die gemeinsam verarbeitete Gruppe — und eine neue Anfrage kann ihren Platz einnehmen.

Die lange Antwort wächst weiter, während die kurze durch die nächste ersetzt wird. Für die Auswahl der Teilnehmer ist der Scheduler zuständig, also das Programm zur Arbeitsplanung. Man muss nicht auf den langsamsten Teilnehmer der gesamten vorherigen Gruppe warten.

Diese Nutzung freier Plätze kann den Durchsatz erhöhen, garantiert aber nicht jedem Nutzer eine kürzere Wartezeit. Die Länge der Anfragen, Speichergrenzen und Planungsregeln spielen eine Rolle. Bei ähnlichen Längen kann der Vorteil gegenüber einer festen Gruppe gering sein.

Quelle des Mechanismus: Orca, §3, „Iteration-level scheduling“.

Mechanismus und Details

Eine Presse mit zwei Bahnen: Ein langes türkisfarbenes Band läuft weiter; an die Stelle des kurzen ockerfarbenen tritt ein orangefarbenes.

Das ist besonders beim Decode nützlich: Eine Person braucht eine kurze Antwort, eine andere mehrere Hundert Tokens. Allein das Sammeln mehrerer Anfragen vor dem Modellstart ermöglicht noch keine Änderung der Zusammensetzung eines bereits laufenden Batches. Eine neue Anfrage benötigt außerdem Prefill; wie dieser Schritt zusammen mit der Generierung behandelt wird, hängt von der Implementierung der Engine ab.

Muss C auf A warten?

Eigenes Experiment: Zwei Plätze sind verfügbar. A und B sind zum Zeitpunkt 0 bereit und benötigen sechs beziehungsweise zwei Runden. C wird zum Zeitpunkt 1 bereit und benötigt zwei Runden. Beide Varianten führen dieselben Berechnungen aus, aber in der festen Gruppe nimmt der Platz von B erst nach dem Ende von A die Anfrage C auf.

Bei Continuous Batching startet C zum Zeitpunkt 2 und endet bei 4; in der festen Gruppe startet C bei 6 und endet bei 8. Stelle B auf sechs Runden um: Dann entfällt die frühere Freigabe eines Platzes, und beide Strategien ergeben denselben Zeitplan.

Die Runden haben hier eine angenommene gleiche Länge. Prefill und Transfers liegen außerhalb des Experiments; „bereit“ bedeutet bereit für die dargestellten Runden. Auf der GPU hängt die Iterationsdauer von der Arbeit ab. Die Anzahl belegter Plätze ist daher kein Prozentsatz der Geräteauslastung.

Die Möglichkeit, eine Anfrage hinzuzufügen, garantiert keinen sofortigen Start: Speichergrenzen und Scheduler-Regeln gelten weiterhin (Orca, §4.2). PagedAttention erleichtert die Speicherverwaltung, bestimmt aber selbst nicht die Bearbeitungsreihenfolge.

Ich verwende KI-generierte Inhalte als Teil meines täglichen Lernprozesses.