Cele mai bune practici pentru Amazon SageMaker Training Managed Warm Pools

Amazon SageMaker Training Managed Warm Pools vă oferă flexibilitatea de a vă înscrie pentru a reutiliza și a păstra infrastructura de bază pentru o perioadă de timp definită de utilizator. Acest lucru se realizează în același timp, menținând, de asemenea, beneficiul de a transfera sarcinile grele nediferențiate ale gestionării instanțelor de calcul la Instruire pentru modele Amazon SageMaker. În această postare, prezentăm principalele beneficii și punctele dureroase abordate de SageMaker Training Managed Warm Pools, precum și punctele de referință și cele mai bune practici.

Prezentare generală a piscinelor calde gestionate de SageMaker Training

SageMaker Model Training este o capacitate complet gestionată care învârte instanțe pentru fiecare lucrare, antrenează un model, rulează și apoi derulează instanțe după job. Sunteți facturat doar pentru durata jobului până la al doilea. Această capacitate complet gestionată vă oferă libertatea de a vă concentra asupra algoritmului de învățare automată (ML) și de a nu vă face griji cu privire la ridicarea greutății nediferențiate, cum ar fi gestionarea infrastructurii, în timp ce vă instruiți modelele.

Acest mecanism necesită un timp finit de pornire pentru un job de formare. Deși acest timp de pornire, cunoscut și ca timpul de pornire la pornire la rece, este destul de scăzut, unele dintre cele mai solicitante cazuri de utilizare a clienților noștri necesită timpi de pornire și mai mici, cum ar fi sub 20 de secunde. Există două cazuri de utilizare proeminente care au aceste cerințe:

  • Prima este experimentarea activă ML de către oamenii de știință de date care utilizează Amazon SageMaker platformă de antrenament, în special în timpul antrenării modelelor mari, cum ar fi GPT3, care necesită mai multe iterații pentru a ajunge la o stare pregătită pentru producție.
  • Al doilea este lansarea programatică a unui număr mare (de ordinul a câteva sute sau mii) de joburi consecutive pe același tip de instanțe pe o cadență programată. De exemplu, căutarea parametrilor sau antrenamentul incremental.

Pentru astfel de cazuri de utilizare, fiecare secundă cheltuită cu cheltuieli generale, cum ar fi timpul de pornire pentru un job de formare, are un efect cumulativ asupra tuturor acestor joburi.

Cu SageMaker Training Managed Warm Pools, oamenii de știință de date și inginerii ML au capacitatea de a se înscrie pentru a menține la cald instanțele de antrenament SageMaker sau clusterele cu mai multe instanțe pentru un timp prespecificat și reconfigurabil (keep_alive_period_in_seconds) după finalizarea fiecărei lucrări de formare. Deci, chiar dacă suferiți o penalizare de pornire la rece pentru primul job de instruire rulat pe o instanță sau un cluster, pentru toate joburile de antrenament ulterioare, instanțele sunt deja în funcțiune. Ca rezultat, aceste joburi de formare ulterioare care încep pe o instanță înainte de keep_alive_period_in_seconds expiră nu implică timpul de pornire la rece. Acest lucru poate reduce timpii de pornire a sarcinii de antrenament la aproximativ mai puțin de 20 de secunde (P90).

Oamenii de știință de date și inginerii ML pot folosi pool-urile calde gestionate de SageMaker Training pentru a menține calde instanțe unice sau multiple între rulările de antrenament pentru experimentare sau pentru a rula mai multe lucrări consecutiv pe același cluster cu o singură instanță sau cu mai multe instanțe. Plătești doar pentru durata joburilor de formare și reconfigurabile keep_alive_period_in_seconds ca oriunde altundeva specificați pentru fiecare instanță.

În esență, cu SageMaker Training Managed Warm Pools, obțineți o combinație de utilizare a instanțelor gestionate de SageMaker cu capacitatea de a vă înscrie și de a furniza capacitate și de a auto-gestiona utilizarea pentru intervale scurte de timp. Aceste intervale sunt configurabile înaintea unui job, dar dacă în timpul keep_alive_period_in_seconds interval, trebuie să îl reduceți sau să îl măriți, puteți face acest lucru. Crește la keep_alive_period_in_seconds se poate face la intervale de până la 60 de minute, cu o perioadă maximă pentru o instanță sau un cluster fiind de 7 zile.

Pentru a începe cu piscinele calde, mai întâi solicitați o creștere a limitei cotei piscinei calde, apoi specificați keep_alive_period_in_seconds parametru la începerea unui loc de muncă de formare.

valori de referință

Am efectuat teste de evaluare comparativă pentru a măsura latența de pornire a jobului folosind o imagine TensorFlow de 1.34 GB, 2 GB de date și diferite moduri de introducere a datelor de antrenament (Amazon FSx, Fast File Mode, File Mode). Testele au fost efectuate pe o varietate de tipuri de instanțe din familiile m4, c4, m5 și c5 din Regiunea us-east-2. Latența de pornire a fost măsurată ca timp de creare a locurilor de muncă până la începerea jobului de formare real pe instanțe. Primele joburi care au pornit clusterul și au creat pool-ul cald au avut o latență de pornire de 2-3 minute. Această latență mai mare se datorează timpului necesar pentru furnizarea infrastructurii, descărcarea imaginii și descărcarea datelor. Lucrările ulterioare care au utilizat clusterul de pool cald au avut o latență de pornire de aproximativ 20 de secunde pentru Fast File Mode (FFM) sau Amazon FSx și 70 de secunde pentru File Mode (FM). Această deltă este rezultatul faptului că FM necesită descărcarea întregului set de date de pe Amazon S3 înainte de începerea lucrării.

Alegerea modului de introducere a datelor de antrenament afectează timpul de pornire, chiar și în cazul piscinelor calde. Îndrumări cu privire la modul de introducere pe care să îl selectați se găsesc în secțiunea cu cele mai bune practici de mai târziu în această postare.

Următorul tabel rezumă latența de pornire a lucrării P90 pentru diferite moduri de introducere a datelor de antrenament.

Modul de introducere a datelor Latența de pornire P90 (secunde)
Primul loc de muncă Locuri de muncă în piscină caldă (al doilea loc de muncă înainte)
FSx 136 19
Modul Fast File 143 21
Modul fișier 176 70

Cele mai bune practici pentru utilizarea piscinelor calde

În secțiunea următoare, împărtășim câteva bune practici atunci când folosiți piscine calde.

Când ar trebui să folosiți piscine calde?

Piscinele calde sunt recomandate în următoarele scenarii:

  • Experimentați și reglați interactiv scriptul pe o serie de lucrări scurte.
  • Executați propria optimizare a hiperparametrului personalizat, la scară largă (de exemplu, Syne Tune).
  • Aveți un proces batch care rulează un număr mare (de ordinul a câteva sute sau mii) de joburi consecutive pe același tip de instanțe pe o cadență zilnică sau săptămânală. De exemplu, antrenarea unui model ML per oraș.

Piscinele calde nu sunt recomandate atunci când este puțin probabil ca cineva să refolosească piscina caldă înainte de a expira. De exemplu, o singură lucrare de lungă durată care rulează printr-o conductă ML automatizată.

Minimizați latența de pornire a activității de antrenament de bazin cald

Lucrările de instruire care reutiliza o piscină caldă încep mai repede decât primul loc de muncă care a creat piscina caldă. Acest lucru se datorează menținerii instanțelor ML care rulează între joburi cu o imagine Docker a containerului de antrenament stocat în cache pentru a omite extragerea containerului din Registrul Amazon de containere elastice (Amazon ECR). Cu toate acestea, chiar și atunci când reutilizați o piscină caldă, au loc anumiți pași de inițializare pentru toate lucrările. Optimizarea acestor pași poate reduce timpul de pornire a lucrării (atât primele, cât și cele ulterioare). Luați în considerare următoarele:

  • Modul de introducere a datelor de antrenament poate afecta timpul de pornire – Canalele de introducere a datelor de antrenament gestionate sunt recreate pentru fiecare job de antrenament, contribuind la latența de pornire a jobului. Deci, efectuarea experimentelor inițiale pe un set de date mai mic va permite un timp de pornire mai rapid (și un timp de antrenament mai rapid). Pentru etapele ulterioare de experimentare, când este necesar un set de date mare, luați în considerare utilizarea unui tip de mod de intrare care are timp de inițializare minim sau fix. De exemplu, modul de intrare FILE copiază întregul set de date din Serviciul Amazon de stocare simplă (Amazon S3) la instanța de antrenament, ceea ce necesită mult timp pentru seturi de date mari (chiar și cu piscine calde). Modul Fast File este mai potrivit pentru o latență de pornire mai mică, deoarece numai metadatele obiectului S3 trebuie citite din Amazon S3 înainte ca volumul de lucru să poată începe. The Amazon FSx pentru Luster, Sau Sistem de fișiere elastice Amazon Modul de introducere a sistemului de fișiere (Amazon EFS), are un timp de inițializare fix, indiferent de numărul de fișiere din sistemul de fișiere, ceea ce este benefic atunci când lucrați cu un set de date mare.
    Pentru mai multe informații despre cum să alegeți un canal de intrare, consultați Alegeți cea mai bună sursă de date pentru jobul dvs. de formare Amazon SageMaker.
  • Reduceți instalarea în timp de execuție a pachetelor – Orice instalare de software care are loc în timpul pornirii containerului, de exemplu, pip-ul Python sau sistemul de operare apt-get, va crește latența jobului de antrenament. Minimizarea acestei latențe de pornire necesită un compromis între flexibilitatea și simplitatea instalărilor de rulare față de instalarea la momentul construirii containerului. Dacă utilizați propriul container Docker cu SageMaker, consultați Adaptarea propriului container Docker pentru a lucra cu SageMaker. Dacă te bazezi pe imagini de containere SageMaker prefabricate, va trebui extinde un container prefabricat și gestionați în mod explicit aceste containere. Luați în considerare acest lucru dacă instalările dvs. de rulare cresc semnificativ latența de pornire.
  • Evitați actualizarea frecventă a imaginii dvs. Docker – Dacă utilizați propriul container Docker cu SageMaker, încercați să evitați actualizarea acestuia la fiecare executare a sarcinii. Dacă imaginea Docker se modifică între trimiterile de job, pool-ul cald va fi reutilizat, dar procesul de pornire va trebui să extragă din nou imaginea containerului din Amazon ECR în loc să refolosească o imagine a containerului stocată în cache. Dacă imaginea Docker trebuie actualizată, limitați actualizările la ultimul strat Docker pentru a profita de memorarea în cache a stratului Docker. În mod ideal, ar trebui să eliminați conținutul Dockerfile care este probabil să se schimbe peste iterații, cum ar fi hiperparametrul, definițiile setului de date și codul ML în sine. Pentru a repeta codul ML fără a fi nevoie să reconstruiți imaginile Docker cu fiecare modificare, puteți adopta paradigma containerului cadru susținută de SageMaker Training Toolkit. Dacă doriți să dezvoltați un container cadru cu propriul cod, consultați acest lucru Tutorial Amazon SageMaker.

Partajați piscine calde între mai mulți utilizatori

Când lucrați cu o echipă mare de cercetători ai datelor, puteți partaja bazine calde care au potrivirea criteriilor postului, cum ar fi același Gestionarea identității și accesului AWS (IAM) rol sau imagine container.

Să ne uităm la un exemplu de cronologie. Utilizatorul-1 începe o sarcină de antrenament care se finalizează și are ca rezultat o nouă piscină caldă creată. Când utilizatorul-2 începe un job de antrenament, jobul va reutiliza bazinul cald existent, rezultând o pornire rapidă a jobului. În timp ce jobul utilizatorului-2 rulează cu pool-ul cald în uz, dacă un alt utilizator începe un job de antrenament, atunci va fi creat un al doilea pool cald.

Acest comportament de reutilizare ajută la reducerea costurilor prin partajarea piscinelor calde între utilizatorii care încep lucrări similare. Dacă doriți să evitați partajarea piscinelor calde între utilizatori, atunci locurile de muncă ale utilizatorilor nu trebuie să aibă potrivirea criteriilor postului (de exemplu, trebuie să utilizeze un rol IAM diferit).

Notificați utilizatorii la finalizarea lucrării

Când utilizați bazine calde pentru experimentare, vă recomandăm să anunțați utilizatorii când munca lor este finalizată. Acest lucru permite utilizatorilor să reia experimentele înainte ca piscina caldă să expire sau opri piscina caldă dacă nu mai este nevoie. Poti de asemenea declanșează automat notificări prin Amazon EventBridge.

Instrumente suplimentare pentru experimentarea rapidă și depanarea sarcinilor de formare

Cu piscine calde, puteți începe o lucrare în mai puțin de 20 de secunde. Unele scenarii necesită experimentare interactivă practică și depanare în timp real. Sursa deschisă Biblioteca SageMaker SSH Helper vă permite să folosiți un container de antrenament SageMaker și să efectuați dezvoltarea și depanarea de la distanță.

Concluzie

Cu SageMaker Training Managed Warm Pools, puteți menține la cald instanțele hardware de antrenament model după fiecare lucrare pentru o perioadă specificată. Acest lucru poate reduce latența de pornire pentru un job de formare a modelului de până la 8x. Pool-urile calde gestionate de SageMaker Training sunt disponibile în toate regiunile AWS publice în care este disponibil SageMaker Model Training.

Pentru a începe, vezi Antrenați-vă folosind piscinele calde gestionate de SageMaker.


Despre autori

Romi DattaDr. Romi Datta  este Senior Manager de Product Management în echipa Amazon SageMaker responsabilă de instruire, procesare și magazin de funcții. El este în AWS de peste 4 ani, deținând mai multe roluri de conducere în managementul produselor în SageMaker, S3 și IoT. Înainte de AWS, a lucrat în diverse funcții de management de produs, inginerie și conducere operațională la IBM, Texas Instruments și Nvidia. Are un MS și un doctorat. în Inginerie Electrică și Calculatoare de la Universitatea Texas din Austin și un MBA de la Universitatea din Chicago Booth School of Business.

Cele mai bune practici pentru Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Arun Nagarajan este inginer principal cu echipa Amazon SageMaker, concentrându-se pe domeniile Training și MLOps. El a făcut parte din echipa SageMaker încă din anul lansării și i-a plăcut să contribuie la diferite domenii ale SageMaker, inclusiv produsele de inferență în timp real și Model Monitor. Îi place să exploreze în aer liber în zona Pacific Northwest și să urce pe munți.

Cele mai bune practici pentru Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Amy Tu este manager de dezvoltare software la AWS SageMaker. Ea se concentrează pe reunirea unei echipe de ingineri software pentru a construi, întreține și dezvolta noi capabilități ale platformei SageMaker Training, care îi ajută pe clienți să-și antreneze modelele ML mai eficient și mai ușor. Ea are o pasiune pentru tehnologia ML și AI, în special legată de imagine și viziune din studiile sale postuniversitare. În timpul liber, îi place să lucreze la muzică și artă cu familia ei.

Cele mai bune practici pentru Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Căutare verticală. Ai. Sifei Li este inginer software în Amazon AI, unde lucrează la construirea platformelor Amazon Machine Learning și a făcut parte din echipa de lansare pentru Amazon SageMaker. În timpul liber, îi place să cânte muzică și să citească.

Cele mai bune practici pentru Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Jenna Zhao este inginer de dezvoltare software la AWS SageMaker. Este pasionată de tehnologia ML/AI și s-a concentrat pe construirea platformei de instruire SageMaker, care le permite clienților să antreneze rapid și ușor modele de învățare automată. În afara serviciului, îi place să călătorească și să petreacă timpul cu familia ei.

Cele mai bune practici pentru Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Paras Mehra este Senior Product Manager la AWS. El se concentrează pe a ajuta la construirea Amazon SageMaker Training and Processing. În timpul liber, Paras îi place să petreacă timpul cu familia sa și să meargă cu bicicleta pe drum în jurul Bay Area. Îl poți găsi pe LinkedIn.

Cele mai bune practici pentru Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Gili Nachum este un arhitect senior în soluții de specialitate AI/ML care lucrează ca parte a echipei EMEA Amazon Machine Learning. Gili este pasionat de provocările antrenării modelelor de învățare profundă și de modul în care învățarea automată schimbă lumea așa cum o cunoaștem. În timpul liber, lui Gili îi place să joace tenis de masă.

Cele mai bune practici pentru Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Olivier Cruchant este arhitect de soluții specializat în învățare automată la AWS, cu sediul în Franța. Olivier îi ajută pe clienții AWS – de la startup-uri mici până la întreprinderi mari – să dezvolte și să implementeze aplicații de învățare automată la nivel de producție. În timpul liber, îi place să citească lucrări de cercetare și să exploreze sălbăticia cu prietenii și familia.

Cele mai bune practici pentru Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Emily Webber sa alăturat AWS imediat după lansarea SageMaker și de atunci a încercat să spună lumii despre asta! În afară de a construi noi experiențe ML pentru clienți, lui Emily îi place să mediteze și să studieze budismul tibetan.

Timestamp-ul:

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