Continuous Batching
Continuous Batching fügt bei jedem Schritt Anfragen zu einem laufenden Batch hinzu und entfernt sie daraus, statt auf einen vollständigen Batch zu warten. Dadurch steigt die GPU-Auslastung und die Latenz sinkt.
Kontinuierliches Batching ist eine fortgeschrittene Technik zur Ablaufplanung und Inferenzoptimierung, die im maschinellen Lernen (ML) eingesetzt wird, um die Hardwareauslastung und den Durchsatz zu maximieren. Beim herkömmlichen statischen Batching wartet eine Inferenz-Engine, bis sich eine festgelegte Anzahl von Anfragen angesammelt hat, bevor sie diese gleichzeitig verarbeitet. Das ist oft ineffizient, da das System warten muss, bis die am längsten laufende Anfrage im Batch abgeschlossen ist, bevor es Ressourcen freigibt. Kontinuierliches Batching, auch In-Flight- oder Iteration-Level-Batching genannt, löst dieses Problem, indem es neue Anfragen sofort dann in den Rechen-Batch einfügt, wenn eine aktive Anfrage abgeschlossen ist. Dadurch wird die Leerlaufzeit auf GPUs deutlich verringert und die Gesamteffizienz verbessert.
Verwandte Konzepte unterscheiden#
Um besser zu verstehen, wie Daten während der Modellbereitstellung verarbeitet werden, ist es hilfreich, kontinuierliches Batching von anderen verwandten Begriffen im Glossar abzugrenzen:
- Batchgröße: Damit ist die feste Anzahl von Beispielen gemeint, die beim Training oder bei der Inferenz gleichzeitig verarbeitet werden. Herkömmliche Batchverarbeitungsabläufe verwenden feste Größen, während die effektive Batchgröße beim kontinuierlichen Batching je nach eingehendem Anfrageaufkommen dynamisch schwanken kann.
- Echtzeit-Inferenz: Dabei geht es darum, die Inferenzlatenz für sofortige Vorhersagen zu minimieren und einzelne Eingaben bei ihrem Eintreffen zu verarbeiten. Kontinuierliches Batching schließt die Lücke zwischen statischem Batching mit hohem Durchsatz und latenzarmer Echtzeit-Inferenz: Es sorgt für einen hohen Durchsatz, ohne schnelle Anfragen auf langsamere warten zu lassen.
Anwendungen in der Praxis#
Kontinuierliches Batching ist für Produktionssysteme, die große Mengen unvorhersehbarer Anfragen verarbeiten, von entscheidender Bedeutung. Hier sind zwei konkrete Anwendungsbeispiele:
-
Textgenerierung mit hohem Durchsatz: Bei der Bereitstellung großer Sprachmodelle (LLMs) dauert die Antwortgenerierung für verschiedene Nutzer je nach Ausgabelänge unterschiedlich lange. Frameworks, die kontinuierliches Batching nutzen – etwa vLLM auf Ray Serve –, können neu generierte Tokens fortlaufend streamen und abgeschlossene Unterhaltungen sofort durch neue Prompts ersetzen. Diese Methode, die ursprünglich durch Forschung zur Ablaufplanung auf Iterationsebene bekannt wurde, steigert den Durchsatz der Textgenerierung erheblich.
-
Asynchrone Videoanalyse: Bei Aufgaben zum Videoverständnis, etwa der Verfolgung von Fahrzeugen im Netz der Verkehrskameras einer Stadt, treffen Einzelbilder in unterschiedlichen Abständen ein. Kontinuierliches Batching ermöglicht es Objektverfolgungsmodellen, eingehende Videobilder dynamisch zu verarbeiten, sobald Ressourcen frei werden. So lassen sich Hardwarebeschleunigungs-Pipelines für Dashboards intelligenter Städte optimieren.
Kontinuierliche Verarbeitung bei Bildverarbeitungsaufgaben#
Bei der Verwaltung von Modellbereitstellungen mit hohem Anfrageaufkommen können iterative Streaming-Inferenzen die Vorteile des dynamischen Batchings nachbilden: Speicher wird schrittweise freigegeben, statt bis zum Abschluss blockiert zu bleiben. Das folgende Python-Beispiel zeigt, wie du mit dem Generator-Muster und der Modellvorhersage-API einen kontinuierlichen Bilddatenstrom effizient verarbeitest.
from ultralytics import YOLO
# Load the latest Ultralytics YOLO26 model
model = YOLO("yolo26n.pt")
# Using stream=True acts as a generator, iteratively processing inputs
# to keep memory usage low and throughput high
results = model.predict(source=["img1.jpg", "img2.jpg", "img3.jpg"], stream=True)
# Process each result as soon as it completes
for result in results:
print(f"Detected {len(result.boxes)} objects in this frame.")Die systemweite Ressourcenplanung erfordert einen Ausgleich zwischen reiner Geschwindigkeit und Betriebskosten. Teams, die umfangreiche Modelle für maschinelles Sehen (CV) und Sprachmodelle bereitstellen, verlassen sich zunehmend auf fortschrittliche Bereitstellungs-Frameworks, um diese dynamischen Batches zu verwalten. Unternehmensteams, die ihre Infrastruktur vereinfachen möchten, finden auf der Ultralytics Platform leistungsfähige Werkzeuge für das Training, die Überwachung und den Export von Modellen in hochoptimierte Produktionsumgebungen.










