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.
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
Xinle Sheila Liu er en SDE i Amazon SageMaker. I sin fritid holder hun af at læse og dyrke udendørs sport.
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.
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.
Derya Cavdar arbejder som softwareingeniør hos AWS. Hendes interesser omfatter deep learning og distribueret træningsoptimering.
Teng Xu er softwareudviklingsingeniør i Distributed Training-gruppen i AWS AI. Han nyder at læse.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/distributed-training-and-efficient-scaling-with-the-amazon-sagemaker-model-parallel-and-data-parallel-libraries/
- :har
- :er
- :ikke
- $OP
- 1
- 120
- 16
- 160
- 2022
- 2023
- 32
- 3d
- 455
- 50
- 7
- 8
- 84
- 91
- 97
- a
- I stand
- Om
- fremskynde
- accelererer
- accelerator
- opnår
- tværs
- Aktivering
- adresse
- Efter
- AI
- Alle
- tillader
- sammen
- langs med
- også
- Skønt
- Amazon
- Amazon SageMaker
- Amazon Web Services
- blandt
- an
- analysere
- ,
- annoncerede
- En anden
- API'er
- anvendelig
- cirka
- ER
- OMRÅDE
- omkring
- kunstig
- kunstig intelligens
- AS
- At
- opmærksomhed
- AWS
- Bagende
- Bugt
- BE
- fordi
- været
- være
- ben
- Benchmarks
- fordele
- BEDSTE
- Bedre
- milliarder
- board
- Brætspil
- boost
- både
- flaskehals
- indbygget
- by
- CAN
- tilfælde
- udfordre
- udfordringer
- Ændringer
- ChatGPT
- tydeligt
- Luk
- Cluster
- kollektive
- KOM
- kombinationer
- kommunikere
- Kommunikation
- samfund
- sammenlignelig
- sammenligne
- kompatibel
- Konfiguration
- konsekvent
- begrænsninger
- konstruktiv
- kontakt
- sammenhæng
- fortsæt
- fortsatte
- fortsætter
- bidrag
- samtaler
- Koste
- afgørende
- Kunder
- data
- december
- dyb
- dyb læring
- Standard
- Degree
- demonstrere
- demonstreret
- demonstrerer
- demonstration
- afhængighed
- konstrueret
- ønskes
- Trods
- detaljer
- Udvikling
- enhed
- forskel
- forskellige
- deaktiveret
- diskussioner
- distribuere
- distribueret
- distribueret træning
- Dont
- grund
- hver
- Effektiv
- effektivt
- effektivitet
- effektivitet
- effektiv
- effektivt
- muliggøre
- aktiveret
- muliggør
- muliggør
- ende
- Engine (Motor)
- ingeniør
- ekstraudstyr
- nyder
- Hele
- lige
- sidestiller
- især
- Endog
- eksempel
- undtagelse
- udstillinger
- erfaring
- ekspert
- udforske
- Udforskning
- udvidet
- udvider
- ekstra
- bekendt
- favorisere
- Feature
- Funktionalitet
- tilbagemeldinger
- færre
- felt
- Figur
- Fornavn
- første gang
- passer
- fast
- fleksibel
- efterfulgt
- efter
- Til
- fundet
- rammer
- hyppig
- fra
- fuld
- fuldt ud
- yderligere
- Spil
- samle
- får
- få
- given
- Global
- Globalt
- GPU
- GPU'er
- gruppe
- Grow
- Have
- have
- he
- hende
- link.
- Høj
- hans
- Hvordan
- HTML
- HTTPS
- kæmpe
- Hundreder
- Hybrid
- illustrere
- illustrerer
- vigtigt
- Forbedre
- forbedringer
- in
- omfatter
- Herunder
- Forøg
- stigende
- inkremental
- i stedet
- integreret
- integration
- Intelligens
- interesser
- grænseflade
- ind
- indføre
- introduceret
- Introducerer
- indføre
- spørgsmål
- IT
- jpg
- holder
- Nøgle
- Kumar
- mangler
- Sprog
- stor
- større
- seneste
- seneste udgivelse
- lanceret
- Leads
- LÆR
- læring
- mindst
- Længde
- biblioteker
- Bibliotek
- ligesom
- begrænsninger
- Limited
- Llama
- LLM
- Lang
- Lav
- lavere
- Hukommelse
- måske
- million
- afbøde
- blandet
- ML
- model
- modeller
- mere
- flere
- skal
- indfødte
- nødvendigvis
- Behov
- næste
- ingen
- node
- noder
- nu
- nummer
- numre
- Nvidia
- observere
- of
- tit
- on
- ONE
- kun
- åbent
- open source
- drift
- optimal
- optimering
- optimeret
- Option
- or
- ordrer
- Andet
- Ellers
- vores
- ud
- i løbet af
- samlet
- overliggende
- Parallel
- parametre
- forbi
- peers
- per
- ydeevne
- pipeline
- plato
- Platon Data Intelligence
- PlatoData
- Indlæg
- potentielt
- strøm
- vigtigste
- forud
- Precision
- bevare
- tryk
- tidligere
- tidligere
- Problem
- Progress
- pytorch
- helt
- rækkevidde
- Læsning
- reducere
- reducerer
- henvise
- relative
- frigive
- resterne
- svar
- indberette
- forskere
- ressource
- henholdsvis
- ROBERT
- robust
- runtime
- sagemaker
- samme
- tilfredsstille
- så
- Scale
- skalering
- scenarier
- SDP
- Anden
- Sektion
- se
- Sequence
- Tjenester
- indstillinger
- brudt
- sharding
- hun
- Vis
- vist
- Shows
- signifikant
- lignende
- enkelhed
- enkelt
- Størrelse
- størrelser
- langsom
- lille
- mindre
- Software
- softwareudvikling
- Software Engineer
- nogle
- Kilde
- specifikationer
- Sport
- stabil
- starte
- Starter
- state-of-the-art
- Stadig
- strategier
- emne
- sådan
- RESUMÉ
- support
- Understøtter
- systemet
- bord
- hold
- teknik
- teknikker
- Teknologier
- afprøvet
- end
- takke
- at
- deres
- Der.
- derfor
- de
- denne
- tusinder
- Gennem
- kapacitet
- tid
- til
- sammen
- værktøj
- top
- I alt
- tp
- Tog
- uddannet
- Kurser
- transformer
- Traveling
- enorm
- billioner
- Drejning
- typisk
- forstå
- oplåsning
- Opdatering
- opdateringer
- brug
- nyttigt
- ved brug af
- værdi
- van
- forskellige
- Varierende
- meget
- we
- web
- webservices
- hvornår
- som
- Hele
- bred
- Bred rækkevidde
- bredere
- med
- uden
- arbejder
- virker
- Værst
- ville
- X
- år
- Du
- zephyrnet