NastępnyNastępny poradnik
Równoległość danych
Techniczne
PRZEWODNIK techniczny
Fully Sharded Data Parallel (FSDP) to rozproszona technika uczenia, która dzieli parametry modelu, gradienty i stany optymalizatora na wiele procesorów graficznych, dzięki czemu każde urządzenie przechowuje tylko wycinek.
Posłuchaj tego przewodnikaOpowiadane przez sztuczną inteligencję · ~2 min
It makes training huge models possible on hardware that could never fit the whole model in one GPU's memory.
Tradycyjna równoległość danych utrzymuje pełną kopię modelu na każdym procesorze graficznym, co marnuje pamięć i ogranicza rozmiar modelu. FSDP, spopularyzowany przez PyTorch firmy Meta i zainspirowany ZeRO firmy Microsoft, zamiast tego dzieli trzy rzeczy na urządzenia: parametry, gradienty i stany optymalizatora. Podczas przebiegu w przód każdy procesor graficzny tymczasowo gromadzi pełne wagi warstwy, którą oblicza, za pomocą funkcji all-gather, uruchamia obliczenia, a następnie natychmiast uwalnia zebraną kopię. Przejście wstecz działa podobnie, po którym następuje redukcja rozproszenia, która rozprowadza wycinki gradientu z powrotem do odpowiednich procesorów graficznych. Ponieważ każde urządzenie trwale przechowuje tylko część modelu, zużycie pamięci spada mniej więcej liniowo wraz z liczbą procesorów graficznych, umożliwiając zespołom trenowanie modeli z dziesiątkami lub setkami miliardów parametrów.
Dostrajanie modelu Lamy o 70 miliardach parametrów na 8 procesorach graficznych, które indywidualnie nie są w stanie utrzymać pełnych ciężarów.
Wstępne uczenie dużych modeli językowych w laboratoriach sztucznej inteligencji poprzez dzielenie stanów optymalizatora (które w przypadku Adama dominują w pamięci) na setkach akceleratorów.
Naukowcy używający opakowania FSDP firmy PyTorch do szkolenia transformatorów wizyjnych w klastrze uniwersyteckim bez konieczności kupowania flagowych procesorów graficznych 80 GB.
Połączenie FSDP z bfloat16 o mieszanej precyzji w celu zmniejszenia pamięci o mniej więcej połowę i przyspieszenia wydajności uczenia w modelach multimodalnych.
FSDP staje się domyślnym rozwiązaniem w przypadku otwartych szkoleń na dużych modelach, a FSDP2 w PyTorch poprawia użyteczność i fragmentowanie według parametrów. Spodziewaj się ściślejszej integracji z równoległością tensora i potoku w przypadku modeli o bilionach parametrów, lepszej obsługi mieszanej precyzji i fp8 oraz inteligentniejszego automatycznego zawijania, które wyznacza dla Ciebie granice fragmentowania. Ponieważ połączenia między kartami graficznymi, takie jak NVLink i InfiniBand, stają się coraz szybsze, koszt komunikacji w ramach shardingu stale maleje, co czyni go praktycznym w coraz większej skali.
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ę
Fully Sharded Data Parallel (FSDP) to rozproszona technika uczenia, która dzieli parametry modelu, gradienty i stany optymalizatora na wiele procesorów graficznych, dzięki czemu każde urządzenie przechowuje tylko wycinek. Umożliwia trenowanie ogromnych modeli na sprzęcie, który nigdy nie zmieściłby całego modelu w pamięci jednego procesora graficznego.
FSDP dzieli parametry modelu, gradienty i stany optymalizatora na różne urządzenia, podczas gdy standardowa równoległość danych replikuje pełny model na każdym procesorze graficznym.
Przed uruchomieniem warstwy protokół FSDP przeprowadza gromadzenie wszystkich danych, aby tymczasowo zebrać pełne parametry ze wszystkich fragmentów, a następnie je uwalnia.
Trwałe trzymanie tylko fragmentu i przejściowe gromadzenie pełnych wag sprawia, że zużycie pamięci jest niskie i mniej więcej proporcjonalne do jednej części modelu.
Fragmentowanie parametrów, gradientów i stanów optymalizatora w FSDP jest ściśle zgodne z pomysłami wprowadzonymi w ZeRO Microsoft z biblioteki DeepSpeed.
FSDP pobiera z wyprzedzeniem parametry następnej warstwy, podczas gdy bieżąca warstwa nadal wykonuje obliczenia, zakładając komunikację typu „wszystko-zbieranie” na użyteczną pracę.
Ucz się dalej
Wybrano więcej przewodników na ten temat
NastępnyNastępny poradnik
Równoległość danych
Techniczne