Generativ dataintelligens

Distribuerad utbildning och effektiv skalning med Amazon SageMaker Model Parallel and Data Parallel Libraries | Amazon webbtjänster

Datum:

Det har gjorts enorma framsteg inom området distribuerad djupinlärning för stora språkmodeller (LLM), särskilt efter lanseringen av ChatGPT i december 2022. LLM:er fortsätter att växa i storlek med miljarder eller till och med biljoner parametrar, och de kommer ofta inte att göra det. passa in i en enda acceleratorenhet som GPU eller till och med en enda nod som ml.p5.32xlarge på grund av minnesbegränsningar. Kunder som utbildar LLM:er måste ofta fördela sin arbetsbelastning över hundratals eller till och med tusentals GPU:er. Att möjliggöra utbildning i sådan omfattning är fortfarande en utmaning i distribuerad utbildning, och effektiv träning i ett så stort system är ett annat lika viktigt problem. Under de senaste åren har den distribuerade utbildningsgemenskapen introducerat 3D-parallellism (dataparallellism, pipelineparallellism och tensorparallellism) och andra tekniker (som sekvensparallellism och expertparallellism) för att hantera sådana utmaningar.

I december 2023 tillkännagav Amazon lanseringen av SageMaker modell parallellbibliotek 2.0 (SMP), som uppnår toppmodern effektivitet i träning av stora modeller, tillsammans med SageMaker distribuerade dataparallellismbibliotek (SMDDP). Den här utgåvan är en betydande uppdatering från 1.x: SMP är nu integrerad med PyTorch med öppen källkod Helt delad data parallell (FSDP) API:er, som låter dig använda ett välbekant gränssnitt när du tränar stora modeller, och är kompatibel med Transformatormotor (TE), låser upp tensorparallellismtekniker vid sidan av FSDP för första gången. För att lära dig mer om utgåvan, se Amazon SageMaker modell parallellbibliotek accelererar nu PyTorch FSDP-arbetsbelastningar med upp till 20 %.

I det här inlägget utforskar vi prestandafördelarna med Amazon SageMaker (inklusive SMP och SMDDP), och hur du kan använda biblioteket för att träna stora modeller effektivt på SageMaker. Vi demonstrerar SageMakers prestanda med riktmärken på ml.p4d.24xlarge kluster upp till 128 instanser, och FSDP blandad precision med bfloat16 för Llama 2-modellen. Vi börjar med en demonstration av nästan linjär skalningseffektivitet för SageMaker, följt av att analysera bidrag från varje funktion för optimal genomströmning, och avslutar med effektiv träning med olika sekvenslängder upp till 32,768 XNUMX genom tensorparallellism.

Nära linjär skalning med SageMaker

För att minska den totala träningstiden för LLM-modeller är det avgörande att bevara hög genomströmning vid skalning till stora kluster (tusentals GPU:er) med tanke på kommunikationen mellan noderna. I det här inlägget demonstrerar vi robust och nästan linjär skalning (genom att variera antalet GPU:er för en fast total problemstorlek) effektivitet på p4d-instanser som anropar både SMP och SMDDP.

I det här avsnittet visar vi SMP:s nästan linjära skalningsprestanda. Här tränar vi Llama 2-modeller av olika storlekar (7B, 13B och 70B parametrar) med en fast sekvenslängd på 4,096 4, SMDDP-backend för kollektiv kommunikation, TE-aktiverad, en global batchstorlek på 16 miljoner, med 128 till 4 pXNUMXd-noder . Följande tabell sammanfattar vår optimala konfiguration och träningsprestanda (modell TFLOPs per sekund).

Modellstorlek Antal noder TFLOPs* sdp* tp* avlasta* Skalningseffektivitet
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%

*Vid den givna modellstorleken, sekvenslängden och antalet noder visar vi den globalt optimala genomströmningen och konfigurationerna efter att ha utforskat olika kombinationer av sdp, tp och aktiveringsavlastning.

Föregående tabell sammanfattar de optimala genomströmningstalen som är föremål för delad data parallell (sdp) grad (typiskt använder FSDP hybrid sharding istället för full sharding, med mer information i nästa avsnitt), tensor parallell (tp) grad och aktiveringsavlastningsvärdeändringar, demonstrerar en nästan linjär skalning för SMP tillsammans med SMDDP. Till exempel, givet Llama 2-modellen storlek 7B och sekvenslängd 4,096 97.0, uppnår den totalt skalningseffektivitet på 91.6 %, 84.1 % och 16 % (relativt 32 noder) vid 64, 128 respektive XNUMX noder. Skalningseffektiviteten är stabil över olika modellstorlekar och ökar något när modellstorleken blir större.

SMP och SMDDP visar också liknande skalningseffektiviteter för andra sekvenslängder såsom 2,048 8,192 och XNUMX XNUMX.

SageMaker modell parallellbibliotek 2.0 prestanda: Llama 2 70B

Modellstorlekarna har fortsatt att växa under de senaste åren, tillsammans med frekventa toppmoderna prestandauppdateringar i LLM-gemenskapen. I det här avsnittet illustrerar vi prestanda i SageMaker för Llama 2-modellen med en fast modellstorlek 70B, sekvenslängd på 4,096 4 och en global batchstorlek på XNUMX miljoner. För att jämföra med föregående tabells globalt optimala konfiguration och genomströmning (med SMDDP-backend, typiskt FSDP hybrid sharding och TE), sträcker sig följande tabell till andra optimala genomströmningar (potentiellt med tensorparallellism) med extra specifikationer på den distribuerade backend (NCCL och SMDDP) , FSDP-shardingstrategier (full sharding och hybrid sharding), och aktivera TE eller inte (standard).

Modellstorlek Antal noder TFLOPS TFLOPs #3 config TFLOPs förbättring jämfört med baslinjen
. . NCCL full skärning: #0 SMDDP full skärning: #1 SMDDP hybrid skärning: #2 SMDDP hybrid skärning med TE: #3 sdp* tp* avlasta* #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%

*Vid den givna modellstorleken, sekvenslängden och antalet noder visar vi den globalt optimala genomströmningen och konfigurationen efter att ha utforskat olika kombinationer av sdp, tp och aktiveringsavlastning.

Den senaste utgåvan av SMP och SMDDP stöder flera funktioner, inklusive inbyggd PyTorch FSDP, utökad och mer flexibel hybridskärning, transformatormotorintegration, tensorparallellism och optimerad samlande drift. För att bättre förstå hur SageMaker uppnår effektiv distribuerad utbildning för LLM:er utforskar vi inkrementella bidrag från SMDDP och följande SMP kärnfunktioner:

  • SMDDP-förbättring över NCCL med FSDP-full skärning
  • Ersätter FSDP full sharding med hybrid sharding, vilket minskar kommunikationskostnaderna för att förbättra genomströmningen
  • En ytterligare ökning av genomströmningen med TE, även när tensorparallellism är inaktiverat
  • Vid lägre resursinställningar kan aktiveringsavlastning möjliggöra träning som annars skulle vara omöjlig eller mycket långsam på grund av högt minnestryck

FSDP full sharding: SMDDP-förbättring över NCCL

Som visas i föregående tabell, när modellerna är helt sönderdelade med FSDP, även om NCCL (TFLOPs #0) och SMDDP (TFLOPs #1) genomströmningar är jämförbara vid 32 eller 64 noder, finns det en enorm förbättring på 50.4 % från NCCL till SMDDP vid 128 noder.

Vid mindre modellstorlekar observerar vi konsekventa och betydande förbättringar med SMDDP jämfört med NCCL, med början vid mindre klusterstorlekar, eftersom SMDDP kan mildra kommunikationsflaskhalsen effektivt.

FSDP hybrid skärning för att minska kommunikationskostnaderna

I SMP 1.0 lanserade vi parallellitet med delad data, en distribuerad träningsteknik som drivs av Amazon internt MiCS teknologi. I SMP 2.0 introducerar vi SMP hybrid sharding, en förlängningsbar och mer flexibel hybrid sharding-teknik som gör att modeller kan delas bland en undergrupp av GPU:er, istället för alla tränings-GPU:er, vilket är fallet för FSDP full sharding. Det är användbart för medelstora modeller som inte behöver delas över hela klustret för att tillfredsställa minnesbegränsningar per GPU. Detta leder till att kluster har mer än en modellreplik och varje GPU kommunicerar med färre peers under körning.

SMP:s hybridskärning möjliggör effektiv modellskärning över ett bredare område, från den minsta skärvgraden utan minnesproblem upp till hela klusterstorleken (vilket motsvarar full skärning).

Följande figur illustrerar genomströmningsberoendet av sdp vid tp = 1 för enkelhetens skull. Även om det inte nödvändigtvis är detsamma som det optimala tp-värdet för NCCL eller SMDDP full sharding i föregående tabell, är siffrorna ganska nära. Det validerar tydligt värdet av att byta från full sharding till hybrid sharding vid en stor klusterstorlek på 128 noder, vilket är tillämpligt på både NCCL och SMDDP. För mindre modellstorlekar börjar betydande förbättringar med hybridskärning vid mindre klusterstorlekar, och skillnaden fortsätter att öka med klusterstorleken.

Förbättringar med TE

TE är designad för att påskynda LLM-träning på NVIDIA GPU:er. Trots att vi inte använder FP8 eftersom det inte stöds på p4d-instanser, ser vi fortfarande en betydande snabbhet med TE på p4d.

Utöver MiCS som tränats med SMDDP-backend, introducerar TE en konsekvent ökning för genomströmning över alla klusterstorlekar (det enda undantaget är full sharding vid 128 noder), även när tensorparallellism är inaktiverad (tensorparallellgraden är 1).

För mindre modellstorlekar eller olika sekvenslängder är TE-förstärkningen stabil och icke-trivial, i intervallet cirka 3–7.6 %.

Aktivering avlastning vid låga resursinställningar

Vid låga resursinställningar (med tanke på ett litet antal noder) kan FSDP uppleva ett högt minnestryck (eller till och med slut på minne i värsta fall) när aktiveringskontrollpunkten är aktiverad. För sådana scenarier som är flaskhalsade av minne, är aktivering av aktiveringsavlastning potentiellt ett alternativ för att förbättra prestandan.

Till exempel, som vi såg tidigare, även om Llama 2 i modellstorlek 13B och sekvenslängd 4,096 32 kan träna optimalt med minst 16 noder med aktiveringskontroll och utan aktiveringsavlastning, uppnår den den bästa genomströmningen med aktiveringsavlastning när den är begränsad till XNUMX knutpunkter.

Möjliggör träning med långa sekvenser: SMP-tensorparallellism

Längre sekvenslängder önskas för långa konversationer och sammanhang, och får mer uppmärksamhet i LLM-gemenskapen. Därför rapporterar vi olika långsekvensgenomströmningar i följande tabell. Tabellen visar optimala genomströmningar för Llama 2-träning på SageMaker, med olika sekvenslängder från 2,048 32,768 upp till 32,768 32. Vid sekvenslängd 4 XNUMX är infödd FSDP-träning omöjlig med XNUMX noder vid en global batchstorlek på XNUMX miljoner.

. . . TFLOPS
Modellstorlek Sekvenslängd Antal noder Native FSDP och NCCL SMP och SMDDP SMP-förbättring
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 klusterstorleken är stor och ges en fast global batchstorlek, kan viss modellträning vara omöjlig med inbyggd PyTorch FSDP, utan en inbyggd pipeline eller stöd för tensorparallellism. I föregående tabell, givet en global batchstorlek på 4 miljoner, 32 noder och sekvenslängd 32,768 0.5, är den effektiva batchstorleken per GPU 2 (till exempel tp = 1 med batchstorlek XNUMX), vilket annars skulle vara omöjligt utan att införa tensorparallellism.

Slutsats

I det här inlägget demonstrerade vi effektiv LLM-utbildning med SMP och SMDDP på ​​p4d-instanser, och tillskriver bidrag till flera nyckelfunktioner, såsom SMDDP-förbättring över NCCL, flexibel FSDP-hybrid-sharding istället för full sharding, TE-integration och möjliggör tensorparallellism till förmån för långa sekvenslängder. Efter att ha testats över ett brett spektrum av inställningar med olika modeller, modellstorlekar och sekvenslängder, uppvisar den robust nästan linjär skalningseffektivitet, upp till 128 p4d-instanser på SageMaker. Sammanfattningsvis fortsätter SageMaker att vara ett kraftfullt verktyg för LLM-forskare och praktiker.

För att lära dig mer, se SageMaker modell parallellism bibliotek v2, eller kontakta SMP-teamet på [e-postskyddad].

Tack

Vi vill tacka Robert Van Dusen, Ben Snyder, Gautam Kumar och Luis Quintela för deras konstruktiva feedback och diskussioner.


Om författarna

Xinle Sheila Liu är en SDE i Amazon SageMaker. På fritiden tycker hon om läsning och utomhussporter.

Suhit Kodgule är en mjukvaruutvecklingsingenjör med AWS Artificiell Intelligens-grupp som arbetar med ramar för djupinlärning. På fritiden tycker han om att vandra, resa och laga mat.

Victor Zhu är en mjukvaruingenjör i distribuerad djupinlärning på Amazon Web Services. Han kan hittas njuter av vandring och brädspel runt SF Bay Area.

Derya Cavdar arbetar som mjukvaruingenjör på AWS. Hennes intressen inkluderar djupinlärning och distribuerad träningsoptimering.

Teng Xu är en mjukvaruutvecklingsingenjör i gruppen Distributed Training i AWS AI. Han tycker om att läsa.

plats_img

Senaste intelligens

plats_img

Chatta med oss

Hallå där! Hur kan jag hjälpa dig?