Distribueret træning og effektiv skalering med Amazon SageMaker Model Parallel and Data Parallel Libraries | Amazon Web Services

Distribueret træning og effektiv skalering med Amazon SageMaker Model Parallel and Data Parallel Libraries | Amazon Web Services

Der er sket enorme fremskridt inden for distribueret dyb læring for store sprogmodeller (LLM'er), især efter udgivelsen af ​​ChatGPT i december 2022. LLM'er fortsætter med at vokse i størrelse med milliarder eller endda billioner af parametre, og de vil ofte ikke passer ind i en enkelt acceleratorenhed såsom GPU eller endda en enkelt node såsom ml.p5.32xlarge på grund af hukommelsesbegrænsninger. Kunder, der træner LLM'er, skal ofte fordele deres arbejdsbyrde på flere hundrede eller endda tusindvis af GPU'er. At muliggøre træning i et sådant omfang er fortsat en udfordring i distribueret træning, og effektiv træning i så stort et system er et andet lige så vigtigt problem. I løbet af de seneste år har det distribuerede træningsfællesskab introduceret 3D-parallelisme (dataparallelisme, pipelineparallelisme og tensorparallelisme) og andre teknikker (såsom sekvensparallelisme og ekspertparallelisme) for at løse sådanne udfordringer.

I december 2023 annoncerede Amazon udgivelsen af SageMaker model parallel bibliotek 2.0 (SMP), som opnår state-of-the-art effektivitet i træning af store modeller, sammen med SageMaker distribuerede dataparallelismebibliotek (SMDDP). Denne udgivelse er en væsentlig opdatering fra 1.x: SMP er nu integreret med open source PyTorch Fuldt opdelte data parallelt (FSDP) API'er, som giver dig mulighed for at bruge en velkendt grænseflade, når du træner store modeller, og er kompatibel med Transformer motor (TE), låser op for tensorparallelismeteknikker ved siden af ​​FSDP for første gang. For at lære mere om udgivelsen, se Amazon SageMaker model parallelbibliotek accelererer nu PyTorch FSDP arbejdsbelastninger med op til 20 %.

I dette indlæg udforsker vi præstationsfordelene ved Amazon SageMaker (inklusive SMP og SMDDP), og hvordan du kan bruge biblioteket til at træne store modeller effektivt på SageMaker. Vi demonstrerer SageMakers ydeevne med benchmarks på ml.p4d.24xlarge klynger op til 128 forekomster og FSDP blandet præcision med bfloat16 for Llama 2-modellen. Vi starter med en demonstration af næsten-lineære skaleringseffektiviteter for SageMaker, efterfulgt af at analysere bidrag fra hver funktion for optimal gennemstrømning, og slutter med effektiv træning med forskellige sekvenslængder op til 32,768 gennem tensorparallelisme.

Nær-lineær skalering med SageMaker

For at reducere den overordnede træningstid for LLM-modeller er det afgørende at bevare høj gennemstrømning, når der skaleres til store klynger (tusindvis af GPU'er) i betragtning af overhead-kommunikationen mellem knudepunkter. I dette indlæg demonstrerer vi robust og nær-lineær skalering (ved at variere antallet af GPU'er for en fast samlet problemstørrelse) effektiviteter på p4d-instanser, der påberåber sig både SMP og SMDDP.

I dette afsnit demonstrerer vi SMP's næsten-lineære skaleringsydeevne. Her træner vi Llama 2-modeller af forskellige størrelser (7B, 13B og 70B parametre) ved hjælp af en fast sekvenslængde på 4,096, SMDDP-backend til kollektiv kommunikation, TE-aktiveret, en global batchstørrelse på 4 millioner, med 16 til 128 p4d-noder . Følgende tabel opsummerer vores optimale konfiguration og træningsydelse (model TFLOP'er pr. sekund).

Modelstørrelse Antal noder TFLOPs* sdp* tp* aflast* Skaleringseffektivitet
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 %

*Ved den givne modelstørrelse, sekvenslængde og antal noder viser vi den globalt optimale gennemstrømning og konfigurationer efter at have udforsket forskellige sdp-, tp- og aktiveringsaflastningskombinationer.

Den foregående tabel opsummerer de optimale gennemløbstal, der er underlagt sharded data parallel (sdp) grad (typisk ved hjælp af FSDP hybrid sharding i stedet for fuld sharding, med flere detaljer i næste afsnit), tensor parallel (tp) grad og aktiveringsaflastningsværdiændringer, demonstrerer en nær-lineær skalering for SMP sammen med SMDDP. For eksempel, givet Llama 2-modellen størrelse 7B og sekvenslængde 4,096, opnår den samlet set skaleringseffektiviteter på 97.0 %, 91.6 % og 84.1 % (i forhold til 16 noder) ved henholdsvis 32, 64 og 128 noder. Skaleringseffektiviteten er stabil på tværs af forskellige modelstørrelser og stiger en smule, efterhånden som modelstørrelsen bliver større.

SMP og SMDDP viser også lignende skaleringseffektiviteter for andre sekvenslængder, såsom 2,048 og 8,192.

SageMaker model parallel bibliotek 2.0 ydeevne: Llama 2 70B

Modelstørrelser er fortsat med at vokse i løbet af de seneste år, sammen med hyppige avancerede ydelsesopdateringer i LLM-fællesskabet. I dette afsnit illustrerer vi ydeevnen i SageMaker for Llama 2-modellen ved hjælp af en fast modelstørrelse 70B, sekvenslængde på 4,096 og en global batchstørrelse på 4 millioner. For at sammenligne med den foregående tabels globalt optimale konfiguration og gennemløb (med SMDDP-backend, typisk FSDP hybrid sharding og TE), udvider følgende tabel til andre optimale gennemløb (potentielt med tensor-parallelisme) med ekstra specifikationer på den distribuerede backend (NCCL og SMDDP) , FSDP-sharding-strategier (fuld sharding og hybrid sharding), og aktivering af TE eller ej (standard).

Modelstørrelse Antal noder TFLOPS TFLOPs #3 konfig TFLOPs forbedring i forhold til baseline
. . NCCL fuld skæring: #0 SMDDP fuld sønderdeling: #1 SMDDP hybrid skæring: #2 SMDDP hybrid sharding med TE: #3 sdp* tp* aflast* #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 %

*Ved den givne modelstørrelse, sekvenslængde og antal noder viser vi den globalt optimale gennemløb og konfiguration efter at have udforsket forskellige sdp-, tp- og aktiveringsaflastningskombinationer.

Den seneste udgivelse af SMP og SMDDP understøtter flere funktioner, herunder native PyTorch FSDP, udvidet og mere fleksibel hybrid sharding, transformermotorintegration, tensorparallelisme og optimeret alle samle-kollektive drift. For bedre at forstå, hvordan SageMaker opnår effektiv distribueret træning for LLM'er, udforsker vi trinvise bidrag fra SMDDP og følgende SMP kernefunktioner:

  • SMDDP-forbedring i forhold til NCCL med FSDP fuld skæring
  • Udskiftning af FSDP fuld sharding med hybrid sharding, som reducerer kommunikationsomkostninger for at forbedre gennemløbet
  • Et yderligere boost til gennemløbet med TE, selv når tensorparallelisme er deaktiveret
  • Ved lavere ressourceindstillinger kan aktiveringsaflastning muligvis aktivere træning, der ellers ville være umulig eller meget langsom på grund af højt hukommelsestryk

FSDP fuld skæring: SMDDP-forbedring over NCCL

Som vist i den foregående tabel, når modellerne er fuldt udskårne med FSDP, selvom NCCL (TFLOPs #0) og SMDDP (TFLOPs #1) gennemløb er sammenlignelige ved 32 eller 64 noder, er der en enorm forbedring på 50.4 % fra NCCL til SMDDP ved 128 noder.

Ved mindre modelstørrelser observerer vi konsekvente og betydelige forbedringer med SMDDP i forhold til NCCL, startende ved mindre klyngestørrelser, fordi SMDDP er i stand til at afbøde kommunikationsflaskehalsen effektivt.

FSDP hybrid sharding for at reducere kommunikationsomkostninger

I SMP 1.0 lancerede vi sharded data parallelisme, en distribueret træningsteknik drevet af Amazon internt MiCS teknologi. I SMP 2.0 introducerer vi SMP hybrid sharding, en udvidelsesbar og mere fleksibel hybrid sharding-teknik, der gør det muligt at dele modeller blandt en undergruppe af GPU'er, i stedet for alle trænings-GPU'er, hvilket er tilfældet for FSDP fuld sharding. Det er nyttigt for mellemstore modeller, der ikke behøver at blive sønderdelt på tværs af hele klyngen for at opfylde begrænsninger for hukommelse pr. GPU. Dette fører til, at klynger har mere end én modelreplika, og hver GPU kommunikerer med færre peers under kørsel.

SMP's hybrid-sharding muliggør effektiv model-sharding over et bredere område, fra den mindste shard-grad uden problemer med hukommelsen op til hele klyngestørrelsen (hvilket svarer til fuld sharding).

Følgende figur illustrerer gennemløbsafhængigheden af ​​sdp ved tp = 1 for nemheds skyld. Selvom det ikke nødvendigvis er det samme som den optimale tp-værdi for NCCL eller SMDDP fuld sharding i den foregående tabel, er tallene ret tæt på. Det validerer tydeligt værdien af ​​at skifte fra fuld sharding til hybrid sharding ved en stor klyngestørrelse på 128 noder, som er anvendelig til både NCCL og SMDDP. For mindre modelstørrelser starter væsentlige forbedringer med hybridskæring ved mindre klyngestørrelser, og forskellen bliver ved med at stige med klyngestørrelsen.

Distributed training and efficient scaling with the Amazon SageMaker Model Parallel and Data Parallel Libraries | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Forbedringer med TE

TE er designet til at accelerere LLM-træning på NVIDIA GPU'er. På trods af ikke at bruge FP8, fordi den ikke understøttes på p4d-forekomster, ser vi stadig en betydelig fremskyndelse med TE på p4d.

Oven i MiCS trænet med SMDDP-backend introducerer TE et konsekvent boost for gennemløb på tværs af alle klyngestørrelser (den eneste undtagelse er fuld sharding ved 128 noder), selv når tensorparallelisme er deaktiveret (tensorparallelgrad er 1).

For mindre modelstørrelser eller forskellige sekvenslængder er TE-boosten stabil og ikke-triviel i intervallet ca. 3-7.6 %.

Aktivering aflastning ved lave ressourceindstillinger

Ved lave ressourceindstillinger (givet et lille antal noder), kan FSDP opleve et højt hukommelsestryk (eller endda tom for hukommelse i værste fald), når aktiveringskontrolpunkt er aktiveret. For sådanne scenarier, der er flaskehalsede af hukommelse, er aktivering af aktiveringsaflastning potentielt en mulighed for at forbedre ydeevnen.

For eksempel, som vi så tidligere, selvom Llama 2 i modelstørrelse 13B og sekvenslængde 4,096 er i stand til at træne optimalt med mindst 32 noder med aktiveringskontrolpunkt og uden aktiveringsaflastning, opnår den den bedste gennemstrømning med aktiveringsaflastning, når den er begrænset til 16 noder.

Aktiver træning med lange sekvenser: SMP tensor parallelisme

Længere sekvenslængder ønskes til lange samtaler og kontekst, og de får mere opmærksomhed i LLM-samfundet. Derfor rapporterer vi forskellige lange sekvensgennemløb i følgende tabel. Tabellen viser optimale gennemløb for Llama 2-træning på SageMaker, med forskellige sekvenslængder fra 2,048 op til 32,768. Ved sekvenslængde 32,768 er native FSDP-træning umulig med 32 noder ved en global batchstørrelse på 4 millioner.

. . . TFLOPS
Modelstørrelse Sekvenslængde Antal noder Native FSDP og NCCL SMP og SMDDP SMP forbedring
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 .
*: max . . . . 8.3 %
*: median . . . . 5.8 %

Når klyngestørrelsen er stor og givet en fast global batchstørrelse, kan noget modeltræning være umuligt med indbygget PyTorch FSDP, der mangler en indbygget pipeline eller understøttelse af tensorparallelisme. I den foregående tabel, givet en global batchstørrelse på 4 millioner, 32 noder og sekvenslængde 32,768, er den effektive batchstørrelse pr. GPU 0.5 (f.eks. tp = 2 med batchstørrelse 1), hvilket ellers ville være umuligt uden introduktion tensor parallelisme.

Konklusion

I dette indlæg demonstrerede vi effektiv LLM-træning med SMP og SMDDP på ​​p4d-instanser, idet vi tilskriver bidrag til flere nøglefunktioner, såsom SMDDP-forbedring over NCCL, fleksibel FSDP hybrid-sharding i stedet for fuld sharding, TE-integration og muliggør tensorparallelisme til fordel for lange sekvenslængder. Efter at være blevet testet over en lang række indstillinger med forskellige modeller, modelstørrelser og sekvenslængder, udviser den robuste næsten-lineære skaleringseffektiviteter, op til 128 p4d-forekomster på SageMaker. Sammenfattende fortsætter SageMaker med at være et stærkt værktøj for LLM-forskere og praktikere.

For at lære mere, se SageMaker model parallelisme bibliotek v2, eller kontakt SMP-teamet på sm-model-parallel-feedback@amazon.com.

Anerkendelser

Vi vil gerne takke Robert Van Dusen, Ben Snyder, Gautam Kumar og Luis Quintela for deres konstruktive feedback og diskussioner.


Om forfatterne

Distributed training and efficient scaling with the Amazon SageMaker Model Parallel and Data Parallel Libraries | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Xinle Sheila Liu er en SDE i Amazon SageMaker. I sin fritid holder hun af at læse og dyrke udendørs sport.

Distributed training and efficient scaling with the Amazon SageMaker Model Parallel and Data Parallel Libraries | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Suhit Kodgule er softwareudviklingsingeniør i AWS Artificial Intelligence-gruppen, der arbejder med deep learning-rammer. I sin fritid nyder han at vandre, rejse og lave mad.

Distributed training and efficient scaling with the Amazon SageMaker Model Parallel and Data Parallel Libraries | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Victor Zhu er softwareingeniør i Distributed Deep Learning hos Amazon Web Services. Han kan findes, der nyder vandreture og brætspil rundt i SF Bay Area.

Distributed training and efficient scaling with the Amazon SageMaker Model Parallel and Data Parallel Libraries | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Derya Cavdar arbejder som softwareingeniør hos AWS. Hendes interesser omfatter deep learning og distribueret træningsoptimering.

Distributed training and efficient scaling with the Amazon SageMaker Model Parallel and Data Parallel Libraries | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Teng Xu er softwareudviklingsingeniør i Distributed Training-gruppen i AWS AI. Han nyder at læse.

Tidsstempel:

Mere fra AWS maskinindlæring