Vandaag kondigen we met trots de preview aan van Amazon SageMaker-profiler, een vermogen van Amazon Sage Maker dat een gedetailleerd overzicht biedt van de AWS-rekenbronnen die worden ingericht tijdens het trainen van deep learning-modellen op SageMaker. Met SageMaker Profiler kunt u alle activiteiten op CPU's en GPU's volgen, zoals CPU- en GPU-gebruik, kernel-runs op GPU's, kernel-lanceringen op CPU's, synchronisatiebewerkingen, geheugenbewerkingen tussen GPU's, latenties tussen kernel-lanceringen en overeenkomstige runs, en gegevensoverdracht tussen CPU's en GPU's. In dit bericht leiden we u door de mogelijkheden van SageMaker Profiler.
SageMaker Profiler biedt Python-modules voor het annoteren van PyTorch- of TensorFlow-trainingsscripts en het activeren van SageMaker Profiler. Het biedt ook een gebruikersinterface (UI) die de profielen, een statistische samenvatting van geprofileerde gebeurtenissen en de tijdlijn van een trainingstaak voor het volgen en begrijpen van de tijdsrelatie van de gebeurtenissen tussen GPU's en CPU's.
De behoefte aan profilering van opleidingsbanen
Met de opkomst van deep learning (DL) is machine learning (ML) reken- en data-intensief geworden, waarvoor doorgaans clusters met meerdere knooppunten en meerdere GPU's nodig zijn. Naarmate state-of-the-art modellen in omvang toenemen in de orde van biljoenen parameters, nemen ook hun rekencomplexiteit en kosten snel toe. ML-beoefenaars moeten omgaan met gemeenschappelijke uitdagingen van efficiรซnt gebruik van hulpbronnen bij het trainen van zulke grote modellen. Dit is vooral duidelijk in grote taalmodellen (LLM's), die doorgaans miljarden parameters hebben en daarom grote GPU-clusters met meerdere knooppunten nodig hebben om ze efficiรซnt te kunnen trainen.
Wanneer we deze modellen trainen op grote rekenclusters, kunnen we uitdagingen tegenkomen op het gebied van optimalisatie van rekenbronnen, zoals I/O-knelpunten, latenties bij het opstarten van de kernel, geheugenlimieten en een laag gebruik van bronnen. Als de configuratie van de trainingstaken niet is geoptimaliseerd, kunnen deze uitdagingen resulteren in inefficiรซnt hardwaregebruik en langere trainingtijden of onvolledige trainingsruns, waardoor de totale kosten en tijdlijnen voor het project toenemen.
Voorwaarden
Dit zijn de vereisten om SageMaker Profiler te gaan gebruiken:
- Een SageMaker-domein in uw AWS-account โ Voor instructies over het instellen van een domein, zie Onboard naar Amazon SageMaker Domain met behulp van snelle installatie. U moet ook domeingebruikersprofielen toevoegen voor individuele gebruikers om toegang te krijgen tot de SageMaker Profiler UI-toepassing. Voor meer informatie, zie SageMaker Domain-gebruikersprofielen toevoegen en verwijderen.
- machtigingen โ De volgende lijst is de minimale set machtigingen die moet worden toegewezen aan de uitvoeringsrol voor het gebruik van de SageMaker Profiler UI-toepassing:
sagemaker:CreateApp
sagemaker:DeleteApp
sagemaker:DescribeTrainingJob
sagemaker:SearchTrainingJobs
s3:GetObject
s3:ListBucket
Een trainingstaak voorbereiden en uitvoeren met SageMaker Profiler
Om te beginnen met het vastleggen van kernelruns op GPU's terwijl de trainingstaak actief is, wijzigt u uw trainingsscript met behulp van de SageMaker Profiler Python-modules. Importeer de bibliotheek en voeg de start_profiling()
en stop_profiling()
methoden om het begin en het einde van profilering te definiรซren. U kunt ook optionele aangepaste annotaties gebruiken om markeringen toe te voegen aan het trainingsscript om hardware-activiteiten tijdens bepaalde bewerkingen in elke stap te visualiseren.
Er zijn twee manieren waarop u uw trainingsscripts kunt profileren met SageMaker Profiler. De eerste benadering is gebaseerd op het profileren van volledige functies; de tweede benadering is gebaseerd op het profileren van specifieke coderegels in functies.
Gebruik de contextmanager om te profileren op functies smppy.annotate
om volledige functies te annoteren. Het volgende voorbeeldscript laat zien hoe u de contextmanager implementeert om de trainingslus en volledige functies in elke iteratie te verpakken:
U kunt ook gebruik maken van smppy.annotation_begin()
en smppy.annotation_end()
om specifieke regels code in functies te annoteren. Voor meer informatie, zie documentatie.
Configureer de SageMaker-trainingstaakstarter
Nadat u klaar bent met het annoteren en instellen van de profiler-initiatiemodules, slaat u het trainingsscript op en bereidt u de SageMaker Framework Estimator voor op training met behulp van de SageMaker Python SDK.
- Het opzetten van een
profiler_config
object met behulp van deProfilerConfig
enProfiler
modules als volgt: - Maak een SageMaker-schatter met de
profiler_config
object dat in de vorige stap is gemaakt. De volgende code toont een voorbeeld van het maken van een PyTorch-schatter:
Als u een TensorFlow-schatter wilt maken, importeert u deze sagemaker.tensorflow.TensorFlow
in plaats daarvan en geef een van de TensorFlow-versies op die worden ondersteund door SageMaker Profiler. Zie voor meer informatie over ondersteunde frameworks en exemplaartypen Ondersteunde raamwerken.
- Start de trainingstaak door de fit-methode uit te voeren:
Start de gebruikersinterface van SageMaker Profiler
Wanneer de trainingstaak is voltooid, kunt u de gebruikersinterface van SageMaker Profiler starten om het profiel van de trainingstaak te visualiseren en te verkennen. U kunt toegang krijgen tot de SageMaker Profiler UI-toepassing via de SageMaker Profiler-startpagina op de SageMaker-console of via het SageMaker-domein.
Voer de volgende stappen uit om de SageMaker Profiler UI-toepassing op de SageMaker-console te starten:
- Kies op de SageMaker-console Profiler in het navigatievenster.
- Onder Start, selecteer het domein waarin u de SageMaker Profiler UI-toepassing wilt starten.
Als uw gebruikersprofiel slechts bij รฉรฉn domein hoort, ziet u de optie om een โโdomein te selecteren niet.
- Selecteer het gebruikersprofiel waarvoor u de SageMaker Profiler UI-toepassing wilt starten.
Als er geen gebruikersprofiel in het domein bestaat, kiest u Maak een gebruikersprofiel aan. Zie voor meer informatie over het maken van een nieuw gebruikersprofiel Gebruikersprofielen toevoegen en verwijderen.
- Kies Profiel openen.
Ook start de gebruikersinterface van SageMaker Profiler vanaf de pagina met domeindetails.
Krijg inzichten uit de SageMaker Profiler
Wanneer u de gebruikersinterface van SageMaker Profiler opent, wordt het Selecteer en laad een profiel pagina wordt geopend, zoals weergegeven in de volgende schermafbeelding.
U kunt een lijst bekijken met alle trainingstaken die zijn ingediend bij SageMaker Profiler en zoeken naar een bepaalde trainingstaak op basis van de naam, de aanmaaktijd en de uitvoeringsstatus (In uitvoering, Voltooid, Mislukt, Gestopt of Gestopt). Om een โโprofiel te laden, selecteert u de trainingsjob die u wilt bekijken en kiest u deze Laden. De taaknaam moet verschijnen in het Geladen profiel gedeelte bovenaan.
Kies de taaknaam om het dashboard en de tijdlijn te genereren. Houd er rekening mee dat wanneer u de taak kiest, de gebruikersinterface automatisch het dashboard opent. U kunt รฉรฉn profiel tegelijk laden en visualiseren. Om een โโander profiel te laden, moet u eerst het eerder geladen profiel verwijderen. Om een โโprofiel te verwijderen, kiest u het prullenbakpictogram in het Geladen profiel pagina.
Voor dit bericht bekijken we het profiel van een ALBEF trainingstaak op twee ml.p4d.24xlarge-instanties.
Nadat u klaar bent met het laden en selecteren van de trainingstaak, opent de gebruikersinterface het bestand Overzicht pagina, zoals weergegeven in de volgende schermafbeelding.
U kunt de grafieken voor belangrijke statistieken bekijken, namelijk de actieve tijd van de GPU, het GPU-gebruik in de loop van de tijd, de actieve tijd van de CPU en het CPU-gebruik in de loop van de tijd. Het cirkeldiagram voor de actieve tijd van de GPU toont het percentage actieve tijd van de GPU versus de inactieve tijd van de GPU, waardoor we kunnen controleren of de GPU's gedurende de gehele trainingstaak actiever dan inactief zijn. De tijdlijngrafiek GPU-gebruik in de loop van de tijd toont de gemiddelde GPU-gebruikssnelheid in de loop van de tijd per knooppunt, waarbij alle knooppunten in รฉรฉn diagram worden samengevoegd. U kunt controleren of de GPU's gedurende bepaalde tijdsintervallen een onevenwichtige werklast, onderbelastingsproblemen, knelpunten of inactieve problemen hebben. Voor meer informatie over het interpreteren van deze statistieken raadpleegt u documentatie.
Het dashboard biedt u aanvullende grafieken, waaronder de tijd die door alle GPU-kernels is besteed, de tijd die door de top 15 GPU-kernels is besteed, het aantal lanceringen van alle GPU-kernels en het aantal lanceringen van de 15 beste GPU-kernels, zoals weergegeven in de volgende schermafbeelding.
Ten slotte kunt u met het dashboard aanvullende statistieken visualiseren, zoals de staptijdverdeling, een histogram dat de verdeling van de stapduur op GPU's toont, en het cirkeldiagram voor de kernelprecisieverdeling, dat het percentage tijd weergeeft dat is besteed aan het uitvoeren van kernels. in verschillende gegevenstypen zoals FP32, FP16, INT32 en INT8.
U kunt ook een cirkeldiagram verkrijgen over de GPU-activiteitenverdeling, waarin het percentage tijd wordt weergegeven dat is besteed aan GPU-activiteiten, zoals het uitvoeren van kernels, geheugen (memcpy
en memset
) en synchronisatie (sync
). U kunt het percentage tijd dat wordt besteed aan GPU-geheugenbewerkingen visualiseren in het cirkeldiagram voor de distributie van GPU-geheugenbewerkingen.
Je kunt ook je eigen histogrammen maken op basis van een aangepaste metriek die je handmatig hebt geannoteerd, zoals eerder in dit bericht beschreven. Wanneer u een aangepaste annotatie aan een nieuw histogram toevoegt, selecteert of voert u de naam in van de annotatie die u in het trainingsscript hebt toegevoegd.
Tijdlijninterface
De gebruikersinterface van SageMaker Profiler bevat ook een tijdlijninterface, die u een gedetailleerd overzicht geeft van de computerbronnen op het niveau van bewerkingen en kernels die op de CPU's zijn gepland en op de GPU's worden uitgevoerd. De tijdlijn is georganiseerd in een boomstructuur, waardoor u informatie krijgt van hostniveau tot apparaatniveau, zoals weergegeven in de volgende schermafbeelding.
Voor elke CPU kunt u de CPU-prestatietellers volgen, zoals clk_unhalted_ref.tsc
en itlb_misses.miss_causes_a_walk
. Voor elke GPU op de 2x p4d.24xlarge-instantie kunt u een hosttijdlijn en een apparaattijdlijn zien. Het starten van de kernel vindt plaats op de hosttijdlijn en het uitvoeren van de kernel vindt plaats op de tijdlijn van het apparaat.
Je kunt ook inzoomen op de afzonderlijke stappen. In de volgende schermafbeelding hebben we ingezoomd op stap_41. De tijdlijnstrip die in de volgende schermafbeelding is geselecteerd, is de AllReduce
werking, een essentiรซle communicatie- en synchronisatiestap in gedistribueerde training, uitgevoerd op GPU-0. Merk in de schermafbeelding op dat de kernelstart in de GPU-0-host verbinding maakt met de kernel die wordt uitgevoerd in de GPU-0-apparaatstream 1, aangegeven met de pijl in cyaan.
Beschikbaarheid en overwegingen
SageMaker Profiler is beschikbaar in PyTorch (versie 2.0.0 en 1.13.1) en TensorFlow (versie 2.12.0 en 2.11.1). De volgende tabel bevat de koppelingen naar de ondersteunde AWS Deep Learning-containers voor SageMaker.
Achtergrond | Versie | AWS DLC-afbeeldings-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 is momenteel beschikbaar in de volgende regio's: US East (Ohio, N. Virginia), US West (Oregon) en Europa (Frankfurt, Ierland).
SageMaker Profiler is beschikbaar in de trainingsinstantietypen ml.p4d.24xlarge, ml.p3dn.24xlarge en ml.g4dn.12xlarge.
Voor de volledige lijst met ondersteunde frameworks en versies raadpleegt u documentatie.
Er worden kosten in rekening gebracht voor SageMaker Profiler nadat de SageMaker Free Tier of de gratis proefperiode van de functie is afgelopen. Voor meer informatie, zie Amazon SageMaker-prijzen.
Prestaties van SageMaker Profiler
We hebben de overhead van SageMaker Profiler vergeleken met verschillende open-source profilers. De basislijn die voor de vergelijking werd gebruikt, werd verkregen door de trainingstaak uit te voeren zonder een profiler.
Uit onze belangrijkste bevinding bleek dat SageMaker Profiler over het algemeen resulteerde in een kortere factureerbare trainingsduur omdat er minder overheadtijd was bij de end-to-end trainingsruns. Het genereerde ook minder profileringsgegevens (tot tien keer minder) in vergelijking met open-sourcealternatieven. De kleinere profileringsartefacten die door SageMaker Profiler worden gegenereerd, vereisen minder opslagruimte, waardoor ook kosten worden bespaard.
Conclusie
Met SageMaker Profiler krijgt u gedetailleerd inzicht in het gebruik van rekenbronnen bij het trainen van uw deep learning-modellen. Hierdoor kunt u prestatie-hotspots en knelpunten oplossen om een โโefficiรซnt gebruik van middelen te garanderen, wat uiteindelijk de trainingskosten zou verlagen en de totale trainingsduur zou verkorten.
Raadpleeg om aan de slag te gaan met SageMaker Profiler documentatie.
Over de auteurs
Roy Allela is een Senior AI/ML Specialist Solutions Architect bij AWS, gevestigd in Mรผnchen, Duitsland. Roy helpt AWS-klanten (van kleine startups tot grote ondernemingen) bij het efficiรซnt trainen en implementeren van grote taalmodellen op AWS. Roy heeft een passie voor computationele optimalisatieproblemen en het verbeteren van de prestaties van AI-workloads.
Sushant Maan is een datawetenschapper bij AWS, India, gespecialiseerd in het begeleiden van klanten bij hun AI/ML-inspanningen. Met een diverse achtergrond in de retail-, financiรซle en verzekeringsdomeinen levert hij innovatieve en op maat gemaakte oplossingen. Naast zijn professionele leven vindt Sushant verjonging in het zwemmen en haalt hij inspiratie uit zijn reizen naar diverse locaties.
Diksha Sharma is een AI/ML Specialist Solutions Architect in de Worldwide Specialist Organization. Ze werkt samen met klanten uit de publieke sector om hen te helpen bij het ontwerpen van efficiรซnte, veilige en schaalbare machine learning-applicaties, waaronder generatieve AI-oplossingen op AWS. In haar vrije tijd houdt Diksha van lezen, schilderen en tijd doorbrengen met haar gezin.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoData.Network Verticale generatieve AI. Versterk jezelf. Toegang hier.
- PlatoAiStream. Web3-intelligentie. Kennis versterkt. Toegang hier.
- PlatoESG. Automotive / EV's, carbon, CleanTech, Energie, Milieu, Zonne, Afvalbeheer. Toegang hier.
- Plato Gezondheid. Intelligentie op het gebied van biotech en klinische proeven. Toegang hier.
- ChartPrime. Verhoog uw handelsspel met ChartPrime. Toegang hier.
- BlockOffsets. Eigendom voor milieucompensatie moderniseren. Toegang hier.
- Bron: 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/
- : heeft
- :is
- :niet
- $UP
- 1
- 10
- 100
- 11
- 12
- 125
- 13
- 15%
- 17
- 20
- 7
- 9
- a
- Over
- toegang
- over
- activerende
- actieve
- activiteiten
- activiteit
- toevoegen
- toegevoegd
- toe te voegen
- Extra
- Na
- tegen
- aggregeren
- AI
- AI / ML
- Alles
- ook
- alternatieven
- Amazone
- Amazon Sage Maker
- Amazon Web Services
- an
- en
- aankondigen
- Het aankondigen
- Nog een
- elke
- verschijnen
- Aanvraag
- toepassingen
- nadering
- benaderingen
- ZIJN
- AS
- toegewezen
- At
- webmaster.
- Beschikbaar
- gemiddelde
- AWS
- achtergrond
- gebaseerde
- Baseline
- BE
- omdat
- worden
- geweest
- Begin
- behoort
- tussen
- Verder
- miljarden
- BIN
- by
- CAN
- mogelijkheden
- bekwaamheid
- Het vastleggen
- zeker
- uitdagingen
- lasten
- tabel
- controle
- Kies
- code
- Gemeen
- Communicatie
- vergeleken
- vergelijking
- compleet
- Voltooid
- ingewikkeldheid
- Berekenen
- Configuratie
- verbindt
- troosten
- containers
- verband
- Overeenkomend
- Kosten
- Kosten
- counters
- en je merk te creรซren
- aangemaakt
- Wij creรซren
- het aanmaken
- Op dit moment
- gewoonte
- Klanten
- cyaan
- dashboards
- gegevens
- data scientist
- deep
- diepgaand leren
- bepalen
- levert
- implementeren
- beschreven
- gedetailleerd
- gegevens
- apparaat
- anders
- verdeeld
- gedistribueerde training
- distributie
- diversen
- domein
- domeinen
- gedaan
- beneden
- rit
- duur
- gedurende
- elk
- Vroeger
- oosten
- doeltreffend
- efficiรซnt
- in staat stellen
- maakt
- einde
- eind tot eind
- inspanningen
- eindigt
- verzekeren
- Enter
- Geheel
- toegang
- tijdperk
- tijdperken
- essentieel
- Europa
- EVENTS
- duidelijk
- voorbeeld
- uitvoering
- Verken
- Mislukt
- familie
- Kenmerk
- financiรซn
- het vinden van
- vondsten
- afmaken
- Voornaam*
- geschikt
- volgend
- volgt
- Voor
- Naar voren
- Achtergrond
- frameworks
- Gratis
- gratis trial
- oppompen van
- vol
- functies
- algemeen
- voortbrengen
- gegenereerde
- generatief
- generatieve AI
- Duitsland
- krijgen
- Vrijgevigheid
- GPU
- GPU's
- diagram
- Groeien
- HAD
- Hardware
- Hebben
- he
- hulp
- helpt
- haar
- zijn
- gastheer
- Hoe
- How To
- HTML
- http
- HTTPS
- i
- ICON
- Idle
- if
- beeld
- uitvoeren
- importeren
- het verbeteren van
- in
- omvat
- Inclusief
- Laat uw omzet
- Indiรซ
- aangegeven
- individueel
- ondoeltreffend
- informatie
- innovatieve
- ingangen
- inzichten
- Inspiratie
- instantie
- verkrijgen in plaats daarvan
- instructies
- verzekering
- Interface
- in
- Ierland
- problemen
- IT
- herhaling
- HAAR
- Jobomschrijving:
- Vacatures
- jpg
- sleutel
- labels
- landing
- taal
- Groot
- lancering
- lanceert
- leren
- minder
- Niveau
- Bibliotheek
- Life
- grenzen
- lijnen
- links
- Lijst
- laden
- het laden
- langer
- uit
- houdt
- Laag
- machine
- machine learning
- manager
- handmatig
- Geheugen
- methode
- methoden
- metriek
- Metriek
- minimum
- ML
- model
- modellen
- wijzigen
- Modules
- meer
- Dan moet je
- naam
- namelijk
- Navigatie
- Noodzaak
- New
- geen
- knooppunt
- knooppunten
- object
- verkrijgen
- verkregen
- of
- Aanbod
- Ohio
- on
- EEN
- Slechts
- open
- open source
- opent
- operatie
- Operations
- optimalisatie
- geoptimaliseerde
- Keuze
- or
- bestellen
- Oregon
- organisatie
- Georganiseerd
- over
- totaal
- het te bezitten.
- pagina
- brood
- parameters
- bijzonder
- vooral
- hartstochtelijk
- voor
- percentage
- prestatie
- periode
- permissies
- Plato
- Plato gegevensintelligentie
- PlatoData
- verheugd
- punt
- Post
- precisie
- Voorbereiden
- vereisten
- Voorbeschouwing
- vorig
- die eerder
- problemen
- professioneel
- Profiel
- Profielen
- profilering
- Voortgang
- project
- biedt
- publiek
- Python
- pytorch
- Quick
- snel
- tarief
- Lees
- verminderen
- regio
- verjonging
- verwantschap
- verwijderen
- vereisen
- hulpbron
- Resources
- resultaat
- <HR>Retail
- Revealed
- Stijgen
- Rol
- roy
- lopen
- lopend
- loopt
- sagemaker
- Bespaar
- besparing
- schaalbare
- gepland
- Wetenschapper
- scripts
- sdk
- Ontdek
- Tweede
- sectie
- sector
- beveiligen
- zien
- zoekt
- gekozen
- selecteren
- senior
- Diensten
- reeks
- het instellen van
- ze
- moet
- getoond
- Shows
- single
- Maat
- Klein
- kleinere
- Oplossingen
- bron
- overspannen
- specialist
- gespecialiseerd
- specifiek
- besteden
- besteed
- begin
- gestart
- Startups
- state-of-the-art
- statistisch
- Status
- Stap voor
- Stappen
- gestopt
- stoppen
- mediaopslag
- stream
- structuur
- ingediend
- dergelijk
- OVERZICHT
- ondersteunde
- synchronisatie
- tafel
- op maat gemaakt
- Nemen
- tensorflow
- neem contact
- dat
- De
- hun
- Ze
- Er.
- daarbij
- daarom
- Deze
- dit
- Door
- overal
- rij
- niet de tijd of
- tijdlijn
- tijdlijnen
- keer
- naar
- top
- spoor
- Tracking
- Trainen
- Trainingen
- overdracht
- reist
- boom
- proces
- triljoenen
- twee
- types
- typisch
- ui
- Tenslotte
- begrip
- us
- .
- gebruikt
- Gebruiker
- User Interface
- gebruikers
- gebruik
- divers
- versie
- versies
- Bekijk
- Virginia
- vs
- willen
- was
- we
- web
- webservices
- West
- wanneer
- welke
- en
- wil
- Met
- zonder
- Bedrijven
- wereldwijd
- zou
- wikkel
- You
- Your
- zephyrnet
- zoom