Back to archive
#ai#llm#glossary#aigen

Loss Scaling

Loss Scaling polega na pomnożeniu straty przez współczynnik SS przed backward, a następnie podzieleniu gradientów parametrów przez SS przed aktualizacją. Dla stałego SS reguła łańcuchowa daje:

∇θ(SL)=S∇θL.\nabla_\theta(SL)=S\nabla_\theta L.

LL oznacza stratę, a θ\theta parametry modelu. W arytmetyce dokładnej skalowanie i odskalowanie znoszą się. W ograniczonym formacie pośrednie, większe gradienty mogą przetrwać zapis, w którym ich pierwotne wartości zniknęłyby do zera. Ten mechanizm opisują Micikevicius et al., §3.2.

Soczewka powiększa drobne znaki do widocznego rozmiaru, a duży znak wychodzi poza ramkę, obrazując ograniczone okno skali.

Okno zamiast dowolnie dużej skali

Własny przykład: g=2−26g=2^{-26} zaokrągla się w FP16 do zera. Po pomnożeniu przez 4 otrzymujemy 2−242^{-24}, najmniejszą dodatnią wartość subnormalną FP16. Zapisujemy ją i dzielimy przez 4 w większej precyzji, odzyskując gradient. Pomnożenie gradientu, który już został zerem, niczego nie naprawi.

Jedna skala obejmuje jednak gradienty o różnych wielkościach. W demonstracji drugi wynosi 8. Skala 2132^{13} daje dla niego 65536, czyli przepełnienie FP16. Zwiększając suwak, znajdź zakres, w którym oba gradienty przetrwają.

W Mixed Precision Training loss scaling chroni zakres gradientów; autocast dobiera formaty operacji. To osobne mechanizmy. Dokumentacja AMP, Gradient Scaling ostrzega, że FP16 nie pasuje do każdego modelu i skala może nawet spaść poniżej 1.

PyTorch GradScaler pomija krok optymalizatora, gdy wykryje nieskończone gradienty lub NaN. Przed gradient clipping trzeba odskalować gradienty, aby próg zachował znaczenie. Przy Gradient Accumulation skala pozostaje stała do zebrania całej efektywnej porcji; dopiero potem następuje odskalowanie i aktualizacja. Te granice pokazują przykłady AMP: unscaled gradients i accumulation.

Skalowanie nie zmienia celu Cross-entropy ani zamierzonego learning rate. Nie zastępuje też poprawnego uśrednienia straty po przykładach lub tokenach.

Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.