PRZEWODNIK techniczny

W pełni podzielone dane równolegle

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.

2 minuty czytaniaOstatnia aktualizacja

Przegląd

It makes training huge models possible on hardware that could never fit the whole model in one GPU's memory.

Głębokie nurkowanie

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.

Wgląd techniczny

FSDP poświęca dodatkową komunikację na rzecz oszczędności pamięci. Wagi każdej warstwy są rekonstruowane na żądanie tuż przed użyciem i odrzucane zaraz po użyciu, podczas gdy gradienty są łączone i dzielone za pomocą metody zmniejszania rozproszenia. Komunikacja może zostać nałożona na obliczenia poprzez wstępne pobieranie parametrów następnej warstwy podczas działania bieżącej warstwy, ukrywając większość opóźnień sieci. Dostrajanie szczegółowości fragmentowania (zasady zawijania) równoważy zużycie pamięci z obciążeniem komunikacyjnym.

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ść w pełni dzielonych danych równoległych

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.

Implementacja w świecie rzeczywistym

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.

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 Fully Sharded Data Parallel 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

Równoległość danych

Często zadawane pytania

What is Fully Sharded Data Parallel?

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.

Co powoduje fragmentację FSDP między procesorami graficznymi, czego NIE robi standardowa równoległość danych?

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.

Jakiej zbiorczej operacji używa FSDP do rekonstrukcji pełnych ciężarów warstwy tuż przed jej obliczeniem?

Przed uruchomieniem warstwy protokół FSDP przeprowadza gromadzenie wszystkich danych, aby tymczasowo zebrać pełne parametry ze wszystkich fragmentów, a następnie je uwalnia.

Dlaczego FSDP uwalnia zebrane pełne ciężary natychmiast po obliczeniu warstwy?

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.

Które wcześniejsze podejście do optymalizacji pamięci w dużej mierze zainspirowało FSDP?

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.

W jaki sposób FSDP ukrywa większość opóźnień sieci przed gromadzeniem wag?

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ę.