Einfach erklärt
Kleine Datenportion für einen Trainingsschritt. Ein Mini‑Batch ist eine kleine Gruppe von Beispielen, die das Modell in einem Schritt gemeinsam verarbeitet. So kann es stabilere Updates machen als mit einem einzelnen Beispiel und effizienter rechnen als mit dem ganzen Datensatz auf einmal.
Kurz: Ein paar Beispiele bündeln → gemeinsam vorwärts/rückwärts rechnen → Gewichte aktualisieren.
Ganz einfache Beispiele
• Einkaufskorb: Statt jedes Produkt einzeln zur Kasse zu tragen, packst du mehrere zusammen in einen Korb – ein Mini‑Batch.
• Backblech: Mehrere Brötchen gehen gleichzeitig in den Ofen. Danach kommt das nächste Blech – der nächste Mini‑Batch.
• Aufzugfahrten: Eine Gruppe fährt zusammen nach oben, dann die nächste Gruppe. Jede Gruppe ist ein Mini‑Batch.
Professionelle Definition
Ein Mini‑Batch ist die Teilmenge des Trainingsdatensatzes, die in einem Optimierungsschritt verarbeitet wird. Mini‑Batch‑Training balanciert Rechenaufwand, Speicherbedarf und Statistik: Es reduziert das Rauschen gegenüber Einzelbeispiel‑Updates, bleibt aber schneller und speicherschonender als volles Batch‑Training mit allen Beispielen auf einmal. Die Mini‑Batch‑Größe beeinflusst Durchsatz, Stabilität der Gradienten, Generalisierung sowie die Wahl der Lernrate und ggf. Normalisierungsmethoden.
Abgrenzungen und Praxisfälle:
- Sample/Beispiel: Ein einzelner Datensatz.
- Mini‑Batch: Mehrere Samples pro Schritt; Step/Iteration = Verarbeitung eines Mini‑Batches.
- Batch (voll): Der gesamte Datensatz auf einmal (selten praktikabel bei großen Daten).
- Micro‑Batch & Gradient Accumulation: Wenn die Mini‑Batch‑Größe nicht in den Speicher passt, rechnet man mehrere kleinere Micro‑Batches nacheinander und summiert die Gradienten, bevor ein Update erfolgt. So entsteht eine größere effektive Batch‑Größe.
- Global Batch Size (verteiltes Training): Mini‑Batch pro Gerät × Anzahl Geräte × Accumulation‑Schritte.
Warum wichtig:
- Effiziente Hardware‑Nutzung (Vektorisation, Parallelisierung).
- Stabilere Updates als reines Online‑Lernen.
- Bessere Generalisierung als sehr große Batches in manchen Settings.
Praxis‑Tipps
- Größe am Speicher ausrichten und bei Bedarf Gradient Accumulation nutzen, um eine größere effektive Batch‑Größe zu erreichen.
- Lernrate skalieren: Größere Mini‑Batches erlauben oft höhere Lernraten und benötigen Warmup.
- Bei BatchNorm ausreichend Beispiele pro Mini‑Batch sicherstellen; sonst LayerNorm/GroupNorm verwenden.
- In Sequenzaufgaben eher Tokens pro Mini‑Batch begrenzen statt Beispiele zu zählen, um die Speicherauslastung zu kontrollieren.
- Bucketing nach Länge/Form einsetzen, um Padding und Leerlauf zu vermeiden.
- Logging: Mini‑Batch‑Größe, effektive Größe (mit Accumulation), Steps/Epoch und Throughput dokumentieren.
Quellen
- Goodfellow, Bengio, Courville (2016) – Deep Learning (Minibatch‑Training, Optimization)
https://www.deeplearningbook.org/ - Goyal, P. et al. (2017) – Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour
https://arxiv.org/abs/1706.02677 - Smith, S. L., Kindermans, P.-J., Ying, C., Le, Q. V. (2018) – Don’t Decay the Learning Rate, Increase the Batch Size
https://arxiv.org/abs/1711.00489 - Hoffer, E., Hubara, I., Soudry, D. (2017) – Train longer, generalize better: closing the generalization gap in large batch training of neural networks
https://arxiv.org/abs/1705.08741 - PyTorch – DataLoader, Sampler & verteiltes Laden
https://pytorch.org/docs/stable/data.html - Hugging Face Transformers – Trainingsargumente (Batch‑Größe, Accumulation)
https://huggingface.co/docs/transformers/main_classes/trainer#transformers.TrainingArguments
Mehr dazu finden Sie in unseren KI Kursen & Schulungen