Glossar

Größe der Charge

Entdecken Sie die Auswirkungen der Stapelgröße auf Deep Learning. Optimieren Sie Trainingsgeschwindigkeit, Speichernutzung und Modellleistung effizient.

Beim maschinellen Lernen, insbesondere beim Training von Deep-Learning-Modellen, bezieht sich die Stapelgröße auf die Anzahl der in einer einzigen Iteration verarbeiteten Trainingsbeispiele. Das Trainieren großer Modelle auf riesigen Datensätzen, wie sie in Bereichen wie der Computer Vision üblich sind, macht die Verarbeitung des gesamten Datensatzes auf einmal aufgrund von Speicherbeschränkungen oft rechnerisch undurchführbar. Stattdessen werden die Daten in kleinere, überschaubare Gruppen oder "Stapel" aufgeteilt. Die internen Parameter des Modells werden nach der Verarbeitung jedes Stapels aktualisiert, wodurch der Trainingsprozess effizienter und skalierbarer wird.

Bedeutung der Chargengröße

Die Stapelgröße ist ein kritischer Hyperparameter, der die Trainingsdynamik, die Ressourcennutzung und letztlich die Leistung des endgültigen Modells erheblich beeinflusst. Seine Auswirkungen umfassen:

  • Trainingsgeschwindigkeit: Größere Stapelgrößen können die Parallelverarbeitungsfähigkeiten von Hardware wie z. B. GPUs effektiver nutzen, wodurch die für eine Epoche (einen vollständigen Durchlauf durch die Trainingsdaten) benötigte Zeit reduziert werden kann. Dies ist auf eine bessere Hardwareauslastung und weniger Parameteraktualisierungen pro Epoche zurückzuführen. Erfahren Sie mehr über parallele Berechnungskonzepte.
  • Speicherverbrauch: Die Stapelgröße wirkt sich direkt auf den erforderlichen Speicherplatz (CPU-RAM oder GPU-VRAM) aus. Größere Batches benötigen mehr Speicher, um die Daten, Aktivierungen und Gradienten während des Trainings zu speichern. Techniken zur Optimierung der Speichernutzung sind entscheidend, wenn Sie mit großen Stapelgrößen oder begrenzter Hardware arbeiten.
  • Modellverallgemeinerung: Die Wahl der Chargengröße wirkt sich auf den Optimierungsprozess und die Modellverallgemeinerung aus. Kleinere Chargen führen mehr Rauschen in die Gradientenschätzung ein, die in Algorithmen wie dem Stochastischen Gradientenabstieg (SGD) verwendet wird. Dieses Rauschen kann manchmal als eine Form der Regularisierung fungieren, die dem Modell hilft, scharfe lokale Minima zu umgehen und möglicherweise seine Fähigkeit zur Generalisierung auf ungesehene Daten zu verbessern, wodurch die Überanpassung verringert wird. Umgekehrt bieten größere Stapel eine genauere Schätzung des Gesamtgradienten des Datensatzes, können aber zu schärferen Minima konvergieren, was manchmal die Generalisierung behindern kann, wie in Forschungsarbeiten wie"On Large-Batch Training for Deep Learning" erörtert.
  • Wechselwirkung mit der Lernrate: Die Chargengröße steht oft in Wechselwirkung mit der Lernrate. Im Allgemeinen ermöglichen größere Chargengrößen höhere Lernraten und profitieren oft davon. Optimierer wie Adam können bei der Verwaltung dieser Wechselwirkungen helfen.

Auswahl der richtigen Chargengröße

Bei der Auswahl einer optimalen Stapelgröße müssen Recheneffizienz, Speicherbeschränkungen und Modellgeneralisierung gegeneinander abgewogen werden. Es gibt keine allgemeingültige "beste" Stapelgröße; sie hängt stark vom spezifischen Datensatz (z. B. COCO-Datensatz), der Modellarchitektur (wie die in Ultralytics YOLO verwendeten) und den verfügbaren Hardwareressourcen ab. Aufgrund von Optimierungen der Hardware-Speicherausrichtung werden häufig Potenzen von 2 gewählt (z. B. 16, 32, 64, 128). In der Regel sind Experimente und Techniken wie die Abstimmung der Hyperparameter erforderlich. Frameworks wie PyTorch und TensorFlow bieten Flexibilität bei der Einstellung von Stapelgrößen.

Losgröße vs. andere verwandte Begriffe

Es ist wichtig, die Losgröße von verwandten Konzepten zu unterscheiden:

  • Iteration/Schritt: Eine einzelne Aktualisierung der Modellparameter auf der Grundlage der Verarbeitung eines Datenstapels. Dies umfasst einen Vorwärtsdurchlauf, eine Verlustberechnung und einen Rückwärtsdurchlauf (Backpropagation).
  • Epoche: Ein vollständiger Durchlauf durch den gesamten Trainingsdatensatz. Wenn ein Datensatz 1000 Stichproben umfasst und die Losgröße 100 beträgt, besteht eine Epoche aus 10 Iterationen (1000 / 100 = 10).
  • Mini-Batch-Gradientenabstieg: Der häufigste Trainingsansatz, bei dem die Stapelgröße größer als 1, aber kleiner als die Gesamtgröße des Datensatzes ist. Dies steht im Gegensatz zum stapelweisen Gradientenabstieg (unter Verwendung des gesamten Datensatzes, Stapelgröße = N) und zum stochastischen Gradientenabstieg (unter Verwendung einer einzelnen Probe, Stapelgröße = 1). Der Begriff "Stapelgröße" bezieht sich in der Regel auf die Größe, die beim Mini-Batch-Gradientenabstieg verwendet wird. Erfahren Sie mehr über Varianten des Gradientenabstiegs.

Anwendungen in der realen Welt

  • Objekt-Erkennung: Beim Training eines Ultralytics YOLO-Modells für die Objekterkennungsaufgabe bestimmt die Stapelgröße, wie viele Bilder gleichzeitig verarbeitet werden. Das Training von YOLO11 auf einem großen Datensatz wie ImageNet erfordert möglicherweise eine Anpassung der Stapelgröße auf der Grundlage des GPU-Speichers. Eine größere Stapelgröße (z. B. 64) kann das Training pro Epoche auf High-End-GPUs beschleunigen, während kleinere Größen (z. B. 16) auf Geräten mit weniger Speicher notwendig sein könnten oder möglicherweise die Generalisierung verbessern könnten. Plattformen wie Ultralytics HUB können bei der Verwaltung und Verfolgung dieser Trainingsexperimente helfen.
  • Verarbeitung natürlicher Sprache (NLP): Das Training großer Sprachmodelle wie BERT beinhaltet die Verarbeitung von Textsequenzen. Die Stapelgröße bestimmt, wie viele Sequenzen zusammen verarbeitet werden. Da die Länge der Sequenzen variieren kann und die Modelle groß sind, ist die Speichernutzung ein wichtiges Anliegen. Techniken wie die Gradientenakkumulation (Verarbeitung kleinerer Ministapel nacheinander, bevor die Parameter aktualisiert werden) werden oft verwendet, um größere Stapel zu simulieren, wenn der Speicher begrenzt ist. Erforschen Sie Konzepte in NLP-Kursen.

Das Verständnis und die sorgfältige Auswahl der Stapelgröße sind von grundlegender Bedeutung für ein effektives Training von Deep Learning-Modellen. Für weitere Studien sollten Sie Ressourcen wie die Deep Learning-Spezialisierung oder Techniken wie die Batch-Normalisierung in Betracht ziehen, die manchmal die Empfindlichkeit gegenüber der Batch-Größe verringern können.

Werden Sie Mitglied der Ultralytics-Gemeinschaft

Beteiligen Sie sich an der Zukunft der KI. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten
Link in die Zwischenablage kopiert