I dag er vi glade for at kunne annoncere forhåndsvisningen af Amazon SageMaker Profiler, en evne til Amazon SageMaker der giver et detaljeret overblik over AWS-beregningsressourcerne, der leveres under træning af deep learning-modeller på SageMaker. Med SageMaker Profiler kan du spore alle aktiviteter på CPU'er og GPU'er, såsom CPU- og GPU-brug, kernekørsel på GPU'er, kernelanceringer på CPU'er, synkroniseringsoperationer, hukommelseshandlinger på tværs af GPU'er, latenser mellem kernelanceringer og tilsvarende kørsler og dataoverførsel mellem CPU'er og GPU'er. I dette indlæg guider vi dig gennem mulighederne i SageMaker Profiler.
SageMaker Profiler leverer Python-moduler til annotering af PyTorch- eller TensorFlow-træningsscripts og aktivering af SageMaker Profiler. Det tilbyder også en brugergrænseflade (UI), der visualiserer profil, en statistisk oversigt over profilerede hændelser og tidslinjen for et træningsjob til sporing og forståelse af tidsforholdet mellem hændelser mellem GPU'er og CPU'er.
Behovet for profileringsuddannelsesjob
Med fremkomsten af deep learning (DL) er machine learning (ML) blevet computer- og dataintensiv, hvilket typisk kræver multi-node, multi-GPU-klynger. Efterhånden som avancerede modeller vokser i størrelse i størrelsesordenen billioner af parametre, stiger deres beregningsmæssige kompleksitet og omkostninger også hurtigt. ML-udøvere skal klare fælles udfordringer med effektiv ressourceudnyttelse, når de træner så store modeller. Dette er især tydeligt i store sprogmodeller (LLM'er), som typisk har milliarder af parametre og derfor kræver store multi-node GPU-klynger for at træne dem effektivt.
Når vi træner disse modeller på store computerklynger, kan vi støde på udfordringer med computerressourceoptimering såsom I/O-flaskehalse, kernelanceringsforsinkelser, hukommelsesgrænser og lav ressourceudnyttelse. Hvis træningsjobkonfigurationen ikke er optimeret, kan disse udfordringer resultere i ineffektiv hardwareudnyttelse og længere træningstider eller ufuldstændige træningskørsler, hvilket øger de samlede omkostninger og tidslinjer for projektet.
Forudsætninger
Følgende er forudsætningerne for at begynde at bruge SageMaker Profiler:
- Et SageMaker-domæne på din AWS-konto – For instruktioner om opsætning af et domæne, se Ombord på Amazon SageMaker Domain ved hjælp af hurtig opsætning. Du skal også tilføje domænebrugerprofiler for individuelle brugere for at få adgang til SageMaker Profiler UI-applikationen. For mere information, se Tilføj og fjern SageMaker Domain-brugerprofiler.
- Tilladelser – Følgende liste er det minimumssæt af tilladelser, der skal tildeles til udførelsesrollen for at bruge SageMaker Profiler UI-applikationen:
sagemaker:CreateApp
sagemaker:DeleteApp
sagemaker:DescribeTrainingJob
sagemaker:SearchTrainingJobs
s3:GetObject
s3:ListBucket
Forbered og kør et træningsjob med SageMaker Profiler
For at begynde at fange kernekørsler på GPU'er, mens træningsjobbet kører, skal du ændre dit træningsscript ved hjælp af SageMaker Profiler Python-modulerne. Importer biblioteket og tilføj start_profiling()
, stop_profiling()
metoder til at definere begyndelsen og slutningen af profilering. Du kan også bruge valgfrie brugerdefinerede annoteringer til at tilføje markører i træningsscriptet for at visualisere hardwareaktiviteter under bestemte operationer i hvert trin.
Der er to tilgange, du kan tage til at profilere dine træningsscripts med SageMaker Profiler. Den første tilgang er baseret på profilering af fulde funktioner; den anden tilgang er baseret på profilering af specifikke kodelinjer i funktioner.
Brug konteksthåndteringen for at profilere efter funktioner smppy.annotate
for at kommentere fulde funktioner. Følgende eksempelscript viser, hvordan kontekstadministratoren implementeres for at omslutte træningsløkken og de fulde funktioner i hver iteration:
Du kan også bruge smppy.annotation_begin()
, smppy.annotation_end()
at annotere specifikke linjer kode i funktioner. For mere information, se dokumentation.
Konfigurer SageMaker træningsjobstarteren
Når du er færdig med at kommentere og konfigurere profileringsinitieringsmodulerne, skal du gemme træningsscriptet og forberede SageMaker framework-estimatoren til træning ved hjælp af SageMaker Python SDK.
- Opsæt en
profiler_config
objekt ved hjælp afProfilerConfig
,Profiler
moduler som følger: - Opret en SageMaker-estimator med
profiler_config
objekt oprettet i det forrige trin. Følgende kode viser et eksempel på oprettelse af en PyTorch-estimator:
Hvis du vil oprette en TensorFlow-estimator, skal du importere sagemaker.tensorflow.TensorFlow
i stedet, og angiv en af TensorFlow-versionerne, der understøttes af SageMaker Profiler. For mere information om understøttede rammer og instanstyper, se Understøttede rammer.
- Start træningsjobbet ved at køre tilpasningsmetoden:
Start SageMaker Profiler UI
Når træningsopgaven er fuldført, kan du starte SageMaker Profiler UI for at visualisere og udforske træningsjobbets profil. Du kan få adgang til SageMaker Profiler UI-applikationen via SageMaker Profilers landingsside på SageMaker-konsollen eller gennem SageMaker-domænet.
For at starte SageMaker Profiler UI-applikationen på SageMaker-konsollen skal du udføre følgende trin:
- Vælg på SageMaker-konsollen Profiler i navigationsruden.
- Under Kom i gang, vælg det domæne, hvor du vil starte SageMaker Profiler UI-applikationen.
Hvis din brugerprofil kun tilhører ét domæne, vil du ikke se muligheden for at vælge et domæne.
- Vælg den brugerprofil, som du vil starte SageMaker Profiler UI-applikationen for.
Hvis der ikke er nogen brugerprofil i domænet, skal du vælge Opret brugerprofil. For mere information om oprettelse af en ny brugerprofil, se Tilføj og fjern brugerprofiler.
- Vælg Åbn Profiler.
Du kan også start SageMaker Profiler UI fra siden med domænedetaljer.
Få indsigt fra SageMaker Profiler
Når du åbner SageMaker Profiler UI, Vælg og indlæs en profil siden åbnes, som vist på det følgende skærmbillede.
Du kan se en liste over alle de træningsjob, der er blevet indsendt til SageMaker Profiler og søge efter et bestemt træningsjob ved dets navn, oprettelsestidspunkt og kørestatus (I gang, Udført, Mislykket, Stoppet eller Stoppet). For at indlæse en profil skal du vælge det træningsjob, du vil se og vælge Load. Jobnavnet skal fremgå af Indlæst profil afsnit øverst.
Vælg jobnavnet for at generere dashboardet og tidslinjen. Bemærk, at når du vælger jobbet, åbner brugergrænsefladen automatisk dashboardet. Du kan indlæse og visualisere én profil ad gangen. For at indlæse en anden profil skal du først fjerne den tidligere indlæste profil. For at fjerne en profil skal du vælge skraldespandsikonet i Indlæst profil sektion.
Til dette indlæg ser vi profilen af en ALBEF træningsjob på to ml.p4d.24xlarge instanser.
Når du er færdig med at indlæse og vælge træningsjobbet, åbner brugergrænsefladen Hovedmenu side, som vist på det følgende skærmbillede.
Du kan se plottene for nøglemålinger, nemlig GPU's aktive tid, GPU-udnyttelse over tid, CPU-aktiv tid og CPU-udnyttelse over tid. Cirkeldiagrammet for GPU's aktive tid viser procentdelen af GPU's aktive tid vs. GPU's inaktive tid, hvilket gør det muligt for os at kontrollere, om GPU'erne er mere aktive end inaktive gennem hele træningsjobbet. Tidslinjegrafen for GPU-udnyttelse over tid viser den gennemsnitlige GPU-udnyttelsesrate over tid pr. node, idet alle noderne samles i et enkelt diagram. Du kan kontrollere, om GPU'erne har en ubalanceret arbejdsbyrde, problemer med underudnyttelse, flaskehalse eller inaktive problemer i bestemte tidsintervaller. For flere detaljer om fortolkning af disse metrics, se dokumentation.
Dashboardet giver dig yderligere plots, inklusive tid brugt af alle GPU-kerner, tid brugt af de 15 bedste GPU-kerner, lanceringstællinger for alle GPU-kerner og lanceringstællinger af de 15 bedste GPU-kerner, som vist i det følgende skærmbillede.
Endelig giver dashboardet dig mulighed for at visualisere yderligere målinger, såsom trintidsfordelingen, som er et histogram, der viser fordelingen af trinvarigheder på GPU'er, og cirkeldiagrammet for kernepræcisionsfordeling, som viser procentdelen af tid brugt på at køre kerner i forskellige datatyper såsom FP32, FP16, INT32 og INT8.
Du kan også få et cirkeldiagram på GPU-aktivitetsfordelingen, der viser procentdelen af tid brugt på GPU-aktiviteter, såsom at køre kerner, hukommelse (memcpy
, memset
), og synkronisering (sync
). Du kan visualisere den procentdel af tid, der bruges på GPU-hukommelsesoperationer fra cirkeldiagrammet for distribution af GPU-hukommelsesoperationer.
Du kan også oprette dine egne histogrammer baseret på en brugerdefineret metrik, som du har annoteret manuelt som beskrevet tidligere i dette indlæg. Når du tilføjer en brugerdefineret annotation til et nyt histogram, skal du vælge eller indtaste navnet på den annotation, du tilføjede i træningsscriptet.
Tidslinjegrænseflade
SageMaker Profiler UI inkluderer også en tidslinjegrænseflade, som giver dig et detaljeret overblik over computerressourcerne på niveauet af operationer og kerner, der er planlagt på CPU'erne og kører på GPU'erne. Tidslinjen er organiseret i en træstruktur, der giver dig information fra værtsniveau til enhedsniveau, som vist på det følgende skærmbillede.
For hver CPU kan du spore CPU-ydelsestællerne, som f.eks clk_unhalted_ref.tsc
, itlb_misses.miss_causes_a_walk
. For hver GPU på 2x p4d.24xlarge-forekomsten kan du se en værtstidslinje og en enhedstidslinje. Kernellanceringer er på værtens tidslinje, og kernekørsler er på enhedens tidslinje.
Du kan også zoome ind på de enkelte trin. I det følgende skærmbillede har vi zoomet ind på step_41. Tidslinjen, der er valgt i det følgende skærmbillede, er AllReduce
drift, et vigtigt kommunikations- og synkroniseringstrin i distribueret træning, køres på GPU-0. I skærmbilledet skal du bemærke, at kernelanceringen i GPU-0-værten forbinder til kernekørslen i GPU-0-enhedsstrøm 1, angivet med pilen i cyan.
Tilgængelighed og overvejelser
SageMaker Profiler er tilgængelig i PyTorch (version 2.0.0 og 1.13.1) og TensorFlow (version 2.12.0 og 2.11.1). Følgende tabel indeholder links til de understøttede AWS Deep Learning Containere til SageMaker.
Framework | Udgave | AWS DLC-billed-URI |
PyTorch | 2.0.0 | 763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:2.0.0-gpu-py310-cu118-ubuntu20.04-sagemaker |
PyTorch | 1.13.1 | 763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:1.13.1-gpu-py39-cu117-ubuntu20.04-sagemaker |
TensorFlow | 2.12.0 | 763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.12.0-gpu-py310-cu118-ubuntu20.04-sagemaker |
TensorFlow | 2.11.1 | 763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.11.1-gpu-py39-cu112-ubuntu20.04-sagemaker |
SageMaker Profiler er i øjeblikket tilgængelig i følgende regioner: US East (Ohio, N. Virginia), US West (Oregon) og Europa (Frankfurt, Irland).
SageMaker Profiler er tilgængelig i træningsinstanstyperne ml.p4d.24xlarge, ml.p3dn.24xlarge og ml.g4dn.12xlarge.
Se den fulde liste over understøttede rammer og versioner dokumentation.
SageMaker Profiler pådrager sig gebyrer efter SageMaker Free Tier eller den gratis prøveperiode for funktionen slutter. For mere information, se Amazon SageMaker-priser.
Udførelse af SageMaker Profiler
Vi sammenlignede overhead af SageMaker Profiler med forskellige open source-profilere. Den basislinje, der blev brugt til sammenligningen, blev opnået ved at køre træningsjobbet uden en profiler.
Vores nøgleresultat afslørede, at SageMaker Profiler generelt resulterede i en kortere fakturerbar træningsvarighed, fordi den havde mindre overhead-tid på end-to-end træningskørslerne. Det genererede også færre profileringsdata (op til 10 gange mindre) sammenlignet med open source-alternativer. De mindre profileringsartefakter genereret af SageMaker Profiler kræver mindre opbevaring og sparer derved også på omkostningerne.
Konklusion
SageMaker Profiler giver dig mulighed for at få detaljeret indsigt i brugen af computerressourcer, når du træner dine deep learning-modeller. Dette kan gøre dig i stand til at løse ydeevne-hotspots og flaskehalse for at sikre effektiv ressourceudnyttelse, der i sidste ende vil reducere træningsomkostningerne og reducere den samlede træningsvarighed.
For at komme i gang med SageMaker Profiler, se dokumentation.
Om forfatterne
Roy Allela er Senior AI/ML Specialist Solutions Architect hos AWS med base i München, Tyskland. Roy hjælper AWS-kunder – fra små startups til store virksomheder – med at træne og implementere store sprogmodeller effektivt på AWS. Roy er passioneret omkring beregningsmæssige optimeringsproblemer og forbedring af ydeevnen af AI-arbejdsbelastninger.
Sushant Månen er dataforsker hos AWS, Indien, med speciale i at vejlede kunder gennem deres AI/ML-bestræbelser. Med en mangfoldig baggrund, der spænder over detail-, finans- og forsikringsdomæner, leverer han innovative og skræddersyede løsninger. Ud over sit professionelle liv finder Sushant foryngelse i svømning og søger inspiration fra sine rejser til forskellige steder.
Diksha Sharma er en AI/ML Specialist Solutions Architect i Worldwide Specialist Organization. Hun arbejder med kunder i den offentlige sektor for at hjælpe dem med at udvikle effektive, sikre og skalerbare maskinlæringsapplikationer, herunder generative AI-løsninger på AWS. I sin fritid elsker Diksha at læse, male og bruge tid sammen med sin familie.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Automotive/elbiler, Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- ChartPrime. Løft dit handelsspil med ChartPrime. Adgang her.
- BlockOffsets. Modernisering af miljømæssig offset-ejerskab. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/announcing-the-preview-of-amazon-sagemaker-profiler-track-and-visualize-detailed-hardware-performance-data-for-your-model-training-workloads/
- :har
- :er
- :ikke
- $OP
- 1
- 10
- 100
- 11
- 12
- 125
- 13
- 15 %
- 17
- 20
- 7
- 9
- a
- Om
- adgang
- tværs
- aktivering
- aktiv
- aktiviteter
- aktivitet
- tilføje
- tilføjet
- tilføje
- Yderligere
- Efter
- mod
- aggregere
- AI
- AI / ML
- Alle
- også
- alternativer
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- ,
- Annoncere
- Annoncerer
- En anden
- enhver
- vises
- Anvendelse
- applikationer
- tilgang
- tilgange
- ER
- AS
- tildelt
- At
- automatisk
- til rådighed
- gennemsnit
- AWS
- baggrund
- baseret
- Baseline
- BE
- fordi
- bliver
- været
- Begyndelse
- tilhører
- mellem
- Beyond
- milliarder
- BIN
- by
- CAN
- kapaciteter
- kapacitet
- Optagelse
- vis
- udfordringer
- afgifter
- Chart
- kontrollere
- Vælg
- kode
- Fælles
- Kommunikation
- sammenlignet
- sammenligning
- fuldføre
- Afsluttet
- kompleksitet
- Compute
- Konfiguration
- forbinder
- Konsol
- Beholdere
- sammenhæng
- Tilsvarende
- Koste
- Omkostninger
- tællere
- skabe
- oprettet
- Oprettelse af
- skabelse
- For øjeblikket
- skik
- Kunder
- cyan
- instrumentbræt
- data
- dataforsker
- dyb
- dyb læring
- definere
- leverer
- indsætte
- beskrevet
- detaljeret
- detaljer
- enhed
- forskellige
- distribueret
- distribueret træning
- fordeling
- forskelligartede
- domæne
- Domæner
- færdig
- ned
- køre
- varighed
- i løbet af
- hver
- tidligere
- Øst
- effektiv
- effektivt
- muliggøre
- muliggør
- ende
- ende til ende
- bestræbelser
- ender
- sikre
- Indtast
- Hele
- indrejse
- epoke
- epoker
- væsentlig
- Europa
- begivenheder
- indlysende
- eksempel
- udførelse
- udforske
- mislykkedes
- familie
- Feature
- finansiere
- finde
- fund
- slut
- Fornavn
- passer
- efter
- følger
- Til
- Videresend
- Framework
- rammer
- Gratis
- gratis prøveversion
- fra
- fuld
- funktioner
- generelt
- generere
- genereret
- generative
- Generativ AI
- Tyskland
- få
- Give
- GPU
- GPU'er
- graf
- Grow
- havde
- Hardware
- Have
- he
- hjælpe
- hjælper
- hende
- hans
- host
- Hvordan
- How To
- HTML
- http
- HTTPS
- i
- ICON
- tomgang
- if
- billede
- gennemføre
- importere
- forbedring
- in
- omfatter
- Herunder
- Forøg
- Indien
- angivet
- individuel
- ineffektiv
- oplysninger
- innovativ
- indgange
- indsigt
- Inspiration
- instans
- i stedet
- anvisninger
- forsikring
- grænseflade
- ind
- irland
- spørgsmål
- IT
- iteration
- ITS
- Job
- Karriere
- jpg
- Nøgle
- Etiketter
- landing
- Sprog
- stor
- lancere
- lanceringer
- læring
- mindre
- Niveau
- Bibliotek
- Livet
- grænser
- linjer
- links
- Liste
- belastning
- lastning
- længere
- off
- elsker
- Lav
- maskine
- machine learning
- leder
- manuelt
- Hukommelse
- metode
- metoder
- metrisk
- Metrics
- minimum
- ML
- model
- modeller
- ændre
- Moduler
- mere
- skal
- navn
- nemlig
- Navigation
- Behov
- Ny
- ingen
- node
- noder
- objekt
- opnå
- opnået
- of
- Tilbud
- Ohio
- on
- ONE
- kun
- åbent
- open source
- åbner
- drift
- Produktion
- optimering
- optimeret
- Option
- or
- ordrer
- Oregon
- organisation
- Organiseret
- i løbet af
- samlet
- egen
- side
- brød
- parametre
- særlig
- især
- lidenskabelige
- per
- procentdel
- ydeevne
- periode
- Tilladelser
- plato
- Platon Data Intelligence
- PlatoData
- tilfreds
- Punkt
- Indlæg
- Precision
- Forbered
- forudsætninger
- Eksempel
- tidligere
- tidligere
- problemer
- professionel
- Profil
- Profiler
- profilering
- Progress
- projekt
- giver
- offentlige
- Python
- pytorch
- Hurtig
- hurtigt
- Sats
- Læs
- reducere
- regioner
- foryngelse
- forhold
- Fjern
- kræver
- ressource
- Ressourcer
- resultere
- detail
- Revealed
- Rise
- roller
- roy
- Kør
- kører
- løber
- sagemaker
- Gem
- besparelse
- skalerbar
- planlagt
- Videnskabsmand
- scripts
- SDK
- Søg
- Anden
- Sektion
- sektor
- sikker
- se
- søger
- valgt
- udvælgelse
- senior
- Tjenester
- sæt
- indstilling
- hun
- bør
- vist
- Shows
- enkelt
- Størrelse
- lille
- mindre
- Løsninger
- Kilde
- spænding
- specialist
- speciale
- specifikke
- tilbringe
- brugt
- starte
- påbegyndt
- Nystartede
- state-of-the-art
- statistiske
- Status
- Trin
- Steps
- stoppet
- standsning
- opbevaring
- strøm
- struktur
- indsendt
- sådan
- RESUMÉ
- Understøttet
- synkronisering
- bord
- skræddersyet
- Tag
- tensorflow
- end
- at
- deres
- Them
- Der.
- derved
- derfor
- Disse
- denne
- Gennem
- hele
- tier
- tid
- tidslinje
- tidslinjer
- gange
- til
- top
- spor
- Sporing
- Tog
- Kurser
- overførsel
- rejser
- træ
- retssag
- billioner
- to
- typer
- typisk
- ui
- Ultimativt
- forståelse
- us
- brug
- anvendte
- Bruger
- Brugergrænseflade
- brugere
- ved brug af
- forskellige
- udgave
- versioner
- Specifikation
- Virginia
- vs
- ønsker
- var
- we
- web
- webservices
- Vest
- hvornår
- som
- mens
- vilje
- med
- uden
- virker
- verdensplan
- ville
- wrap
- Du
- Din
- zephyrnet
- zoom