Poczyniono ogromne postępy w dziedzinie rozproszonego głębokiego uczenia się dla dużych modeli językowych (LLM), zwłaszcza po wydaniu ChatGPT w grudniu 2022 r. Rozmiary LLM wciąż rosną, obejmując miliardy, a nawet biliony parametrów, a często nie zmieścić się w pojedynczym urządzeniu akcelerującym, takim jak GPU, lub nawet w jednym węźle, takim jak ml.p5.32xlarge, ze względu na ograniczenia pamięci. Klienci szkolący LLM często muszą rozłożyć swoje obciążenie na setki, a nawet tysiące procesorów graficznych. Umożliwienie szkoleń na taką skalę pozostaje wyzwaniem w przypadku szkoleń rozproszonych, a efektywne szkolenie w tak dużym systemie to kolejny, równie istotny problem. W ciągu ostatnich lat społeczność rozproszonych szkoleniowców wprowadziła równoległość 3D (równoległość danych, równoległość potoku i równoległość tensorów) oraz inne techniki (takie jak równoległość sekwencji i równoległość ekspercka), aby sprostać takim wyzwaniom.
W grudniu 2023 r. Amazon ogłosił wydanie Biblioteka równoległa modeli SageMaker 2.0 (SMP), który osiąga najnowocześniejszą wydajność w szkoleniu dużych modeli, wraz z Biblioteka równoległości danych rozproszonych SageMaker (SMDDP). To wydanie jest znaczącą aktualizacją w stosunku do wersji 1.x: SMP jest teraz zintegrowany z open source PyTorch W pełni podzielone dane równolegle (FSDP), które umożliwiają korzystanie ze znanego interfejsu podczas uczenia dużych modeli i są kompatybilne z Silnik transformatorowy (TE), po raz pierwszy odblokowując techniki równoległości tensorów wraz z FSDP. Aby dowiedzieć się więcej o wydaniu, zob Biblioteka równoległa modeli Amazon SageMaker przyspiesza teraz obciążenia PyTorch FSDP nawet o 20%.
W tym poście przyjrzymy się korzyściom związanym z wydajnością Amazon Sage Maker (w tym SMP i SMDDP) oraz w jaki sposób można wykorzystać bibliotekę do efektywnego uczenia dużych modeli w SageMaker. Demonstrujemy wydajność SageMakera za pomocą testów porównawczych na klastrach ml.p4d.24xlarge do 128 instancji i mieszanej precyzji FSDP z bfloat16 dla modelu Llama 2. Zaczynamy od demonstracji wydajności niemal liniowego skalowania dla SageMakera, następnie analizujemy wkład każdej funkcji pod kątem optymalnej przepustowości, a kończymy efektywnym szkoleniem z różnymi długościami sekwencji aż do 32,768 XNUMX poprzez równoległość tensorów.
Skalowanie niemal liniowe w SageMaker
Aby skrócić ogólny czas uczenia modeli LLM, utrzymanie wysokiej przepustowości podczas skalowania do dużych klastrów (tysiące procesorów graficznych) ma kluczowe znaczenie, biorąc pod uwagę obciążenie komunikacji między węzłami. W tym poście demonstrujemy solidną i niemal liniową wydajność skalowania (poprzez zmianę liczby procesorów graficznych w celu uzyskania ustalonego całkowitego rozmiaru problemu) w instancjach p4d wywołujących zarówno SMP, jak i SMDDP.
W tej sekcji demonstrujemy niemal liniową wydajność skalowania SMP. Tutaj szkolimy modele Llama 2 o różnych rozmiarach (parametry 7B, 13B i 70B) przy użyciu stałej długości sekwencji wynoszącej 4,096, zaplecza SMDDP do komunikacji zbiorowej, z obsługą TE, globalnego rozmiaru wsadu wynoszącego 4 miliony, z 16 do 128 węzłami p4d . Poniższa tabela podsumowuje naszą optymalną konfigurację i wydajność szkolenia (model TFLOP na sekundę).
Rozmiar modelu | Liczba węzłów | TFLOPy* | SDP* | tp* | rozładować* | Efektywność skalowania |
7B | 16 | 136.76 | 32 | 1 | N | 100.0% |
32 | 132.65 | 64 | 1 | N | 97.0% | |
64 | 125.31 | 64 | 1 | N | 91.6% | |
128 | 115.01 | 64 | 1 | N | 84.1% | |
13B | 16 | 141.43 | 32 | 1 | Y | 100.0% |
32 | 139.46 | 256 | 1 | N | 98.6% | |
64 | 132.17 | 128 | 1 | N | 93.5% | |
128 | 120.75 | 128 | 1 | N | 85.4% | |
70B | 32 | 154.33 | 256 | 1 | Y | 100.0% |
64 | 149.60 | 256 | 1 | N | 96.9% | |
128 | 136.52 | 64 | 2 | N | 88.5% |
*Przy danym rozmiarze modelu, długości sekwencji i liczbie węzłów pokazujemy globalnie optymalną przepustowość i konfiguracje po zbadaniu różnych kombinacji sdp, tp i odciążania aktywacji.
W powyższej tabeli podsumowano optymalne wartości przepustowości w zależności od stopnia równoległości danych fragmentowanych (sdp) (zwykle przy użyciu hybrydowego fragmentowania FSDP zamiast pełnego fragmentowania, więcej szczegółów w następnej sekcji), stopnia równoległości tensora (tp) i zmian wartości odciążania aktywacji. demonstrując niemal liniowe skalowanie dla SMP wraz z SMDDP. Na przykład, biorąc pod uwagę rozmiar modelu Lama 2 7B i długość sekwencji 4,096, ogólnie osiąga on efektywność skalowania 97.0%, 91.6% i 84.1% (w odniesieniu do 16 węzłów) odpowiednio przy 32, 64 i 128 węzłach. Efektywność skalowania jest stabilna dla różnych rozmiarów modelu i nieznacznie wzrasta wraz ze wzrostem rozmiaru modelu.
SMP i SMDDP wykazują również podobną wydajność skalowania dla innych długości sekwencji, takich jak 2,048 i 8,192.
Wydajność biblioteki równoległej modelu SageMaker 2.0: Llama 2 70B
Rozmiary modeli stale rosły w ciągu ostatnich lat, wraz z częstymi najnowocześniejszymi aktualizacjami wydajności w społeczności LLM. W tej sekcji ilustrujemy wydajność w SageMaker dla modelu Llama 2 przy użyciu stałego rozmiaru modelu 70B, długości sekwencji wynoszącej 4,096 i globalnej wielkości partii wynoszącej 4 miliony. Aby porównać z globalnie optymalną konfiguracją i przepustowością z poprzedniej tabeli (z zapleczem SMDDP, zazwyczaj hybrydowym fragmentowaniem FSDP i TE), poniższa tabela rozszerza się na inne optymalne przepustowości (potencjalnie z równoległością tensorów) z dodatkowymi specyfikacjami na rozproszonym backendie (NCCL i SMDDP) , strategie shardingu FSDP (full sharding i hybrydowy sharding) oraz włączenie lub wyłączenie TE (domyślnie).
Rozmiar modelu | Liczba węzłów | TFLOPY | Konfiguracja TFLOPów nr 3 | Poprawa TFLOP w stosunku do wartości wyjściowych | ||||||||
. | . | Pełne fragmentowanie NCCL: #0 | Pełne sharding SMDDP: #1 | Fragmentowanie hybrydowe SMDDP: #2 | Sharding hybrydowy SMDDP z TE: #3 | SDP* | tp* | rozładować* | #0 → #1 | #1 → #2 | #2 → #3 | #0 → #3 |
70B | 32 | 150.82 | 149.90 | 150.05 | 154.33 | 256 | 1 | Y | -0.6% | 0.1% | 2.9% | 2.3% |
64 | 144.38 | 144.38 | 145.42 | 149.60 | 256 | 1 | N | 0.0% | 0.7% | 2.9% | 3.6% | |
128 | 68.53 | 103.06 | 130.66 | 136.52 | 64 | 2 | N | 50.4% | 26.8% | 4.5% | 99.2% |
*Przy danym rozmiarze modelu, długości sekwencji i liczbie węzłów pokazujemy globalnie optymalną przepustowość i konfigurację po zbadaniu różnych kombinacji sdp, tp i odciążania aktywacji.
Najnowsza wersja SMP i SMDDP obsługuje wiele funkcji, w tym natywny PyTorch FSDP, rozszerzone i bardziej elastyczne hybrydowe sharding, integrację silnika transformatorowego, równoległość tensorów i zoptymalizowane zbiorowe działanie all-get. Aby lepiej zrozumieć, w jaki sposób SageMaker osiąga efektywne rozproszone szkolenia dla LLM, badamy przyrostowy wkład SMDDP i następujących SMP podstawowe cechy:
- Ulepszenie SMDDP w stosunku do NCCL z pełnym fragmentowaniem FSDP
- Zastąpienie pełnego fragmentowania FSDP fragmentowaniem hybrydowym, które zmniejsza koszty komunikacji i poprawia przepustowość
- Dalszy wzrost przepustowości dzięki TE, nawet przy wyłączonej równoległości tensorów
- Przy niższych ustawieniach zasobów odciążanie aktywacji może umożliwić uczenie, które w przeciwnym razie byłoby niewykonalne lub bardzo powolne ze względu na duże obciążenie pamięci
Pełne sharding FSDP: ulepszenie SMDDP w porównaniu z NCCL
Jak pokazano w poprzedniej tabeli, gdy modele są w pełni podzielone przy użyciu protokołu FSDP, chociaż przepustowość NCCL (TFLOP nr 0) i SMDDP (TFLOP nr 1) jest porównywalna przy 32 lub 64 węzłach, następuje ogromna poprawa wynosząca 50.4% w porównaniu z NCCL do SMDDP przy 128 węzłach.
Przy mniejszych rozmiarach modeli obserwujemy stałą i znaczącą poprawę w przypadku SMDDP w porównaniu z NCCL, zaczynając od mniejszych rozmiarów klastrów, ponieważ SMDDP jest w stanie skutecznie łagodzić wąskie gardła w komunikacji.
Hybrydowe sharding FSDP w celu zmniejszenia kosztów komunikacji
W SMP 1.0 uruchomiliśmy dzielona równoległość danych, rozproszona technika szkoleniowa obsługiwana przez firmę Amazon MiCS technologia. W SMP 2.0 wprowadzamy hybrydowy sharding SMP, rozszerzalną i bardziej elastyczną technikę hybrydowego shardingu, która umożliwia dzielenie modeli pomiędzy podzbiorem procesorów graficznych zamiast wszystkich procesorów graficznych uczących, jak ma to miejsce w przypadku pełnego fragmentowania FSDP. Jest to przydatne w przypadku modeli średniej wielkości, które nie muszą być dzielone na fragmenty w całym klastrze, aby spełnić ograniczenia pamięci przypadające na procesor graficzny. Prowadzi to do tego, że klastry posiadają więcej niż jedną replikę modelu, a każdy procesor graficzny komunikuje się z mniejszą liczbą elementów równorzędnych w czasie wykonywania.
Hybrydowe sharding SMP umożliwia wydajne sharding modelu w szerszym zakresie, od najmniejszego stopnia fragmentacji bez problemów z brakiem pamięci aż do rozmiaru całego klastra (co odpowiada pełnemu fragmentowaniu).
Poniższy rysunek ilustruje dla uproszczenia zależność przepustowości od sdp przy tp = 1. Chociaż niekoniecznie jest to ta sama optymalna wartość tp dla pełnego fragmentowania NCCL lub SMDDP z poprzedniej tabeli, liczby są dość zbliżone. Wyraźnie potwierdza to wartość przejścia z pełnego fragmentowania na hybrydowe w dużym klastrze składającym się ze 128 węzłów, co ma zastosowanie zarówno w przypadku NCCL, jak i SMDDP. W przypadku mniejszych rozmiarów modeli znaczące ulepszenia dzięki hybrydowemu fragmentowaniu zaczynają się od mniejszych rozmiarów klastrów, a różnica stale rośnie wraz z rozmiarem klastra.
Ulepszenia z TE
TE ma na celu przyspieszenie szkolenia LLM na procesorach graficznych NVIDIA. Pomimo tego, że nie korzystamy z FP8, ponieważ nie jest on obsługiwany w instancjach p4d, nadal widzimy znaczne przyspieszenie dzięki TE na p4d.
Oprócz MiCS wyszkolonego z backendem SMDDP, TE wprowadza stałe zwiększenie przepustowości we wszystkich rozmiarach klastrów (jedynym wyjątkiem jest pełne fragmentowanie w 128 węzłach), nawet gdy wyłączona jest równoległość tensora (stopień równoległości tensora wynosi 1).
W przypadku mniejszych rozmiarów modeli lub różnych długości sekwencji wzmocnienie TE jest stabilne i nietrywialne i mieści się w zakresie około 3–7.6%.
Odciążanie aktywacji przy niskich ustawieniach zasobów
Przy niskich ustawieniach zasobów (biorąc pod uwagę małą liczbę węzłów) FSDP może doświadczyć dużego wykorzystania pamięci (lub nawet jej braku w najgorszym przypadku), gdy włączony jest punkt kontrolny aktywacji. W przypadku takich scenariuszy z wąskim gardłem pamięci włączenie odciążania aktywacji jest potencjalnie opcją poprawiającą wydajność.
Na przykład, jak widzieliśmy wcześniej, chociaż Lama 2 przy rozmiarze modelu 13B i długości sekwencji 4,096 jest w stanie optymalnie trenować z co najmniej 32 węzłami z punktami kontrolnymi aktywacji i bez odciążania aktywacji, osiąga najlepszą przepustowość z odciążaniem aktywacji przy ograniczeniu do 16 węzły.
Włącz szkolenie z długimi sekwencjami: równoległość tensora SMP
W przypadku długich rozmów i kontekstu pożądane są dłuższe sekwencje, które cieszą się coraz większym zainteresowaniem społeczności LLM. Dlatego w poniższej tabeli przedstawiamy różne przepustowości długich sekwencji. Tabela pokazuje optymalną przepustowość uczenia Llama 2 w SageMaker, przy różnych długościach sekwencji od 2,048 do 32,768. Przy długości sekwencji 32,768 32 natywne szkolenie FSDP jest niewykonalne w przypadku 4 węzłów przy globalnym rozmiarze partii wynoszącym XNUMX miliony.
. | . | . | TFLOPY | ||
Rozmiar modelu | Długość sekwencji | Liczba węzłów | Natywny FSDP i NCCL | SMP i SMDDP | Ulepszenie SMP |
7B | 2048 | 32 | 129.25 | 138.17 | 6.9% |
4096 | 32 | 124.38 | 132.65 | 6.6% | |
8192 | 32 | 115.25 | 123.11 | 6.8% | |
16384 | 32 | 100.73 | 109.11 | 8.3% | |
32768 | 32 | NA | 82.87 | . | |
13B | 2048 | 32 | 137.75 | 144.28 | 4.7% |
4096 | 32 | 133.30 | 139.46 | 4.6% | |
8192 | 32 | 125.04 | 130.08 | 4.0% | |
16384 | 32 | 111.58 | 117.01 | 4.9% | |
32768 | 32 | NA | 92.38 | . | |
*: maks | . | . | . | . | 8.3% |
*: mediana | . | . | . | . | 5.8% |
Gdy rozmiar klastra jest duży i ma stały globalny rozmiar wsadu, niektóre szkolenia modeli mogą być niewykonalne w przypadku natywnego protokołu FSDP PyTorch ze względu na brak wbudowanego potoku lub obsługi równoległości tensorów. W powyższej tabeli, biorąc pod uwagę globalny rozmiar wsadu wynoszący 4 miliony, 32 węzły i długość sekwencji 32,768 0.5, efektywny rozmiar wsadu na procesor graficzny wynosi 2 (na przykład tp = 1 przy rozmiarze wsadu XNUMX), co w przeciwnym razie byłoby niewykonalne bez wprowadzenia Równoległość tensorowa.
Wnioski
W tym poście zademonstrowaliśmy wydajne szkolenie LLM z SMP i SMDDP na instancjach p4d, przypisując wkład wielu kluczowym funkcjom, takim jak ulepszenie SMDDP w porównaniu z NCCL, elastyczne hybrydowe sharding FSDP zamiast pełnego shardingu, integracja TE i umożliwienie równoległości tensorów na korzyść długie sekwencje. Po przetestowaniu w szerokim zakresie ustawień z różnymi modelami, rozmiarami modeli i długościami sekwencji, wykazuje solidną, niemal liniową wydajność skalowania, aż do 128 instancji p4d w SageMaker. Podsumowując, SageMaker w dalszym ciągu jest potężnym narzędziem dla badaczy i praktyków LLM.
Aby dowiedzieć się więcej, zapoznaj się z Biblioteka równoległości modeli SageMaker v2lub skontaktuj się z zespołem SMP pod adresem [email chroniony].
Podziękowania
Chcielibyśmy podziękować Robertowi Van Dusenowi, Benowi Snyderowi, Gautamowi Kumarowi i Luisowi Quinteli za konstruktywne uwagi i dyskusje.
O autorach
Xinle Sheila Liu jest SDE w Amazon SageMaker. W wolnym czasie lubi czytać i uprawiać sport na świeżym powietrzu.
Suhit Kodgule jest inżynierem ds. rozwoju oprogramowania w grupie sztucznej inteligencji AWS, pracującym nad frameworkami głębokiego uczenia się. W wolnym czasie lubi wędrować, podróżować i gotować.
Wiktor Zhu jest inżynierem oprogramowania w dziedzinie rozproszonego głębokiego uczenia się w Amazon Web Services. Można go spotkać podczas pieszych wędrówek i gier planszowych w rejonie zatoki SF.
Deria Cavdar pracuje jako inżynier oprogramowania w AWS. Jej zainteresowania obejmują głębokie uczenie się i optymalizację szkoleń rozproszonych.
Teng Xu jest inżynierem ds. rozwoju oprogramowania w grupie Distributed Training w AWS AI. Lubi czytać.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/machine-learning/distributed-training-and-efficient-scaling-with-the-amazon-sagemaker-model-parallel-and-data-parallel-libraries/