Batch Size
Was ist ein Batch Size?
Batch Size bezeichnet die Anzahl von Trainingsbeispielen (Samples), die ein Modell in einem einzigen Durchlauf verarbeitet, bevor die Modellgewichte via Gradientenabstieg aktualisiert werden. Dieser Schritt – auch Parameter-Update oder Weight Update genannt – basiert auf dem gemittelten Gradienten aller Samples im Batch. Das Konzept existiert, weil der vollständige Datensatz für einen einzigen Update-Schritt sowohl rechenintensiv als auch speicherhungrig wäre, während einzelne Samples (Batch Size = 1, auch Stochastic Gradient Descent genannt) zu viel Rauschen erzeugen und keine parallele Hardware-Nutzung erlauben. Batch Size ist damit ein zentrales Hyperparameter-Stellrad im Training Loop jedes Machine-Learning-Modells.
Wie funktioniert Batch Size?
Technisch teilt der Dataloader den Trainingsdatensatz in gleichgroße Blöcke auf. Jeder Block wird als Tensor durch das Netz geforwardet (Forward Pass), der Loss berechnet und per Backpropagation der Gradient ermittelt. Der Optimizer – typischerweise Adam oder SGD – aktualisiert dann die Gewichte anhand des gemittelten Gradienten des gesamten Batches. Größere Batches liefern stabilere Gradienten-Schätzungen und nutzen GPU-Parallelismus effizienter, bewegen sich aber schneller in scharfe, schmale Minima der Loss-Landscape, was die Generalisierung verschlechtern kann. Neuere Forschung beschreibt dieses Verhalten mit der sogenannten BST-Skalierungsregel: Optimal ist eine Batch Size, die grob dem Token-Budget T hoch 2/3 entspricht (BS ≈ T^{2/3}). Darunter bleibt Hardware-Potenzial ungenutzt, darüber kippt die Konvergenz. Bei Large Language Models wird die effektive Batch Size häufig als Produkt aus Batch Size und Sequenzlänge betrachtet, um Token-Budgets präzise auszusteuern. Für Inference-Szenarien setzt NVIDIA mit TensorRT Dynamic Batch auf zur Laufzeit anpassbare Batch-Größen, was flexible Deployment-Architekturen ermöglicht.
Batch Size in der Praxis
In der Object Detection – etwa mit YOLO-basierten Architekturen – sind Batch Sizes von 32 bei rund 1.000 Trainingssamples und 128 bei etwa 5.000 Samples empirisch etablierte Richtwerte (Imagimob/DEEPCRAFT). Im Bereich Human Activity Recognition mit rekurrenten Architekturen wie RNN, GRU, LSTM oder CNN werden Batch Sizes von 256 in Kombination mit dem Adam-Optimizer eingesetzt, um Transfer Learning zu stabilisieren – mit gemessenen Accuracies von bis zu 94,4 %. Im Enterprise-Umfeld steuert Microsoft Azure AI die Batch-Größe in ML-Indexern direkt über API-Parameter, um Datenverarbeitungs-Pipelines zu skalieren. Kurz: Die optimale Batch Size ist immer kontextabhängig und liegt je nach Datensatzgröße, Modellarchitektur und Hardware typischerweise zwischen 32 und 256.
Vorteile und Grenzen
Größere Batches maximieren den GPU-Durchsatz, beschleunigen das Training messbar und liefern konsistentere Gradienten-Updates – besonders vorteilhaft bei langen Trainingsläufen großer Modelle. Kleinere Batches hingegen wirken als natürlicher Regularisierer: Das Rauschen im Gradientensignal hilft dem Modell, flachere Minima zu finden und damit besser zu generalisieren. Der Hauptnachteil großer Batches ist genau dieser Generalisierungsverlust durch scharfe Minima sowie der proportional steigende VRAM-Bedarf. Wer die Batch Size verdoppelt, muss oft gleichzeitig die Lernrate skalieren (Linear Scaling Rule nach Goyal et al., 2017), sonst divergiert das Training. Adaptive Strategien, die Batch Size und Sequenzlänge während des Trainings schrittweise erhöhen, bieten einen Mittelweg – sie erhalten Konvergenzgarantien und steigern dennoch die Hardware-Auslastung. Die Grenze liegt dort, wo mehr Batch Size keinen Genauigkeitsgewinn mehr bringt, aber weiterhin Speicher kostet.