Als nächstesNächster Leitfaden
Gradientenakkumulation
Technisch
Technischer Leitfaden
Gradient Checkpointing (auch Aktivierungs-Checkpointing genannt) ist ein speichersparender Trick, der die meisten Zwischenaktivierungen während des Vorwärtsdurchlaufs verwirft und sie während der Backpropagation im laufenden Betrieb neu berechnet.
It lets you train deeper, larger networks by trading extra compute for much lower memory use.
Trainierende neuronale Netze speichern normalerweise die Aktivierungen jeder Schicht während des Vorwärtsdurchlaufs, da sie für die Rückausbreitung zur Berechnung von Gradienten erforderlich sind. Bei tiefen Modellen dominieren diese Aktivierungen das Gedächtnis. Stattdessen speichert Gradient Checkpointing Aktivierungen nur auf einer spärlichen Menge von „Checkpoint“-Ebenen und verwirft den Rest. Wenn Backprop eine Region erreicht, deren Aktivierungen verworfen wurden, führt es die Vorwärtsberechnung nur für dieses Segment erneut durch, um das zu regenerieren, was es benötigt, und fährt dann fort. Wenn Prüfpunkte ungefähr auf jeder Quadratwurzel von N-Ebene platziert werden, sinkt der Speicher für Aktivierungen von der Ordnung N zur Ordnung Quadratwurzel von N, während die Rechenleistung nur um etwa einen zusätzlichen Vorwärtsdurchlauf ansteigt (ungefähr 20–30 % langsamer). Dadurch ist es möglich, größere Losgrößen oder tiefere Transformatoren auf derselben GPU unterzubringen.
Architekturentscheidungen beeinflussen über Jahre hinweg die Leistung und die Betriebskosten.
Technische Schulungen helfen Teams dabei, den richtigen Stack auszuwählen, nicht nur den neuesten.
Bessere technische Entscheidungen reduzieren Zuverlässigkeitsvorfälle in der Produktion.
Das Gradienten-Checkpointing gehört mittlerweile zum Standard beim Training großer Modelle und wird zunehmend automatisiert, wobei Bibliotheken die optimalen Checkpoint-Standorte für Sie auswählen. Es lässt sich natürlich mit FSDP, gemischter Präzision und Offloading kombinieren, um die Modellgrößen zu erhöhen. Erwarten Sie „selektives“ Checkpointing, das nur kostengünstige Vorgänge neu berechnet, während teure Vorgänge (wie Aufmerksamkeitsmatrizen) zwischengespeichert bleiben, sowie Compiler-gesteuerte Ansätze in Tools wie PyTorchs Torch.compile, die automatisch entscheiden, was gespeichert oder neu berechnet werden soll, um das beste Verhältnis zwischen Geschwindigkeit und Speicher zu erzielen.
Trainieren Sie einen Deep Transformer mit einer größeren Batch-Größe auf einer einzelnen GPU, indem Sie Layer-Aktivierungen verwerfen und neu berechnen.
Feinabstimmung von Vision-Modellen auf hochauflösenden Bildern, bei denen Aktivierungskarten sonst den GPU-Speicher überlasten würden.
Hugging Face Transformers ermöglichen die Anpassung von Gradienten_checkpointing=True an Modelle mit Milliarden Parametern während der Feinabstimmung.
Durch die Kombination von Checkpointing mit FSDP werden sowohl Parameter als auch Aktivierungen klein gehalten, was das Training sehr großer Sprachmodelle ermöglicht.
Die Optimierung eines Benchmarks kann umfassendere Systemschwächen verbergen.
Infrastruktur- und Wartungskosten werden oft unterschätzt.
Sicherheits- und Beobachtbarkeitslücken können größer werden, wenn die Systeme komplexer werden.
Definieren Sie vor der Implementierung Latenz-, Qualitäts- und Kostenziele.
Benchmark unter realistischen Last- und Datenbedingungen.
Instrumentenüberwachung auf Fehler, Drift und Benutzereinflüsse.
Bereiten Sie vor der Skalierung Rollback- und Incident-Response-Pfade vor.
Free newsletter
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Gradient Checkpointing (auch Aktivierungs-Checkpointing genannt) ist ein speichersparender Trick, der die meisten Zwischenaktivierungen während des Vorwärtsdurchlaufs verwirft und sie während der Backpropagation im laufenden Betrieb neu berechnet. Sie können damit tiefere, größere Netzwerke trainieren, indem Sie zusätzliche Rechenleistung gegen eine viel geringere Speichernutzung eintauschen.
Beim Gradienten-Checkpointing werden verworfene Aktivierungen während des Rückwärtsdurchlaufs neu berechnet, wodurch zusätzliche Rechenleistung im Austausch für erheblich reduzierten Speicher verbraucht wird.
Backprop berechnet Gradienten anhand der Zwischenaktivierungen aus dem Vorwärtsdurchlauf, daher müssen diese verfügbar sein, sofern sie nicht neu berechnet werden.
Durch die Anordnung von Prüfpunkten um alle Quadratwurzel-aus-N-Schichten wird der gespeicherte Aktivierungsspeicher von der Ordnung N auf die Ordnung sqrt(N) reduziert.
Bei guter Checkpoint-Platzierung beträgt der Overhead ungefähr einen einzigen zusätzlichen Vorwärtsdurchlauf, oft etwa 20–30 % Verlangsamung.
Torch.utils.checkpoint umschließt ein Modul, sodass seine internen Aktivierungen beim Rückwärtsfahren neu berechnet und nicht gespeichert werden.
Lerne weiter
Weitere Leitfäden zu diesem Thema ausgewählt
Als nächstesNächster Leitfaden
Gradientenakkumulation
Technisch