Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Rulați notebook-uri ca lucrări de lot în Amazon SageMaker Studio Lab

Recent, Amazon SageMaker Studio a lansat o modalitate ușoară de a rula notebook-uri ca joburi batch care pot rula pe un program recurent. Amazon SageMaker Studio Lab acceptă, de asemenea, această funcție, permițându-vă să rulați notebook-uri pe care le dezvoltați în SageMaker Studio Lab în contul dvs. AWS. Acest lucru vă permite să scalați rapid experimentele de învățare automată (ML) cu seturi de date mai mari și instanțe mai puternice, fără a fi nevoie să învățați ceva nou sau să schimbați o singură linie de cod.

În această postare, vă prezentăm cerința preliminară unică pentru a vă conecta mediul Studio Lab la un cont AWS. După aceea, vă prezentăm pașii pentru a rula notebook-uri ca un lot de lucru din Studio Lab.

Prezentare generală a soluțiilor

Studio Lab a încorporat aceeași extensie ca Studio, care se bazează pe extensia open-source Jupyter pentru caiete programate. Această extensie are parametri suplimentari specifici AWS, cum ar fi tipul de calcul. În Studio Lab, un blocnotes programat este mai întâi copiat într-un Serviciul Amazon de stocare simplă (Amazon S3) în contul dvs. AWS, apoi rulați la ora programată cu tipul de calcul selectat. Când lucrarea este finalizată, rezultatul este scris într-un bucket S3, iar calculul AWS este complet oprit, prevenind costurile continue.

Cerințe preliminare

Pentru a utiliza joburile de notebook Studio Lab, aveți nevoie de acces administrativ la contul AWS la care vă veți conecta (sau asistență de la cineva cu acest acces). În restul acestei postări, presupunem că sunteți administratorul AWS, dacă nu este cazul, cereți administratorului sau proprietarului contului să revizuiască acești pași împreună cu dvs.

Creați un rol de execuție SageMaker

Trebuie să ne asigurăm că contul AWS are un Gestionarea identității și accesului AWS (IAM) Rol de execuție SageMaker. Acest rol este utilizat de resursele SageMaker din cont și oferă acces de la SageMaker la alte resurse din contul AWS. În cazul nostru, lucrările noastre de notebook rulează cu aceste permisiuni. Dacă SageMaker a fost folosit anterior în acest cont, atunci este posibil să existe deja un rol, dar este posibil să nu aibă toate permisiunile necesare. Deci hai să mergem mai departe și să facem unul nou.

Următorii pași trebuie efectuati o singură dată, indiferent de câte medii SageMaker Studio Lab vor accesa acest cont AWS.

  1. Pe consola IAM, alegeți Roluri în panoul de navigare.
  2. Alege Creare rol.
  3. Pentru Tip de entitate de încredere, Selectați Serviciu AWS.
  4. Pentru Cazuri de utilizare pentru alte servicii AWS, alege SageMaker.
  5. Selectați SageMaker – Execuție.
  6. Alege Pagina Următoare →.
  7. Examinați permisiunile, apoi alegeți Pagina Următoare →.Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
  8. Pentru Nume rol, introduceți un nume (pentru această postare, folosim sagemaker-execution-role-notebook-jobs).
  9. Alege Creare rol.
  10. Notați rolul ARN.

Rolul ARN va fi în formatul de arn:aws:iam::[account-number]:role/service-role/[role-name] și este necesar în configurarea Studio Lab.

Creați un utilizator IAM

Pentru ca un mediu Studio Lab să acceseze AWS, trebuie să creăm un utilizator IAM în AWS și să îi acordăm permisiunile necesare. Apoi trebuie să creăm un set de chei de acces pentru acel utilizator și să le oferim mediului Studio Lab.

Acest pas ar trebui repetat pentru fiecare mediu SageMaker Studio Lab care va accesa acest cont AWS.

Rețineți că administratorii și proprietarii de conturi AWS ar trebui să se asigure că sunt respectate, în cea mai mare măsură posibilă, practicile de securitate bine proiectate. De exemplu, permisiunile utilizatorului ar trebui să fie întotdeauna limitate, iar cheile de acces ar trebui să fie rotite în mod regulat pentru a minimiza impactul compromiterii acreditărilor.

În acest blog vă arătăm cum să folosiți AmazonSageMakerFullAccess politică gestionată. Această politică oferă acces larg la Amazon SageMaker, care poate depăși ceea ce este necesar. Detalii despre AmazonSageMakerFullAccess pot fi găsite aici.

Deși Studio Lab folosește securitatea întreprinderii, trebuie remarcat faptul că acreditările de utilizator Studio Lab nu fac parte din contul dvs. AWS și, prin urmare, de exemplu, nu sunt supuse politicilor dvs. privind parola AWS sau MFA.

Pentru a reduce cât mai mult posibil permisiunile, creăm un profil de utilizator special pentru acest acces.

  1. Pe consola IAM, alegeți Utilizatori în panoul de navigare.
  2. Alege Adăugați utilizatori.
  3. Pentru nume utilizator, introduceți un nume. Este o practică bună să utilizați un nume care este legat de o persoană individuală care va folosi acest cont; acest lucru vă ajută dacă examinați jurnalele de audit.
  4. Pentru Selectați tipul de acces AWS, Selectați Cheie de acces – Acces programat.
  5. Alege Următorul: Permisiuni.Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
  6. Alege Atașați direct politicile existente.
  7. Căutați și selectați AmazonSageMakerFullAccess.Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
  8. Căutați și selectați AmazonEventBridgeFullAccess.Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
  9. Alege Următorul: Etichete.
  10. Alege Următorul: Recapitulare.
  11. Confirmați-vă politicile, apoi alegeți Creaza utilizator.Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Pagina finală a procesului de creare a utilizatorului ar trebui să vă arate cheile de acces ale utilizatorului. Lăsați această filă deschisă, deoarece nu putem naviga înapoi aici și avem nevoie de aceste detalii.
  12. Deschideți o filă nouă de browser în Studio Lab.
  13. Pe Fișier meniu, alegeți Lansator nou, Apoi alegeți Terminal.Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
  14. În linia de comandă, introduceți următorul cod:
    aws configure

  15. Introduceți următorul cod:
    1. Introduceți valorile din pagina consolei IAM pentru ID-ul cheii de acces și cheia de acces secretă.
    2. Pentru Default region name, introduce us-west-2.
    3. Părăsi Default output format as text.
      (studiolab) studio-lab-user@default:~$ aws configure 
      AWS Access Key ID []: 01234567890
      AWS Secret Access Key []: ABCDEFG1234567890ABCDEFG
      Default region name []: us-west-2
      Default output format [text]: 
      
      (studiolab) studio-lab-user@default:~$

Felicitări, mediul dvs. Studio Lab ar trebui acum configurat pentru a accesa contul AWS. Pentru a testa conexiunea, lansați următoarea comandă:

aws sts get-caller-identity

Această comandă ar trebui să returneze detalii despre utilizatorul IAM pe care l-ați configurat.

Creați o lucrare de notebook

Lucrările de blocnotes sunt create folosind blocnotesurile Jupyter în Studio Lab. Dacă notebook-ul dvs. rulează în Studio Lab, atunci acesta poate rula ca un job de notebook (cu mai multe resurse și acces la serviciile AWS). Cu toate acestea, există câteva lucruri de urmărit.

Dacă ați instalat pachete pentru ca notebook-ul să funcționeze, adăugați comenzi pentru a încărca aceste pachete într-o celulă din partea de sus a notebook-ului. Folosind simbolul & la începutul fiecărei linii, codul va fi trimis la linia de comandă pentru a rula. În exemplul următor, prima celulă folosește pip pentru a instala bibliotecile PyTorch:

%%capture
%pip install torch
%pip install torchvision

Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Notebook-ul nostru va genera un model PyTorch antrenat. Cu codul nostru obișnuit, salvăm modelul în sistemul de fișiere din Studio Labs.

Când rulăm acest lucru ca un job de notebook, trebuie să salvăm modelul undeva unde să-l putem accesa ulterior. Cel mai simplu mod de a face acest lucru este să salvați modelul în Amazon S3. Am creat o găleată S3 pentru a salva modelele noastre și am folosit o altă celulă de linie de comandă pentru a copia obiectul în găleată.

Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai. Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Noi folosim Interfața liniei de comandă AWS (AWS CLI) aici pentru a copia obiectul. Am putea folosi și SDK AWS pentru Python (Boto3) dacă doream să avem un control mai sofisticat sau automat al numelui fișierului. Deocamdată, ne vom asigura că schimbăm numele fișierului de fiecare dată când rulăm notebook-ul, astfel încât modelele să nu fie suprascrise.

Acum suntem gata să creăm jobul pentru notebook.

  1. Alegeți (clic dreapta) numele blocnotesului, apoi alegeți Creați job pentru notebook.Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
    Dacă această opțiune de meniu lipsește, poate fi necesar să vă reîmprospătați mediul Studio Lab. Pentru a face acest lucru, deschideți Terminalul din lansator și rulați următorul cod:
    conda deactivate && conda env remove —name studiolab

  2. Apoi, reporniți instanța JupyterLab alegând Amazon SageMaker Studio Lab din meniul de sus, apoi alegeți Reporniți JupyterLab.Ca alternativă, accesați pagina de proiect și opriți și reporniți runtime.
  3. Pe Creați loc de muncă pagina, pt Tipul de calcul, alegeți tipul de calcul care se potrivește jobului dvs.

    Pentru mai multe informații despre diferitele tipuri de capacitate de calcul, inclusiv costul, consultați Prețuri Amazon SageMaker (alege Prețuri la cerere și navigați la Pregătire fila. De asemenea, poate fi necesar să verificați disponibilitatea cotei tipului de calcul în contul dvs. AWS. Pentru mai multe informații despre cotele de servicii, consultați: Cote de servicii AWS.Pentru acest exemplu, am selectat o instanță ml.p3.2xlarge, care oferă 8 vCPU, 61 GB de memorie și un GPU Tesla V100.Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

    Dacă nu există avertismente pe această pagină, ar trebui să fiți gata de plecare. Dacă există avertismente, verificați pentru a vă asigura că este specificat rolul corect ARN Opțiuni suplimentare. Acest rol ar trebui să se potrivească cu ARN-ul rolului de execuție SageMaker pe care l-am creat mai devreme. ARN-ul are formatul arn:aws:iam::[account-number]:role/service-role/[role-name].

    Există și alte opțiuni disponibile în interior Opțiuni suplimentare; de exemplu, puteți selecta o anumită imagine și un nucleu care poate avea deja configurația de care aveți nevoie, fără a fi nevoie să instalați biblioteci suplimentare.

  4. Dacă doriți să rulați acest blocnotes într-un program, selectați Rulați după un program și specificați cât de des doriți să ruleze lucrarea.Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Dorim ca acest notebook să ruleze o dată, așa că selectăm Fugi acum.
  5. Alege Crea.
    Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Lista locurilor de muncă pentru notebook

Lucrări de notebook pagina listează toate joburile care rulează în prezent și cele care au rulat în trecut. Puteți găsi această listă din Lansatorul (alegeți, Fișier, Lansator nou), atunci alege Lucrări de notebook în Altele secţiune.

Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Când lucrarea blocnotesului este finalizată, veți vedea că starea se schimbă în Completed (folosește reload opțiune dacă este necesar). Puteți alege apoi pictograma de descărcare pentru a accesa fișierele de ieșire.

Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

După descărcarea fișierelor, puteți revizui blocnotesul împreună cu codul de ieșire și jurnalul de ieșire. În cazul nostru, deoarece am adăugat cod pentru a cronometra rularea celulei de antrenament, putem vedea cât a durat sarcina de antrenament - 16 minute și 21 de secunde, ceea ce este mult mai rapid decât dacă codul ar fi rulat în Studio Lab (1 oră). , 38 minute, 55 secunde). De fapt, întregul notebook a rulat în 1,231 de secunde (puțin peste 20 de minute) la un cost de sub 1.30 USD (USD).

Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Acum putem crește numărul de epoci și ajusta hiperparametrii pentru a îmbunătăți valoarea pierderii modelului și poate trimite o altă lucrare de notebook.

Concluzie

În această postare, am arătat cum să folosim joburile de notebook Studio Lab pentru a extinde codul pe care l-am dezvoltat în Studio Lab și a-l rula cu mai multe resurse într-un cont AWS.

Adăugând acreditări AWS în mediul nostru Studio Lab, nu numai că putem accesa joburi de notebook-uri, dar putem accesa și alte resurse dintr-un cont AWS chiar din bloc-notesurile noastre Studio Lab. Aruncă o privire la AWS SDK pentru Python.

Această capacitate suplimentară a Studio Lab ridică limitele tipurilor și dimensiunilor proiectelor pe care le puteți realiza. Spune-ne ce construiești cu această nouă capacitate!


Despre autori

Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Mike Chambers este un avocat pentru dezvoltatori pentru AI și ML la AWS. El și-a petrecut ultimii 7 ani ajutând constructorii să învețe cloud, securitate și ML. Originar din Marea Britanie, Mike este un pasionat băutor de ceai și constructor de Lego.

Rulați notebook-uri ca lucrări batch în Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Căutare verticală. Ai. Michele Monclova este manager de produs principal la AWS în echipa SageMaker. Ea este originară din New York și veterană din Silicon Valley. Este pasionată de inovațiile care ne îmbunătățesc calitatea vieții.

Timestamp-ul:

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