Platonova podatkovna inteligenca.
Navpično iskanje in Ai.

Porazdeljeno usposabljanje in učinkovito skaliranje z Amazon SageMaker Model Parallel in Data Parallel Libraries | Spletne storitve Amazon

Datum:

Na področju porazdeljenega globokega učenja za velike jezikovne modele (LLM) je bil dosežen izjemen napredek, zlasti po izdaji ChatGPT decembra 2022. LLM-ji še naprej rastejo z milijardami ali celo trilijoni parametrov in pogosto ne bodo prilegajo v eno pospeševalno napravo, kot je GPE, ali celo v eno vozlišče, kot je ml.p5.32xlarge zaradi omejitev pomnilnika. Stranke, ki usposabljajo LLM, morajo pogosto svojo delovno obremenitev porazdeliti na stotine ali celo tisoče grafičnih procesorjev. Omogočanje usposabljanja v takšnem obsegu ostaja izziv pri porazdeljenem usposabljanju, učinkovito usposabljanje v tako velikem sistemu pa je še en enako pomemben problem. V preteklih letih je skupnost porazdeljenega usposabljanja uvedla 3D paralelizem (vzporednost podatkov, paralelizem cevovoda in paralelizem tenzorjev) in druge tehnike (kot sta paralelizem zaporedja in paralelizem strokovnjakov) za reševanje takšnih izzivov.

Decembra 2023 je Amazon napovedal izdajo Vzporedna knjižnica modela SageMaker 2.0 (SMP), ki dosega najsodobnejšo učinkovitost pri usposabljanju velikih modelov, skupaj z Porazdeljena knjižnica paralelizma podatkov SageMaker (SMDDP). Ta izdaja je pomembna posodobitev iz 1.x: SMP je zdaj integriran z odprtokodnim PyTorch Vzporedni podatki v celoti razdeljeni (FSDP) API-ji, ki vam omogočajo uporabo znanega vmesnika pri usposabljanju velikih modelov in so združljivi z Transformatorski motor (TE), ki prvič odklepa tehnike tenzorskega paralelizma poleg FSDP. Če želite izvedeti več o izdaji, glejte Vzporedna knjižnica modela Amazon SageMaker zdaj pospeši delovne obremenitve PyTorch FSDP do 20 %.

V tej objavi raziskujemo prednosti delovanja Amazon SageMaker (vključno s SMP in SMDDP) in kako lahko uporabite knjižnico za učinkovito usposabljanje velikih modelov na SageMakerju. Učinkovitost SageMakerja prikazujemo z merili uspešnosti na gručah ml.p4d.24xlarge do 128 primerkov in mešano natančnostjo FSDP z bfloat16 za model Llama 2. Začnemo s predstavitvijo učinkovitosti skoraj linearnega skaliranja za SageMaker, čemur sledi analiza prispevkov vsake funkcije za optimalno prepustnost in končamo z učinkovitim usposabljanjem z različnimi dolžinami zaporedja do 32,768 prek tenzorskega paralelizma.

Skoraj linearno skaliranje s SageMakerjem

Da bi zmanjšali skupni čas usposabljanja za modele LLM, je ohranjanje visoke prepustnosti pri skaliranju na velike gruče (na tisoče grafičnih procesorjev) ključnega pomena glede na stroške komunikacije med vozlišči. V tej objavi prikazujemo učinkovitost robustnega in skoraj linearnega skaliranja (s spreminjanjem števila grafičnih procesorjev za fiksno skupno velikost problema) na primerkih p4d, ki prikličejo tako SMP kot SMDDP.

V tem razdelku prikazujemo zmogljivost skoraj linearnega skaliranja SMP. Tukaj usposabljamo modele Llama 2 različnih velikosti (parametri 7B, 13B in 70B) z uporabo fiksne dolžine zaporedja 4,096, zaledje SMDDP za kolektivno komunikacijo, omogočeno TE, globalna velikost serije 4 milijone, s 16 do 128 vozlišči p4d . Naslednja tabela povzema našo optimalno konfiguracijo in zmogljivost usposabljanja (model TFLOPs na sekundo).

Velikost modela Število vozlišč TFLOPs* sdp* tp* razbremenitev* Učinkovitost skaliranja
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%

*Pri dani velikosti modela, dolžini zaporedja in številu vozlišč prikazujemo globalno optimalno prepustnost in konfiguracije po raziskovanju različnih kombinacij sdp, tp in aktivacijske razbremenitve.

Prejšnja tabela povzema optimalne prepustne številke, ki so predmet stopnje vzporednih razčlenjenih podatkov (sdp) (običajno z uporabo hibridnega razrezovanja FSDP namesto polnega razrezovanja, več podrobnosti pa v naslednjem razdelku), stopnje vzporednih tenzorjev (tp) in sprememb vrednosti razbremenitve aktivacije, ki prikazuje skoraj linearno skaliranje za SMP skupaj s SMDDP. Na primer, glede na velikost modela Llama 2 7B in dolžino zaporedja 4,096 na splošno doseže učinkovitost skaliranja 97.0 %, 91.6 % in 84.1 % (glede na 16 vozlišč) pri 32, 64 oziroma 128 vozliščih. Učinkovitosti skaliranja so stabilne pri različnih velikostih modelov in se nekoliko povečajo, ko se velikost modela poveča.

SMP in SMDDP prav tako prikazujeta podobno učinkovitost skaliranja za druge dolžine zaporedja, kot sta 2,048 in 8,192.

Zmogljivost vzporedne knjižnice modela SageMaker 2.0: Llama 2 70B

Velikosti modelov so v zadnjih letih še naprej rasle, skupaj s pogostimi najsodobnejšimi posodobitvami zmogljivosti v skupnosti LLM. V tem razdelku ponazarjamo zmogljivost v SageMakerju za model Llama 2 z uporabo fiksne velikosti modela 70B, dolžine zaporedja 4,096 in globalne velikosti paketa 4 milijone. Za primerjavo z globalno optimalno konfiguracijo in prepustnostjo prejšnje tabele (z zaledjem SMDDP, običajno hibridnim razčlenjevanjem FSDP in TE) se naslednja tabela razširi na druge optimalne prepustnosti (po možnosti s tenzorskim paralelizmom) z dodatnimi specifikacijami za porazdeljeno zaledje (NCCL in SMDDP). , strategije razčlenjevanja FSDP (polno razčlenjevanje in hibridno razčlenjevanje) in omogočanje TE ali ne (privzeto).

Velikost modela Število vozlišč TFLOPS TFLOPs #3 config Izboljšanje TFLOP v primerjavi z izhodiščem
. . NCCL polno razdeljevanje: #0 SMDDP full sharing: #1 Hibridno drobljenje SMDDP: #2 Hibridno deljenje SMDDP s TE: #3 sdp* tp* razbremenitev* #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%

*Pri dani velikosti modela, dolžini zaporedja in številu vozlišč prikazujemo globalno optimalno prepustnost in konfiguracijo po raziskovanju različnih kombinacij sdp, tp in aktivacijske razbremenitve.

Najnovejša izdaja SMP in SMDDP podpira več funkcij, vključno z izvornim PyTorch FSDP, razširjenim in bolj prilagodljivim hibridnim razdeljevanjem, integracijo transformatorskega mehanizma, tenzorskim paralelizmom in optimiziranim kolektivnim delovanjem vseh zbiralnikov. Da bi bolje razumeli, kako SageMaker doseže učinkovito porazdeljeno usposabljanje za LLM, raziskujemo inkrementalne prispevke SMDDP in naslednjega SMP osnovne značilnosti:

  • Izboljšava SMDDP prek NCCL s popolnim razrezom FSDP
  • Zamenjava polnega razdeljevanja FSDP s hibridnim razdeljevanjem, ki zmanjša stroške komunikacije za izboljšanje prepustnosti
  • Dodatno povečanje prepustnosti s TE, tudi ko je vzporednost tenzorjev onemogočena
  • Pri nižjih nastavitvah virov lahko razbremenitev aktivacije omogoči usposabljanje, ki bi sicer bilo neizvedljivo ali zelo počasno zaradi velikega pomnilniškega pritiska

FSDP full sharding: izboljšava SMDDP nad NCCL

Kot je prikazano v prejšnji tabeli, ko so modeli v celoti razdeljeni s FSDP, čeprav sta prepustnosti NCCL (TFLOP #0) in SMDDP (TFLOP #1) primerljivi pri 32 ali 64 vozliščih, pride do velikega izboljšanja za 50.4 % od NCCL do SMDDP na 128 vozliščih.

Pri manjših velikostih modelov opažamo dosledne in znatne izboljšave s SMDDP v primerjavi z NCCL, začenši pri manjših velikostih gruče, ker lahko SMDDP učinkovito ublaži komunikacijsko ozko grlo.

Hibridno deljenje FSDP za zmanjšanje stroškov komunikacije

V SMP 1.0 smo lansirali paralelizem razdeljenih podatkov, porazdeljena tehnika usposabljanja, ki jo poganja Amazon MiCS tehnologija. V SMP 2.0 uvajamo hibridno drobljenje SMP, razširljivo in bolj prilagodljivo tehniko hibridnega drobljenja, ki omogoča razdelitev modelov med podmnožico grafičnih procesorjev namesto vseh izobraževalnih grafičnih procesorjev, kar velja za popolno drobljenje FSDP. Uporaben je za srednje velike modele, ki jih ni treba razdeliti po celotni gruči, da bi zadostili omejitvam pomnilnika GPU. To vodi do tega, da imajo gruče več kot eno repliko modela in da vsaka grafična procesorska enota med izvajanjem komunicira z manj vrstniki.

SMP-jevo hibridno drobljenje omogoča učinkovito drobljenje modela v širšem razponu, od najmanjše stopnje segmenta brez težav z zmanjkanjem pomnilnika do celotne velikosti gruče (kar je enako popolnemu drobljenju).

Naslednja slika zaradi poenostavitve ponazarja odvisnost prepustnosti od sdp pri tp = 1. Čeprav ni nujno enaka optimalni vrednosti tp za polno razdeljevanje NCCL ali SMDDP v prejšnji tabeli, so številke precej blizu. Jasno potrjuje vrednost prehoda s popolnega drobljenja na hibridno drobljenje pri veliki velikosti gruče 128 vozlišč, kar velja tako za NCCL kot SMDDP. Pri manjših velikostih modelov se znatne izboljšave s hibridnim drobljenjem začnejo pri manjših velikostih gruče, razlika pa se povečuje z velikostjo gruče.

Izboljšave s TE

TE je zasnovan tako, da pospeši usposabljanje LLM na grafičnih procesorjih NVIDIA. Kljub temu, da ne uporabljamo FP8, ker ni podprt na primerkih p4d, še vedno opažamo znatno pospešitev s TE na p4d.

Poleg MiCS, usposobljenega z zaledjem SMDDP, TE uvaja dosledno povečanje prepustnosti v vseh velikostih gruče (edina izjema je popolno razčlenjevanje na 128 vozliščih), tudi ko je vzporednost tenzorjev onemogočena (stopnja vzporednosti tenzorjev je 1).

Pri manjših velikostih modelov ali različnih dolžinah zaporedja je povečanje TE stabilno in netrivialno v območju približno 3–7.6 %.

Razbremenitev aktivacije pri nizkih nastavitvah virov

Pri nizkih nastavitvah virov (glede na majhno število vozlišč) lahko FSDP doživi velik pritisk na pomnilnik (ali v najslabšem primeru celo brez pomnilnika), ko je omogočeno preverjanje aktivacije. Za takšne scenarije z ozkim grlom pomnilnika je vklop razbremenitve aktivacije potencialno možnost za izboljšanje zmogljivosti.

Na primer, kot smo že videli, čeprav se Llama 2 pri velikosti modela 13B in dolžini zaporedja 4,096 lahko optimalno usposablja z vsaj 32 vozlišči z aktivacijskimi kontrolnimi točkami in brez aktivacijskega razbremenitve, doseže najboljšo prepustnost z aktivacijskim razbremenitvijo, ko je omejena na 16 vozlišča.

Omogoči usposabljanje z dolgimi zaporedji: tenzorski paralelizem SMP

Daljše dolžine zaporedja so zaželene za dolge pogovore in kontekst, zato dobivajo več pozornosti v skupnosti LLM. Zato v naslednji tabeli poročamo o različnih dolgih zaporedjih prepustnosti. Tabela prikazuje optimalno pretočnost za usposabljanje Llama 2 na SageMakerju z različnimi dolžinami zaporedja od 2,048 do 32,768. Pri dolžini zaporedja 32,768 je domače usposabljanje FSDP neizvedljivo z 32 vozlišči pri globalni velikosti serije 4 milijone.

. . . TFLOPS
Velikost modela Dolžina zaporedja Število vozlišč Izvorni FSDP in NCCL SMP in SMDDP Izboljšanje 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%

Ko je velikost gruče velika in ima fiksna globalna velikost serije, je lahko nekaj usposabljanja modela neizvedljivo z izvornim PyTorch FSDP, ki nima vgrajenega cevovoda ali podpore za tenzorski paralelizem. V prejšnji tabeli je glede na globalno velikost paketa 4 milijone, 32 vozlišč in dolžino zaporedja 32,768 efektivna velikost paketa na GPE 0.5 (na primer tp = 2 z velikostjo paketa 1), kar bi sicer bilo neizvedljivo brez uvedbe tenzorski paralelizem.

zaključek

V tem prispevku smo prikazali učinkovito usposabljanje LLM s SMP in SMDDP na primerkih p4d, pripisovanje prispevkov več ključnim funkcijam, kot je izboljšava SMDDP nad NCCL, prilagodljivo hibridno drobljenje FSDP namesto popolnega drobljenja, integracija TE in omogočanje tenzorskega paralelizma v korist dolge zaporedne dolžine. Po tem, ko je bil preizkušen v širokem razponu nastavitev z različnimi modeli, velikostmi modelov in dolžinami zaporedij, kaže robustne skoraj linearne učinkovitosti skaliranja, do 128 primerkov p4d na SageMakerju. Če povzamemo, je SageMaker še naprej močno orodje za raziskovalce in praktike LLM.

Če želite izvedeti več, glejte Knjižnica paralelizma modelov SageMaker v2, ali kontaktirajte ekipo SMP na [e-pošta zaščitena].

Priznanja

Radi bi se zahvalili Robertu Van Dusenu, Benu Snyderju, Gautamu Kumarju in Luisu Quinteli za njihove konstruktivne povratne informacije in razprave.


O avtorjih

Xinle Sheila Liu je SDE v Amazon SageMaker. V prostem času uživa v branju in športu na prostem.

Suhit Kodgule je inženir za razvoj programske opreme v skupini za umetno inteligenco AWS, ki se ukvarja z ogrodji globokega učenja. V prostem času rada planinari, potuje in kuha.

Victor Zhu je programski inženir za porazdeljeno globoko učenje pri Amazon Web Services. Najdete ga med pohodništvom in družabnimi igrami po območju SF Bay.

Derya Cavdar dela kot programski inženir pri AWS. Njeni interesi vključujejo poglobljeno učenje in optimizacijo porazdeljenega usposabljanja.

Teng Xu je inženir za razvoj programske opreme v skupini za porazdeljeno usposabljanje v AWS AI. Uživa v branju.

spot_img

Najnovejša inteligenca

spot_img

Klepetajte z nami

Zdravo! Kako vam lahko pomagam?