Batch-Inferenz: mehrere Anfragen gebündelt verarbeiten

Batch-Inferenz bündelt mehrere Anfragen zu einem gemeinsamen Durchlauf, um die GPU besser auszulasten und die Kosten pro Anfrage zu senken.

Kategorie:KI & Machine Learning

Batch-Inferenz (auch Batching) bezeichnet das Bündeln mehrerer Anfragen zu einem gemeinsamen Verarbeitungsdurchlauf, statt jede Anfrage einzeln durch das Modell zu schicken. Weil eine GPU viele Rechnungen parallel ausführen kann, verpufft ein Großteil ihrer Kapazität, wenn immer nur eine einzelne Anfrage verarbeitet wird. Batching füllt diese Kapazität - ein zentraler Hebel, um die Inferenz wirtschaftlich zu betreiben.

Warum Batching die GPU besser auslastet

Eine GPU ist auf massiv parallele Rechenoperationen ausgelegt. Verarbeitet man Anfragen einzeln, bleibt ein großer Teil der Recheneinheiten ungenutzt, während die feste Grundlast (Speicherzugriffe, Laden der Gewichte) trotzdem anfällt. Werden mehrere Anfragen gebündelt, teilen sie sich diese Grundlast, und die parallelen Einheiten werden ausgefüllt. Dadurch sinken die Inferenzkosten pro Anfrage, weil dieselbe teure GPU-Inferenz mehr Arbeit in derselben Zeit erledigt.

Statisches und kontinuierliches Batching

  • Statisches Batching: Anfragen werden gesammelt, bis ein Bündel voll ist oder ein Zeitfenster abläuft, und dann gemeinsam verarbeitet.
  • Continuous Batching: Neue Anfragen werden laufend in einen bereits aktiven Durchlauf aufgenommen, sobald Platz frei wird. Das hält die GPU gleichmäßiger ausgelastet und ist bei schwankendem Verkehr effizienter.

Trade-off: Latenz gegen Durchsatz

Batching optimiert den Durchsatz - also die Zahl der Anfragen pro Zeiteinheit - und damit die Kosten pro Anfrage. Der Preis dafür kann etwas höhere Latenz für die einzelne Anfrage sein, weil sie unter Umständen kurz auf ihr Bündel wartet. Für interaktive Anwendungen wählt man das Fenster daher klein, für verzögerungstolerante Massenverarbeitung darf es größer sein. Batch-Inferenz greift gut mit Quantisierung zusammen und ist Teil einer umfassenden LLM-Kostenoptimierung.

Batch-Inferenz bei Elasticbrains

Wir richten Batching so ein, dass die GPU-Auslastung steigt, ohne die Latenz für Nutzer über das vertretbare Maß zu heben - abgestimmt auf das jeweilige Anfrageprofil. So sinken die Kosten pro Anfrage bei gleichbleibender Nutzererfahrung. Mehr dazu auf unserer Leistungsseite KI-Kosten optimieren lassen.

Häufige Fragen

Was ist Batch-Inferenz?
Das Bündeln mehrerer Anfragen zu einem gemeinsamen Verarbeitungsdurchlauf, statt jede einzeln durch das Modell zu schicken. So wird die GPU besser ausgelastet und die Kosten pro Anfrage sinken.
Warum senkt Batching die Kosten pro Anfrage?
Eine GPU rechnet massiv parallel. Bei Einzelanfragen bleibt viel Kapazität ungenutzt, während die Grundlast trotzdem anfällt. Gebündelte Anfragen teilen sich diese Grundlast und füllen die parallelen Recheneinheiten aus.
Was ist der Unterschied zwischen statischem und kontinuierlichem Batching?
Statisches Batching sammelt Anfragen, bis ein Bündel voll ist oder ein Zeitfenster abläuft. Continuous Batching nimmt neue Anfragen laufend in einen aktiven Durchlauf auf und hält die GPU gleichmäßiger ausgelastet.
Erhöht Batching die Antwortzeit?
Es kann die Latenz der einzelnen Anfrage leicht erhöhen, weil sie kurz auf ihr Bündel wartet. Deshalb wählt man das Fenster für interaktive Anwendungen klein und für verzögerungstolerante Massenverarbeitung größer.