Bygggrundsmodeller (FM) kräver att man bygger, underhåller och optimerar stora kluster för att träna modeller med tiotals till hundratals miljarder parametrar på stora mängder data. Att skapa en motståndskraftig miljö som kan hantera misslyckanden och miljöförändringar utan att förlora dagar eller veckor av modellutbildningsframsteg är en operativ utmaning som kräver att du implementerar klusterskalning, proaktiv hälsoövervakning, jobbkontroll och kapacitet att automatiskt återuppta utbildningen om misslyckanden eller problem skulle uppstå. .
Vi är glada att dela det Amazon SageMaker HyperPod är nu allmänt tillgänglig för att möjliggöra träningsfundamentmodeller med tusentals acceleratorer upp till 40 % snabbare genom att tillhandahålla en mycket motståndskraftig träningsmiljö samtidigt som man eliminerar de odifferentierade tunga lyften som är involverade i drift av storskaliga träningskluster. Med SageMaker HyperPod kan utövare av maskininlärning (ML) träna FM:er i veckor och månader utan avbrott och utan att behöva ta itu med problem med maskinvarufel.
Kunder som Stability AI använder SageMaker HyperPod för att träna sina grundmodeller, inklusive Stable Diffusion.
"Som det ledande open source-generativa AI-företaget är vårt mål att maximera tillgängligheten för modern AI. Vi bygger grundmodeller med tiotals miljarder parametrar, som kräver infrastrukturen för att skala träningsprestanda optimalt. Med SageMaker HyperPods hanterade infrastruktur och optimeringsbibliotek kan vi minska utbildningstiden och kostnaderna med över 50 %. Det gör vår modellträning mer motståndskraftig och prestanda att bygga toppmoderna modeller snabbare."
– Emad Mostaque, grundare och VD för Stability AI.
För att göra hela cykeln med att utveckla FM: er motståndskraftig mot hårdvarufel, hjälper SageMaker HyperPod dig att skapa kluster, övervaka klustertillstånd, reparera och byta ut felaktiga noder i farten, spara täta kontrollpunkter och automatiskt återuppta träningen utan att förlora framsteg. Dessutom är SageMaker HyperPod förkonfigurerad med Amazon SageMaker distribuerade utbildningsbibliotek, inklusive SageMaker dataparallellismbibliotek (SMDDP) och SageMaker modellparallellismbibliotek (SMP), för att förbättra FM-träningsprestanda genom att göra det enkelt att dela upp träningsdata och modeller i mindre bitar och bearbeta dem parallellt över klusternoderna, samtidigt som klustrets beräknings- och nätverksinfrastruktur utnyttjas fullt ut. SageMaker HyperPod integrerar Slurm Workload Manager för kluster- och träningsarbete.
Översikt över Slurm Workload Manager
slurm, tidigare känt som Simple Linux Utility for Resource Management, är en jobbschemaläggare för att köra jobb på ett distribuerat datorkluster. Det ger också ett ramverk för att köra parallella jobb med hjälp av NVIDIA Collective Communications Library (NCCL) or Message Passing Interface (MPI) standarder. Slurm är ett populärt klusterresurshanteringssystem med öppen källkod som används i stor utsträckning av högpresterande beräkningar (HPC) och generativa arbetsbelastningar för AI- och FM-träning. SageMaker HyperPod ger ett enkelt sätt att komma igång med ett Slurm-kluster på några minuter.
Följande är ett arkitektoniskt diagram på hög nivå över hur användare interagerar med SageMaker HyperPod och hur de olika klusterkomponenterna interagerar med varandra och andra AWS-tjänster, som t.ex. Amazon FSx för Luster och Amazon enkel lagringstjänst (Amazon S3).
Slurmjobb skickas av kommandon på kommandoraden. Kommandona för att köra Slurm-jobb är srun
och sbatch
. De srun
kommando kör träningsjobbet i interaktivt och blockerande läge, och sbatch
körs i batchbearbetning och icke-blockerande läge. srun
används mest för att köra omedelbara jobb, medan sbatch
kan användas för senare körningar av jobb.
För information om ytterligare Slurm-kommandon och konfiguration, se Slurm Workload Manager dokumentation.
Auto-resume och healing kapacitet
En av de nya funktionerna med SageMaker HyperPod är möjligheten att få automatiskt återuppta dina jobb. Tidigare, när en arbetarnod misslyckades under en tränings- eller finjusteringskörning, var det upp till användaren att kontrollera jobbets status, starta om jobbet från den senaste kontrollpunkten och fortsätta att övervaka jobbet under hela körningen. Med utbildningsjobb eller finjusteringsjobb som behöver pågå i dagar, veckor eller till och med månader åt gången, blir detta kostsamt på grund av den extra administrativa omkostnaden för användaren som behöver spendera cykler för att övervaka och underhålla jobbet i händelse av att en nodkrascher, såväl som kostnaden för vilotid för dyra accelererade beräkningsinstanser.
SageMaker HyperPod adresserar jobbresiliens genom att använda automatiska hälsokontroller, nodbyte och jobbåterställning. Slurmjobb i SageMaker HyperPod övervakas med hjälp av en SageMaker anpassad Slurm-plugin med SPANK ram. När ett träningsjobb misslyckas kommer SageMaker HyperPod att inspektera klustrets hälsa genom en uppsättning hälsokontroller. Om en felaktig nod hittas i klustret kommer SageMaker HyperPod automatiskt att ta bort noden från klustret, ersätta den med en frisk nod och starta om träningsjobbet. När du använder checkpointing i träningsjobb kan alla avbrutna eller misslyckade jobb återupptas från den senaste checkpointen.
Lösningsöversikt
För att distribuera din SageMaker HyperPod förbereder du först din miljö genom att konfigurera din Amazon Virtual Private Cloud (Amazon VPC) nätverk och säkerhetsgrupper, distribuerar stödtjänster som FSx for Luster i din VPC och publicerar dina Slurm-livscykelskript till en S3-bucket. Du distribuerar och konfigurerar sedan din SageMaker HyperPod och ansluter till huvudnoden för att starta dina träningsjobb.
Förutsättningar
Innan du skapar din SageMaker HyperPod måste du först konfigurera din VPC, skapa ett FSx for Luster-filsystem och upprätta en S3-bucket med dina önskade klusterlivscykelskript. Du behöver också den senaste versionen av AWS-kommandoradsgränssnitt (AWS CLI) och CLI-plugin installerad för AWS Session Manager, en förmåga av AWS systemchef.
SageMaker HyperPod är helt integrerad med din VPC. För information om hur du skapar en ny VPC, se Skapa en standard VPC or Skapa en VPC. För att tillåta en sömlös anslutning med högsta prestanda mellan resurser bör du skapa alla dina resurser i samma region och tillgänglighetszon, samt säkerställa att de tillhörande säkerhetsgruppsreglerna tillåter anslutning mellan klusterresurser.
Nästa du skapa ett FSx för Luster-filsystem. Detta kommer att fungera som det högpresterande filsystemet för användning under vår modellutbildning. Se till att säkerhetsgrupperna FSx for Luster och kluster tillåter inkommande och utgående kommunikation mellan klusterresurser och filsystemet FSx for Luster.
För att ställa in dina klusterlivscykelskript, som körs när händelser som en ny klusterinstans inträffar, skapar du en S3-bucket och kopierar sedan och anpassar eventuellt standardlivscykelskripten. För det här exemplet lagrar vi alla livscykelskript i en hinkprefix av lifecycle-scripts
.
Först laddar du ner exempel på livscykelskripten från GitHub repo. Du bör anpassa dessa för att passa dina önskade klusterbeteenden.
Skapa sedan en S3-hink för att lagra de anpassade livscykelskripten.
Kopiera sedan standardlivscykelskripten från din lokala katalog till önskad bucket och prefix med aws s3 sync
:
Slutligen, för att ställa in klienten för förenklad anslutning till klustrets huvudnod, bör du installera eller uppdatera AWS CLI och installera AWS Session Manager CLI-plugin för att tillåta interaktiva terminalanslutningar att administrera klustret och köra utbildningsjobb.
Du kan skapa ett SageMaker HyperPod-kluster med antingen tillgängliga on-demand-resurser eller genom att begära en kapacitetsreservation med SageMaker. För att skapa en kapacitetsreservation skapar du en begäran om kvotökning för att reservera specifika beräkningsinstanstyper och kapacitetstilldelning på instrumentpanelen Service Quotas.
Konfigurera ditt träningskluster
För att skapa ditt SageMaker HyperPod-kluster, utför följande steg:
- Välj på SageMaker-konsolen Klusterhantering under HyperPod-kluster i navigeringsfönstret.
- Välja Skapa ett kluster.
- Ange ett klusternamn och eventuellt eventuella taggar som ska tillämpas på klusterresurser och välj sedan Nästa.
- Välja Skapa instansgrupp och ange instansgruppens namn, instanstyp som behövs, antal instanser som önskas och S3-hinken och prefixsökvägen där du kopierade dina klusterlivscykelskript tidigare.
Det rekommenderas att ha olika instansgrupper för kontrollernoderna som används för att administrera klustret och skicka jobb och arbetsnoderna som används för att köra träningsjobb med accelererade beräkningsinstanser. Du kan valfritt konfigurera en extra instansgrupp för inloggningsnoder.
- Du skapar först kontrollinstansgruppen, som kommer att inkludera klusterhuvudnoden.
- För det här fallet gruppens AWS identitets- och åtkomsthantering (IAM) roll, välj Skapa en ny roll och ange eventuella S3-segment som du vill att klusterinstanserna i instansgruppen ska ha tillgång till.
Den genererade rollen kommer att beviljas skrivskyddad åtkomst till de angivna segmenten som standard.
- Välja Skapa roll.
- Ange skriptnamnet som ska köras vid varje instansskapande i skriptprompten vid skapande. I det här exemplet anropas on-create-skriptet
on_create.sh
. - Välja Save.
- Välja Skapa instansgrupp för att skapa din arbetsinstansgrupp.
- Ange alla begärda detaljer, inklusive instanstyp och önskad kvantitet.
Det här exemplet använder fyra ml.trn1.32xl accelererade instanser för att utföra vårt träningsjobb. Du kan använda samma IAM-roll som tidigare eller anpassa rollen för arbetarinstanserna. På samma sätt kan du använda olika livscykelskript vid skapande för den här arbetsinstansgruppen än den tidigare instansgruppen.
- Välja Nästa att fortsätta.
- Välj önskade VPC-, subnät- och säkerhetsgrupper för dina klusterinstanser.
Vi är värd för klusterinstanserna i en enda tillgänglighetszon och undernät för att säkerställa låg latens.
Observera att om du kommer åt S3-data ofta, rekommenderas det att skapa en VPC-slutpunkt som är associerad med det privata subnätets routingtabell för att minska eventuella dataöverföringskostnader.
- Välja Nästa.
- Granska sammanfattningen av klusterdetaljer och välj sedan Skicka.
Alternativt, för att skapa din SageMaker HyperPod med AWS CLI, anpassa först JSON-parametrarna som används för att skapa klustret:
Använd sedan följande kommando för att skapa klustret med hjälp av de medföljande ingångarna:
Kör ditt första träningsjobb med Llama 2
Observera att användningen av Llama 2-modellen regleras av Meta-licensen. För att ladda ner modellvikter och tokenizer, besök webbplats och acceptera licensen innan du begär åtkomst på Metas Hugging Face-webbplats.
När klustret har körts loggar du in med Session Manager med kluster-id, instansgruppsnamn och instans-id. Använd följande kommando för att se dina klusterdetaljer:
Anteckna kluster-ID som ingår i kluster-ARN i svaret.
Använd följande kommando för att hämta instansgruppens namn och instans-ID som behövs för att logga in i klustret.
Anteckna InstanceGroupName
och InstanceId
i svaret eftersom dessa kommer att användas för att ansluta till instansen med Session Manager.
Nu använder du Session Manager för att logga in på huvudnoden, eller en av inloggningsnoderna, och köra ditt träningsjobb:
Därefter ska vi förbereda miljön och ladda ner Llama 2 och RedPajamas dataset. För fullständig kod och en steg-för-steg-genomgång av detta, följ instruktionerna på AWSome distribuerad utbildning GitHub -repo.
Följ stegen som beskrivs i 2.test_cases/8.neuronx-nemo-megatron/README.md
fil. Efter att ha följt stegen för att förbereda miljön, förbereda modellen, ladda ner och tokenisera datasetet och förkompilera modellen, bör du redigera 6.pretrain-model.sh
manus och sbatch
jobbinlämningskommando för att inkludera en parameter som gör att du kan dra nytta av funktionen för automatisk återupptagning av SageMaker HyperPod.
Redigera sbatch
rad för att se ut så här:
Efter att ha skickat in jobbet får du en JobID
som du kan använda för att kontrollera jobbstatus med följande kod:
Dessutom kan du övervaka jobbet genom att följa jobbutdataloggen med följande kod:
Städa upp
För att ta bort ditt SageMaker HyperPod-kluster, använd antingen SageMaker-konsolen eller följande AWS CLI-kommando:
Slutsats
Det här inlägget visade dig hur du förbereder din AWS-miljö, distribuerar ditt första SageMaker HyperPod-kluster och tränar en 7-miljarder parameter Llama 2-modell. SageMaker HyperPod är allmänt tillgänglig idag i regionerna Amerika (N. Virginia, Ohio och Oregon), Asien och Stillahavsområdet (Singapore, Sydney och Tokyo) och Europa (Frankfurt, Irland och Stockholm). De kan distribueras via SageMaker-konsolen, AWS CLI och AWS SDK, och de stöder instansfamiljerna p4d, p4de, p5, trn1, inf2, g5, c5, c5n, m5 och t3.
För att lära dig mer om SageMaker HyperPod, besök Amazon SageMaker HyperPod.
Om författarna
Brad Doran är Senior Technical Account Manager på Amazon Web Services, fokuserad på generativ AI. Han är ansvarig för att lösa tekniska utmaningar för generativa AI-kunder inom det digitala infödda affärsmarknadssegmentet. Han kommer från en infrastruktur- och mjukvaruutvecklingsbakgrund och bedriver för närvarande doktorandstudier och forskning inom artificiell intelligens och maskininlärning.
Keita Watanabe är Senior GenAI Specialist Solutions Architect på Amazon Web Services, där han hjälper till att utveckla maskininlärningslösningar med OSS-projekt som Slurm och Kubernetes. Hans bakgrund är inom forskning och utveckling av maskininlärning. Innan Keita började på AWS arbetade Keita i e-handelsbranschen som forskare och utvecklade system för bildhämtning för produktsökning. Keita har en doktorsexamen i naturvetenskap från University of Tokyo.
Justin Pirtle är en Principal Solutions Architect på Amazon Web Services. Han ger regelbundet råd till generativa AI-kunder i att designa, distribuera och skala deras infrastruktur. Han är en regelbunden talare på AWS-konferenser, inklusive re:Invent, såväl som andra AWS-evenemang. Justin har en kandidatexamen i Management Information Systems från University of Texas i Austin och en magisterexamen i Software Engineering från Seattle University.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/introducing-amazon-sagemaker-hyperpod-to-train-foundation-models-at-scale/
- :är
- :var
- $UPP
- 1
- 100
- 12
- 14
- 24
- 7
- a
- förmåga
- Om Oss
- accelererad
- acceleratorer
- Acceptera
- tillgång
- tillgänglighet
- åtkomst
- Konto
- tvärs
- Dessutom
- Annat
- adresser
- administrera
- administrativa
- Fördel
- Efter
- AI
- Alla
- fördelning
- tillåter
- tillåter
- också
- amason
- Amazon SageMaker
- Amazon Web Services
- Americas
- mängder
- an
- och
- vilken som helst
- Ansök
- arkitektoniska
- ÄR
- stiga upp
- konstgjord
- artificiell intelligens
- Konstgjord intelligens och maskininlärning
- AS
- asien
- Asiens pacific
- associerad
- At
- austin
- Automatiserad
- automatiskt
- tillgänglighet
- tillgänglig
- AWS
- bakgrund
- BE
- blir
- innan
- beteenden
- mellan
- miljarder
- blockering
- SLUTRESULTAT
- Byggnad
- företag
- by
- kallas
- KAN
- kapacitet
- kapacitet
- Kapacitet
- VD
- utmanar
- utmaningar
- Förändringar
- ta
- Kontroller
- Välja
- klient
- kluster
- koda
- Kollektiv
- kommer
- Kommunikation
- Trygghet i vårdförloppet
- företag
- fullborda
- komponenter
- Compute
- databehandling
- konferenser
- konfiguration
- konfigurering
- Kontakta
- anslutning
- Anslutningar
- Konsol
- fortsätta
- styrenhet
- Pris
- kostsam
- Kostar
- skapa
- Skapa
- skapande
- För närvarande
- beställnings
- Kunder
- skräddarsy
- kundanpassad
- cykel
- cykler
- instrumentbräda
- datum
- Dagar
- behandla
- Standard
- Examen
- distribuera
- utplacerade
- utplacera
- design
- önskas
- detaljerad
- detaljer
- utveckla
- utveckla
- Utveckling
- olika
- Diffusion
- digital
- Störningar
- distribueras
- distribuerad databehandling
- distribuerad utbildning
- ladda ner
- grund
- under
- varje
- e-handel
- antingen
- eliminera
- möjliggöra
- Slutpunkt
- Teknik
- säkerställa
- Hela
- Miljö
- miljömässigt
- etablera
- Europa
- Även
- händelse
- händelser
- exempel
- exciterade
- dyra
- extra
- Ansikte
- Misslyckades
- misslyckas
- Misslyckande
- misslyckanden
- familjer
- snabbare
- defekt
- Leverans
- Funktioner
- Fil
- Förnamn
- fokuserade
- följer
- efter
- För
- förr
- hittade
- fundament
- grundare
- Grundare och VD
- fyra
- Ramverk
- Frankfurt
- frekvent
- ofta
- från
- full
- fullständigt
- allmänhet
- genereras
- generativ
- Generativ AI
- skaffa sig
- GitHub
- Målet
- kommer
- regleras
- beviljats
- Grupp
- Gruppens
- hantera
- hårdvara
- Har
- har
- he
- huvud
- läkning
- Hälsa
- friska
- tung
- tunga lyft
- hjälper
- Hög
- högnivå
- högpresterande
- högsta
- höggradigt
- hans
- innehar
- värd
- Hur ser din drömresa ut
- How To
- HPC
- html
- http
- HTTPS
- Hundratals
- ID
- Identitet
- Idle
- if
- bild
- omedelbar
- genomföra
- förbättra
- in
- innefattar
- ingår
- Inklusive
- Öka
- industrin
- informationen
- Informationssystem
- Infrastruktur
- ingångar
- installera
- installerad
- exempel
- instruktioner
- integrerade
- integrerar
- Intelligens
- interagera
- interaktiva
- Gränssnitt
- avbruten
- in
- införa
- involverade
- irland
- problem
- IT
- Jobb
- Lediga jobb
- sammanfogning
- jpg
- json
- Justin
- känd
- Large
- storskalig
- Latens
- senare
- senaste
- ledande
- LÄRA SIG
- inlärning
- bibliotek
- Bibliotek
- Licens
- livscykel
- lyft
- tycka om
- linje
- linux
- Lama
- lokal
- log
- logga in
- se
- ser ut som
- förlora
- Låg
- Maskinen
- maskininlärning
- bibehålla
- upprätthålla
- göra
- GÖR
- Framställning
- förvaltade
- ledning
- chef
- marknad
- master
- Materia
- Maximera
- meta
- minuter
- ML
- Mode
- modell
- modeller
- Modern Konst
- Övervaka
- övervakas
- övervakning
- månader
- mer
- för det mesta
- namn
- nativ
- Navigering
- Behöver
- behövs
- behöver
- nät
- Nya
- Nya funktioner
- nod
- noder
- Notera
- nu
- Nvidia
- of
- Ohio
- on
- On-Demand
- ONE
- öppet
- öppen källkod
- drift
- operativa
- optimering
- optimera
- or
- orkestrering
- Oregon
- Us
- Övriga
- vår
- produktion
- över
- stilla havet
- panelen
- Parallell
- parameter
- parametrar
- Förbi
- bana
- Utföra
- prestanda
- phd
- plato
- Platon Data Intelligence
- PlatonData
- plugin
- Populära
- Inlägg
- potentiell
- Förbered
- föregående
- tidigare
- Principal
- Innan
- privat
- Proaktiv
- Fortsätt
- bearbetning
- Produkt
- Framsteg
- projekt
- förutsatt
- ger
- tillhandahålla
- publicering
- mängd
- RE
- rekommenderas
- återvinning
- minska
- hänvisa
- region
- regioner
- regelbunden
- regelbundet
- ta bort
- reparation
- ersätta
- ersättning
- begära
- kräver
- Kräver
- forskning
- forskning och utveckling
- Bokning
- Reserv
- elastisk
- resurs
- Resurser
- respons
- ansvarig
- Fortsätt
- Roll
- routing
- regler
- Körning
- rinnande
- kör
- sagemaker
- Samma
- Save
- Skala
- skalning
- Vetenskap
- Forskare
- skript
- skript
- sdks
- sömlös
- Sök
- Seattle
- säkerhet
- se
- segmentet
- senior
- tjänar
- service
- Tjänster
- session
- in
- Dela
- skall
- visade
- Liknande
- Enkelt
- förenklade
- Singapore
- enda
- mindre
- Mjukvara
- mjukvaruutveckling
- mjukvaruutveckling
- Lösningar
- Lösa
- Källa
- Högtalare
- specialist
- specifik
- specificerade
- spendera
- delas
- Stabilitet
- stabil
- standarder
- starta
- state-of-the-art
- status
- Steg
- förvaring
- lagra
- okomplicerad
- studier
- underkastelse
- skicka
- lämnats
- undernät
- sådana
- följer
- svit
- SAMMANFATTNING
- stödja
- Stödjande
- säker
- sydney
- synkronisera.
- system
- System
- bord
- Ta
- Teknisk
- tiotals
- terminal
- texas
- än
- den där
- Smakämnen
- deras
- Dem
- sedan
- Dessa
- de
- detta
- tusentals
- Genom
- hela
- tid
- till
- i dag
- symbolisera
- Tokyo
- Tåg
- Utbildning
- överföring
- Typ
- typer
- under
- universitet
- University of Tokyo
- Uppdatering
- användning
- Begagnade
- Användare
- användare
- användningar
- med hjälp av
- verktyg
- Använda
- olika
- Omfattande
- version
- via
- utsikt
- Virginia
- Virtuell
- Besök
- genomgång
- var
- Sätt..
- we
- webb
- webbservice
- veckor
- VÄL
- när
- som
- medan
- brett
- wikipedia
- kommer
- med
- inom
- utan
- arbetade
- arbetstagaren
- skulle
- Om er
- Din
- zephyrnet