NastępnyNastępny poradnik
Znikające i eksplodujące gradienty
Techniczne
PRZEWODNIK techniczny
Akumulacja gradientów pozwala symulować duży rozmiar partii przy ograniczonej pamięci procesora graficznego poprzez sumowanie gradientów w kilku małych minipartiach przed aktualizacją wag.
Posłuchaj tego przewodnikaOpowiadane przez sztuczną inteligencję · ~2 min
It is the standard workaround for training big models when memory is the bottleneck.
Zwykle etap szkoleniowy przetwarza jedną partię, oblicza gradienty i natychmiast aktualizuje parametry. W przypadku akumulacji gradientu wykonujesz kilka przejść do przodu i do tyłu na mniejszych mikropartiach, sumując ich gradienty w buforach parametrów i wywołujesz krok optymalizatora (i zerujesz gradienty) dopiero po N mikropartach. Efektywny rozmiar partii to wielkość mikropartii pomnożona przez N, mimo że pamięć szczytowa przechowuje tylko jedną mikropartię aktywacji. Ma to znaczenie, ponieważ wiele receptur szkoleniowych zakłada duże partie w celu zapewnienia stabilnych statystyk oraz ponieważ modele takie jak duże transformatory nie mogą zmieścić pełnej partii docelowej na jednym urządzeniu. Haczyk: statystyki normalizacji partii są obliczane dla każdej mikropartii, więc norma warstwowa lub norma grupowa lepiej łączą się z akumulacją i należy poprawnie skalować stratę, aby utrzymać odpowiednią efektywną szybkość uczenia się.
Dostrajanie dużego modelu językowego na pojedynczym konsumenckim procesorze graficznym poprzez gromadzenie ponad 8 lub 16 mikropartii w celu uzyskania efektywnej partii setek.
Trenowanie modeli wizyjnych lub segmentacji o wysokiej rozdzielczości, w których mieści się nawet partia 2, ale przepis wymaga efektywnej partii 32.
Hugging Face Trainer i PyTorch Lightning ujawniają ustawienie gradient_accumulation_steps używane rutynowo w konfiguracjach z ograniczoną ilością pamięci VRAM.
Odtwarzanie wyników dużych partii papieru na mniejszym sprzęcie poprzez dopasowanie efektywnej wielkości partii poprzez akumulację.
Akumulacja gradientów pozostanie domyślną dźwignią, ponieważ rozmiary modeli przekraczają pamięć pojedynczego urządzenia. Coraz częściej łączy się go z mieszaną precyzją, punktami kontrolnymi aktywacji, fragmentowaniem ZeRO i równoległością potoków w platformach takich jak DeepSpeed i FSDP. Spodziewaj się ściślejszej automatyzacji, w której biblioteki automatycznie dostosowują kroki akumulacji do budżetu pamięci, oraz ciągłego znaczenia dostrajania dużych modeli na skromnym sprzęcie, w tym konsumenckich procesorach graficznych, gdzie odblokowuje to szkolenie, które w innym przypadku byłoby niemożliwe.
Darmowy newsletter
Trzy zweryfikowane historie AI każdego poranka w dni robocze, napisane prostym angielskim. Bezpłatne na zawsze, bez reklam.
Jedno e‑mail każdego dnia roboczego. Wypisz się jednym kliknięciem. Nigdy nie sprzedajemy ani nie udostępniamy Twojego adresu.
Sprawdź się
Natychmiastowa informacja zwrotna na każde pytanie oraz udostępnialny certyfikat z weryfikowalnym ID po zaliczeniu kursu.
Wspieraj darmową edukację AI. AI Understanding jest organizacją non-profit 501(c)(3) — bez reklam, bez płatnej ściany, zawsze. Przekaż darowiznę
Akumulacja gradientów pozwala symulować duży rozmiar partii przy ograniczonej pamięci procesora graficznego poprzez sumowanie gradientów w kilku małych minipartiach przed aktualizacją wag. Jest to standardowe rozwiązanie w przypadku uczenia dużych modeli, gdy wąskim gardłem jest pamięć.
Sumując gradienty z kilku mikropartii przed aktualizacją, naśladujesz dużą partię bez jednoczesnego przechowywania ich wszystkich w pamięci.
Accumulate gradients across N micro-batches, call optimizer.step() once for the effective batch, then clear gradients before the next window; begin training with cleared buffers.
Batch-norm oblicza statystyki na mikropartię, więc norma warstwowa lub grupowa pozwala uniknąć niedopasowania w przypadku małych mikropartii.
Batch-dependent forward computations break exact equivalence.
Ucz się dalej
Wybrano więcej przewodników na ten temat
NastępnyNastępny poradnik
Znikające i eksplodujące gradienty
Techniczne