Mieszany trening precyzyjny
Uczenie o mieszanej precyzji przyspiesza uczenie sieci neuronowej i zmniejsza zużycie pamięci, wykonując większość obliczeń matematycznych w 16-bitowym formacie zmiennoprzecinkowym zamiast w 32-bitowym.
Przegląd
It lets the same GPU train bigger models faster with almost no loss in accuracy.
Głębokie nurkowanie
Tradycyjne szkolenie przechowuje ciężary i wykonuje obliczenia w 32-bitowym formacie zmiennoprzecinkowym (FP32). Mieszana precyzja wykorzystuje formaty 16-bitowe o niższej precyzji (FP16 lub bfloat16) do ciężkich mnożeń macierzy, zachowując jednocześnie 32-bitową „kopię wzorcową” wag w celu zapewnienia stabilnych aktualizacji. Ponieważ liczby 16-bitowe są o połowę mniejsze, w pamięci GPU mieści się więcej, a rdzenie Tensor przetwarzają je około 2–8 razy szybciej. Haczyk polega na wąskim zakresie FP16: niewielkie gradienty mogą spaść do zera. Standardowym rozwiązaniem jest skalowanie strat, które mnoży stratę przez duży współczynnik przed propagacją wsteczną, tak aby małe gradienty pozostały reprezentowalne, a następnie dzieli ją z powrotem przed aktualizacją wagi. Apex firmy NVIDIA i wbudowany AMP (Automatic Mixed Precision) w PyTorch i TensorFlow automatyzują to.
Wgląd techniczny
FP16 ma tylko 5 bitów wykładniczych, co daje mały zakres dynamiki, który powoduje niedopełnienie gradientu. Bfloat16 przechowuje 8 bitów wykładniczych (pasujących do zakresu FP32), ale mniej bitów mantysy, więc rzadko wymaga skalowania strat — kluczowy powód, dla którego preferują go Google TPU i nowoczesne procesory graficzne. Rdzenie Tensor przyspieszają pracę, mnożąc 16-bitowe operandy, ale gromadząc sumy częściowe w FP32, zachowując precyzję tam, gdzie w przeciwnym razie błędy sumowania uległyby nasileniu.
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ść treningu o mieszanej precyzji
Precyzja ciągle spada. Szkolenie w zakresie 8PR, obsługiwane przez procesory graficzne NVIDIA Hopper i Blackwell, staje się standardem w przypadku pionierskich modeli, a badania nad 4PR i formatami mikroskalowania (MXFP) posuwają się dalej. Oczekuj, że frameworki będą automatycznie wybierać precyzję dla każdej warstwy, sprzęt będzie natywnie obsługiwał coraz węższe formaty, a szkolenie uwzględniające kwantyzację zaciera granicę między treningiem o niskiej precyzji a wnioskowaniem, zmniejszając koszt uczenia modeli bilionowych parametrów.
Implementacja w świecie rzeczywistym
Torch.cuda.amp.autocast PyTorch zawija pętlę treningową, aby mniej więcej o połowę zmniejszyć pamięć i podwoić przepustowość na jednym procesorze graficznym
Trenowanie dużych modeli językowych, takich jak transformatory w stylu GPT, w bfloat16 na TPU, aby uniknąć strojenia ze skalowaniem strat
Dopasowanie większej partii do konsumenckiego procesora graficznego RTX poprzez zmianę uczenia obrazu ResNet z FP32 na FP16
8PR z mieszaną precyzją na procesorach graficznych NVIDIA H100, aby obniżyć koszty wstępnego uczenia modeli o pionierskiej skali
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
Przed wdrożeniem zdefiniuj docelowe opóźnienia, jakość i koszty.
Test porównawczy w realistycznych warunkach obciążenia i danych.
Monitorowanie przyrządu pod kątem błędów, dryftu i wpływu użytkownika.
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 Mixed Precision Training quiz
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
Następny poradnik
Pseudo-etykietowanie i samokształcenie
Często zadawane pytania
What is Mixed Precision Training?
Uczenie o mieszanej precyzji przyspiesza uczenie sieci neuronowej i zmniejsza zużycie pamięci, wykonując większość obliczeń matematycznych w 16-bitowym formacie zmiennoprzecinkowym zamiast w 32-bitowym. Pozwala temu samemu procesorowi graficznemu trenować większe modele szybciej, niemal bez utraty dokładności.
Dlaczego w treningu o mieszanej precyzji przechowywana jest 32-bitowa „kopia główna” ciężarków?
Aktualizacje wagi są często bardzo małe; gromadzenie ich w formacie 16-bitowym spowodowałoby utratę precyzji, więc kopia wzorcowa o pełnej precyzji zapewnia dokładność aktualizacji.
Jaki problem rozwiązuje skalowanie strat w szkoleniu FP16?
FP16 ma ograniczony zakres dynamiki, więc małe gradienty mogą zaokrąglić się do zera; pomnożenie straty przed podkładem zapewnia ich reprezentatywność.
Jaką przewagę ma bfloat16 nad FP16?
Bfloat16 przechowuje 8 bitów wykładniczych, jak FP32, więc jego zakres dynamiczny jest duży, a niedopełnienie gradientu jest rzadkie.
W jaki sposób rdzenie Tensor zachowują dokładność podczas korzystania z wejść 16-bitowych?
Rdzenie Tensorowe mnożą 16-bitowe operandy, ale akumulują je w 32-bitowych, zapobiegając kumulowaniu się błędów sumowania.
Jaka jest główna korzyść z używania podczas uczenia wartości 16-bitowych zamiast 32-bitowych?
Liczby o połowie rozmiaru mieszczą więcej danych w pamięci GPU i pozwalają specjalizowanemu sprzętowi przetwarzać macierz matematyczną kilka razy szybciej.