Kaasaegse mudeli eelkoolitus nõuab sageli suurema klastri kasutuselevõttu, et vähendada aega ja kulusid. Serveri tasemel nõuavad sellised koolituskoormused kiiremat arvutamist ja suuremat mälu eraldamist. Kuna mudelid kasvavad sadade miljardite parameetriteni, vajavad nad hajutatud koolitusmehhanismi, mis hõlmab mitut sõlme (eksemplari).
2022. aasta oktoobris käivitasime Amazon EC2 Trn1 eksemplaridPowered by AWS Trainium, mis on AWS-i loodud teise põlvkonna masinõppe kiirendi. Trn1 eksemplarid on loodud suure jõudlusega süvaõppemudeli koolituseks, pakkudes samal ajal kuni 50% koolituskulude kokkuhoidu võrreldes võrreldavate GPU-põhiste eksemplaridega. Treeningaja lühendamiseks nädalatest päevadesse või päevadest tundidesse ja suure mudeli koolitustöö jaotamiseks saame kasutada EC2 Trn1 UltraClusterit, mis koosneb tihedalt pakitud, ühes kohas paiknevatest Trn1 arvutuseksemplaridest, mis kõik on omavahel ühendatud. mitteblokeeriv petabaitide ulatusega võrgundus. See on meie seni suurim UltraCluster, mis pakub kuni 6 30,000 Trainiumi kiibiga XNUMX eksaflopsi arvutusvõimsust nõudmisel.
Selles postituses kasutame Trn1 UltraClustrite kasutamise selgitamiseks lihtsa näitena Hugging Face BERT-Large mudeli koolituseelset töökoormust.
Trn1 UltraClusters
Trn1 UltraCluster on Trn1 eksemplaride paigutusrühm andmekeskuses. Ühe klastri käitamise osana saate Trainiumi kiirenditega luua Trn1 eksemplaride klastri. Järgmine diagramm näitab näidet.
Trn1 eksemplaride UltraClusters asuvad andmekeskuses ja on omavahel ühendatud Elastne kangaadapter (EFA), mis on petabaitide mastaabis mitteblokeeriv võrguliides kuni 800 Gbps võrgu ribalaiusega, mis on kaks korda suurem ribalaiusest, mida AWS P4d eksemplarid toetavad (1.6 Tbps, tulevaste Trn1n eksemplaride puhul neli korda suurem). Need EFA liidesed aitavad käivitada mudelkoolituse töökoormust, mis kasutavad ulatuslikult Neuron Collective Communication Libraries. Trn1 UltraClusters sisaldab ka ühise asukohaga võrguga ühendatud salvestusteenuseid, nagu Amazon FSx Lusteri jaoks võimaldada suure läbilaskevõimega juurdepääsu suurtele andmekogumitele, tagades klastrite tõhusa toimimise. Trn1 UltraClusters võivad majutada kuni 30,000 6 Trainium seadet ja pakkuda ühes klastris kuni 2 eksaflopsi arvutusi. EC1 Trn6 UltraClusters pakuvad kuni XNUMX eksaflopsi arvutusi, mis on sõna otseses mõttes tellitav superarvuti, millel on väljamakstav kasutusmudel. Selles postituses kasutame UltraClusteri suurendamiseks ja töökoormuse haldamiseks mõnda HPC tööriista, näiteks Slurm.
Lahenduse ülevaade
AWS pakub laia valikut teenuseid hajutatud mudelikoolituseks või töökoormuste mastaabis järeldamiseks, sealhulgas AWS partii, Amazoni elastse Kubernetese teenus (Amazon EKS) ja UltraClusters. See postitus keskendub mudelikoolitusele UltraClusteris. Meie lahendus kasutab AWS ParallelCluster haldustööriist Trn1 UltraClusteri loomiseks vajaliku infrastruktuuri ja keskkonna loomiseks. Taristu koosneb peasõlmest ja mitmest Trn1 arvutussõlmest virtuaalses privaatpilves (VPC). Klastrite haldamise ja tööde ajastamise süsteemina kasutame Slurmi. Järgmine diagramm illustreerib meie lahenduse arhitektuuri.
Lisateavet ja selle lahenduse juurutamise kohta vaadake jaotist Treenige mudelit AWS Trn1 ParallelClusteris.
Vaatame selle lahenduse mõningaid olulisi samme:
- Looge VPC ja alamvõrgud.
- Konfigureerige arvutuspark.
- Looge klaster.
- Kontrollige klastrit.
- Käivitage oma koolitustöö.
Eeldused
Selle postituse jätkamiseks laiaulatuslik tutvus AWS-i põhiteenustega, nagu Amazon Elastic Compute Cloud (Amazon EC2) on kaudne ning abiks oleks põhiteadmised süvaõppe ja PyTorchiga.
Looge VPC ja alamvõrke
Lihtne viis VPC ja alamvõrkude loomiseks on läbi Amazoni virtuaalne privaatpilv (Amazon VPC) konsool. Täielikud juhised leiate aadressilt GitHub. Pärast VPC ja alamvõrkude installimist peate arvutuspargi eksemplarid konfigureerima. Lühidalt, selle teeb võimalikuks installiskript, mille CustomActions määrab ParallelClusteri loomiseks kasutatavas YAML-failis (vt Looge ParallelCluster). ParallelCluster nõuab VPC-d, millel on kaks alamvõrku ja võrguaadressi tõlkimise (NAT) lüüs, nagu on näidatud eelneval arhitektuuriskeemil. See VPC peab asuma saadavuse tsoonides, kus on saadaval Trn1 eksemplarid. Samuti peab selles VPC-s olema avalik alamvõrk ja privaatne alamvõrk, et hoida vastavalt peasõlme ja Trn1 arvutussõlme. Teil on vaja ka NAT-lüüsi Interneti-juurdepääsu, et Trn1 arvutussõlmed saaksid alla laadida AWS Neuron paketid. Üldiselt saavad arvutussõlmed värskendusi OS-i pakettide, Neuroni draiveri ja käitusaja ning EFA draiveri jaoks mitme eksemplari koolituse jaoks.
Mis puudutab peasõlme, siis lisaks eelmainitud arvutussõlmede komponentidele saab see ka PyTorch-NeuronX ja NeuronX kompilaatori, mis võimaldab mudelite koostamise protsessi XLA seadmetes nagu Trainium.
Konfigureerige arvutuspark
YAML-failis Trn1 UltraClusteri loomiseks InstanceType
on määratud kui trn1.32xlarge. MaxCount
ja MinCount
kasutatakse teie arvutuspargi suuruse vahemiku näitamiseks. Võite kasutada MinCount
et hoida mõned või kõik Trn1 eksemplarid kogu aeg saadaval. MinCount
võib nulli määrata, nii et kui ühtegi töötavat tööd pole, vabastatakse Trn1 eksemplarid sellest klastrist.
Trn1 saab juurutada ka mitme järjekorraga UltraClusteris. Järgmises näites on Slurmi töö esitamiseks seadistatud ainult üks järjekord:
Kui vajate rohkem kui ühte järjekorda, saate määrata mitu InstanceType
, igaühel oma MaxCount
, MinCount
ja Name
:
Siin on seadistatud kaks järjekorda, nii et kasutajal on võimalus oma Slurmi töö jaoks ressursse valida.
Loo klaster
Trn1 UltraClusteri käivitamiseks kasutage järgmist pcluster
käsk, kust teie ParallelClusteri tööriist on paigaldatud:
Selles käsus kasutame järgmisi valikuid:
--cluster-configuration
– See suvand eeldab YAML-faili, mis kirjeldab klastri konfiguratsiooni-n
(Või--cluster-name
) – selle klastri nimi
See käsk loob teie AWS-i kontole Trn1 klastri. Saate kontrollida klastri loomise edenemist AWS CloudFormation konsool. Lisateabe saamiseks vaadake AWS CloudFormationi konsooli kasutamine.
Teise võimalusena saate oma päringu oleku vaatamiseks kasutada järgmist käsku:
ja käsk näitab olekut, näiteks:
Järgmised on väljundist huvipakkuvad parameetrid:
- instanceId – See on peasõlme eksemplari ID, mis kuvatakse Amazon EC2 konsoolis
- arvuta FleetStatus – See atribuut näitab arvutussõlmede valmisolekut
- Sildid – See atribuut näitab versiooni
pcluster
selle klastri loomiseks kasutatud tööriist
Kontrollige klastrit
Võite kasutada eelnimetatut pcluster describe-cluster
käsk klastri kontrollimiseks. Pärast klastri loomist näete väljundis järgmist:
Sel hetkel saate SSH-i sisestada peasõlme (identifitseeritakse Amazon EC2 konsooli eksemplari ID-ga). Järgmine on klastri loogiline diagramm.
Pärast SSH-i sisestamist peasõlme saate kontrollida arvutusparki ja nende olekut käsuga Slurm, näiteks sinfo
süsteemi sõlmeteabe vaatamiseks. Järgmine on näidisväljund:
See näitab, et on üks järjekord, nagu näitab üks partitsioon. Saadaval on 16 sõlme ja ressursid on eraldatud. Peasõlmest saate SSH-i teha mis tahes arvutussõlme:
Kasutama exit
et jõuda tagasi peasõlme.
Samamoodi saate SSH-i sisestada arvutussõlme teisest arvutussõlmest. Igas arvutussõlmes on installitud Neuron tööriistad, nt neuron-top
. Võite kutsuda neuron-top
treeningskripti käitamise ajal, et kontrollida NeuronCore'i kasutamist igas sõlmes.
Käivitage oma koolitustöö
Me kasutame Kallistava näoga BERT-suure eelkoolituse õpetus näitena selles klastris käitamiseks. Pärast treeningandmete ja skriptide klastrisse allalaadimist kasutame oma töökoormuse haldamiseks ja korraldamiseks Slurmi kontrollerit. Koolitustöö esitame koos sbatch
käsk. Shelli skript kutsub Pythoni skripti välja neuron_parallel_compile
API mudeli graafikuteks koostamiseks ilma täieliku treeninguta. Vaadake järgmist koodi:
Selles käsus kasutame järgmisi valikuid:
--exclusive
– See töö kasutab kõiki sõlme ega jaga praeguse töö käitamise ajal teiste töödega.--nodes
– selle töö sõlmede arv.--wrap
– See määrab käsustringi, mida käitab Slurmi kontroller. Sel juhul kompileerib see mudeli lihtsalt paralleelselt, kasutades kõiki sõlme.
Pärast mudeli edukat koostamist võite alustada täielikku koolitustööd järgmise käsuga:
See käsk käivitab Hugging Face BERT-Large mudeli koolitustöö. 16 Trn1.32xsuure sõlmega saab selle lõpule viia vähem kui 8 tunniga.
Siinkohal saate kasutada käsku Slurm, näiteks squeue
esitatud tööga tutvumiseks. Näidisväljund on järgmine:
See väljund näitab, et töö töötab (R
) 16 arvutussõlmel.
Töö käigus salvestatakse väljundid ja lisatakse need Slurmi logifaili. Peasõlme terminalist saate seda reaalajas kontrollida.
Samuti on Slurmi logifailiga samas kataloogis selle töö jaoks vastav kataloog. See kataloog sisaldab järgmist (näiteks):
See kataloog on juurdepääsetav kõigile arvutussõlmedele. results.json
jäädvustab selle konkreetse töökäituse metaandmed, nagu mudeli konfiguratsioon, partii suurus, sammude kogusumma, gradiendi kogumise sammud ja koolitusandmestiku nimi. Sellesse kataloogi salvestatakse ka mudeli kontrollpunkt ja väljundlogi iga arvutussõlme kohta.
Võtke arvesse klastri skaleeritavust
Trn1 UltraClusteris käitavad mitu omavahel ühendatud Trn1 eksemplari paralleelselt suurt mudelitreeningu töökoormust ja vähendavad kogu arvutusaega või lähenemiseni kuluvat aega. Klastri mastaapsusel on kaks mõõdikut: tugev skaleerimine ja nõrk skaleerimine. Tavaliselt on mudelitreeningu jaoks vaja treeninguid kiirendada, kuna kasutuskulud määratakse gradiendi värskenduste voorude proovi läbilaskevõime järgi. Tugev skaleerimine viitab stsenaariumile, kus probleemi kogumaht jääb protsessorite arvu suurenedes samaks, tugev skaleerimine on mudelikoolituse skaleeritavuse oluline näitaja. Tugeva skaleerimise (st paralleelsuse mõju) hindamisel tahame hoida globaalset partii suurust samaks ja näha, kui palju aega kulub lähenemiseks. Sellise stsenaariumi korral peame kohandama gradiendi akumulatsiooni mikrosammu vastavalt arvutussõlmede arvule. See saavutatakse koolituskesta skriptis järgmisega run_dp_bert_large_hf_pretrain_bf16_s128.sh
:
Teisest küljest, kui soovite hinnata, kui palju rohkem töökoormusi saab kindlal ajal käitada, lisades rohkem sõlme, kasutage skaleeritavuse mõõtmiseks nõrka skaleerimist. Nõrga skaleerimise korral suureneb probleemi suurus NeuronCoresi arvuga sama kiirusega, mis jätab töömahu NeuronCoresi kohta samaks. Nõrga skaleerimise või sõlmede lisamise mõju suurenenud töökoormusele hindamiseks eemaldage lihtsalt treeningskriptist ülaltoodud rida ja hoidke gradiendi kogumise sammude arv konstantsena treeningskriptis esitatud vaikeväärtusega (32).
Hinnake oma tulemusi
Pakume mõningaid võrdlusuuringu tulemusi Neuronite jõudluse leht skaleerimise mõju demonstreerimiseks. Andmed näitavad, kui kasulik on mitme eksemplari kasutamisest koolitustöö paralleelsustamiseks paljude erinevate suurte mudelite jaoks, et koolitada mastaapselt.
Puhastage oma infrastruktuur
Selle UltraClusteri kogu infrastruktuuri kustutamiseks kasutage pcluster
käsk klastri ja selle ressursside kustutamiseks:
Järeldus
Selles postituses arutasime, kuidas treeningtöö skaleerimine Trn1-UltraClusteris, mida toidavad AWS-i Trainium kiirendid, vähendab mudeli koolitamiseks kuluvat aega. Esitasime ka lingi aadressile Neuronite proovide hoidla, mis sisaldab juhiseid hajutatud koolitustöö juurutamiseks BERT-Large'i mudeli jaoks. Trn1-UltraCluster käivitab hajutatud koolituskoormuse, et koolitada ülisuured süvaõppemudelid mastaapselt. Hajutatud koolituse seadistus annab palju kiirema mudeli ühtlustamise võrreldes ühe Trn1 eksemplari treenimisega.
Trainiumi toega Trn1 eksemplaride kasutamise alustamise kohta lisateabe saamiseks külastage veebilehte Neuronide dokumentatsioon.
Autoritest
KC Tung on AWS Annapurna Labsi vanemlahenduse arhitekt. Ta on spetsialiseerunud suurte süvaõppemudelite väljaõppele ja pilves laialdasele kasutuselevõtule. Tal on Ph.D. molekulaarbiofüüsikas Texase ülikooli Southwesterni meditsiinikeskusest Dallases. Ta on esinenud AWS Summits ja AWS Reinvent. Täna aitab ta klientidel koolitada ja juurutada suuri PyTorchi ja TensorFlow mudeleid AWS-i pilves. Ta on kahe raamatu autor: Õppige TensorFlow Enterprise'i ja TensorFlow 2 taskuviide.
Jeffrey Huynh on AWS Annapurna Labsi peainsener. Ta on kirglik aidata klientidel treenida ja järeldada töökoormust Trainium ja Inferentia kiirendiseadmetes, kasutades AWS Neuron SDK. Ta on Caltechi/Stanfordi vilistlane, kellel on kraadid füüsikas ja EEs. Talle meeldib jooksmine, tennis, süüa teha ning lugeda teadusest ja tehnoloogiast.
Shruti Koparkar on AWS-i vanemtoodete turundusjuht. Ta aitab klientidel uurida, hinnata ja oma masinõppe vajaduste jaoks EC2 kiirendatud andmetöötluse infrastruktuuri kasutusele võtta.
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- Platoblockchain. Web3 metaversiooni intelligentsus. Täiustatud teadmised. Juurdepääs siia.
- Allikas: https://aws.amazon.com/blogs/machine-learning/scaling-large-language-model-llm-training-with-amazon-ec2-trn1-ultraclusters/
- 000
- 1
- 10
- 100
- 2022
- 7
- 9
- a
- MEIST
- üle
- kiirendatud
- kiirendi
- kiirendid
- juurdepääs
- juurdepääsetav
- Vastavalt
- konto
- kogunemine
- saavutada
- üle
- lisamine
- aadress
- vastu võtma
- pärast
- Materjal: BPA ja flataatide vaba plastik
- paigutatud
- eraldamine
- Amazon
- Amazon EC2
- summa
- ja
- Teine
- API
- arhitektuur
- autor
- kättesaadavus
- saadaval
- AWS
- AWS CloudFormation
- tagasi
- Bandwidth
- põhiline
- sest
- on
- võrrelda
- kasu
- miljardeid
- Biofüüsika
- Raamatud
- lühidalt
- tooma
- lai
- ehitatud
- Kutsub
- lööb
- juhul
- keskus
- kontrollima
- laastud
- Vali
- Cloud
- Cluster
- kood
- Kollektiivne
- KOMMUNIKATSIOON
- võrreldav
- võrreldes
- täitma
- komponendid
- arvutamine
- Arvutama
- arvutustehnika
- konfiguratsioon
- konsool
- pidev
- sisaldab
- kontroller
- Lähenemine
- tuum
- Vastav
- Maksma
- looma
- loodud
- loob
- loomine
- loomine
- Praegune
- Kliendid
- Dallas
- andmed
- Andmekeskus
- andmekogumid
- kuupäev
- Päeva
- sügav
- sügav õpe
- vaikimisi
- Määratleb
- tarnima
- Nõudlus
- näitama
- näitab
- juurutada
- lähetatud
- kasutuselevõtu
- kavandatud
- detailid
- kindlaksmääratud
- seadmed
- erinev
- arutatud
- levitada
- jagatud
- jagatud koolitus
- alla
- lae alla
- juht
- ajal
- iga
- mõju
- tõhusalt
- võimaldama
- võimaldab
- insener
- tagades
- keskkond
- hindama
- hindamine
- näide
- ootama
- ootab
- Selgitama
- uurima
- kangas
- nägu
- Tuttav
- kiiremini
- fail
- fikseeritud
- FLEET
- Paindlikkus
- keskendub
- järgima
- Järel
- järgneb
- avastatud
- Alates
- täis
- värav
- Üldine
- põlvkond
- saama
- Git
- antud
- Globaalne
- graafikud
- suurem
- Grupp
- Kasvama
- käsi
- juhataja
- aitama
- kasulik
- aidates
- aitab
- Suur
- suur jõudlus
- hoidma
- võõrustaja
- Lahtiolekuajad
- Kuidas
- Kuidas
- hpc
- HTML
- HTTPS
- sajad
- ID
- tuvastatud
- mõju
- kaudselt
- oluline
- in
- sisaldama
- hõlmab
- Kaasa arvatud
- kasvanud
- Tõstab
- näitama
- näitab
- Lõpmatu
- info
- Infrastruktuur
- paigaldatud
- Näiteks
- juhised
- omavahel seotud
- huvi
- Interface
- liidesed
- Internet
- internetiühendus
- kutsub
- IT
- John
- töö
- Tööturg
- Json
- hoidma
- pidamine
- Võti
- Labs
- keel
- suur
- suurem
- suurim
- algatama
- käivitatud
- Õppida
- õppimine
- Tase
- raamatukogud
- joon
- LINK
- Loetletud
- LLM
- loogiline
- Vaata
- masin
- masinõpe
- tehtud
- juhtima
- juhtimine
- juht
- palju
- Turundus
- mõõtma
- meetmed
- mehhanism
- meditsiini-
- Mälu
- Metaandmed
- mudel
- mudelid
- molekulaarne
- rohkem
- mitmekordne
- nimi
- vajalik
- Vajadus
- vajadustele
- võrk
- võrgustike loomine
- sõlme
- sõlmed
- number
- jälgima
- oktoober
- pakkumine
- Pakkumised
- ONE
- töötama
- valik
- Valikud
- et
- OS
- Muu
- enda
- pakette
- pakitud
- Parallel
- parameetrid
- osa
- eriline
- kirglik
- jõudlus
- Füüsika
- Platon
- Platoni andmete intelligentsus
- PlatoData
- Punkt
- võimalik
- post
- võim
- sisse
- Peamine
- era-
- Probleem
- protsess
- töötlejad
- Toode
- Edu
- anda
- tingimusel
- avalik
- eesmärk
- Python
- pütorch
- Ramp
- valik
- määr
- Valmisolek
- Lugemine
- reaalne
- reaalajas
- põhjus
- saama
- saab
- vähendama
- vähendab
- viitab
- piirkond
- vabastatud
- kõrvaldama
- taotleda
- nõudma
- Vajab
- Vahendid
- Tulemused
- voorud
- jooks
- jooksmine
- sama
- Hoiused
- Skaalautuvus
- Skaala
- ketendamine
- stsenaarium
- teadus
- Teadus ja tehnoloogia
- skripte
- Teine
- Teine põlvkond
- vanem
- Teenused
- komplekt
- seade
- Jaga
- Shell
- näidatud
- Näitused
- lihtne
- lihtsalt
- ühekordne
- SUURUS
- So
- lahendus
- mõned
- ulatub
- spetsialiseerunud
- määratletud
- kiirus
- Spin
- algus
- alustatud
- riik
- olek
- Sammud
- ladustamine
- tugev
- esitamine
- esitama
- esitatud
- alamvõrgu
- alamvõrgud
- Edukalt
- selline
- Tippkohtumistel
- superarvuti
- Toetatud
- süsteem
- võtab
- Tehnoloogia
- tensorivool
- terminal
- texas
- .
- oma
- sellega
- Läbi
- läbilaskevõime
- aeg
- korda
- et
- täna
- tööriist
- töövahendid
- Summa
- Rong
- koolitus
- Tõlge
- tüüpiliselt
- Ubuntu
- Ülikool
- tulemas
- Uudised
- URL
- Kasutus
- kasutama
- Kasutaja
- väärtus
- sort
- kontrollima
- versioon
- kaudu
- vaade
- virtuaalne
- nädalat
- mis
- kuigi
- lai
- will
- jooksul
- ilma
- Töö
- oleks
- pakkima
- yaml
- sa
- Sinu
- sephyrnet
- null
- tsoonid