Sofortantwort
Epoch / Batch / Iteration einfach erklärt
Epoch, Batch und Iteration sind Zeiteinheiten im Training.
- Kurz gesagt
- Epoch: Ein kompletter Durchlauf durch den gesamten Trainingsdatensatz
- Typischer Einsatz
- Training konfigurieren, GPU-Speicher managen, Training überwachen
- Wichtig zu wissen
- Iteration: Ein einzelner Trainingsschritt (Forward + Backward Pass für einen Batch)
Epoch / Batch / Iteration im Überblick
Epoche, Batch und Iteration sind die drei Zeiteinheiten des Modell-Trainings. Eine Epoche bedeutet, dass das Modell den gesamten Trainingsdatensatz einmal gesehen hat. Da Datensätze oft zu groß sind, um sie auf einmal zu verarbeiten, werden sie in Batches aufgeteilt. Eine Iteration ist ein einzelner Trainingsschritt mit einem Batch. Das Verständnis dieser Begriffe ist entscheidend, um Trainings-Hyperparameter richtig einzustellen und Trainingsverläufe zu interpretieren.
Diese drei Begriffe beschreiben, wie das Training eines KI-Modells zeitlich strukturiert ist.
Rechenbeispiel:
Datensatz: 10.000 Beispiele
Batch Size: 100
Epochs: 5
-> 100 Iterationen pro Epoch (10.000 / 100)
-> 500 Iterationen insgesamt (100 × 5)
-> Jedes Beispiel wird 5 Mal gesehen
Visualisierung:
Epoch 1: [Batch 1][Batch 2][Batch 3]...[Batch 100] → Loss: 2.5
Epoch 2: [Batch 1][Batch 2][Batch 3]...[Batch 100] → Loss: 1.8
Epoch 3: [Batch 1][Batch 2][Batch 3]...[Batch 100] → Loss: 1.2
...
Technisch betrachtet
Batch Size und Auswirkungen
| Batch Size | Vorteile | Nachteile |
|---|---|---|
| Klein (8-32) | Wenig GPU-Speicher, Regularisierungseffekt | Instabile Gradienten, langsam |
| Mittel (64-256) | Guter Kompromiss | - |
| Groß (512+) | Stabile Gradienten, schnell auf GPUs | Viel Speicher, kann Generalisierung verschlechtern |
Gradient Accumulation
Wenn die gewünschte Batch Size nicht in den GPU-Speicher passt:
- Mehrere kleine Batches verarbeiten
- Gradienten akkumulieren
- Erst nach N Schritten ein Update durchführen
- Effektive Batch Size = Micro-Batch × Accumulation Steps
Shuffling
Daten werden vor jeder Epoch zufällig gemischt, damit das Modell nicht die Reihenfolge lernt. Besonders wichtig bei sortierten oder gruppierten Datensätzen.
Learning Rate Scheduling
Die Learning Rate wird oft über Epochs hinweg angepasst:
- Warmup: Langsam starten, dann erhöhen (erste 5-10% der Iterationen)
- Decay: Gegen Ende reduzieren für Feintuning
- Cosine Annealing: Sanfte Reduktion nach Cosinus-Kurve
Code-Beispiel (PyTorch)
from torch.utils.data import DataLoader
# Datensatz mit 10.000 Beispielen
dataset = MyDataset() # len(dataset) = 10000
# Batch Size 32 → 313 Iterationen pro Epoch (10000/32 = 312.5, aufgerundet)
loader = DataLoader(dataset, batch_size=32, shuffle=True)
num_epochs = 10
for epoch in range(num_epochs):
for iteration, (inputs, labels) in enumerate(loader):
# Forward + Backward + Update
outputs = model(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
optimizer.zero_grad()
if iteration % 100 == 0:
print(f"Epoch {epoch+1}/{num_epochs}, Iter {iteration}, Loss: {loss.item():.4f}")
Typische Werte in der Praxis
| Modelltyp | Epochs | Batch Size | Begründung |
|---|---|---|---|
| CNN (ImageNet) | 90-300 | 256-4096 | Viele Epochs, große Batches |
| BERT Fine-Tuning | 2-4 | 16-32 | Wenige Epochs reichen |
| LLM Pre-Training | 1-2 | 1M+ Tokens | Riesige Datenmenge, wenige Durchläufe |
| Stable Diffusion | 1 | 2048 | Einmal durch die Daten |
Schritt für Schritt
So planst und liest du einen Trainingslauf
Datenmenge und Ziel festlegen
Bestimme zuerst Datensatzgröße, verfügbare Rechenzeit und eine aussagekräftige Validierungsmetrik. Ohne diese drei Größen lässt sich weder eine sinnvolle Batch Size noch ein Abbruchzeitpunkt begründen.
Batch Size als Arbeitsportion wählen
Wähle eine Batch Size, die zuverlässig in den verfügbaren Speicher passt. Sie bestimmt, wie viele Beispiele das Modell vor einem Update sieht und wie viele Iterationen eine Epoch enthält.
Epochs als Prüfintervalle behandeln
Plane nicht blind eine feste Zahl von Durchläufen. Werte nach jeder Epoch Training und Validierung aus, damit sichtbar wird, ob das Modell noch lernt oder bereits überanpasst.
Iterationen sinnvoll protokollieren
Logge Loss, Lernrate und Gradientennormen regelmäßig pro Iteration. So lassen sich Ausreißer, instabile Batches und zu aggressive Updates erkennen, bevor viele Epochs Rechenzeit kosten.
Konkretes Beispiel
Ein Trainingslauf mit 12.000 Support-Anfragen
Ein Team trainiert einen Klassifikator, der eingehende Anfragen nach Thema sortiert. Es will den Fortschritt nachvollziehbar messen und rechtzeitig stoppen.
Ausgangslage
12.000 Trainingsbeispiele, Batch Size 48, maximal 20 Epochs und ein separates Validierungsset. Pro Epoch entstehen 250 Iterationen.
Beobachtung
Nach Epoch 7 sinkt der Trainings-Loss weiter, während der Validierungs-Loss drei Durchläufe in Folge steigt. Das Team stoppt das Training und behält den Checkpoint aus Epoch 4.
Epochs strukturieren die Bewertung, Batches die Rechenarbeit und Iterationen die einzelnen Updates. Erst zusammen machen sie den Trainingsverlauf lesbar.
Einordnung
Vorteile und Grenzen
Das spricht dafür
- Klare Einheiten machen Trainingsfortschritt und Rechenaufwand vergleichbar.
- Metriken pro Iteration und Epoch helfen, Fehler früh zu lokalisieren.
Das solltest du beachten
- Eine hohe Zahl von Epochs ist kein Beleg für ein besser generalisierendes Modell.
- Eine große Batch Size kann Speicherengpässe und andere Lernverläufe verursachen.
Vertiefung · für FortgeschritteneTrainingsrhythmus im Wissensnetz
Die Zeiteinheiten verbinden Daten, Optimierung und die Kontrolle der Modellqualität.
Ordnet, wann Daten verarbeitet, Updates ausgeführt und Ergebnisse bewertet werden.
- Gradient Descent
- Algorithmus zur schrittweisen Fehlerminimierung im ML.
- Hyperparameter
- Manuell festgelegte Einstellungen für das KI-Training.
- Loss Function
- Eine Funktion, die die Genauigkeit von Modellvorhersagen misst.
- Trainingsdaten
- Datensätze, die das Lernen und die Leistung von Modellen bestimmen.
- Overfitting & Underfitting
- Probleme, die beim Machine Learning die Modellgenauigkeit beeinflussen.