Hajutatud koolitus ja tõhus skaleerimine Amazon SageMakeri mudeli paralleel- ja andmeparalleelteekidega | Amazoni veebiteenused

Hajutatud koolitus ja tõhus skaleerimine Amazon SageMakeri mudeli paralleel- ja andmeparalleelteekidega | Amazoni veebiteenused

Suurte keelemudelite (LLM) hajutatud süvaõppe valdkonnas on tehtud tohutuid edusamme, eriti pärast ChatGPT väljaandmist 2022. aasta detsembris. LLM-id kasvavad jätkuvalt miljardite või isegi triljonite parameetritega, kuid sageli nad seda ei tee. mahub mälupiirangute tõttu ühte kiirendusseadmesse (nt GPU) või isegi ühte sõlme (nt ml.p5.32xlarge). LLM-e koolitavad kliendid peavad sageli jaotama oma töökoormuse sadade või isegi tuhandete GPU-de vahel. Sellises mahus koolituse võimaldamine jääb hajutatud koolituse väljakutseks ja nii suures süsteemis tõhus treenimine on teine ​​sama oluline probleem. Viimaste aastate jooksul on hajutatud koolituskogukond selliste väljakutsete lahendamiseks kasutusele võtnud 3D-paralleelsuse (andmete paralleelsus, konveieri paralleelsus ja tensoriparalleelsus) ja muid tehnikaid (nt järjestuste paralleelsus ja ekspertide paralleelsus).

2023. aasta detsembris teatas Amazon selle väljalaskmisest SageMakeri mudeli paralleelteek 2.0 (SMP), mis saavutab tipptasemel efektiivsuse suurtes mudelitreeningutes, koos SageMakeri hajutatud andmete paralleelsuse teek (SMDDP). See väljalase on oluline uuendus versioonist 1.x: SMP on nüüd integreeritud avatud lähtekoodiga PyTorchiga Täielikult jagatud andmed paralleelselt (FSDP) API-sid, mis võimaldab suurte mudelite treenimisel kasutada tuttavat liidest ja ühildub Trafo mootor (TE), avades esimest korda FSDP kõrval tensori paralleelsuse tehnikad. Väljalaske kohta lisateabe saamiseks vaadake Amazon SageMakeri mudeli paralleelteek kiirendab nüüd PyTorchi FSDP töökoormust kuni 20%.

Selles postituses uurime jõudluse eeliseid Amazon SageMaker (sh SMP ja SMDDP) ja kuidas saate raamatukogu kasutada suurte mudelite tõhusaks treenimiseks SageMakeris. Näitame SageMakeri jõudlust võrdlusaluste abil kuni 4 eksemplari ml.p24d.128xsuurtes klastrites ja FSDP segatud täpsust bfloat16-ga mudeli Llama 2 jaoks. Alustame SageMakeri peaaegu lineaarse skaleerimise efektiivsuse demonstreerimisega, millele järgneb iga funktsiooni panuse analüüsimine optimaalse läbilaskevõime saavutamiseks ja lõpetame tõhusa treeninguga erinevate jadapikkustega kuni 32,768 XNUMX kuni tensori paralleelsuse kaudu.

Peaaegu lineaarne skaleerimine SageMakeriga

LLM-mudelite üldise koolitusaja vähendamiseks on sõlmedevahelise suhtluse ülekoormust arvestades ülioluline suure läbilaskevõime säilitamine suurtele klastritele (tuhanded GPU-d) skaleerimisel. Selles postituses demonstreerime nii SMP-d kui ka SMDDP-d kasutavate p4d-juhtumite tugevat ja peaaegu lineaarset skaleerimist (muutes GPU-de arvu fikseeritud probleemi suuruse jaoks).

Selles jaotises demonstreerime SMP peaaegu lineaarset skaleerimise jõudlust. Siin treenime erineva suurusega (2B, 7B ja 13B parameetrid) Llama 70 mudeleid, kasutades fikseeritud järjestuse pikkust 4,096, SMDDP taustaprogrammi kollektiivseks suhtluseks, TE-ga, globaalse partii suurus 4 miljonit, 16–128 p4d-sõlmega . Järgmine tabel võtab kokku meie optimaalse konfiguratsiooni ja treeningtulemuse (mudeli TFLOP-id sekundis).

Mudeli suurus Sõlmede arv TFLOPid* sdp* tp* mahalaadimine* Skaleerimise efektiivsus
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%

*Antud mudeli suuruse, jada pikkuse ja sõlmede arvu juures näitame globaalselt optimaalset läbilaskevõimet ja konfiguratsioone pärast erinevate sdp, tp ja aktiveerimise mahalaadimise kombinatsioonide uurimist.

Eelnev tabel võtab kokku optimaalse läbilaskevõime arvud, mis sõltuvad killustatud andmete paralleelse (sdp) astmest (tavaliselt kasutatakse täieliku jaotuse asemel FSDP hübriidjaotust, täpsemalt järgmises jaotises), tensori paralleelse (tp) astme ja aktiveerimise mahalaadimise väärtuse muutused. demonstreerides SMP peaaegu lineaarset skaleerimist koos SMDDP-ga. Näiteks arvestades Llama 2 mudeli suurust 7B ja järjestuse pikkust 4,096, saavutab see skaleerimise efektiivsuse vastavalt 97.0%, 91.6% ja 84.1% (võrreldes 16 sõlmega) vastavalt 32, 64 ja 128 sõlme juures. Skaleerimise efektiivsus on erinevate mudelisuuruste puhul stabiilne ja suureneb veidi, kui mudeli suurus suureneb.

SMP ja SMDDP demonstreerivad sarnast skaleerimise efektiivsust ka teiste järjestuse pikkuste, näiteks 2,048 ja 8,192 puhul.

SageMakeri mudeli paralleelteegi 2.0 jõudlus: Llama 2 70B

Mudelite suurused on viimastel aastatel jätkuvalt kasvanud koos LLM-i kogukonna sagedaste tipptasemel jõudluse uuendustega. Selles jaotises illustreerime Llama 2 mudeli SageMakeri toimivust, kasutades fikseeritud mudeli suurust 70B, järjestuse pikkust 4,096 ja globaalset partii suurust 4 miljonit. Võrreldes eelmise tabeli globaalselt optimaalse konfiguratsiooni ja läbilaskevõimega (koos SMDDP taustaprogrammiga, tavaliselt FSDP hübriidjaotusega ja TE-ga), laieneb järgmine tabel teistele optimaalsetele läbilaskevõimetele (potentsiaalselt tensori paralleelsusega) koos täiendavate spetsifikatsioonidega hajutatud taustaprogrammis (NCCL ja SMDDP). , FSDP jagamise strateegiad (täielik jaotus ja hübriidjaotus) ning TE lubamine või mitte (vaikimisi).

Mudeli suurus Sõlmede arv TFLOPS TFLOPide nr 3 konfiguratsioon TFLOPide paranemine võrreldes algtasemega
. . NCCL-i täielik jagamine: #0 SMDDP täielik jagamine: #1 SMDDP hübriidne jaotus: #2 SMDDP hübriidjaotus TE-ga: #3 sdp* tp* mahalaadimine* #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%

*Antud mudeli suuruse, jada pikkuse ja sõlmede arvu juures näitame globaalselt optimaalset läbilaskevõimet ja konfiguratsiooni pärast erinevate sdp, tp ja aktiveerimise mahalaadimise kombinatsioonide uurimist.

SMP ja SMDDP uusim väljalase toetab mitmeid funktsioone, sealhulgas natiivset PyTorchi FSDP-d, laiendatud ja paindlikumat hübriidjaotust, trafomootori integreerimist, tensori paralleelsust ja optimeeritud kogumisfunktsiooni. Et paremini mõista, kuidas SageMaker saavutab LLM-ide jaoks tõhusa hajutatud koolituse, uurime SMDDP ja järgmise SMP-i täiendavaid panuseid. põhiomadused:

  • SMDDP täiustamine NCCL-iga koos FSDP täieliku jaotusega
  • FSDP täieliku jaotuse asendamine hübriidjaotusega, mis vähendab läbilaskevõime parandamiseks sidekulusid
  • TE-ga läbilaskevõime täiendav suurendamine, isegi kui tensori paralleelsus on keelatud
  • Madalamate ressursiseadete korral võib aktiveerimise mahalaadimine võimaldada treenimist, mis muidu oleks suure mälukoormuse tõttu võimatu või väga aeglane

FSDP täielik jagamine: SMDDP täiustamine NCCL-i kaudu

Nagu on näidatud eelmises tabelis, kui mudelid on FSDP-ga täielikult eraldatud, kuigi NCCL (TFLOPs #0) ja SMDDP (TFLOPs #1) läbilaskevõimed on võrreldavad 32 või 64 sõlmes, on NCCL-ist SMDDP-le 50.4% suur paranemine. 128 sõlme juures.

Väiksemate mudelisuuruste puhul täheldame SMDDP-ga järjekindlaid ja olulisi täiustusi võrreldes NCCL-iga, alustades väiksematest klastrisuurustest, kuna SMDDP suudab side kitsaskohti tõhusalt leevendada.

FSDP hübriidne jaotamine sidekulude vähendamiseks

SMP 1.0-s käivitasime killustatud andmete paralleelsus, hajutatud treeningtehnika, mida toetab ettevõttesisene Amazon MiCS tehnoloogia. SMP 2.0-s tutvustame SMP-hübriidjaotust, laiendatavat ja paindlikumat hübriidjaotuse tehnikat, mis võimaldab mudeleid jagada GPU-de alamhulga, mitte kõigi koolitavate GPU-de vahel, mis on FSDP täieliku jaotuse puhul. See on kasulik keskmise suurusega mudelite jaoks, mida ei pea kogu klastri ulatuses eraldama, et rahuldada GPU-põhiseid mälupiiranguid. See viib selleni, et klastritel on rohkem kui üks mudeli koopia ja iga GPU suhtleb käitusajal vähemate kaaslastega.

SMP hübriidkillustamine võimaldab mudelite tõhusat jaotamist laiemas vahemikus, alates väikseimast killu astmest ilma mälu tühjenemiseta kuni kogu klastri suuruseni (mis võrdub täieliku jaotusega).

Järgmine joonis illustreerib lihtsuse huvides läbilaskevõime sõltuvust sdp-st tp = 1 juures. Kuigi see ei pruugi olla sama, mis eelmises tabelis NCCL või SMDDP täieliku jaotuse optimaalne tp väärtus, on numbrid üsna lähedased. See kinnitab selgelt 128 sõlmest koosneva klastri täieliku jaotamise asemel hübriidjaotusega ülemineku väärtuse, mis on rakendatav nii NCCL-i kui ka SMDDP jaoks. Väiksemate mudelisuuruste puhul algavad hübriidkillustamise olulised täiustused väiksemate klastrisuuruste korral ja erinevus suureneb koos klastri suurusega.

Hajutatud koolitus ja tõhus skaleerimine Amazon SageMakeri mudeli paralleel- ja andmeparalleelteekidega | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Täiustused TE-ga

TE on loodud kiirendama LLM-i koolitust NVIDIA GPU-del. Vaatamata sellele, et FP8 ei kasutata, kuna seda p4d eksemplaridel ei toetata, näeme p4d puhul TE puhul siiski olulist kiirust.

Lisaks SMDDP taustaprogrammiga koolitatud MiCS-ile suurendab TE järjekindlat läbilaskevõimet kõigis klastri suurustes (ainsaks erandiks on täielik sharding 128 sõlme juures), isegi kui tensori paralleelsus on keelatud (tensori paralleelsuse aste on 1).

Väiksemate mudelisuuruste või erinevate järjestuste pikkuste korral on TE võimendus stabiilne ja mittetriviaalne, vahemikus ligikaudu 3–7.6%.

Aktiveerimise mahalaadimine madala ressursi seadetega

Madala ressursiseadete korral (arvestades vähest sõlmede arvu) võib FSDP-l tekkida suur mälusurve (halvimal juhul isegi mälust puudu), kui aktiveerimise kontrollpunkt on lubatud. Selliste mälu tõttu kitsaskohtadega stsenaariumide puhul on aktiveerimise mahalaadimise sisselülitamine potentsiaalselt üks võimalus jõudluse parandamiseks.

Näiteks, nagu nägime varem, kuigi mudelisuurusega 2B ja järjestuse pikkusega 13 on Llama 4,096 võimeline optimaalselt treenima vähemalt 32 sõlmega koos aktiveerimise kontrollpunktiga ja ilma aktiveerimise mahalaadimiseta, saavutab see parima läbilaskevõime aktiveerimise mahalaadimisega, kui see on piiratud 16-ga. sõlmed.

Lubage treenimine pikkade järjestustega: SMP tensori paralleelsus

Pikkade vestluste ja konteksti jaoks soovitatakse pikemaid järjestuse pikkusi ning need saavad LLM-i kogukonnas rohkem tähelepanu. Seetõttu esitame järgmises tabelis mitmesuguseid pika järjestuse läbilaskevõimet. Tabel näitab optimaalseid läbilaskevõimeid Llama 2 treeningu jaoks SageMakeris erinevate jadapikkustega 2,048 kuni 32,768. Jada pikkusega 32,768 32 on FSDP väljaõpe võimatu 4 sõlmega globaalse partii suurusega XNUMX miljonit.

. . . TFLOPS
Mudeli suurus Järjestuse pikkus Sõlmede arv Native FSDP ja NCCL SMP ja SMDDP SMP parandamine
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%
*: mediaan . . . . 5.8%

Kui klastri suurus on suur ja fikseeritud globaalse partii suurus, ei pruugi mõned mudelikoolitused natiivse PyTorchi FSDP-ga teostada, kuna puudub sisseehitatud konveier või tensori paralleelsuse tugi. Eelmises tabelis, võttes arvesse globaalset partii suurust 4 miljonit, 32 sõlme ja järjestuse pikkust 32,768 0.5, on efektiivne partii suurus GPU kohta 2 (näiteks tp = 1 partii suurusega XNUMX), mis muidu oleks ilma lisamiseta teostamatu tensori paralleelsus.

Järeldus

Selles postituses demonstreerisime tõhusat LLM-i koolitust SMP ja SMDDP-ga p4d-juhtumitel, omistades panuse mitmele põhifunktsioonile, nagu SMDDP täiustamine NCCL-i kaudu, paindlik FSDP hübriidjaotamine täieliku jaotuse asemel, TE-integratsioon ja tensori paralleelsuse võimaldamine pikad jada pikkused. Pärast erinevate mudelite, mudelisuuruste ja järjestuse pikkustega paljude seadistuste testimist näitab see tugevat peaaegu lineaarset skaleerimise efektiivsust, kuni 128 p4d eksemplari SageMakeris. Kokkuvõttes on SageMaker jätkuvalt võimas tööriist LLM-i teadlastele ja praktikutele.

Lisateabe saamiseks vaadake SageMakeri mudeli paralleelsuse teek v2või võtke ühendust SMP meeskonnaga aadressil sm-model-parallel-feedback@amazon.com.

Tänusõnad

Soovime tänada Robert Van Dusenit, Ben Snyderit, Gautam Kumari ja Luis Quintelat nende konstruktiivse tagasiside ja arutelude eest.


Autoritest

Hajutatud koolitus ja tõhus skaleerimine Amazon SageMakeri mudeli paralleel- ja andmeparalleelteekidega | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Xinle Sheila Liu on Amazon SageMakeris SDE. Vabal ajal meeldib talle lugeda ja vabas õhus sportida.

Hajutatud koolitus ja tõhus skaleerimine Amazon SageMakeri mudeli paralleel- ja andmeparalleelteekidega | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Suhit Kodgule on tarkvaraarenduse insener koos AWS-i tehisintellekti rühmaga, kes töötab süvaõppe raamistike kallal. Vabal ajal meeldib talle matkata, reisida ja süüa teha.

Hajutatud koolitus ja tõhus skaleerimine Amazon SageMakeri mudeli paralleel- ja andmeparalleelteekidega | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Viktor Zhu on Amazon Web Services'i hajutatud süvaõppe tarkvarainsener. Teda võib SF Bay piirkonnas matkata ja lauamänge nautida.

Hajutatud koolitus ja tõhus skaleerimine Amazon SageMakeri mudeli paralleel- ja andmeparalleelteekidega | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Derya Cavdar töötab AWS-is tarkvarainsenerina. Tema huvid hõlmavad süvaõpet ja hajutatud koolituse optimeerimist.

Hajutatud koolitus ja tõhus skaleerimine Amazon SageMakeri mudeli paralleel- ja andmeparalleelteekidega | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Teng Xu on tarkvaraarenduse insener AWS AI hajutatud koolituse rühmas. Ta naudib lugemist.

Ajatempel:

Veel alates AWS-i masinõpe