Astăzi, suntem încântați să anunțăm previzualizarea Amazon SageMaker Profiler, o capacitate de Amazon SageMaker care oferă o vedere detaliată a resurselor de calcul AWS furnizate în timpul antrenării modelelor de învățare profundă pe SageMaker. Cu SageMaker Profiler, puteți urmări toate activitățile de pe procesoare și GPU, cum ar fi utilizările CPU și GPU, rulările nucleului pe GPU-uri, lansările nucleului pe procesoare, operațiunile de sincronizare, operațiunile de memorie pe GPU-uri, latența dintre lansările kernelului și rulările corespunzătoare și transferul de date între procesoare și GPU. În această postare, vă prezentăm capacitățile SageMaker Profiler.
SageMaker Profiler oferă module Python pentru adnotarea scripturilor de antrenament PyTorch sau TensorFlow și activarea SageMaker Profiler. De asemenea, oferă o interfață cu utilizatorul (UI) care vizualizează profil, un rezumat statistic al evenimentelor profilate și cronologia unui job de instruire pentru urmărirea și înțelegerea relației de timp a evenimentelor dintre GPU și CPU.
Necesitatea profilării locurilor de muncă de formare
Odată cu creșterea învățării profunde (DL), învățarea automată (ML) a devenit intensivă în calcul și date, necesitând de obicei clustere cu mai multe noduri și mai multe GPU. Pe măsură ce modelele de ultimă generație cresc în dimensiune de ordinul a trilioane de parametri, complexitatea lor de calcul și costul crește, de asemenea, rapid. Practicienii ML trebuie să facă față provocărilor comune de utilizare eficientă a resurselor atunci când antrenează modele atât de mari. Acest lucru este evident în special în modelele de limbaj mari (LLM), care au de obicei miliarde de parametri și, prin urmare, necesită clustere GPU mari cu mai multe noduri pentru a le antrena eficient.
Când antrenăm aceste modele pe clustere mari de calcul, ne putem confrunta cu provocări de optimizare a resurselor de calcul, cum ar fi blocaje I/O, latențe de lansare a nucleului, limite de memorie și utilizări scăzute ale resurselor. Dacă configurația jobului de instruire nu este optimizată, aceste provocări pot avea ca rezultat utilizarea ineficientă a hardware-ului și timpi de antrenament mai lungi sau curse de instruire incomplete, ceea ce mărește costurile generale și termenele pentru proiect.
Cerințe preliminare
Următoarele sunt condițiile preliminare pentru a începe să utilizați SageMaker Profiler:
- Un domeniu SageMaker în contul dvs. AWS – Pentru instrucțiuni despre configurarea unui domeniu, consultați Accesați domeniul Amazon SageMaker folosind configurarea rapidă. De asemenea, trebuie să adăugați profiluri de utilizator de domeniu pentru utilizatorii individuali pentru a accesa aplicația SageMaker Profiler UI. Pentru mai multe informații, vezi Adăugați și eliminați profiluri de utilizator SageMaker Domain.
- Permisiuni – Următoarea listă este setul minim de permisiuni care ar trebui alocate rolului de execuție pentru utilizarea aplicației SageMaker Profiler UI:
sagemaker:CreateApp
sagemaker:DeleteApp
sagemaker:DescribeTrainingJob
sagemaker:SearchTrainingJobs
s3:GetObject
s3:ListBucket
Pregătiți și rulați o lucrare de instruire cu SageMaker Profiler
Pentru a începe capturarea rulărilor de kernel pe GPU-uri în timp ce lucrarea de antrenament rulează, modificați scriptul de antrenament utilizând modulele Python SageMaker Profiler. Importați biblioteca și adăugați start_profiling()
și stop_profiling()
metode de definire a începutului și sfârșitului profilării. De asemenea, puteți utiliza adnotări personalizate opționale pentru a adăuga marcatori în scriptul de antrenament pentru a vizualiza activitățile hardware în timpul anumitor operațiuni din fiecare pas.
Există două abordări pe care le puteți lua pentru a profila scripturile de antrenament cu SageMaker Profiler. Prima abordare se bazează pe profilarea funcțiilor complete; a doua abordare se bazează pe profilarea liniilor de cod specifice în funcții.
Pentru a profila după funcții, utilizați managerul de context smppy.annotate
pentru a adnota funcții complete. Următorul exemplu de script arată cum să implementați managerul de context pentru a încheia bucla de antrenament și funcțiile complete în fiecare iterație:
De asemenea, puteți utiliza smppy.annotation_begin()
și smppy.annotation_end()
pentru a adnota anumite linii de cod în funcții. Pentru mai multe informații, consultați documentaţie.
Configurați lansatorul de joburi de formare SageMaker
După ce ați terminat de adnotat și de configurat modulele de inițiere a profilerului, salvați scriptul de antrenament și pregătiți estimatorul de cadru SageMaker pentru antrenament folosind SDK-ul SageMaker Python.
- Configurați un
profiler_config
obiect folosindProfilerConfig
șiProfiler
module după cum urmează: - Creați un estimator SageMaker cu
profiler_config
obiect creat la pasul anterior. Următorul cod arată un exemplu de creare a unui estimator PyTorch:
Dacă doriți să creați un estimator TensorFlow, importați sagemaker.tensorflow.TensorFlow
în schimb, și specificați una dintre versiunile TensorFlow acceptate de SageMaker Profiler. Pentru mai multe informații despre cadrele acceptate și tipurile de instanțe, consultați Cadre suportate.
- Începeți munca de antrenament rulând metoda de potrivire:
Lansați interfața de utilizare SageMaker Profiler
Când munca de formare este finalizată, puteți lansa interfața de utilizare SageMaker Profiler pentru a vizualiza și explora profilul jobului de formare. Puteți accesa aplicația SageMaker Profiler UI prin pagina de destinație SageMaker Profiler din consola SageMaker sau prin domeniul SageMaker.
Pentru a lansa aplicația SageMaker Profiler UI pe consola SageMaker, parcurgeți următorii pași:
- Pe consola SageMaker, alegeți profil în panoul de navigare.
- În Incepe, selectați domeniul în care doriți să lansați aplicația SageMaker Profiler UI.
Dacă profilul dvs. de utilizator aparține unui singur domeniu, nu veți vedea opțiunea de selectare a unui domeniu.
- Selectați profilul de utilizator pentru care doriți să lansați aplicația SageMaker Profiler UI.
Dacă nu există niciun profil de utilizator în domeniu, alegeți Creați un profil de utilizator. Pentru mai multe informații despre crearea unui nou profil de utilizator, consultați Adăugați și eliminați profiluri de utilizator.
- Alege Deschideți Profiler.
Puteţi, de asemenea, lansați interfața de utilizare SageMaker Profiler din pagina cu detaliile domeniului.
Obțineți informații din SageMaker Profiler
Când deschideți interfața de utilizare SageMaker Profiler, Selectați și încărcați un profil se deschide pagina, așa cum se arată în următoarea captură de ecran.
Puteți vizualiza o listă cu toate lucrările de instruire care au fost trimise la SageMaker Profiler și puteți căuta o anumită lucrare de antrenament după nume, timpul de creare și starea de rulare (În desfășurare, Terminat, Eșuat, Oprit sau Oprire). Pentru a încărca un profil, selectați jobul de antrenament pe care doriți să îl vizualizați și alegeți A incarca. Numele jobului ar trebui să apară în Profil încărcat secțiune în partea de sus.
Alegeți numele jobului pentru a genera tabloul de bord și cronologia. Rețineți că atunci când alegeți jobul, interfața de utilizare deschide automat tabloul de bord. Puteți încărca și vizualiza câte un profil la un moment dat. Pentru a încărca un alt profil, trebuie mai întâi să descărcați profilul încărcat anterior. Pentru a descărca un profil, alegeți pictograma coș de gunoi din Profil încărcat secţiune.
Pentru această postare, vedem profilul unui ALBEF job de antrenament pe două ml.p4d.24xmari instanțe.
După ce terminați de încărcat și selectat jobul de antrenament, interfața de utilizare deschide Contul Meu pagina, așa cum se arată în următoarea captură de ecran.
Puteți vedea diagramele pentru valorile cheie, și anume timpul activ GPU, utilizarea GPU în timp, timpul activ al procesorului și utilizarea procesorului în timp. Diagrama circulară a timpului activ GPU arată procentul de timp activ al GPU față de timpul de inactivitate al GPU, ceea ce ne permite să verificăm dacă GPU-urile sunt mai active decât inactive pe parcursul întregii activități de antrenament. Graficul cronologic al utilizării GPU-ului de-a lungul timpului arată rata medie de utilizare a GPU-ului de-a lungul timpului per nod, cumulând toate nodurile într-un singur grafic. Puteți verifica dacă GPU-urile au o sarcină de lucru dezechilibrată, probleme de subutilizare, blocaje sau probleme de inactivitate în anumite intervale de timp. Pentru mai multe detalii despre interpretarea acestor valori, consultați documentaţie.
Tabloul de bord vă oferă diagrame suplimentare, inclusiv timpul petrecut de toate nucleele GPU, timpul petrecut de primele 15 nuclee GPU, numărul de lansări ale tuturor nucleelor GPU și numărul de lansări ale celor mai bune 15 kernel-uri GPU, așa cum se arată în următoarea captură de ecran.
În cele din urmă, tabloul de bord vă permite să vizualizați valori suplimentare, cum ar fi distribuția timpului de pas, care este o histogramă care arată distribuția duratelor pașilor pe GPU și diagrama circular cu distribuția de precizie a nucleului, care arată procentul de timp petrecut rulând nucleele. în diferite tipuri de date, cum ar fi FP32, FP16, INT32 și INT8.
De asemenea, puteți obține o diagramă circulară a distribuției activității GPU care arată procentul de timp petrecut activităților GPU, cum ar fi rularea nucleelor, memorie (memcpy
și memset
), și sincronizare (sync
). Puteți vizualiza procentul de timp petrecut cu operațiunile de memorie GPU din diagrama circulară de distribuție a operațiunilor de memorie GPU.
De asemenea, vă puteți crea propriile histograme pe baza unei valori personalizate pe care ați adnotat-o manual, așa cum este descris mai devreme în această postare. Când adăugați o adnotare personalizată la o nouă histogramă, selectați sau introduceți numele adnotării pe care ați adăugat-o în scriptul de antrenament.
Interfață cronologică
SageMaker Profiler UI include, de asemenea, o interfață cronologică, care vă oferă o vedere detaliată a resurselor de calcul la nivel de operațiuni și nuclee programate pe procesoare și rulate pe GPU. Cronologia este organizată într-o structură arborescentă, oferindu-vă informații de la nivelul gazdei până la nivelul dispozitivului, așa cum se arată în următoarea captură de ecran.
Pentru fiecare CPU, puteți urmări contoarele de performanță ale CPU, cum ar fi clk_unhalted_ref.tsc
și itlb_misses.miss_causes_a_walk
. Pentru fiecare GPU de pe instanța 2x p4d.24xlarge, puteți vedea o cronologie a gazdei și o cronologie a dispozitivului. Lansările nucleului sunt pe cronologia gazdei, iar rulările nucleului sunt pe cronologia dispozitivului.
De asemenea, puteți mări pașii individuali. În următoarea captură de ecran, am mărit la pasul_41. Banda cronologică selectată în următoarea captură de ecran este AllReduce
funcționare, un pas esențial de comunicare și sincronizare în instruirea distribuită, rulează pe GPU-0. În captură de ecran, rețineți că lansarea nucleului în gazda GPU-0 se conectează la rularea nucleului în fluxul 0 al dispozitivului GPU-1, indicat cu săgeata în cyan.
Disponibilitate și considerații
SageMaker Profiler este disponibil în PyTorch (versiunile 2.0.0 și 1.13.1) și TensorFlow (versiunile 2.12.0 și 2.11.1). Următorul tabel oferă link-urile către cele acceptate Containere AWS Deep Learning pentru SageMaker.
Cadru | Versiune | URI de imagine AWS DLC |
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 este disponibil în prezent în următoarele regiuni: estul SUA (Ohio, N. Virginia), vestul SUA (Oregon) și Europa (Frankfurt, Irlanda).
SageMaker Profiler este disponibil în tipurile de instanțe de antrenament ml.p4d.24xlarge, ml.p3dn.24xlarge și ml.g4dn.12xlarge.
Pentru lista completă a cadrelor și versiunilor acceptate, consultați documentaţie.
SageMaker Profiler suportă taxe după ce se termină nivelul gratuit SageMaker sau perioada de probă gratuită a funcției. Pentru mai multe informații, vezi Prețuri Amazon SageMaker.
Performanța SageMaker Profiler
Am comparat costul general al SageMaker Profiler cu diverși profileri open-source. Linia de referință utilizată pentru comparație a fost obținută din rularea jobului de formare fără un profiler.
Constatarea noastră cheie a relevat că SageMaker Profiler a dus, în general, la o durată de antrenament facturabilă mai scurtă, deoarece a avut mai puțin timp general pentru cursele de antrenament end-to-end. De asemenea, a generat mai puține date de profilare (de până la 10 ori mai puține) în comparație cu alternativele open-source. Artefactele mai mici de profilare generate de SageMaker Profiler necesită mai puțină stocare, economisind astfel și costuri.
Concluzie
SageMaker Profiler vă permite să obțineți informații detaliate despre utilizarea resurselor de calcul atunci când vă instruiți modelele de deep learning. Acest lucru vă poate permite să rezolvați punctele critice de performanță și blocajele pentru a asigura o utilizare eficientă a resurselor care ar reduce în cele din urmă costurile de formare și ar reduce durata totală a antrenamentului.
Pentru a începe cu SageMaker Profiler, consultați documentaţie.
Despre Autori
Roy Allela este arhitect senior în soluții de specialitate AI/ML la AWS cu sediul în Munchen, Germania. Roy îi ajută pe clienții AWS – de la mici startup-uri până la mari întreprinderi – să antreneze și să implementeze modele de limbaj mari în mod eficient pe AWS. Roy este pasionat de problemele de optimizare computațională și de îmbunătățirea performanței sarcinilor de lucru AI.
Sushant Moon este Data Scientist la AWS, India, specializat în ghidarea clienților prin eforturile lor de AI/ML. Cu o experiență diversă, care cuprinde domeniile retail, finanțe și asigurări, el oferă soluții inovatoare și personalizate. Dincolo de viața sa profesională, Sushant găsește întinerire în înot și caută inspirație din călătoriile sale în diverse locații.
Diksha Sharma este arhitect de soluții de specialitate AI/ML în cadrul organizației de specialitate la nivel mondial. Ea lucrează cu clienții din sectorul public pentru a-i ajuta să creeze aplicații de învățare automată eficiente, sigure și scalabile, inclusiv soluții AI generative pe AWS. În timpul ei liber, Diksha îi place să citească, să picteze și să petreacă timpul cu familia ei.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoData.Network Vertical Generative Ai. Împuterniciți-vă. Accesați Aici.
- PlatoAiStream. Web3 Intelligence. Cunoștințe amplificate. Accesați Aici.
- PlatoESG. Automobile/VE-uri, carbon, CleanTech, Energie, Mediu inconjurator, Solar, Managementul deșeurilor. Accesați Aici.
- PlatoHealth. Biotehnologie și Inteligență pentru studii clinice. Accesați Aici.
- ChartPrime. Crește-ți jocul de tranzacționare cu ChartPrime. Accesați Aici.
- BlockOffsets. Modernizarea proprietății de compensare a mediului. Accesați Aici.
- Sursa: 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/
- :are
- :este
- :nu
- $UP
- 1
- 10
- 100
- 11
- 12
- 125
- 13
- 15%
- 17
- 20
- 7
- 9
- a
- Despre Noi
- acces
- peste
- activând
- activ
- activităţi de
- activitate
- adăuga
- adăugat
- adăugare
- Suplimentar
- După
- împotriva
- agregare
- AI
- AI / ML
- TOATE
- de asemenea
- alternative
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- și
- anunța
- anunțare
- O alta
- Orice
- apărea
- aplicație
- aplicatii
- abordare
- abordari
- SUNT
- AS
- alocate
- At
- în mod automat
- disponibil
- in medie
- AWS
- fundal
- bazat
- De bază
- BE
- deoarece
- deveni
- fost
- Început
- aparține
- între
- Dincolo de
- miliarde
- BIN
- by
- CAN
- capacități
- capacitate
- capturarea
- sigur
- provocări
- taxe
- Diagramă
- verifica
- Alege
- cod
- Comun
- Comunicare
- comparație
- comparație
- Completă
- Terminat
- complexitate
- Calcula
- Configuraţie
- Connects
- Consoleze
- Containere
- context
- Corespunzător
- A costat
- Cheltuieli
- contoare
- crea
- a creat
- Crearea
- creaţie
- În prezent
- personalizat
- clienţii care
- cyan
- tablou de bord
- de date
- om de știință de date
- adânc
- învățare profundă
- defini
- Oferă
- implementa
- descris
- detaliat
- detalii
- dispozitiv
- diferit
- distribuite
- instruire distribuită
- distribuire
- diferit
- domeniu
- domenii
- făcut
- jos
- conduce
- durată
- în timpul
- fiecare
- Mai devreme
- Est
- eficient
- eficient
- permite
- permite
- capăt
- un capăt la altul
- eforturi
- se încheie
- asigura
- Intrați
- Întreg
- intrare
- epocă
- epoci
- esenţial
- Europa
- evenimente
- evident
- exemplu
- execuție
- explora
- A eșuat
- familie
- Caracteristică
- finanţa
- descoperire
- descoperiri
- termina
- First
- potrivi
- următor
- urmează
- Pentru
- Înainte
- Cadru
- cadre
- Gratuit
- încercare gratuită
- din
- Complet
- funcții
- în general
- genera
- generată
- generativ
- AI generativă
- Germania
- obține
- Oferirea
- GPU
- unități de procesare grafică
- grafic
- Crește
- HAD
- Piese metalice
- Avea
- he
- ajutor
- ajută
- ei
- lui
- gazdă
- Cum
- Cum Pentru a
- HTML
- http
- HTTPS
- i
- ICON
- Idle
- if
- imagine
- punerea în aplicare a
- import
- îmbunătățirea
- in
- include
- Inclusiv
- Crește
- India
- indicată
- individ
- ineficace
- informații
- inovatoare
- intrări
- perspective
- Inspiraţie
- instanță
- in schimb
- instrucțiuni
- asigurare
- interfaţă
- în
- Irlanda
- probleme de
- IT
- repetare
- ESTE
- Loc de munca
- Locuri de munca
- jpg
- Cheie
- etichete
- aterizare
- limbă
- mare
- lansa
- lansează
- învăţare
- mai puțin
- Nivel
- Bibliotecă
- Viaţă
- Limitele
- linii
- Link-uri
- Listă
- încărca
- încărcare
- mai lung
- de pe
- iubeste
- Jos
- maşină
- masina de învățare
- manager
- manual
- Memorie
- metodă
- Metode
- metric
- Metrici
- minim
- ML
- model
- Modele
- modifica
- Module
- mai mult
- trebuie sa
- nume
- și anume
- Navigare
- Nevoie
- Nou
- Nu.
- nod
- noduri
- obiect
- obține
- obținut
- of
- promoții
- Ohio
- on
- ONE
- afară
- deschide
- open-source
- deschide
- operaţie
- Operațiuni
- optimizare
- optimizate
- Opțiune
- or
- comandă
- Oregon
- organizație
- Organizat
- peste
- global
- propriu
- pagină
- pâine
- parametrii
- special
- în special
- pasionat
- pentru
- procent
- performanță
- perioadă
- permisiuni
- Plato
- Informații despre date Platon
- PlatoData
- mulţumit
- Punct
- Post
- Precizie
- Pregăti
- premise
- Anunţ
- precedent
- în prealabil
- probleme
- profesional
- Profil
- Profiluri
- profilare
- Progres
- proiect
- furnizează
- public
- Piton
- pirtorh
- Rapid
- repede
- rată
- Citeste
- reduce
- regiuni
- întinerire
- relaţie
- scoate
- necesita
- resursă
- Resurse
- rezultat
- cu amănuntul
- Dezvăluit
- Ridica
- Rol
- Roy
- Alerga
- funcţionare
- ruleaza
- sagemaker
- Economisiți
- economisire
- scalabil
- programată
- Om de stiinta
- script-uri
- sdk
- Caută
- Al doilea
- Secțiune
- sector
- sigur
- vedea
- urmăreşte
- selectate
- selectarea
- senior
- Servicii
- set
- instalare
- ea
- să
- indicat
- Emisiuni
- singur
- Mărimea
- mic
- mai mici
- soluţii
- Sursă
- tensiune
- specialist
- specializata
- specific
- petrece
- uzat
- Începe
- început
- Startup-urile
- de ultimă oră
- statistic
- Stare
- Pas
- paşi
- oprit
- oprire
- depozitare
- curent
- structura
- prezentat
- astfel de
- REZUMAT
- Suportat
- sincronizare
- tabel
- adaptate
- Lua
- tensorflow
- decât
- acea
- lor
- Lor
- Acolo.
- astfel
- prin urmare
- Acestea
- acest
- Prin
- de-a lungul
- Nivelul
- timp
- cronologie
- cronologii
- ori
- la
- top
- urmări
- Urmărire
- Tren
- Pregătire
- transfer
- CĂLĂTORII
- copac
- proces
- trilioane
- Două
- Tipuri
- tipic
- ui
- în cele din urmă
- înţelegere
- us
- utilizare
- utilizat
- Utilizator
- User Interface
- utilizatorii
- folosind
- diverse
- versiune
- Versiunile
- Vizualizare
- Virginia
- vs
- vrea
- a fost
- we
- web
- servicii web
- Vest
- cand
- care
- în timp ce
- voi
- cu
- fără
- fabrică
- la nivel internațional.
- ar
- încadra
- Tu
- Ta
- zephyrnet
- zoom