PRZEWODNIK techniczny

Kompromisy związane z ponownym obliczeniem aktywacji

Ponowne obliczenie aktywacji (gradient lub punkt kontrolny aktywacji) oszczędza pamięć procesora graficznego podczas szkolenia, odrzucając pośrednie aktywacje w przebiegu do przodu i obliczając je ponownie podczas przebiegu wstecz.

2 minuty czytaniaOstatnia aktualizacja

Przegląd

It trades extra compute for the ability to train larger models or longer sequences on the same hardware.

Głębokie nurkowanie

Propagacja wsteczna wymaga aktywacji przejścia w przód do obliczenia gradientów, więc domyślnie przechowywane są dane wyjściowe każdej warstwy — ogromny koszt pamięci, który rośnie wraz z rozmiarem modelu, rozmiarem partii i długością sekwencji. Ponowne obliczenie aktywacji zachowuje tylko kilka tensorów „punktów kontrolnych” (często tylko granice warstw), a resztę odrzuca. Podczas przebiegu wstecznego ponownie przeprowadza obliczenia w przód pomiędzy punktami kontrolnymi, aby na żądanie zregenerować odrzucone aktywacje. Klasyczny wynik jest taki, że w przypadku punktów kontrolnych umieszczonych w każdej warstwie sqrt(N) pamięć spada do mniej więcej O(sqrt(N)) przy jednoczesnym dodaniu około jednego dodatkowego przejścia w przód (~33% więcej mocy obliczeniowej). Warianty selektywne ponownie obliczają tylko operacje wymagające dużej ilości pamięci (takie jak uwaga lub przerwanie) podczas buforowania kosztownych operacji, uzyskując większość oszczędności pamięci przy znacznie mniejszym nakładzie pracy na ponowne obliczenia.

Wgląd techniczny

Podstawowym kompromisem jest pamięć kontra FLOPy. Pełne przeliczenie z grubsza dodaje jedno dodatkowe przejście do przodu na krok (~30-40% wolniej), ale może zmniejszyć pamięć aktywacji o rząd wielkości. Inteligentnym posunięciem jest selektywne wyznaczanie punktów kontrolnych: identyfikuj operacje wymagające dużej pamięci, ale tanie w obliczeniach (softmax, Layernorm, GELU, wskaźniki uwagi) i ponownie obliczaj tylko te, zachowując wyniki kosztownych GEMM w pamięci podręcznej – minimalizując marnowanie mocy obliczeniowej.

Wpływ strategiczny

Koszt i budżet

Decyzje dotyczące architektury wpływają na wydajność i koszty operacyjne przez lata.

Jaśniejsze decyzje

Edukacja techniczna pomaga zespołom wybrać odpowiedni stos, a nie tylko najnowszy.

Kontrola jakości

Lepsze wybory inżynieryjne zmniejszają liczbę incydentów związanych z niezawodnością w produkcji.

Przyszłość kompromisów w zakresie ponownego obliczania aktywacji

Przeliczanie jest coraz bardziej zautomatyzowane i selektywne. Frameworki profilują teraz pamięć każdej operacji i koszt FLOP, aby wybrać optymalne punkty kontrolne i połączyć ponowne obliczenia z odciążaniem aktywacji do CPU/NVMe i strategiami równoległości. Ponieważ długości kontekstów i rozmiary modeli stale rosną, należy spodziewać się zasad opartych na kompilatorze (w PyTorch, JAX/XLA), które automatycznie wybierają decyzje dotyczące ponownego obliczenia dla poszczególnych operacji, a także ściślejszego nakładania się ponownych obliczeń na komunikację, dzięki czemu dodatkowe FLOPy są częściowo ukryte.

Implementacja w świecie rzeczywistym

Trenowanie dużego transformatora, który w przeciwnym razie nie pasowałby, poprzez zaznaczenie każdego bloku warstwy

Używanie punktu kontrolnego torch.utils.PyTorch do owijania bloków transformatorów i wycinania pamięci aktywacji

Selektywne ponowne obliczanie uwagi/softmax w Megatron-LM w celu oszczędzania pamięci przy minimalnym spowolnieniu

Umożliwianie dłuższych sekwencji przy stałym budżecie procesora graficznego poprzez ponowne obliczanie aktywacji zamiast ich przechowywania

Zagrożenia i poręcze

Optymalizacja jednego testu porównawczego może ukryć szersze słabości systemu.

Koszty infrastruktury i utrzymania są często niedoszacowane.

W miarę jak systemy stają się coraz bardziej złożone, luki w bezpieczeństwie i obserwowalności mogą się zwiększać.

Plan wdrożenia

1

Przed wdrożeniem zdefiniuj docelowe opóźnienia, jakość i koszty.

2

Test porównawczy w realistycznych warunkach obciążenia i danych.

3

Monitorowanie przyrządu pod kątem błędów, dryftu i wpływu użytkownika.

4

Przed skalowaniem przygotuj ścieżki wycofywania zmian i reakcji na incydenty.

Odkrywaj dalej

Free newsletter

Get the daily AI briefing

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

Take the Activation Recomputation Tradeoffs quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Rozpocznij quiz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Następny poradnik

SmoothQuant i kwantyzacja aktywacyjna

Często zadawane pytania

What is Activation Recomputation Tradeoffs?

Ponowne obliczenie aktywacji (gradient lub punkt kontrolny aktywacji) oszczędza pamięć procesora graficznego podczas szkolenia, odrzucając pośrednie aktywacje w przebiegu do przodu i obliczając je ponownie podczas przebiegu wstecz. Zamienia dodatkową moc obliczeniową na możliwość uczenia większych modeli lub dłuższych sekwencji na tym samym sprzęcie.

Co zmienia rekomputacja aktywacji, aby zaoszczędzić pamięć?

Ponowne obliczenie odrzuca zapisane aktywacje i regeneruje je w przebiegu wstecznym, zużywając dodatkową moc obliczeniową w celu zmniejszenia zużycia pamięci.

Dlaczego aktywacje przekazywania w przód są zwykle w ogóle przechowywane?

Przejście wstecz wykorzystuje aktywacje do przodu do obliczenia gradientów, więc domyślnie są one przechowywane w pamięci do czasu uruchomienia przejścia wstecz.

Mniej więcej, ile dodatkowych mocy obliczeniowych zwykle dodaje ponowne obliczenie pełnej aktywacji?

Pełna rekomputacja polega na ponownym uruchomieniu obliczeń w przód podczas przebiegu wstecz, dodając około jednego dodatkowego przebiegu w przód — o około 30–40% więcej obliczeń.

Jaka jest idea selektywnej (nie pełnej) rekomputacji?

Selektywne rekomputacje są ukierunkowane na operacje, które zużywają dużo pamięci, ale mało mocy obliczeniowej (jak softmax lub Layernorm), podczas gdy buforowanie kosztownych wyników GEMM pozwala zminimalizować straty FLOP.

Którą technikę uzupełniającą często łączy się z ponownym obliczeniem, aby zaoszczędzić jeszcze więcej pamięci?

Odciążanie aktywacji przenosi niektóre aktywacje do pamięci CPU/NVMe i często jest łączone z ponownym obliczeniem i równoległością w celu dalszej oszczędności pamięci.