Batch, Epoche und Lernrate
Kurz: Ein Batch ist ein Stapel von Beispielen, mit dem ein Trainingsschritt gemacht wird. Eine Epoche ist ein Durchgang durch alle Trainingsdaten. Die Lernrate bestimmt die Schrittgröße.
Genauer: Statt ein Beispiel nach dem anderen oder alle auf einmal zu verwenden, nimmt man Mini-Batches. Das nutzt Grafikkarten gut aus und glättet den Gradienten.
Im Detail
- Batchgröße: Typisch 32 bis 512 bei Bildern, bei Sprachmodellen Millionen Token pro Schritt (über viele GPUs).
- Schritt (Iteration): Ein Gewichts-Update pro Batch. Schritte pro Epoche = Datenmenge / Batchgröße.
- Epoche: Kleine Modelle trainieren viele Epochen. Große Sprachmodelle sehen die Daten oft nur ein- bis viermal.
- Gradienten-Akkumulation: Mehrere kleine Batches nacheinander verrechnen, um einen großen zu simulieren, wenn der Speicher knapp ist.
- Lernrate: Üblich 1e-3 (kleine Netze) bis 1e-5 (Feinabstimmung großer Modelle). Gleichzeitig mit der Batchgröße einstellen.
- Verlustkurve: Man beobachtet Trainings- und Validierungsverlust. Springt die Kurve, ist die Lernrate zu hoch.
- Checkpoint: Zwischenstände speichern, um nach Absturz weiterzumachen.
Siehe auch: Optimierer: SGD, Momentum und Adam, Training, Validierung und Test