Uued jõudluse täiustused Amazon SageMakeri mudeli paralleelteegis

Uued jõudluse täiustused Amazon SageMakeri mudeli paralleelteegis

Allikasõlm: 1773720

Vundamendimudelid on suured süvaõppe mudelid, mis on koolitatud suurel hulgal andmetel. Neid saab täiendavalt viimistleda mitmesuguste allavoolu ülesannete täitmiseks ja moodustada mitmete tehisintellektirakenduste võimaldamise põhialuse. Kõige silmapaistvam kategooria on suurekeelsed mudelid (LLM), sealhulgas automaatselt regressiivsed mudelid, nagu GPT variandid, mis on koolitatud loomuliku teksti täitmiseks. LLM-id sisaldavad tavaliselt miljardeid parameetreid, mistõttu need sobivad harva ühele kiirendile ja nõuavad mudeli paralleelsuse tehnikaid. Teine kategooria on eelkõige difusioonimudelid Stabiilne difusioon, mis on viinud tehisintellekti piltide loomise enneolematule verstapostile, kus lihtsast tekstikirjeldusest saab luua tähelepanuväärseid visuaale. Hajutusmudelid on tavaliselt palju väiksemad kui LLM-id ja hajutatud koolitusel on endiselt oluline roll arengu hõlbustamisel.

SageMakeri mudeli paralleelteek (SMP). on suure mudeliga koolituslahendus, mis on saadaval aadressil Amazon SageMakeri platvorm. Seda saab integreerida PyTorchi mudelitega, et hõlpsasti rakendada laiaulatuslikuks treenimiseks tipptasemel suurte mudelitega hajutatud treeningtehnikaid. Selle aasta alguses käivitati SMP killustatud andmete paralleelsus, hajutatud treeningtehnika, mida toidab Amazoni ettevõttesiseselt MiCS tehnika kapoti all. Jagatud andmete paralleelkillud modelleerivad andmetega paralleelsete töötajate parameetreid, gradiente ja optimeerija olekuid. MiCS teeb peaaegu lineaarse skaleeritavuse tagamiseks mitmeid optimeerimisi, sealhulgas mastaabiteadlikku partitsiooni. sisse Treenige hiiglaslikke peaaegu lineaarse skaleerimisega mudeleid, kasutades killustatud andmete paralleelsust, jagasime, et SMP-s paralleelselt eraldatud andmed saavutasid 39.7% kiirenduse võrreldes DeepSpeed ​​ZeRO-3-ga 30B parameetriga GPT-2 mudelil jada pikkusega 2048.

Et aidata oma klientidel koolituskulusid veelgi minimeerida ja kiirendada turule jõudmise aega, on meil hea meel tutvustada SageMakeri mudelis paralleelselt kahte uut jõudluse täiustust – SMDDP kollektiivid ja FlashTähelepanu. SMDDP Collectives on AWS-i infrastruktuuri kõige tõhusam kollektiivne raamatukogu, mida pakub laiaulatuslik mudelkoolitus SageMakeri hajutatud andmete paralleelteek. FlashAttention tutvustatakse aastal Dao jt., mis rakendab tähelepanumehhanismi uuesti IO-teadlikul viisil, vähendades mälu ribalaiuse nõuet ning säästes tähelepanu kiirust ja mälujalajälge. Need kaks komponenti suurendavad ühiselt meie killustatud andmete paralleeltehnikat 30.58% kiiremaks, kui treenida 100B parameetriga GPT-NeoX mudelit 32 p4d.24xlarge eksemplaril. Klientide jaoks, kes juba kasutavad toetatud mudelitel killustatud andmeid paralleelselt, ei ole nende uusimate funktsioonide pakutava jõudluse suurendamiseks vaja koodi muuta. Stabiilsus AI, leiutaja Stabiilne difusioon mudeliperekond, mis näitas enneolematuid kujutise genereerimise võimeid, otsustas vundamendimudelite ehitamiseks kasutada SMP-d. SMP-ga saavutas Stability AI 163 TFLOP-i GPU kohta 13B parameetriga GPT-NeoX-i puhul 32 p4d.24xsuurel eksemplaril, mis on 58% kiirem kui DeepSpeed. Lisateavet Stability AI missiooni ja partnerluse kohta AWS-iga saate AWS re:Invent 2022 Stabiilse AI tegevjuhi vestlusest või sellest blogi postitus.

„Meie missiooniks Stabiilsus AI-s on luua alus inimkonna potentsiaali aktiveerimiseks tehisintellekti kaudu. Selle missiooni saavutamiseks peame tõhusalt koolitama avatud lähtekoodiga alusmudeleid sadadel kiirendatud arvutusjuhtumitel. Toetume SageMakerile ja selle hajutatud koolitusteekidele, et optimeerida jõudlust ja rakendada tipptasemel strateegiaid mudelite ja andmete killustamiseks kogu meie koolitusklastris. Need optimeerimised vähendavad meie koolituskulusid, aitavad meil klientide vajadusi kiiremini rahuldada ja kiirendavad uute mudelite väljatöötamist.

Emad Mostaque, Stability AI asutaja ja tegevjuht.

Selles ajaveebi postituses tutvustame esmalt oma viimaseid jõudluse täiustusi SageMakeri mudeli paralleelteegis. Seejärel vaatame uuesti läbi, kuidas treenida põhimudeleid, kasutades paralleelselt killustatud andmeid. Lõpuks võrdleme 13B, 50B ja 100B parameetritega automaatselt regressiivsete mudelite toimivust ja lõpetame tulevase tööga.

Uued toimivuse täiustused  SageMakeri mudeli paralleelteegis

Alates AWS-i süvaõppekonteinerid (DLC) PyTorch 1.12.1, SageMakeri mudeli paralleelteek v1.13 sisaldab kahte uut uut komponenti, mis on treeningtulemuse parandamisel üliolulised. Need on praegu saadaval kujul ml.p4d.24xlarge koos Elastsest riidest adapter (EFA) lubatud:

1. AWS-i jaoks optimeeritud AllGather firmalt SMDDP Collectives

Paralleelselt killustatud andmete puhul, kuna GPU-s on vaid killuke mudeli olekust, on vaja AllGatheri kollektiivi, et koguda parameetrite kogu komplekt kõigist jaotusrühma GPU-dest edasi- või tagasipääsu arvutuste käigus. SageMakeri mudeli paralleelsetes versioonides kasutasime nende kollektiivide jaoks NVIDIA Collective Communications Library (NCCL). NCCL on aga üldotstarbeline kollektiivne suhtlusteek, mis ei ole mõeldud AWS-i infrastruktuuri jaoks, mis tagab ebaoptimaalse jõudluse isegi siis, kui EFA on lubatud.

Varem olime välja töötanud SMDDP kollektiivid raamatukogu, mis pakkus AWS-i jaoks optimeeritud All-Reduce kollektiivi juurutamist, et kiirendada puhaste andmete paralleelset koolitust. Suure mudelitreeningu toimivuse parandamiseks killustatud andmete paralleelsusega laiendasime SMDDP Collectivesi teeki, et lisada AllGatheri kollektiivi optimeeritud rakendus. SMDDP Collectives AllGatheri peamine eelis on see, et see võtab sõlmedevahelise suhtluse jaoks kasutusele kõik-kõik-tüüpi suhtlusmustri, mis võimaldab meie kollektiivil olla suure läbilaskevõimega ja vähem latentsustundlik. Lisaks laadib meie AllGatheri kollektiiv sidega seotud töötlemise protsessorisse, vabastades seeläbi väärtuslikud GPU tsüklid gradiendi arvutamiseks, mis toob kaasa märkimisväärse jõudluse paranemise, eriti suurte mudelite puhul.

2. FlashAttention

Kaasaegses trafoarhitektuuris on üheks suurimaks mälutarbimise allikaks aktiveerimisjälg enesetähelepanu kihis. Selle põhjuseks on asjaolu, et iga tähelepanupea arvutab iga sisendi jaoks SxS tähelepanumaatriksi, kus S on jada pikkus, ja see maatriks läbib mitu toimingut, nagu väljalangemine, softmax ja maatriksi korrutamine, kusjuures iga vaheväljund nõuab mäluruumi kasutamiseks tagasi-paljundamine.

Flash Attention (Dao jt.) on Stanfordi HazyResearchi hiljutine uuendus, mis rakendab enesetähelepanu mehhanismi I/O-teadlikul viisil. Peamine arusaam FlashAttentioni taga on see, et enesetähelepanu mehhanismi takistab mälu ribalaius GPU suure ribalaiusega mällu (HBM) ja sealt tagasi. See tähendab, et enesetähelepanu kihti saab arvutada tükkidena kogu jadadimensiooni ulatuses, kusjuures iga tükk läbib korraga kogu enesetähelepanu konveieri. Tüki vahetulemused salvestatakse suure ribalaiusega SRAM-i, vältides iga iteratsiooni jaoks kallist edasi-tagasi reisi HBM-i. Ehkki naiivne rakendamine puutuks kokku softmaxi kihi risttükkide sõltuvuse probleemiga, tutvustab FlashAttention nutikat teostust, mis selle sõltuvuse kõrvale hoiab. Koos tagurpidi läbimise ümberarvutamisega võimaldab FlashAttention oluliselt säästa mälu ja parandada jõudlust (25% kiirem treening GPT-NeoX 13B jaoks üle 16 p4d sõlme), kuna välditakse HBM-i edasi-tagasi liikumist ja SxS-maatriksite salvestamist. Visuaale ja rohkem selgitusi leiate HazyResearchist FlashAttentioni hoidla.

Treenige vundamendimudeleid paralleelselt SageMakeri mudeliga

Vundamendimudelite koolitamiseks SMDDP Collectivesi toiteallika SMP-ga ei pea te tükeldatud andmete paralleelsete koolitustööde puhul täiendavaid muudatusi tegema. Kui te ei kasuta killustatud andmeid paralleelselt, järgige seda täielik õpetusmärkmik ja blogi postitus mis juhendab teid läbi kogu protsessi alates andmetöötlusest, koolitustööde määratlemisest ja esitamisest kuni koolituslogide jälgimiseni. GPT-2 mudeli kasutusvalmis koolitusskripti leiate aadressilt train_gpt_simple.py. Teist tüüpi mudeli treenimiseks võite järgida API dokument et saada teavet SMP API-de rakendamise kohta.

Toome esile peamised hüperparameetrid PyTorchi hindaja killustatud andmete paralleelset koolitustööd, nagu allpool. Hüperparameeter ddp_dist_backend in smp_options nüüd on uus võimalus, "auto" , selle vaikeväärtusena. Koos "auto", kasutab SMP AWS-i jaoks optimeeritud AllGatheri killustatud andmete paralleelsuse tööde jaoks ja taandub muul juhul NCCL-ile. Võite viidata see dokument toetatud konfiguratsioonide jaoks. Kui soovite SMP-s paralleelselt käitada killustatud andmeid spetsiaalselt NCCL-iga kui sidetaustaprogrammiga, saate määrata "ddp_dist_backend" et "nccl" in smp_options.

import sagemaker
from sagemaker.pytorch import PyTorch smp_options = { "enabled": True, "parameters": { "ddp": True, "ddp_dist_backend": "auto", #OR "nccl" to disable SMDDP Collectives # To enable sharded data parallelism. # Here we shard model states across 128 GPUs. "sharded_data_parallel_degree": 128, }
} smp_estimator = PyTorch( entry_point="train_gpt_simple.py", role=sagemaker.get_execution_role(), instance_type='ml.p4d.24xlarge', instance_count=32, distribution={ "smdistributed": {"modelparallel": smp_options}, ... }, ...
) smp_estimator.fit(inputs=data_channels)

Uusima SMPv1.13 versiooniga toetab killustatud andmete paralleeltreeningu tehnika FlashAttentioni populaarsete mudelite jaoks, sealhulgas BERT, RoBERTa, GPT-2, GPT-J, GPT-Neo ja GPT-NeoX. Seda lubab läbimine tensor_parallelism=True ajal mudeli loomine seadmata tensor_parallel_degree. Näite leiate samast koolitusskriptist train_gpt_simple.py .

Võrdlusuuringu tulemuslikkus

Võrdlesime SageMakeri mudeli paralleelteegi killustatud andmete paralleelsust kolmel erineval mudeliskaalal, et mõista, kuidas kaks uut funktsiooni FlashAttention ja AWS-i jaoks optimeeritud AllGather aitavad jõudlust parandada. Paigutuste rühm ei pea neid võrdlusaluseid SageMakeris reprodutseerima.

13B parameeter GPT-NeoX

Selles seadistuses keskendume FlashAttentioni jõudluse kasvu mõistmisele ja jätame AWS-i jaoks optimeeritud AllGatheri pildist välja. Välklambi kasutamine säästab oluliselt GPU mälu, mis aitab meil suurendada partii suurust või vähendada killustatust, parandades seeläbi jõudlust. Nagu alltoodud tulemused näitavad, täheldasime 20.4B parameetriga GPT-NeoX mudeli puhul SMP-s keskmiselt umbes 13% kiirenemist 16–64 p4d-sõlmes erinevate konfiguratsioonide puhul. Mälukasutus standardse tähelepanu arvutamise ajal skaalatakse ruutkeskmisel viisil jada pikkuse suurenemisega, kuid FlashAttentioni mälukasutus on jada pikkuselt lineaarne. Seetõttu on FlashAttention veelgi kasulikum, kuna jada pikkus suureneb ja võimaldab kasutada suuremaid jadapikkusi. Kuna FlashAttention on mälutõhus ilma mudelikvaliteediga kauplemata, on see viimaste kuude jooksul suures mudelikoolituskogukonnas kiiresti haaranud. Kallistavad näo difuusorid ja Mosaiik ML.

konfiguratsioon jõudlus
Modell/koolitus Cluster SMP Ilma FlashAttentionita
(TFLOP/GPU)
 FlashAttentioniga
(TFLOP/GPU)
% Kiirendama
13B GPT-NeoX
Sarja pikkus: 2048
Globaalne partii suurus: 1024
FP16
16 p4d.24xsuurt sõlme Aktiveerimise kontrollpunkt
sharded_data_parallel_degree:64
gradient_akumulatsioon: 1
130 159 22.31
13B GPT-NeoX
Sarja pikkus: 2048
Globaalne partii suurus: 2048
FP16
32 p4d.24xsuurt sõlme Aktiveerimise kontrollpunkt
sharded_data_parallel_degree:64
gradient_akumulatsioon: 1
131 157 19.85
13B GPT-NeoX
Sarja pikkus: 2048
Globaalne partii suurus: 4096
FP16
64 p4d.24xsuurt sõlme Aktiveerimise kontrollpunkt
sharded_data_parallel_degree:64
gradient_akumulatsioon: 1
131 156 19.08

50B parameeter Bloom

Nüüd vaatleme, kuidas SMDDP Collectivesi AWS-i jaoks optimeeritud AllGather kiirendab SMP-ga suuri mudelitreeninguid. Võrdleme 50B parameetriga Bloomi mudelit ja võrdleme jõudlust AWS-i jaoks optimeeritud AllGatheri kollektiiviga ja ilma. Täheldame, et SMDDP kollektiivid kiirendavad mudelikoolitust kuni 40% 32 sõlme ulatuses kuni 64 sõlme koolitustöödeni. SMDDP kollektiivid aitavad saavutada paremat jõudlust tänu p400d.4xlarge eksemplaride korral saadaoleva 24 Gbps võrgu ribalaiuse paremale kasutamisele. See koos disainivalikuga sidega seotud töötluse CPU-le mahalaadimiseks aitab saavutada head arvutuste ja võrgu kattumist, mis viib optimeeritud jõudluseni. Arvutamise ja võrgu vahel kattumine muutub eriti oluliseks suurte mudelite puhul, kuna sõlmede vahel edastatavate andmete suurus skaleerub lineaarselt mudeli suuruse suurenemisega.

konfiguratsioon jõudlus
Modell/koolitus Cluster SMP Ilma AWS-i jaoks optimeeritud AllGatherita
(TFLOP/GPU)
 AWS-i jaoks optimeeritud AllGatheriga
(TFLOP/GPU)
% Kiirendama
50B Bloom
Sarja pikkus: 2048
Globaalne partii suurus: 2048
BF16
32 p4d.24xsuurt sõlme Aktiveerimise kontrollpunkt
sharded_data_parallel_degree:128
gradient_akumulatsioon: 1
102 143 40.20
50B Bloom
Sarja pikkus: 2048
Globaalne partii suurus: 4096
BF16
64 p4d.24xsuurt sõlme Aktiveerimise kontrollpunkt
sharded_data_parallel_degree:128
gradient_akumulatsioon: 1
101 140 38.61

100B parameeter GPT-NeoX

Lõpuks võrdleme SMP-d mõlema uusima funktsiooniga. See näitab, et SMP v1.13 uus väljalase on 30% kiirem kui 100B parameetriga GPT-NeoX mudeli eelmine versioon.

konfiguratsioon jõudlus
Modell/koolitus Cluster SMP Ilma FlashAttentionita ja ilma AWS-i jaoks optimeeritud AllGatherita
(TFLOP/GPU)
FlashAttention + AWS-i jaoks optimeeritud AllGatheriga
(TFLOP/GPU)
% Kiirendama
100B GPT-NeoX
Sarja pikkus: 2048
Globaalne partii suurus: 2048
FP16
32 p4d.24xsuurt sõlme Aktiveerimise kontrollpunkt
sharded_data_parallel_degree:256
offload_activations

  • Ilma FlashAttentionita: partii suurus on 4, gradient akumuleerub 2 sammu võrra.
  • FlashAttentioniga: partii suurus on 8 ilma gradientide kogunemiseta
121 158 30.58
100B GPT-NeoX
Sarja pikkus: 2048
Globaalne partii suurus: 4096
FP16
64 p4d.24xsuurt sõlme Aktiveerimise kontrollpunkt
sharded_data_parallel_degree:256
offload_activations

  • Ilma FlashAttentionita: partii suurus on 4, gradient akumuleerub 2 sammu võrra.
  • FlashAttentioniga: partii suurus on 8 ilma gradientide kogunemiseta
122 158 29.51

Tulevikus töötame selle kallal, et toetada SMDDP kollektiivides AWS-i jaoks optimeeritud Reduce-Scatterit. Kollektiiv Reduce-Scatter on kriitilise tähtsusega tagurpidikäigul arvutatud gradientide keskmistamisel ja jagamisel. Loodame, et see kiirendab tulevastes väljaannetes SMP teeki veelgi.

Järeldus

Selles postituses käsitleme SageMakeri mudeli paralleelteegi killustatud andmete paralleeltehnika kahte viimast jõudluse täiustust. LLM-id näitavad suurt lubadust ML-mudelite kvaliteedi ja korduvkasutatavuse parandamisel. AWS-i meeskonnad teevad klientidega tihedat koostööd, et vähendada nende koolituskulusid ja turuletuleku aega. Rohkem SageMakeri mudeli paralleelnäiteid leiate siit Amazon SageMakeri näited GitHubi repo või osalege meie järgmisel jagasid koolitusi. Kui olete huvitatud suurte mudelite koolituse kiirendamisest, vaadake neid funktsioone ja andke meile teada, mida ehitate!


Autoritest

Arjun Balasubramanian on AWS-i vanemtarkvarainsener, kes on keskendunud suure jõudlusega riistvarakiirendusega kollektiivsete suhtlusalgoritmide loomisele hajutatud süvaõppe jaoks. Teda huvitavad laiaulatuslikud masinõppe ja võrgustamise süsteemid. Töövälisel ajal meeldib talle reisida ja tegeleda erinevate spordialadega.

Zhaoqi Zhu on AWS-i tarkvaraarenduse insener, kes on spetsialiseerunud hajutatud süvaõppesüsteemidele ja töötab SageMaker Distributed Data Parallel raamatukogu kallal. Väljaspool tööd on Zhaoqi kirglik jalgpall ja loodab, et ta ei saa tuleval hooajal punast kaarti.

Kas Karakus on AWS-i vanemrakendusteadlane, kes optimeerib AWS-is laiaulatuslikku hajutatud süvaõpet. Tema uurimisvaldkonnad hõlmavad süvaõpet, hajutatud optimeerimist, hajutatud süsteeme ja teabeteooriat. Väljaspool tööd naudib ta jalgrattasõitu, reisimist, lugemist ja õppimist.

Rahul Huilgol on AWS-i vanemtarkvarainsener. Ta töötab hajutatud süvaõppesüsteemide kallal, et muuta suurte süvaõppemudelite pilves treenimine lihtsaks ja tõhusaks. Vabal ajal harrastab ta fotograafiat, jalgrattasõitu ja aiatööd.

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.

Fei Wu on AWS-i tarkvarainsener. Ta töötab pilves suuremahuliste süvaõppemudelite hajutatud koolitusega. Väljaspool tööd naudib ta korvpalli, mängimist ja kokkamist.

Ajatempel:

Veel alates AWS-i masinõpe