Generatywna analiza danych

Rozproszone szkolenie i wydajne skalowanie za pomocą bibliotek Amazon SageMaker Model Parallel i Data Parallel | Usługi internetowe Amazona

Data:

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

spot_img

Najnowsza inteligencja

spot_img

Czat z nami

Cześć! Jak mogę ci pomóc?