← Zum Glossar
Technik

Training, Daten und Modellanpassung

Gradient Checkpointing

Heißt auch Activation Checkpointing.

Speichersparendes Training durch erneute Berechnung von Aktivierungen.

Gradient Checkpointing, auch Activation Checkpointing genannt, spart beim Training Speicher für Zwischenwerte, indem benötigte Berechnungen später teilweise wiederholt werden. (PyTorch Checkpoint-Dokumentation) Es tauscht also zusätzlichen Rechenaufwand gegen geringeren Speicherbedarf für Aktivierungen. (PyTorch Checkpoint-Dokumentation)

So kannst du dir das vorstellen

Du bearbeitest eine lange Rechenkette und müsstest für eine spätere Rückprüfung normalerweise viele Zwischenergebnisse aufbewahren. Stattdessen merkst du dir nur bestimmte Ausgangspunkte.

Wenn du einen ausgelassenen Zwischenwert später brauchst, rechnest du den betreffenden Abschnitt erneut durch. So benötigst du weniger Platz für Notizen, investierst aber zusätzliche Arbeit. Die Idee ist eine andere als das Speichern eines vollständigen Arbeitsstands auf der Festplatte.

Welche Werte betroffen sind

Für die Rückwärtsrechnung werden Informationen aus dem Vorwärtsdurchlauf benötigt; Activation Checkpointing verzichtet innerhalb ausgewählter Bereiche auf das dauerhafte Vorhalten aller entsprechenden Aktivierungen. (PyTorch Checkpoint-Dokumentation) Während des Rückwärtsdurchlaufs werden die fehlenden Werte durch erneute Ausführung dieser Bereiche erzeugt. (PyTorch Checkpoint-Dokumentation)

Das Verfahren verkleinert damit nicht die Zahl der Modellparameter und ist auch keine Quantisierung der Gewichte. Sein Ansatzpunkt sind die für das Training vorgehaltenen Zwischenberechnungen. (PyTorch Checkpoint-Dokumentation)

Zwei verschiedene Bedeutungen von Checkpoint

Ein gespeicherter Modellcheckpoint hält Gewichte und gegebenenfalls weitere Trainingszustände für spätere Nutzung oder Wiederaufnahme fest. (PyTorch Saving and Loading Models) Gradient Checkpointing beschreibt dagegen eine Strategie innerhalb der laufenden Berechnung. (PyTorch Checkpoint-Dokumentation)

Bei zufallsabhängigen Operationen wie Dropout muss die erneute Berechnung zum vorgesehenen ursprünglichen Ablauf passen; PyTorch behandelt dafür unter anderem den Zufallszustand. (PyTorch Checkpoint-Dokumentation) Für deine Konfiguration solltest du deshalb Speicherersparnis, zusätzliche Laufzeit und die dokumentierten Einschränkungen gemeinsam prüfen.

Verwandte Begriffe

Zum Verständnis helfen Backpropagation, Checkpoint, Training, Dropout und Model Parameters.

Quellen