Jupyter-notebooks er meget begunstiget af datavidenskabsfolk for deres evne til interaktivt at behandle data, bygge ML-modeller og teste disse modeller ved at drage slutninger om data. Der er dog scenarier, hvor dataforskere måske foretrækker at gå fra interaktiv udvikling på notebooks til batchjob. Eksempler på sådanne use cases omfatter opskalering af et funktionsingeniørjob, der tidligere blev testet på et lille eksempeldatasæt på en lille notebook-instans, kørsel af natlige rapporter for at få indsigt i forretningsmålinger og genoptræning af ML-modeller efter en tidsplan, efterhånden som nye data bliver tilgængelige.
Migrering fra interaktiv udvikling på notebooks til batchjob krævede, at du kopierede kodestykker fra notesbogen til et script, pakkede scriptet med alle dets afhængigheder ind i en container og planlagde, at containeren skulle køre. For at køre dette job gentagne gange efter en tidsplan, var du nødt til at opsætte, konfigurere og overvåge cloud-infrastruktur for at automatisere implementeringer, hvilket resulterede i en omdirigering af værdifuld tid væk fra kernedatavidenskabelige udviklingsaktiviteter.
For at hjælpe med at forenkle processen med at flytte fra interaktive notesbøger til batchjob, i december 2022, Amazon SageMaker Studio , Studio Lab introducerede muligheden for at køre notebooks som planlagte job ved hjælp af notebook-baserede arbejdsgange. Du kan nu bruge den samme kapacitet til at køre dine Jupyter-notebooks fra ethvert JupyterLab-miljø som f.eks. Amazon SageMaker notebook-forekomster og JupyterLab, der kører på din lokale maskine. SageMaker leverer en open source-udvidelse, der kan installeres på ethvert JupyterLab-miljø og bruges til at køre notebooks som flygtige opgaver og efter en tidsplan.
I dette indlæg viser vi dig, hvordan du kører dine notesbøger fra dit lokale JupyterLab-miljø som planlagte notesbogsjob på SageMaker.
Løsningsoversigt
Løsningsarkitekturen til planlægning af notebook-job fra ethvert JupyterLab-miljø er vist i følgende diagram. SageMaker-udvidelsen forventer, at JupyterLab-miljøet har gyldige AWS-legitimationsoplysninger og tilladelser til at planlægge notebook-job. Vi diskuterer trinene til opsætning af legitimationsoplysninger og AWS identitets- og adgangsstyring (IAM) tilladelser senere i dette indlæg. Ud over at IAM-brugeren og den påtagne rollesession planlægger jobbet, skal du også angive en rolle, som notebook-jobinstansen skal påtage sig for adgang til dine data i Amazon Simple Storage Service (Amazon S3) eller at oprette forbindelse til Amazon EMR klynger efter behov.
I de følgende afsnit viser vi, hvordan du opsætter arkitekturen og installerer open source-udvidelsen, kører en notesbog med standardkonfigurationerne og bruger også de avancerede parametre til at køre en notesbog med brugerdefinerede indstillinger.
Forudsætninger
For dette indlæg antager vi et lokalt hostet JupyterLab-miljø. Du kan også følge de samme installationstrin for et miljø hostet i skyen.
De følgende trin forudsætter, at du allerede har et gyldigt Python 3- og JupyterLab-miljø (denne udvidelse fungerer med JupyterLab v3.0 eller højere).
Installer AWS kommandolinjegrænseflade (AWS CLI), hvis du ikke allerede har det installeret. Se Installation eller opdatering af den seneste version af AWS CLI for at få vejledning.
Konfigurer IAM-legitimationsoplysninger
Du skal bruge en IAM-bruger eller en aktiv IAM-rollesession for at indsende SageMaker notebook-job. For at konfigurere dine IAM-legitimationsoplysninger kan du konfigurere AWS CLI med dine AWS-legitimationsoplysninger for din IAM-bruger eller påtage dig en IAM-rolle. For instruktioner om opsætning af dine legitimationsoplysninger, se Konfiguration af AWS CLI. IAM-princippet (bruger eller påtaget rolle) har brug for følgende tilladelser for at planlægge notebook-job. For at tilføje policen til din hovedstol, se Tilføjelse af IAM-identitetstilladelser.
Hvis dine notebook-job skal krypteres med kundeadministreret AWS Key Management Service (AWS KMS) nøgler, tilføj politikerklæringen, der også tillader AWS KMS-adgang. For et eksempel på politik, se Installer politikker og tilladelser til lokale Jupyter-miljøer.
Konfigurer en IAM-rolle for den bærbare opgaveforekomst
SageMaker kræver en IAM-rolle for at køre job på brugerens vegne, såsom at køre notebook-jobbet. Denne rolle skal have adgang til de ressourcer, der kræves for, at den bærbare computer kan fuldføre jobbet, såsom adgang til data i Amazon S3.
Planlægningsudvidelsen søger automatisk efter IAM-roller i AWS-kontoen med præfikset SagemakerJupyterScheduler
for at køre notebook-jobbene.
For at oprette en IAM-rolle, skabe en eksekveringsrolle til Amazon SageMaker med AmazonSageMakerFullAccess
politik. Navngiv rollen SagemakerJupyterSchedulerDemo
, eller angiv et navn med det forventede præfiks.
Efter rollen er oprettet, på Tillidsforhold fanebladet, vælg Rediger tillidspolitik. Erstat den eksisterende tillidspolitik med følgende:
AmazonSageMakerFullAccess
politik er ret eftergivende og foretrækkes generelt til at eksperimentere og komme i gang med SageMaker. Vi opfordrer dig kraftigt til at oprette en politik med et minimumsområde for enhver fremtidig arbejdsbelastning i overensstemmelse med bedste sikkerhedspraksis i IAM. For det minimumssæt af tilladelser, der kræves til notebook-jobbet, se Installer politikker og tilladelser til lokale Jupyter-miljøer.
Installer udvidelsen
Åbn en terminal på din lokale maskine og installer udvidelsen ved at køre følgende kommando:
Når denne kommando er kørt, kan du starte JupyterLab ved at køre jupyter lab.
Hvis du installerer udvidelsen fra JupyterLab-terminalen, skal du genstarte Jupyter-serveren for at indlæse udvidelsen. Du kan genstarte Jupyter-serveren ved at vælge Nedlægge på den File (Felt) menu fra dit JupyterLab, og start JupyterLab fra din kommandolinje ved at køre jupyter lab
.
Indsend et notesbogsjob
Når udvidelsen er installeret på dit miljø, kan du køre enhver selvstændig notesbog som et flygtigt job. Lad os indsende en simpel "Hej verden"-notesbog til at køre som et planlagt job.
- På File (Felt) menu, vælg Ny , Notesbog.
- Indtast følgende indhold:
Når udvidelsen er installeret korrekt, vil du se notebook-planlægningsikonet på notesbogen.
- Vælg ikonet for at oprette et notesbogsjob.
Alternativt kan du højreklikke på notesbogen i din filstifinder og vælge Opret notesbogsjob.
- Angiv jobnavn, inputfil, beregningstype og yderligere parametre.
- Lad de resterende indstillinger være standard, og vælg Opret.
Når jobbet er planlagt, omdirigeres du til Notebook job fanen, hvor du kan se listen over notebook-job og deres status og se notebook-output og logfiler, efter jobbet er fuldført. Du kan også få adgang til dette notebook-jobvindue fra startprogrammet, som vist på det følgende skærmbillede.
Avancerede konfigurationer
Fra din lokale computer kører notebooks automatisk på SageMaker Base Python-billedet, som er det officielle Python 3.8-billede fra Docker Hub med Boto3 og AWS CLI inkluderet. I virkelige tilfælde skal dataforskere installere specifikke pakker eller rammer til deres notebooks. Der er tre måder at opnå et reproducerbart miljø på:
- Ved den enkleste mulighed kan du installere pakkerne og rammerne direkte på den første celle i din notebook.
- Du kan også angive et initialiseringsscript i Yderligere indstillinger sektion, der peger på et bash-script på dit lokale lager, der køres af notebook-jobbet, når notebook'en starter op. I det følgende afsnit viser vi et eksempel på brug af initialiseringsscripts til at installere pakker.
- Endelig, hvis du ønsker maksimal fleksibilitet i konfigurationen af dit køremiljø, kan du bygge dit eget brugerdefinerede billede med en Python3-kerne, skubbe billedet til Amazon Elastic Container Registry (Amazon ECR), og giv ECR-billed-URI'en til dit notebook-job under Yderligere indstillinger. ECR-billedet skal følge kravene til SageMaker-billeder, som anført i Brugerdefinerede SageMaker-billedspecifikationer.
Derudover kan din virksomhed opsætte autoværn som at køre job i internetfri tilstand inden for en Amazon VPC, bruge en tilpasset mindst-privilegeret rolle til jobbet og håndhæve kryptering. Du kan angive sådanne konfigurationer for dine notebook-job i Yderligere indstillinger også afsnittet. For en detaljeret liste over avancerede konfigurationer, se Yderligere indstillinger.
Tilføj et initialiseringsscript
For at vise initialiseringsscriptet kører vi nu prøvenotesbogen til Studio notesbogsjob, der er tilgængelige på GitHub. For at køre denne notesbog skal du installere de nødvendige pakker gennem et initialiseringsscript. Udfør følgende trin:
- Kør følgende kommando fra din JupyterLab-terminal for at downloade filen:
- På File (Felt) menu, vælg Ny , Tekstfil.
- Indtast følgende indhold i din fil, og gem filen under navnet
init-script.sh
: - Vælg
scheduled-example.ipynb
fra din filstifinder for at åbne notesbogen. - Vælg notesbogsjobikonet for at planlægge notesbogen, og udvid Yderligere indstillinger sektion.
- Til Placering af initialiseringsscript, skal du indtaste hele stien til dit script.
Du kan også valgfrit tilpasse input- og output S3-mapperne til dit notebook-job. SageMaker opretter en inputmappe på en specificeret S3-placering for at gemme inputfilerne og opretter en output-S3-mappe, hvor notebook-output gemmes. Du kan angive kryptering, IAM-rolle og VPC-konfigurationer her. Se Begrænsninger og overvejelser til brugerdefinerede billed- og VPC-specifikationer.
- Indtil videre skal du blot opdatere initialiseringsscriptet, vælg Løb nu for tidsplanen, og vælg Opret.
Når jobbet er færdigt, kan du se notesbogen med udgange og outputloggen under Output filer, som vist på det følgende skærmbillede. I outputloggen bør du kunne se initialiseringsscriptet køres, før du kører notebook'en.
For yderligere at tilpasse dit bærbare jobmiljø kan du bruge dit eget billede ved at angive ECR URI'en for dit brugerdefinerede billede. Hvis du medbringer dit eget billede, skal du sørge for at installere en Python3-kerne, når du bygger dit billede. For et eksempel på Dockerfile, der kan køre en notesbog ved hjælp af TensorFlow, se følgende kode:
Konklusion
I dette indlæg viste vi dig, hvordan du kører dine notesbøger fra ethvert JupyterLab-miljø, der hostes lokalt som SageMaker-træningsjob, ved hjælp af SageMaker Jupyter-planlægningsudvidelsen. At være i stand til at køre notebooks på en hovedløs måde, efter en tidsplan, reducerer i høj grad udifferentierede tunge løft for dataforskerne, såsom omstrukturering af notebooks til Python-scripts, opsætning Amazon Eventbridge hændelsesudløser og oprettelse AWS Lambda funktioner eller SageMaker-pipelines for at starte træningsjob. SageMaker notebook-job køres på efterspørgsel, så du betaler kun for den tid, notebook'en kører, og du kan bruge notebook-job-udvidelsen til at se notebook-output når som helst fra dit JupyterLab-miljø. Vi opfordrer dig til at prøve planlagte notebook-job og oprette forbindelse til Machine Learning & AI-fællesskab på re:Post for feedback!
Om forfatterne
Bhadrinath Pani er softwareudviklingsingeniør hos Amazon Web Services, der arbejder på Amazon SageMaker interaktive ML-produkter, med over 12 års erfaring i softwareudvikling på tværs af domæner som bilindustrien, IoT, AR/VR og computervision. I øjeblikket er hans hovedfokus på at udvikle maskinlæringsværktøjer, der sigter mod at forenkle oplevelsen for datavidenskabsfolk. I sin fritid nyder han at tilbringe tid med sin familie og udforske skønheden i Pacific Northwest.
Durga Sury er en ML Solutions Architect på Amazon SageMaker Service SA-teamet. Hun brænder for at gøre machine learning tilgængelig for alle. I sine 4 år hos AWS har hun været med til at opsætte AI/ML-platforme til virksomhedskunder. Når hun ikke arbejder, elsker hun motorcykelture, mysterieromaner og lange gåture med sin 5-årige husky.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoAiStream. Web3 Data Intelligence. Viden forstærket. Adgang her.
- Udmøntning af fremtiden med Adryenn Ashley. Adgang her.
- Køb og sælg aktier i PRE-IPO-virksomheder med PREIPO®. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/schedule-your-notebooks-from-any-jupyterlab-environment-using-the-amazon-sagemaker-jupyterlab-extension/
- :har
- :er
- :hvor
- $OP
- 100
- 12
- 202
- 2022
- 7
- 77
- 8
- a
- evne
- I stand
- Om
- adgang
- Adgang til data
- tilgængelig
- overensstemmelse
- Konto
- opnå
- tværs
- Handling
- aktiv
- aktiviteter
- tilføje
- Desuden
- Yderligere
- fremskreden
- Efter
- AI
- AI / ML
- Rettet
- Alle
- tillade
- tillade
- allerede
- også
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- ,
- enhver
- AR / VR
- arkitektur
- ER
- AS
- antaget
- At
- automatisere
- automatisk
- automotive
- til rådighed
- væk
- AWS
- bund
- bash
- BE
- Skønhed
- bliver
- før
- være
- BEDSTE
- bedste praksis
- Bloker
- Bringe
- bygge
- Bygning
- virksomhed
- by
- CAN
- tilfælde
- Vælg
- vælge
- Cloud
- sky infrastruktur
- kode
- KOM
- samfund
- fuldføre
- Compute
- computer
- Computer Vision
- betingelse
- konfigurationer
- Tilslut
- Container
- indhold
- Core
- skabe
- oprettet
- skaber
- Oprettelse af
- Legitimationsoplysninger
- For øjeblikket
- skik
- kunde
- Kunder
- tilpasse
- data
- datalogi
- december
- Standard
- Efterspørgsel
- implementeringer
- detaljeret
- udvikling
- Udvikling
- direkte
- diskutere
- Skærm
- Diversion
- Docker
- Domæner
- Dont
- ned
- downloade
- effekt
- tilskynde
- krypteret
- kryptering
- håndhæve
- ingeniør
- Engineering
- sikre
- Indtast
- Enterprise
- virksomhedskunder
- Miljø
- miljøer
- Ether (ETH)
- begivenhed
- begivenheder
- alle
- eksempel
- eksempler
- udførelse
- eksisterende
- Udvid
- forventet
- forventer
- erfaring
- opdagelsesrejsende
- Udforskning
- udvidelse
- retfærdigt
- familie
- Feature
- File (Felt)
- Filer
- Fornavn
- Fleksibilitet
- Fokus
- følger
- efter
- Til
- rammer
- Gratis
- fra
- fuld
- funktioner
- yderligere
- fremtiden
- Gevinst
- generelt
- få
- stærkt
- havde
- Have
- he
- tunge
- tunge løft
- hjælpe
- hjulpet
- hende
- link.
- højere
- stærkt
- hans
- hostede
- Hvordan
- How To
- Men
- HTML
- http
- HTTPS
- Hub
- IAM
- ICON
- Identity
- if
- billede
- billeder
- importere
- in
- omfatter
- medtaget
- Infrastruktur
- indgang
- indsigt
- installere
- installation
- installeret
- installation
- instans
- anvisninger
- interaktiv
- ind
- introduceret
- tingenes internet
- IT
- ITS
- Job
- Karriere
- Nøgle
- nøgler
- lab
- senere
- seneste
- læring
- løft
- ligesom
- Line (linje)
- Liste
- Børsnoterede
- belastning
- lokale
- lokalt
- placering
- log
- Lang
- UDSEENDE
- elsker
- maskine
- machine learning
- Main
- Making
- lykkedes
- ledelse
- måde
- matplotlib
- maksimal
- Kan..
- Menu
- Metrics
- måske
- minimum
- ML
- tilstand
- modeller
- motorcykel
- flytning
- Mystery
- navn
- Behov
- behov
- behov
- Ny
- notesbog
- notesbøger
- nu
- bedøvet
- of
- officiel
- on
- kun
- åbent
- open source
- Option
- or
- output
- i løbet af
- tilsyn
- egen
- Pacific
- pakke
- pakker
- pandaer
- parametre
- lidenskabelige
- sti
- Betal
- Tilladelser
- Platforme
- plato
- Platon Data Intelligence
- PlatoData
- politikker
- politik
- Indlæg
- praksis
- foretrække
- foretrækkes
- tidligere
- Main
- behandle
- Produkter
- give
- giver
- Skub ud
- Python
- RE
- virkelige verden
- reducerer
- Relationer
- resterende
- GENTAGNE GANGE
- erstatte
- Rapporter
- påkrævet
- Krav
- Kræver
- ressource
- Ressourcer
- resulterer
- omskoling
- Højreklik
- roller
- roller
- Kør
- kører
- løber
- SA
- sagemaker
- SageMaker Pipelines
- samme
- Eksempeldatasæt
- Gem
- skalering
- scenarier
- planlægge
- planlagt
- Planlagte job
- planlægning
- Videnskab
- forskere
- scripts
- Søg
- Sektion
- sektioner
- sikkerhed
- se
- tjeneste
- Tjenester
- Session
- sæt
- indstilling
- indstillinger
- hun
- bør
- Vis
- udstillingsvindue
- viste
- vist
- Simpelt
- forenkle
- forenkle
- ganske enkelt
- lille
- So
- Software
- softwareudvikling
- løsninger
- Løsninger
- specifikke
- specifikationer
- specificeret
- udgifterne
- starte
- påbegyndt
- Starter
- starter
- Statement
- Status
- Steps
- opbevaring
- butik
- opbevaret
- kraftigt
- Studio
- indsende
- Succesfuld
- sådan
- hold
- tensorflow
- terminal
- prøve
- at
- deres
- Der.
- Disse
- denne
- tre
- Gennem
- tid
- til
- værktøjer
- Kurser
- overgang
- sand
- Stol
- prøv
- typen
- under
- Opdatering
- opdatering
- URI
- brug
- anvendte
- Bruger
- ved brug af
- Værdifuld
- udgave
- Specifikation
- vision
- ønsker
- var
- måder
- we
- web
- webservices
- GODT
- hvornår
- som
- med
- inden for
- arbejdsgange
- arbejder
- virker
- år
- dig
- Din
- zephyrnet