Batch-Size

Beim Training eines Modells werden Daten nicht einzeln, sondern in Bündeln verarbeitet. Die Größe eines solchen Bündels heißt Batch-Size. Sie bestimmt, wie viele Trainingsbeispiele gleichzeitig durch das Modell laufen, bevor die Gewichte angepasst werden.

Das Grundprinzip: Daten in Gruppen verarbeiten

Ein neuronales Netz lernt, indem es Eingabedaten verarbeitet, seine Vorhersagen mit den erwarteten Ergebnissen vergleicht und dann seine internen Gewichte korrigiert. Bei einem Datensatz mit hunderttausenden Beispielen stellt sich die Frage: Wie viele Beispiele soll das Modell auf einmal sehen, bevor es seine Gewichte aktualisiert?

Die Batch-Size beantwortet genau diese Frage. Sie legt fest, wie viele Trainingsbeispiele in einem einzelnen Vorwärts- und Rückwärtsdurchlauf gemeinsam verarbeitet werden.

Beispiel: Ein Bilddatensatz enthält 50.000 Fotos. Bei einer Batch-Size von 64 verarbeitet das Modell jeweils 64 Bilder gleichzeitig. Pro Epoche ergeben sich daraus 782 Aktualisierungsschritte (50.000 geteilt durch 64, aufgerundet).

Beispiel: Ein Textklassifikator wird auf 200.000 Bewertungen trainiert. Bei Batch-Size 32 durchläuft jede Epoche 6.250 Gewichtsaktualisierungen. Bei Batch-Size 256 sind es nur noch 782. Die Gesamtzahl der gesehenen Beispiele bleibt identisch.

Kleine Batch-Sizes und ihre Eigenschaften

Bei kleinen Batch-Sizes (etwa 1 bis 32) basiert jede Gradientenschätzung auf wenigen Beispielen. Das erzeugt eine gewisse Streuung in den berechneten Gradienten. Diese Streuung hat einen überraschenden Nebeneffekt: Sie wirkt als implizite Regularisierung und hilft dem Modell, besser auf ungesehene Daten zu verallgemeinern.

Beispiel: Ein Sprachmodell wird mit Batch-Size 8 trainiert. Jeder Batch enthält nur 8 Sätze. Die Gradienten schwanken von Schritt zu Schritt stärker als bei größeren Batches. Das Modell findet tendenziell flachere Minima in der Verlustlandschaft, die oft besser generalisieren.

Beispiel: Beim Fine-Tuning eines vortrainierten Transformer-Modells auf einen kleinen Datensatz mit 5.000 Beispielen wird häufig Batch-Size 4 oder 8 gewählt. Größere Batches würden bei so wenigen Daten zu wenige Aktualisierungsschritte pro Epoche erzeugen.

Der Nachteil kleiner Batch-Sizes liegt in der Trainingsgeschwindigkeit. Moderne GPUs können Matrixoperationen massiv parallelisieren. Wenn ein Batch nur 8 Beispiele enthält, bleiben große Teile der Recheneinheiten ungenutzt.

Große Batch-Sizes und Skalierung

Große Batch-Sizes (etwa 256 bis 4.096 und darüber) liefern stabilere Gradientenschätzungen. Je mehr Beispiele in einem Batch enthalten sind, desto repräsentativer ist der Batch für die Gesamtverteilung der Daten. Die resultierende Gewichtsaktualisierung zeigt zuverlässiger in die richtige Richtung.

Beispiel: Das Training von GPT-3 verwendete effektive Batch-Sizes von bis zu 3,2 Millionen Token. Bei solchen Größenordnungen ist jeder einzelne Gradientenschritt sehr stabil und recheneffizient, da die GPU-Hardware voll ausgelastet wird.

Große Batch-Sizes erfordern allerdings Anpassungen bei der Learning Rate. Ohne Korrektur konvergiert das Training häufig schlechter oder bricht ab.

Fachliche Einordnung: Die Linear Scaling Rule (Goyal et al., 2017) empfiehlt, die Learning Rate proportional zur Batch-Size zu erhöhen. Bei einer Verdoppelung der Batch-Size wird auch die Learning Rate verdoppelt. Zusätzlich stabilisiert ein Learning-Rate-Warmup die ersten Trainingsschritte, in denen die Gewichte noch weit vom Optimum entfernt sind. Diese Technik ist bei Batch-Sizes oberhalb von 1.024 nahezu obligatorisch.

Speicherbedarf und GPU-Speicher als Grenze

Die Batch-Size wird in der Praxis nicht frei gewählt. Sie ist nach oben durch den verfügbaren VRAM begrenzt. Während des Trainings müssen gleichzeitig im Speicher gehalten werden: die Modellgewichte, die Zwischenergebnisse aller Schichten (für die Rückwärtspropagierung), die Gradienten und der Optimizer-Zustand.

Beispiel: Ein Modell mit 7 Milliarden Parametern belegt in FP16-Präzision etwa 14 GB allein für die Gewichte. Der AdamW-Optimizer benötigt zusätzlich das Doppelte für Momentschätzungen. Selbst auf einer GPU mit 80 GB VRAM bleibt nur begrenzter Platz für Aktivierungen. Die maximale Batch-Size liegt bei solchen Modellen oft im einstelligen Bereich.

Beispiel: Bei einem Bildklassifikator auf Basis von ResNet-50 (etwa 25 Millionen Parameter) passt auf eine Consumer-GPU mit 8 GB VRAM typischerweise eine Batch-Size von 32 bis 64 bei Bildern der Größe 224 mal 224 Pixel.

Gradient Accumulation: Große Batches ohne großen Speicher

Wenn die gewünschte Batch-Size nicht in den Speicher passt, gibt es einen Ausweg: Gradient Accumulation. Dabei wird der große Batch in mehrere kleine Micro-Batches aufgeteilt. Jeder Micro-Batch wird einzeln durch das Modell geschickt. Die berechneten Gradienten werden aufsummiert. Erst nach dem letzten Micro-Batch erfolgt die Gewichtsaktualisierung.

Das Ergebnis ist mathematisch identisch mit einem einzelnen großen Batch. Der Speicherbedarf entspricht aber nur dem eines einzelnen Micro-Batches.

Beispiel: Die gewünschte Batch-Size ist 256, aber nur 32 Beispiele passen in den Speicher. Mit Gradient Accumulation über 8 Schritte (8 mal 32 = 256) erreicht man die effektive Batch-Size 256, ohne mehr VRAM zu benötigen. Der Preis ist eine längere Trainingszeit pro Aktualisierungsschritt, da 8 sequenzielle Vorwärtsdurchläufe statt eines parallelen stattfinden.

TrainingsdatenGesamtdatensatz
Micro-Batch 1z.B. 32 Beispiele
Micro-Batch 2z.B. 32 Beispiele
Micro-Batch Nz.B. 32 Beispiele
Gradient 1berechnet
Gradient 2berechnet
Gradient Nberechnet
Gradienten summierenAkkumulation

Kriterien für die Wahl der Batch-Size

Die optimale Batch-Size hängt von mehreren Faktoren ab, die gegeneinander abgewogen werden müssen.

Verfügbarer Speicher

Der GPU-Speicher setzt die obere Grenze. Vor dem Training lässt sich durch einen Testlauf mit steigender Batch-Size ermitteln, ab welchem Wert der Speicher nicht mehr ausreicht.

Datensatzgröße

Bei kleinen Datensätzen (unter 10.000 Beispiele) sind kleine Batch-Sizes sinnvoller, weil sie mehr Aktualisierungsschritte pro Epoche ermöglichen. Bei sehr großen Datensätzen sind größere Batches effizienter.

Beispiel: Ein medizinischer Datensatz mit 2.000 annotierten Röntgenbildern wird mit Batch-Size 4 trainiert. Das ergibt 500 Aktualisierungsschritte pro Epoche. Bei Batch-Size 128 wären es nur 16 Schritte, was zu wenig Lernsignal pro Epoche liefert.

Aufgabentyp

Für kontrastive Lernverfahren (etwa bei Sentence Embeddings) sind größere Batch-Sizes vorteilhaft, weil sie mehr negative Beispiele zum Vergleich bereitstellen. Für generative Aufgaben ist die optimale Batch-Size oft kleiner.

Stabilität des Trainings

Wenn das Training instabil ist (stark schwankender Loss, divergierende Gradienten), kann eine Erhöhung der Batch-Size helfen, die Gradientenschätzung zu glätten.

Varianten und verwandte Verfahren

Die klassische Aufteilung unterscheidet drei Regime:

Stochastic Gradient Descent im engeren Sinne verarbeitet ein einzelnes Beispiel pro Schritt (Batch-Size 1). Der Gradient ist stark verrauscht, die Konvergenz langsam, aber der Speicherbedarf minimal.

Mini-Batch Gradient Descent verarbeitet eine feste Anzahl von Beispielen pro Schritt (typisch 16 bis 512). Das ist der in der Praxis am häufigsten eingesetzte Modus.

Full-Batch Gradient Descent verarbeitet den gesamten Datensatz in einem Schritt. Der Gradient ist exakt, aber der Speicherbedarf enorm und die Konvergenz bei nicht-konvexen Problemen oft schlechter.

Beispiel: Bei einem Datensatz mit 1 Million Bildern würde Full-Batch Training bedeuten, alle 1 Million Bilder gleichzeitig im Speicher zu halten. Das ist auf heutiger Hardware nicht praktikabel. Mini-Batch mit Batch-Size 256 verarbeitet den Datensatz in 3.906 Schritten pro Epoche.

Darüber hinaus gibt es dynamische Strategien. Manche Trainingsverfahren beginnen mit einer kleinen Batch-Size und erhöhen sie während des Trainings schrittweise. Das kombiniert die Regularisierungswirkung kleiner Batches in der frühen Trainingsphase mit der Effizienz großer Batches in späteren Phasen.

Grenzen und häufige Fehlerquellen

Die Batch-Size ist kein Stellhebel, den man beliebig erhöhen kann, um bessere Ergebnisse zu erzielen. Es gibt mehrere dokumentierte Probleme.

Sehr große Batch-Sizes können zu einer schlechteren Generalisierung führen. Modelle, die mit extrem großen Batches trainiert werden, tendieren dazu, scharfe Minima in der Verlustlandschaft zu finden. Diese scharfen Minima generalisieren schlechter auf ungesehene Daten als flache Minima, die bei kleineren Batch-Sizes häufiger erreicht werden.

Beispiel: In Experimenten von Keskar et al. (2017) zeigte sich, dass Modelle mit Batch-Size 256 auf dem Testset besser abschnitten als identische Modelle mit Batch-Size 8.192, obwohl der Trainingsverlust bei großen Batches niedriger war.

Die Learning-Rate-Anpassung bei geänderter Batch-Size wird häufig vergessen. Wer die Batch-Size verdoppelt, ohne die Learning Rate zu erhöhen, trainiert effektiv mit halbierter Schrittweite. Das Modell konvergiert langsamer oder erreicht eine schlechtere Lösung.

Bei verteiltem Training über mehrere GPUs muss die effektive Batch-Size beachtet werden. Wenn 8 GPUs jeweils Batch-Size 32 verarbeiten, ist die effektive Batch-Size 256. Alle Hyperparameter müssen auf diese effektive Größe abgestimmt sein.

Fachliche Einordnung: Die Debatte über optimale Batch-Sizes ist nicht abgeschlossen. McCandlish et al. (2018) zeigten mit dem Konzept der "Critical Batch Size", dass es für jedes Modell und jeden Trainingsstand eine Batch-Size gibt, unterhalb derer eine Vergrößerung fast linearen Geschwindigkeitsgewinn bringt und oberhalb derer der Ertrag abnimmt. Die kritische Batch-Size steigt typischerweise im Verlauf des Trainings, wenn das Modell näher an ein Optimum rückt.


Karl Kratz · 19.04.2025 (aktualisiert 03.04.2026)

Technologie Künstliche Intelligenz Training