Batch Size
Lerne, wie die Batchgröße die Geschwindigkeit und Genauigkeit beim Trainieren von maschinellem Lernen beeinflusst. Erforsche Hardwarebeschränkungen und optimiere Ultralytics YOLO26 mit AutoBatch.
Im Bereich des machine learning und insbesondere des deep learning bezeichnet Batch Size die Anzahl der Trainingsbeispiele, die in einer Iteration des Modeltrainings verwendet werden. Anstatt die gesamten training data auf einmal in das neuronale Netz einzuspeisen – was aufgrund von Speicherbeschränkungen oft rechnerisch unmöglich ist –, wird der Datensatz in kleinere Teilmengen, sogenannte Batches, aufgeteilt. Das Modell verarbeitet einen Batch, berechnet den Fehler und aktualisiert seine internen model weights über backpropagation, bevor es zum nächsten Batch übergeht. Dieser Hyperparameter spielt eine entscheidende Rolle bei der Bestimmung sowohl der Trainingsgeschwindigkeit als auch der Stabilität des Lernprozesses.
Die Dynamik des Trainings mit Batches#
Die Wahl der Batchgröße verändert grundlegend, wie der Optimierungsalgorithmus, typischerweise eine Variante des stochastic gradient descent, durch die Loss-Landschaft navigiert.
- Kleine Batch Sizes: Die Verwendung einer kleinen Anzahl (z. B. 8 oder 16) führt zu "verrauschten" Aktualisierungen. Während die Gradientenschätzung für den gesamten Datensatz weniger genau ist, kann dieses Rauschen dem Modell manchmal helfen, lokalen Minima zu entkommen, was potenziell zu einer besseren Generalisierung führt. Kleinere Batches erfordern jedoch mehr Aktualisierungen pro Epoche, was das Training aufgrund des Overheads in Bezug auf die tatsächliche Zeitdauer verlangsamen kann.
- Große Batchgrößen: Ein größerer Batch (z. B. 128 oder 256) liefert eine genauere Schätzung des Gradienten, was zu einer glatteren Konvergenz der loss function führt. Er ermöglicht eine massive Parallelisierung auf moderner Hardware, wodurch die Berechnung erheblich beschleunigt wird. Ist der Batch jedoch zu groß, kann das Modell in scharfe, suboptimale Minima geraten, was zu overfitting und einer geringeren Fähigkeit zur Generalisierung auf neue Daten führt.
Auswirkungen auf Hardware und Speicher#
Anwender müssen eine Batchgröße häufig aufgrund von Hardwarebeschränkungen anstelle rein theoretischer Präferenzen auswählen. Deep-Learning-Modelle, insbesondere große Architekturen wie Transformer oder fortgeschrittene neuronale Faltungsnetze, werden im VRAM einer GPU gespeichert.
Bei der Verwendung von NVIDIA CUDA zur Beschleunigung muss der VRAM die Modellparameter, den Batch von Eingabedaten und die für die Gradientenberechnung benötigten Zwischenaktivierungsausgaben speichern. Wenn die Batchgröße den verfügbaren Speicher überschreitet, stürzt das Training mit einem "Out of Memory" (OOM)-Fehler ab. Techniken wie das Training mit mixed precision werden häufig eingesetzt, um den Speicherbedarf zu reduzieren und größere Batchgrößen auf derselben Hardware zu ermöglichen.
Unterscheidung verwandter Konzepte#
Um das Training effektiv zu konfigurieren, ist es wichtig, die Batch Size von anderen zeitlichen Begriffen in der Trainingsschleife zu unterscheiden.
- Batch Size vs. Epoch: Eine Epoche stellt einen vollständigen Durchlauf durch den gesamten Trainingsdatensatz dar. Die Batchgröße bestimmt, in wie viele Teile die Daten innerhalb dieser Epoche aufgeteilt werden. Wenn du beispielsweise 1.000 Bilder und eine Batchgröße von 100 hast, dauert es 10 Iterationen, um eine Epoche abzuschließen.
- Batch Size vs. Iteration: Eine Iteration (oder ein Schritt) ist der Vorgang der Verarbeitung eines Batches und der Aktualisierung der Gewichte. Die Gesamtzahl der Iterationen beim Training ist die Anzahl der Batches pro Epoche multipliziert mit der Gesamtzahl der Epochen.
- Batch Size vs. Batch Normalization: Obwohl sie sich einen Namen teilen, ist Batch Normalization ein spezifischer Layertyp, der Layereingaben basierend auf dem Mittelwert und der Varianz des aktuellen Batches normalisiert. Diese Technik ist stark von der Batchgröße abhängig; wenn die Batchgröße zu klein ist (z. B. 2), werden die statistischen Schätzungen unzuverlässig, was möglicherweise die Leistung verschlechtert.
Praxisanwendungen#
Die Anpassung der Batch Size ist eine routinemäßige Notwendigkeit beim Einsatz von Computer-Vision-Lösungen in verschiedenen Branchen.
-
Hochpräzise medizinische Bildgebung: Im Bereich der AI in healthcare arbeiten Praktiker häufig mit volumetrischen 3D-Daten wie MRT- oder CT-Scans. Diese Dateien sind äußerst dicht und speicherintensiv. Um Aufgaben wie medical image analysis oder komplexe image segmentation durchzuführen, ohne dass das System abstürzt, reduzieren Ingenieure die Batchgröße oft auf eine sehr kleine Zahl, manchmal sogar auf einen Batch von 1. Hier liegt die Priorität auf der Verarbeitung hochauflösender Details statt auf der reinen Trainingsgeschwindigkeit.
-
Industrielle Qualitätskontrolle: Umgekehrt steht in der AI in manufacturing die Geschwindigkeit an erster Stelle. Automatisierte Systeme, die Produkte auf einem Förderband prüfen, müssen Tausende von Bildern pro Stunde verarbeiten. Während der inference können Ingenieure eingehende Kamera-Feeds zu größeren Batches zusammenfassen, um die Auslastung von edge AI-Geräten zu maximieren und einen hohen Durchsatz für die Fehlererkennung in Echtzeit sicherzustellen.
Konfiguration der Batch Size in Python#
Wenn du das Ultralytics Python package verwendest, ist das Festlegen der Batchgröße unkompliziert. Du kannst eine feste Ganzzahl angeben oder die dynamische batch=-1-Einstellung verwenden, die die AutoBatch feature nutzt, um automatisch die maximale Batchgröße zu berechnen, die deine Hardware sicher verarbeiten kann.
Das folgende Beispiel zeigt, wie man ein YOLO26 model – den neuesten Standard für Geschwindigkeit und Genauigkeit – mit einer spezifischen Batcheinstellung trainiert.
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train on the COCO8 dataset
# batch=16 is manually set.
# Alternatively, use batch=-1 for auto-tuning based on available GPU memory.
results = model.train(data="coco8.yaml", epochs=5, batch=16)Für die Verwaltung groß angelegter Experimente und die Visualisierung, wie sich verschiedene Batchgrößen auf deine Trainingsmetriken auswirken, bieten Tools wie die Ultralytics Platform eine umfassende Umgebung zum Protokollieren und Vergleichen von Läufen. Das richtige hyperparameter tuning der Batchgröße ist oft der letzte Schritt, um die beste Leistung aus deinem Modell herauszuholen.






