Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Kør notesbøger som batchjob i Amazon SageMaker Studio Lab

For nylig, Amazon SageMaker Studio lanceret en nem måde at køre notebooks som batchjob, der kan køre efter en tilbagevendende tidsplan. Amazon SageMaker Studio Lab understøtter også denne funktion, så du kan køre notesbøger, som du udvikler i SageMaker Studio Lab på din AWS-konto. Dette giver dig mulighed for hurtigt at skalere dine maskinlæringseksperimenter (ML) med større datasæt og mere kraftfulde forekomster uden at skulle lære noget nyt eller ændre én kodelinje.

I dette indlæg guider vi dig gennem engangsforudsætningen for at forbinde dit Studio Lab-miljø til en AWS-konto. Derefter fører vi dig gennem trinene til at køre notesbøger som et batchjob fra Studio Lab.

Løsningsoversigt

Studio Lab inkorporerede samme udvidelse som Studio, som er baseret på Jupyter open source udvidelsen til planlagte notesbøger. Denne udvidelse har yderligere AWS-specifikke parametre, såsom beregningstypen. I Studio Lab kopieres en planlagt notesbog først til en Amazon Simple Storage Service (Amazon S3) bucket i din AWS-konto, og kør derefter på det planlagte tidspunkt med den valgte beregningstype. Når jobbet er færdigt, skrives outputtet til en S3-bucket, og AWS-beregningen stoppes fuldstændigt, hvilket forhindrer løbende omkostninger.

Forudsætninger

For at bruge Studio Lab notebook-job skal du have administrativ adgang til den AWS-konto, du vil oprette forbindelse til (eller hjælp fra en person med denne adgang). I resten af ​​dette indlæg antager vi, at du er AWS-administratoren. Hvis det ikke er tilfældet, så bed din administrator eller kontoejer om at gennemgå disse trin sammen med dig.

Opret en SageMaker-udførelsesrolle

Vi skal sikre, at AWS-kontoen har en AWS identitets- og adgangsstyring (IAM) SageMaker eksekveringsrolle. Denne rolle bruges af SageMaker-ressourcer på kontoen og giver adgang fra SageMaker til andre ressourcer på AWS-kontoen. I vores tilfælde kører vores notebook-job med disse tilladelser. Hvis SageMaker tidligere har været brugt på denne konto, eksisterer der muligvis allerede en rolle, men den har muligvis ikke alle de nødvendige tilladelser. Så lad os gå videre og lave en ny.

De følgende trin skal kun udføres én gang, uanset hvor mange SageMaker Studio Lab-miljøer, der får adgang til denne AWS-konto.

  1. På IAM-konsollen skal du vælge roller i navigationsruden.
  2. Vælg Opret rolle.
  3. Til Pålidelig enhedstype, Vælg AWS-tjeneste.
  4. Til Brug cases til andre AWS-tjenester, vælg SageMaker.
  5. Type SageMaker – Udførelse.
  6. Vælg Næste.
  7. Gennemgå tilladelserne, og vælg derefter Næste.Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  8. Til Rollenavn, indtast et navn (til dette indlæg bruger vi sagemaker-execution-role-notebook-jobs).
  9. Vælg Opret rolle.
  10. Notér rollen ARN.

Rollen ARN vil være i form af arn:aws:iam::[account-number]:role/service-role/[role-name] og er påkrævet i Studio Lab-opsætningen.

Opret en IAM-bruger

For at et Studio Lab-miljø kan få adgang til AWS, skal vi oprette en IAM-bruger i AWS og give den nødvendige tilladelser. Vi skal derefter oprette et sæt adgangsnøgler til den bruger og give dem til Studio Lab-miljøet.

Dette trin skal gentages for hvert SageMaker Studio Lab-miljø, der vil få adgang til denne AWS-konto.

Bemærk, at administratorer og AWS-kontoejere bør sikre, at veltilrettelagte sikkerhedspraksis i videst muligt omfang følges. For eksempel bør brugertilladelser altid begrænses, og adgangsnøgler bør roteres regelmæssigt for at minimere virkningen af ​​kompromittering af legitimationsoplysninger.

I denne blog viser vi, hvordan du bruger AmazonSageMakerFullAccess styret politik. Denne politik giver bred adgang til Amazon SageMaker, der kan gå ud over, hvad der kræves. Detaljer vedr AmazonSageMakerFullAccess kan findes link..

Selvom Studio Lab anvender virksomhedssikkerhed, skal det bemærkes, at Studio Lab-brugerlegitimationsoplysninger ikke er en del af din AWS-konto og derfor for eksempel ikke er underlagt din AWS-adgangskode eller MFA-politikker.

For at begrænse tilladelserne så meget som muligt, opretter vi en brugerprofil specifikt til denne adgang.

  1. På IAM-konsollen skal du vælge Brugere i navigationsruden.
  2. Vælg Tilføj brugere.
  3. Til brugernavn, indtast et navn. Det er god praksis at bruge et navn, der er knyttet til en individuel person, der vil bruge denne konto; dette hjælper, hvis du gennemgår revisionslogfiler.
  4. Til Vælg AWS-adgangstype, Vælg Adgangsnøgle – Programmatisk adgang.
  5. Vælg Næste: Tilladelser.Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  6. Vælg Vedhæft eksisterende politikker direkte.
  7. Søg efter og vælg AmazonSageMakerFullAccess.Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  8. Søg efter og vælg AmazonEventBridgeFullAccess.Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  9. Vælg Næste: Mærker.
  10. Vælg Næste: Anmeldelse.
  11. Bekræft dine politikker, og vælg derefter Opret bruger.Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Den sidste side af brugeroprettelsesprocessen bør vise dig brugerens adgangsnøgler. Lad denne fane være åben, fordi vi ikke kan navigere tilbage hertil, og vi har brug for disse detaljer.
  12. Åbn en ny browserfane i Studio Lab.
  13. File (Felt) menu, vælg Ny Launcher, Og vælg derefter terminal.Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  14. Indtast følgende kode på kommandolinjen:
    aws configure

  15. Indtast følgende kode:
    1. Indtast værdierne fra IAM-konsolsiden for dit adgangsnøgle-id og din hemmelige adgangsnøgle.
    2. Til Default region name, gå ind us-west-2.
    3. Forlade 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:~$

Tillykke, dit Studio Lab-miljø skulle nu være konfigureret til at få adgang til AWS-kontoen. For at teste forbindelsen skal du udføre følgende kommando:

aws sts get-caller-identity

Denne kommando skal returnere detaljer om den IAM-bruger, du har konfigureret til at bruge.

Opret et notesbogsjob

Notebook-job oprettes ved hjælp af Jupyter-notesbøger i Studio Lab. Hvis din notesbog kører i Studio Lab, kan den køre som et notesbogsjob (med flere ressourcer og adgang til AWS-tjenester). Der er dog et par ting at holde øje med.

Hvis du har installeret pakker for at få din notesbog til at fungere, skal du tilføje kommandoer for at indlæse disse pakker i en celle øverst på din notesbog. Ved at bruge et &-symbol i starten af ​​hver linje, vil koden blive sendt til kommandolinjen for at køre. I det følgende eksempel bruger den første celle pip til at installere PyTorch-biblioteker:

%%capture
%pip install torch
%pip install torchvision

Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Vores notesbog vil generere en trænet PyTorch-model. Med vores almindelige kode gemmer vi modellen i filsystemet i Studio Labs.

Når vi kører dette som et notesbogsjob, skal vi gemme modellen et sted, hvor vi kan få adgang til den bagefter. Den nemmeste måde at gøre dette på er at gemme modellen i Amazon S3. Vi oprettede en S3-bøtte for at gemme vores modeller og bruge en anden kommandolinjecelle til at kopiere objektet ind i bøtten.

Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai. Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Vi bruger AWS kommandolinjegrænseflade (AWS CLI) her for at kopiere objektet. Vi kunne også bruge AWS SDK til Python (Boto3) hvis vi ville have en mere sofistikeret eller automatiseret kontrol af filnavnet. For nu vil vi sikre, at vi ændrer filnavnet, hver gang vi kører notesbogen, så modellerne ikke bliver overskrevet.

Nu er vi klar til at oprette notesbogsjobbet.

  1. Vælg (højreklik) notesbogens navn, og vælg derefter Opret notesbogsjob.Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
    Hvis denne menumulighed mangler, skal du muligvis opdatere dit Studio Lab-miljø. For at gøre dette skal du åbne Terminal fra startprogrammet og køre følgende kode:
    conda deactivate && conda env remove —name studiolab

  2. Genstart derefter din JupyterLab-instans ved at vælge Amazon SageMaker Studio Lab fra topmenuen, og vælg derefter Genstart JupyterLab. Alternativt kan du gå til projektsiden og lukke ned og genstarte runtime.
  3. Skab job side, for Beregningstype, vælg den beregningstype, der passer til dit job.

    For mere information om de forskellige typer af beregningskapacitet, herunder omkostningerne, se Amazon SageMaker-priser (vælge On-Demand-priser og naviger til Kurser fanen. Du skal muligvis også kontrollere kvotetilgængeligheden for beregningstypen på din AWS-konto. For mere information om servicekvoter, se: AWS servicekvoter.Til dette eksempel har vi valgt en ml.p3.2xlarge instans, som tilbyder 8 vCPU, 61 GB hukommelse og en Tesla V100 GPU.Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

    Hvis der ikke er nogen advarsler på denne side, bør du være klar til at gå. Hvis der er advarsler, skal du kontrollere, at den korrekte rolle ARN er specificeret i Yderligere indstillinger. Denne rolle skal matche ARN'et for SageMaker-udførelsesrollen, vi oprettede tidligere. ARN'et er i formatet arn:aws:iam::[account-number]:role/service-role/[role-name].

    Der er andre muligheder inden for Yderligere indstillinger; for eksempel kan du vælge et bestemt billede og en kerne, der muligvis allerede har den konfiguration, du har brug for, uden at skulle installere yderligere biblioteker.

  4. Hvis du vil køre denne notesbog efter en tidsplan, skal du vælge Løb efter en tidsplan og angiv, hvor ofte du ønsker, at jobbet skal køre.Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Vi vil have denne notesbog til at køre én gang, så vi vælger Løb nu.
  5. Vælg Opret.
    Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Notebook jobliste

Notebook job side viser alle de job, der kører i øjeblikket, og dem, der har kørt tidligere. Du kan finde denne liste fra Launcher (vælg, File (Felt), Ny Launcher), vælg derefter Notebook job i Andet sektion.

Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Når notebook-jobbet er afsluttet, vil du se status ændres til Completed (brug Opdater mulighed, hvis det kræves). Du kan derefter vælge download-ikonet for at få adgang til outputfilerne.

Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Når filerne er downloadet, kan du gennemgå notesbogen sammen med kodeoutput og outputlog. I vores tilfælde kan vi, fordi vi tilføjede kode for at time træningscellens kørsel, se, hvor lang tid træningsjobbet tog - 16 minutter og 21 sekunder, hvilket er meget hurtigere, end hvis koden var kørt inde i Studio Lab (1 time , 38 minutter, 55 sekunder). Faktisk kørte hele notesbogen på 1,231 sekunder (lidt over 20 minutter) til en pris på under $1.30 (USD).

Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

W kan nu øge antallet af epoker og justere hyperparametrene for at forbedre tabsværdien af ​​modellen og indsende endnu et notebookjob.

Konklusion

I dette indlæg viste vi, hvordan man bruger Studio Lab notebook-job til at skalere den kode, vi udviklede i Studio Lab, og køre den med flere ressourcer i en AWS-konto.

Ved at tilføje AWS-legitimationsoplysninger til vores Studio Lab-miljø kan vi ikke kun få adgang til notebook-job, men vi kan også få adgang til andre ressourcer fra en AWS-konto direkte fra vores Studio Lab-notesbøger. Tag et kig på AWS SDK til Python.

Denne ekstra kapacitet i Studio Lab løfter grænserne for de typer og størrelser af projekter, du kan opnå. Fortæl os, hvad du bygger med denne nye funktion!


Om forfatterne

Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Mike Chambers er udvikleradvokat for AI og ML hos AWS. Han har brugt de sidste 7 år på at hjælpe bygherrer med at lære cloud, sikkerhed og ML. Mike er oprindeligt fra Storbritannien og er en passioneret tedrikker og Lego-bygger.

Kør notebooks som batchjob i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Lodret søgning. Ai. Michele Monclova er hovedproduktchef hos AWS på SageMaker-teamet. Hun er en indfødt New Yorker og Silicon Valley-veteran. Hun brænder for innovationer, der forbedrer vores livskvalitet.

Tidsstempel:

Mere fra AWS maskinindlæring