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

Analizați cheltuielile Amazon SageMaker și determinați oportunitățile de optimizare a costurilor pe baza utilizării, Partea 3: Joburi de prelucrare și date Wrangler | 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 utilizarea preprocesării datelor Procesare Amazon SageMaker și Amazon SageMaker Data Wrangler locuri de munca.

Preprocesarea datelor deține un rol esențial într-o abordare AI centrată pe date. Cu toate acestea, pregătirea datelor brute pentru instruirea și evaluarea ML este adesea o sarcină obositoare și solicitantă în ceea ce privește resursele de calcul, timpul și efortul uman. În mod obișnuit, pregătirea datelor trebuie să fie integrată din surse diferite și să se ocupe de valorile lipsă sau zgomotoase, valorile aberante și așa mai departe.

În plus, pe lângă sarcinile comune de extragere, transformare și încărcare (ETL), echipele de ML necesită ocazional capabilități mai avansate, cum ar fi crearea de modele rapide pentru a evalua datele și a produce scoruri de importanță a caracteristicilor sau evaluarea modelului după antrenament, ca parte a unei conducte MLOps.

SageMaker oferă două funcții special concepute pentru a ajuta la aceste probleme: SageMaker Processing și Data Wrangler. SageMaker Processing vă permite să rulați cu ușurință preprocesarea, postprocesarea și evaluarea modelului pe o infrastructură complet gestionată. Data Wrangler reduce timpul necesar pentru agregarea și pregătirea datelor prin simplificarea procesului de integrare a surselor de date și de inginerie a caracteristicilor folosind o singură interfață vizuală și un mediu de procesare a datelor complet distribuit.

Ambele caracteristici SageMaker oferă o mare flexibilitate cu mai multe opțiuni pentru I/O, stocare și calcul. Cu toate acestea, setarea incorect a acestor opțiuni poate duce la costuri inutile, mai ales atunci când aveți de-a face cu seturi de date mari.

În această postare, analizăm factorii de preț și oferim îndrumări de optimizare a costurilor pentru joburile SageMaker Processing și Data Wrangler.

Procesare SageMaker

SageMaker Processing este o soluție gestionată pentru a rula sarcini de lucru de procesare a datelor și de evaluare a modelelor. Îl puteți folosi în pașii de procesare a datelor, cum ar fi ingineria caracteristicilor, validarea datelor, evaluarea modelului și interpretarea modelului în fluxurile de lucru ML. Cu SageMaker Processing, puteți aduce propriile scripturi personalizate de procesare și puteți alege să construiți un container personalizat sau să utilizați un container gestionat SageMaker cu cadre comune precum scikit-learn, Lime, Spark și multe altele.

SageMaker Processing vă taxează pentru tipul de instanță pe care îl alegeți, în funcție de durata de utilizare și de stocarea prevăzută care este atașată acelei instanțe. Î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 procesare aplicând un filtru pe tipul de utilizare. Numele acestor tipuri de utilizare sunt după cum urmează:

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

Pentru a verifica costul de procesare SageMaker în Cost Explorer, începeți prin a filtra cu SageMaker pentru serviciu, Și pentru Tipul de utilizare, puteți selecta toate instanțele de procesare care rulează ore introducând processing:ml prefix și selectând lista din meniu.

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

Evitați costurile în procesare și dezvoltarea conductelor

Înainte de dimensionarea și optimizarea corectă a duratei de execuție a unui job de procesare SageMaker, verificăm dacă există valori la nivel înalt despre rulările istorice ale jobului. Puteți alege dintre două metode pentru a face acest lucru.

În primul rând, puteți accesa Prelucrare pagină de pe consola SageMaker.

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

Alternativ, puteți utiliza funcția list_processing_jobs API.

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

O stare de lucru Procesare poate fi InProgress, Completed, Failed, Stopping, Sau Stopped.

Un număr mare de joburi eșuate este obișnuit atunci când se dezvoltă noi conducte MLOps. Cu toate acestea, trebuie întotdeauna să testați și să faceți toate eforturile pentru a valida lucrările înainte de a le lansa pe SageMaker, deoarece există taxe pentru resursele utilizate. În acest scop, puteți utiliza SageMaker Processing în mod local. Modul local este o caracteristică SDK SageMaker care vă permite să creați estimatori, procesoare și conducte și să le implementați în mediul dvs. de dezvoltare local. Aceasta este o modalitate excelentă de a vă testa scripturile înainte de a le rula într-un mediu gestionat de SageMaker. Modul local este acceptat de containerele gestionate de SageMaker și de cele pe care le furnizați dvs. Pentru a afla mai multe despre cum să utilizați modul local cu Pipelines Amazon SageMaker, a se referi la Mod local.

Optimizați costurile legate de I/O

Joburile de procesare SageMaker oferă acces la trei surse de date ca parte a gestionării procesarea intrării: Serviciul Amazon de stocare simplă (Amazon S3), Amazon Atena, și Amazon RedShift. Pentru mai multe informații, consultați ProcesareS3Intrare, AthenaDatasetDefinition, și RedshiftDatasetDefinition, respectiv.

Înainte de a analiza optimizarea, este important să rețineți că, deși lucrările SageMaker Processing acceptă aceste surse de date, acestea nu sunt obligatorii. În codul dvs. de procesare, puteți implementa orice metodă de descărcare a datelor de acces din orice sursă (cu condiția ca instanța de procesare să le poată accesa).

Pentru a obține informații mai bune despre performanța de procesare și despre detectarea oportunităților de optimizare, vă recomandăm să urmați cele mai bune practici de înregistrare în scriptul dvs. de procesare. SageMaker vă publică jurnalele de procesare către Amazon CloudWatch.

În următorul exemplu de jurnal de job, vedem că procesarea scriptului a durat 15 minute (între Start custom script și End custom script).

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

Cu toate acestea, pe consola SageMaker, vedem că lucrarea a durat 4 minute suplimentare (aproape 25% din timpul total de rulare al jobului).

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

Acest lucru se datorează faptului că, pe lângă timpul necesar pentru scriptul nostru de procesare, descărcarea și încărcarea datelor gestionate de SageMaker a durat și timp (4 minute). Dacă aceasta se dovedește a fi o mare parte a costurilor, luați în considerare modalități alternative 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 ca 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. Rețineți că astfel de metode ar putea introduce taxe în Amazon S3 din cauza transfer de date.

Procesarea locurilor de muncă este de asemenea suportată Modul țeavă. Cu această metodă, SageMaker transmite datele de intrare de la sursă direct în containerul dumneavoastră de procesare în conducte denumite fără a utiliza volumul de stocare ML, eliminând astfel timpul de descărcare a datelor și un volum de disc mai mic. Cu toate acestea, acest lucru necesită un model de programare mai complicat decât simpla citire de pe fișiere de pe un disc.

După cum am menționat mai devreme, SageMaker Processing acceptă și Athena și Amazon Redshift ca surse de date. Când se configurează o lucrare de procesare cu aceste surse, SageMaker copiază automat datele în Amazon S3, iar instanța de procesare preia datele din locația Amazon S3. Cu toate acestea, când lucrarea este terminată, nu există un proces de curățare gestionat, iar datele copiate vor rămâne în continuare în Amazon S3 și pot suporta taxe de stocare nedorite. Prin urmare, atunci când utilizați surse de date Athena și Amazon Redshift, asigurați-vă că implementați o procedură de curățare, cum ar fi o funcție Lambda care rulează după un program sau într-o Pasul Lambda ca parte a unei conducte SageMaker.

La fel ca și descărcarea, încărcarea artefactelor de procesare poate fi, de asemenea, o oportunitate de optimizare. Când ieșirea unui job de procesare este configurată folosind ProcessingS3Output parametru, puteți specifica care S3UploadMode a folosi. The S3UploadMode valoarea implicită a parametrului este EndOfJob, care va determina SageMaker să încarce rezultatele după finalizarea lucrării. Cu toate acestea, dacă lucrarea dvs. de procesare produce mai multe fișiere, puteți seta S3UploadMode la Continuous, permițând astfel încărcarea artefactelor simultan pe măsură ce procesarea continuă și scăzând timpul de execuție a lucrării.

Instanțe de job de procesare de dimensiunea potrivită

Alegerea tipului și dimensiunii corecte a instanței este un factor major în optimizarea costului lucrărilor de procesare SageMaker. Puteți dimensiona corect o instanță migrând la o versiune diferită din cadrul aceleiași familii de instanțe sau migrând la o altă familie de instanțe. Când migrați în cadrul aceleiași familii de instanțe, trebuie să luați în considerare doar CPU/GPU și memorie. Pentru mai multe informații și îndrumări generale privind alegerea resurselor de procesare potrivite, consultați Asigurați resurse de calcul eficiente pe Amazon SageMaker.

Pentru a ajusta selecția instanțelor, începem prin a analiza valorile procesării jobului în CloudWatch. Pentru mai multe informații, consultați Monitorizați Amazon SageMaker cu Amazon CloudWatch.

CloudWatch colectează date brute de la SageMaker și le procesează în valori lizibile, aproape în timp real. Deși aceste statistici sunt păstrate timp de 15 luni, consola CloudWatch limitează căutarea la valorile care au fost actualizate în ultimele 2 săptămâni (aceasta asigură că sunt afișate doar joburile curente). Valorile de procesare a joburilor pot fi găsite în spațiul de nume /aws/sagemaker/ProcessingJobs, iar valorile colectate sunt CPUUtilization, MemoryUtilization, GPUUtilization, GPUMemoryUtilization, și DiskUtilization.

Următoarea captură de ecran arată un exemplu în CloudWatch al jobului de procesare pe care l-am văzut mai devreme.

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

În acest exemplu, vedem valorile medii ale procesorului și memoriei (care este valoarea implicită în CloudWatch): utilizarea medie a procesorului este de 0.04%, memorie de 1.84% și utilizarea discului de 13.7%. Pentru a dimensiona corect, luați în considerare întotdeauna utilizarea maximă a CPU și a memoriei (în acest exemplu, utilizarea maximă a CPU a fost de 98% în primele 3 minute). Ca regulă generală, dacă utilizarea maximă a CPU și a memoriei este în mod constant mai mică de 40%, puteți tăia în siguranță mașina la jumătate. De exemplu, dacă utilizați o instanță ml.c5.4xlarge, puteți trece la o instanță ml.c5.2xlarge, ceea ce vă poate reduce costul cu 50%.

Locuri de munca Data Wrangler

Data Wrangler este o caracteristică a Amazon SageMaker Studio care oferă o soluție repetabilă și scalabilă pentru explorarea și procesarea datelor. Utilizați interfața Data Wrangler pentru a importa, analiza, transforma și prezenta datele în mod interactiv. Acești pași sunt capturați într-o rețetă (un fișier .flow) pe care apoi îl puteți utiliza într-o lucrare Data Wrangler. Acest lucru vă ajută să aplicați din nou aceleași transformări de date asupra datelor dvs. și, de asemenea, să scalați la o lucrare de procesare a datelor în loturi distribuite, fie ca parte a unui pipeline ML, fie independent.

Pentru îndrumări despre optimizarea aplicației Data Wrangler în Studio, consultați partea 2 din această serie.

În această secțiune, ne concentrăm pe optimizarea joburilor Data Wrangler.

Data Wrangler folosește Lucrări de procesare SageMaker Spark cu un container gestionat de Data Wrangler. Acest container rulează instrucțiunile din fișierul .flow din job. La fel ca orice lucrare de procesare, Data Wrangler vă taxează pentru instanțele pe care le alegeți, în funcție de durata de utilizare și de stocarea prevăzută care este atașată acelei instanțe.

În Cost Explorer, puteți filtra costurile joburilor Data Wrangler aplicând un filtru pe tipul de utilizare. Numele acestor tipuri de utilizare sunt:

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

Pentru a vedea costul Data Wrangler în Cost Explorer, filtrați serviciul pentru a utiliza SageMaker și pentru Tipul de utilizare, alege processing_DW prefix și selectați lista din meniu. Aceasta vă va afișa atât costurile legate de utilizarea instanței (ore) cât și de volumul de stocare (GB). (Dacă doriți să vedeți costurile Studio Data Wrangler, puteți filtra tipul de utilizare după Studio_DW prefix.)

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

Dimensiunea corectă și planificarea instanțelor de job Data Wrangler

Momentan, Data Wrangler acceptă numai instanțe m5 cu următoarele dimensiuni ale instanțelor: ml.m5.4xlarge, ml.m5.12xlarge și ml.m5.24xlarge. Puteți utiliza funcția de job distribuită pentru a ajusta costul jobului. De exemplu, să presupunem că trebuie să procesați un set de date care necesită 350 GiB în RAM. Este posibil ca 4xlarge (128 GiB) și 12xlarge (256 GiB) să nu poată procesa și vă va conduce să utilizați instanța m5.24xlarge (768 GiB). Cu toate acestea, puteți folosi două instanțe m5.12xlarge (2 * 256 GiB = 512 GiB) și reduceți costul cu 40% sau trei instanțe m5.4xlarge (3 * 128 GiB = 384 GiB) și economisiți 50% din m5.24xlarge costul instanței. Trebuie să rețineți că acestea sunt estimări și că procesarea distribuită ar putea introduce o suprasarcină care va afecta durata generală de rulare.

Când schimbați tipul instanței, asigurați-vă că actualizați Configurare Spark în consecinţă. De exemplu, dacă aveți un job inițial de instanță ml.m5.4xlarge configurat cu proprietăți spark.driver.memory setată la 2048 și spark.executor.memory setată la 55742, iar ulterior scala până la ml.m5.12xlarge, acele valori de configurare trebuie să fie mărite, altfel vor fi blocajul în procesul de procesare. Puteți actualiza aceste variabile în GUI Data Wrangler sau într-un fișier de configurare atașat la calea de configurare (vezi următoarele exemple).

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

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

O altă caracteristică convingătoare a Data Wrangler este capacitatea de a stabiliți o lucrare programată. Dacă procesați datele periodic, puteți crea o programare pentru a rula automat jobul de procesare. De exemplu, puteți crea un program care rulează automat un job de procesare atunci când obțineți date noi (de exemplu, consultați Exportați pe Amazon S3 or Exportați în Amazon SageMaker Feature Store). Cu toate acestea, ar trebui să rețineți că atunci când creați un program, Data Wrangler creează un eventRule în EventBridge. Aceasta înseamnă că veți fi taxat și pentru regulile de eveniment pe care le creați (precum și instanțele utilizate pentru a rula jobul de procesare). Pentru mai multe informații, vezi Prețuri Amazon EventBridge.

Concluzie

În această postare, am oferit îndrumări privind analiza costurilor și cele mai bune practici la preprocesare

date utilizând joburile SageMaker Processing și Data Wrangler. Similar cu preprocesarea, există multe opțiuni și setări de configurare în construirea, antrenamentul și rularea modelelor ML care pot duce la costuri inutile. Prin urmare, pe măsură ce învățarea automată se stabilește ca un instrument puternic în toate industriile, sarcinile de lucru ML trebuie să rămână rentabile.

SageMaker oferă un set larg și profund de caracteristici pentru a facilita fiecare pas din pipeline ML.

Această robustețe oferă, de asemenea, oportunități de optimizare continuă a costurilor fără a compromite performanța sau agilitatea.


Despre Autori

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler 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 3: Processing and Data Wrangler 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 să meargă cu bicicleta, să facă drumeții și să privească apusurile (cel puțin o dată pe zi).

Timestamp-ul:

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