Analizați cheltuielile Amazon SageMaker și determinați oportunitățile de optimizare a costurilor pe baza utilizării, Partea 4: Joburi de formare | Amazon Web Services

Analizați cheltuielile Amazon SageMaker și determinați oportunitățile de optimizare a costurilor pe baza utilizării, Partea 4: Joburi de formare | Amazon Web Services

În 2021, ne-am lansat Servicii proactive de asistență AWS Ca parte a Asistență AWS Enterprise plan. De la introducerea sa, am ajutat sute de clienți să-și optimizeze sarcinile de lucru, să stabilească balustrade și să îmbunătățească vizibilitatea costurilor și utilizării sarcinilor de învățare automată (ML).

În această serie de postări, împărtășim lecțiile învățate despre optimizarea costurilor în Amazon SageMaker. În această postare, ne concentrăm pe joburile de formare SageMaker.

Joburi de formare SageMaker

Lucrările de instruire SageMaker sunt procese batch asincrone cu funcții încorporate pentru instruirea și optimizarea modelului ML.

Cu joburile de formare SageMaker, puteți aduce propriul algoritm sau puteți alege dintre mai mult de 25 de algoritmi încorporați. SageMaker acceptă diverse surse de date și modele de acces, instruire distribuită, inclusiv clustere eterogene, precum și funcții de gestionare a experimentelor și reglarea automată a modelelor.

Costul unui job de instruire se bazează pe resursele pe care le utilizați (instanțe și stocare) pe durata (în secunde) în care acele instanțe rulează. Aceasta include timpul în care are loc antrenamentul și, dacă utilizați caracteristica piscinei calde, perioada de menținere în viață pe care o configurați. În Partea 1, am arătat cum să începeți să utilizați AWS Cost Explorer pentru a identifica oportunitățile de optimizare a costurilor în SageMaker. Puteți filtra costurile de formare aplicând un filtru pe tipul de utilizare. Numele acestor tipuri de utilizare sunt după cum urmează:

  • REGION-Train:instanceType (de exemplu, USE1-Train:ml.m5.large)
  • REGION-Train:VolumeUsage.gp2 (de exemplu, USE1-Train:VolumeUsage.gp2)

Pentru a vedea o defalcare a costurilor de formare în Cost Explorer, puteți intra train: ca prefix pentru Tipul de utilizare. Dacă filtrați numai pentru orele de utilizare (vezi următoarea captură de ecran), Cost Explorer va genera două grafice: Cost și Utilizare. Această vizualizare vă va ajuta să prioritizați oportunitățile de optimizare și să identificați care instanțe sunt de lungă durată și costisitoare.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 4: Training jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Înainte de a optimiza un job de formare existent, vă recomandăm să urmați cele mai bune practici descrise în Optimizarea costurilor pentru învățarea automată cu Amazon SageMaker: testați codul local și utilizați mod local pentru testare, utilizați modele pre-instruite acolo unde este posibil și luați în considerare antrenament la fața locului gestionat (care poate optimiza costurile cu până la 90% față de instanțele On-Demand).

Când este lansată o lucrare la cerere, aceasta trece prin cinci faze: Pornire, Descărcare, Antrenament, Încărcare și Finalizat. Puteți vedea acele faze și descrieri pe pagina jobului de instruire din consola SageMaker.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 4: Training jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Din punct de vedere al prețului, sunteți taxat pentru fazele de descărcare, instruire și încărcare.

Revizuirea acestor faze este un prim pas în diagnosticarea unde să vă optimizați costurile de formare. În această postare, discutăm despre fazele de descărcare și formare.

Faza de descărcare

În exemplul precedent, faza de descărcare a durat mai puțin de un minut. Cu toate acestea, dacă descărcarea datelor este un factor important al costului de formare, ar trebui să luați în considerare sursa de date pe care o utilizați și metodele de acces. Joburile de formare SageMaker acceptă trei surse de date nativ: Sistem de fișiere elastice Amazon (Amazon EFS), Serviciul Amazon de stocare simplă (Amazon S3) și Amazon FSx pentru Luster. Pentru Amazon S3, SageMaker oferă trei moduri gestionate prin care algoritmul tău poate accesa antrenamentul: modul fișier (unde datele sunt descărcate în stocarea blocului de instanță), modul pipe (datele sunt transmise în flux la instanță, eliminând astfel durata fazei de descărcare) și modul Fast File (combină ușurința de utilizare a modului Fișier existent cu performanța modului Pipe). Pentru îndrumări detaliate despre alegerea sursei de date potrivite și a metodelor de acces, consultați Alegeți cea mai bună sursă de date pentru jobul dvs. de formare Amazon SageMaker.

Când utilizați antrenamentul spot gestionat, orice faze repetate de Descărcare care au avut loc din cauza întreruperii nu sunt taxate (deci sunteți taxat o singură dată pentru durata descărcării datelor).

Este important să rețineți că, deși joburile de formare SageMaker acceptă sursele de date pe care le-am menționat, acestea nu sunt obligatorii. În codul dvs. de antrenament, puteți implementa orice metodă de descărcare a datelor de antrenament din orice sursă (cu condiția ca instanța de antrenament să le poată accesa). Există modalități suplimentare de a accelera timpul de descărcare, cum ar fi utilizarea API-ului Boto3 cu multiprocesare pentru a descărca fișiere concomitent sau utilizarea bibliotecilor terță parte, cum ar fi WebDataset sau s5cmd, pentru o descărcare mai rapidă de pe Amazon S3. Pentru mai multe informații, consultați Paralelizarea sarcinilor de lucru S3 cu s5cmd.

Faza de instruire

Optimizarea costului fazei de instruire constă în optimizarea a doi vectori: alegerea infrastructurii potrivite (familia și dimensiunea instanțelor) și optimizarea instruirii în sine. Putem împărți aproximativ instanțele de antrenament în două categorii: bazate pe GPU accelerat, mai ales pentru modele de învățare profundă, și bazate pe CPU pentru cadrele ML obișnuite. Pentru îndrumări privind selectarea familiei de instanțe potrivite pentru instruire, consultați Asigurați resurse de calcul eficiente pe Amazon SageMaker. Dacă antrenamentul dvs. necesită instanțe de GPU, vă recomandăm să consultați videoclipul Cum să selectați instanțele GPU Amazon EC2 pentru învățare profundă.

Ca orientare generală, dacă volumul dvs. de lucru necesită un GPU NVIDIA, am constatat că clienții obțin economii semnificative de costuri cu două Cloud Elastic de calcul Amazon Tipuri de instanță (Amazon EC2): ml.g4dn și ml.g5. ml.g4dn este echipat cu NVIDIA T4 și oferă un cost pe memorie deosebit de scăzut. Instanța ml.g5 este echipată cu NVIDIA A10g Tensor Core și are cel mai mic cost-pe-CUDA flop (fp32).

AWS oferă caracteristici specifice de economisire a costurilor pentru formarea de deep learning:

Pentru a dimensiona și optimiza instanța dvs., ar trebui mai întâi să vă uitați la Amazon CloudWatch valorile pe care le generează locurile de muncă de formare. Pentru mai multe informații, consultați SageMaker Jobs și Endpoint Metrics. Puteți utiliza în continuare CloudWatch metrici de algoritm personalizat pentru a monitoriza performanța antrenamentului.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 4: Training jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Aceste valori pot indica blocaje sau supraprovizionarea resurselor. De exemplu, dacă observați un CPU ridicat cu utilizări scăzute de GPU, puteți rezolva problema utilizând clustere eterogene. Un alt exemplu poate fi observarea unei utilizări scăzute consecvente a CPU pe toată durata lucrării - acest lucru poate duce la reducerea dimensiunii instanței.

Dacă utilizați instruire distribuită, ar trebui să testați diferite metode de distribuție (turn, Ring-AllReduce, oglindă și așa mai departe) pentru a valida utilizarea maximă și pentru a ajusta parametrii cadru în consecință (de exemplu, consultați Cele mai bune practici pentru antrenamentul de accelerare TensorFlow 1.x pe Amazon SageMaker). Este important de subliniat faptul că puteți utiliza API-ul de distribuție SageMaker și biblioteci precum SageMaker Distributed Data Parallel, SageMaker Model Parallel, și SageMaker Sharded Data Parallel, care sunt optimizate pentru infrastructura AWS și ajută la reducerea costurilor de instruire.

Rețineți că instruirea distribuită nu se scalează neapărat liniar și ar putea introduce o suprasarcină, care va afecta durata generală de rulare.

Pentru modelele de învățare profundă, o altă tehnică de optimizare este utilizarea preciziei mixte. Precizia mixtă poate accelera antrenamentul, reducând astfel atât timpul de antrenament, cât și utilizarea memoriei, cu un impact minim sau deloc asupra preciziei modelului. Pentru mai multe informații, consultați Antrenați cu Data Parallel și Model Parallel secțiune în Instruire distribuită în Amazon SageMaker.

În cele din urmă, optimizarea parametrilor specifici cadrului poate avea un impact semnificativ în optimizarea procesului de instruire. Ajustarea automată a modelului SageMaker găsește hiperparametrii care funcționează cel mai bine, măsurați printr-o măsurătoare obiectivă pe care o alegeți. Setarea timpului de antrenament ca metrică obiectivă și configurația cadrului ca hiperparametri poate ajuta la eliminarea blocajelor și la reducerea timpului general de antrenament. Pentru un exemplu de optimizare a setărilor implicite TensorFlow și de eliminare a unui blocaj al procesorului, consultați Aerobotica îmbunătățește viteza de antrenament de 24 de ori pe eșantion cu Amazon SageMaker și TensorFlow.

O altă oportunitate de optimizare atât a timpului de descărcare, cât și a timpului de procesare este să luați în considerare instruirea pe un subset al datelor dvs. Dacă datele dvs. constau din mai multe intrări duplicat sau caracteristici cu un câștig redus de informații, este posibil să vă puteți antrena cu un subset de date și să reduceți timpul de descărcare și antrenament, precum și să utilizați o instanță mai mică și Magazin Amazon Elastic Block (Amazon EBS) volum. Pentru un exemplu, consultați Utilizați o abordare centrată pe date pentru a minimiza cantitatea de date necesară pentru antrenarea modelelor Amazon SageMaker. De asemenea, Amazon SageMaker Data Wrangler poate simplifica analiza și crearea mostrelor de antrenament. Pentru mai multe informații, consultați Creați mostre aleatorii și stratificate de date cu Amazon SageMaker Data Wrangler.

SageMaker Debugger

Pentru a asigura o formare eficientă și utilizarea resurselor, SageMaker vă poate profila jobul de formare folosind Debugger Amazon SageMaker. Oferte de depanare reguli încorporate pentru a vă alerta cu privire la problemele obișnuite care vă afectează antrenamentul, cum ar fi blocajul CPU, creșterea memoriei GPU sau blocajul I/O, sau vă puteți crea propriile reguli. Puteți accesa și analiza raportul generat în Amazon SageMaker Studio. Pentru mai multe informații, consultați Interfața de utilizare Amazon SageMaker Debugger în Amazon SageMaker Studio Experiments. Următoarea captură de ecran arată vizualizarea Debugger în Studio.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 4: Training jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Puteți detalia operatorii și funcțiile Python ( Operațiuni de top pe GPU secțiunea) care sunt rulate pentru a efectua munca de instruire. Regulile încorporate de depanare pentru profilarea problemelor legate de operarea cadrului de urmărire, inclusiv timpul excesiv de inițializare a antrenamentului din cauza descărcării datelor înainte de începerea antrenamentului și valorile aberante ale duratei pasului în buclele de antrenament. Trebuie să rețineți că, deși utilizarea regulilor încorporate este gratuită, costurile pentru regulile personalizate se aplică în funcție de instanța pe care o configurați pentru durata jobului de instruire și stocarea care este atașată acestuia.

Concluzie

În această postare, am oferit îndrumări cu privire la analiza costurilor și cele mai bune practici atunci când antrenăm modele ML folosind joburi de instruire SageMaker. Pe măsură ce învățarea automată se impune ca un instrument puternic în toate industriile, antrenarea și rularea modelelor ML trebuie să rămână rentabile. SageMaker oferă un set larg și profund de caracteristici pentru a facilita fiecare pas din pipeline ML și oferă oportunități de optimizare a costurilor fără a afecta performanța sau agilitatea.


Despre Autori

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 4: Training jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Deepali Rajale este Senior AI/ML Specialist la AWS. Ea lucrează cu clienții întreprinderilor, oferind îndrumări tehnice cu cele mai bune practici pentru implementarea și menținerea soluțiilor AI/ML în ecosistemul AWS. Ea a lucrat cu o gamă largă de organizații pe diverse cazuri de utilizare a învățării profunde care implică NLP și viziunea computerizată. Este pasionată de împuternicirea organizațiilor pentru a folosi AI generativă pentru a le îmbunătăți experiența de utilizare. În timpul liber, îi plac filmele, muzica și literatura.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 4: Training jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Uri Rosenberg este Manager Tehnic Specialist AI & ML pentru Europa, Orientul Mijlociu și Africa. Cu sediul în Israel, Uri lucrează pentru a oferi clienților întreprinderii puterea de a proiecta, construi și opera la scară largă în ceea ce privește ML. În timpul liber, îi place mersul cu bicicleta, drumețiile și creșterea entropiei.

Timestamp-ul:

Mai mult de la Învățare automată AWS