Jupyter bærbare PC-er er svært foretrukket av dataforskere for deres evne til interaktivt å behandle data, bygge ML-modeller og teste disse modellene ved å trekke slutninger om data. Det er imidlertid scenarier der dataforskere kanskje foretrekker å gå over fra interaktiv utvikling på bærbare datamaskiner til batchjobber. Eksempler på slike brukstilfeller inkluderer oppskalering av en funksjonsingeniørjobb som tidligere ble testet på et lite eksempeldatasett på en liten notebook-forekomst, kjøring av nattlige rapporter for å få innsikt i forretningsberegninger, og omskolering av ML-modeller etter en tidsplan etter hvert som nye data blir tilgjengelige.
Migrering fra interaktiv utvikling på notatblokker til batchjobber krevde at du kopierte kodebiter fra notatboken til et skript, pakkede skriptet med alle dets avhengigheter inn i en beholder og planlegger at beholderen skulle kjøres. For å kjøre denne jobben gjentatte ganger etter en tidsplan, måtte du sette opp, konfigurere og overvåke skyinfrastruktur for å automatisere distribusjoner, noe som resulterte i en avledning av verdifull tid borte fra kjernedatavitenskapelige utviklingsaktiviteter.
For å hjelpe til med å forenkle prosessen med å gå fra interaktive notatbøker til batchjobber, i desember 2022, Amazon SageMaker Studio og Studio Lab introduserte muligheten til å kjøre bærbare datamaskiner som planlagte jobber, ved å bruke notatbokbaserte arbeidsflyter. Du kan nå bruke den samme muligheten til å kjøre Jupyter-notatbøkene fra et hvilket som helst JupyterLab-miljø som f.eks. Amazon SageMaker notebook-forekomster og JupyterLab som kjører på din lokale maskin. SageMaker tilbyr en åpen kildekode-utvidelse som kan installeres på ethvert JupyterLab-miljø og brukes til å kjøre bærbare datamaskiner som flyktige jobber og etter en tidsplan.
I dette innlegget viser vi deg hvordan du kjører notatbøkene dine fra ditt lokale JupyterLab-miljø som planlagte notatbokjobber på SageMaker.
Løsningsoversikt
Løsningsarkitekturen for å planlegge bærbare jobber fra ethvert JupyterLab-miljø er vist i følgende diagram. SageMaker-utvidelsen forventer at JupyterLab-miljøet har gyldig AWS-legitimasjon og tillatelser til å planlegge bærbare jobber. Vi diskuterer trinnene for å sette opp legitimasjon og AWS identitets- og tilgangsadministrasjon (IAM)-tillatelser senere i dette innlegget. I tillegg til at IAM-brukeren og den antatte rolleøkten planlegger jobben, må du også oppgi en rolle som den bærbare jobbforekomsten skal påta for tilgang til dataene dine i Amazon enkel lagringstjeneste (Amazon S3) eller for å koble til Amazon EMR klynger etter behov.
I de følgende delene viser vi hvordan du setter opp arkitekturen og installerer åpen kildekode-utvidelsen, kjører en notatbok med standardkonfigurasjonene, og bruker også de avanserte parameterne til å kjøre en notatbok med egendefinerte innstillinger.
Forutsetninger
For dette innlegget antar vi et lokalt vert JupyterLab-miljø. Du kan også følge de samme installasjonstrinnene for et miljø som er vert i skyen.
De følgende trinnene forutsetter at du allerede har et gyldig Python 3- og JupyterLab-miljø (denne utvidelsen fungerer med JupyterLab v3.0 eller høyere).
Installer AWS kommandolinjegrensesnitt (AWS CLI) hvis du ikke allerede har det installert. Se Installere eller oppdatere den nyeste versjonen av AWS CLI for instruksjoner.
Konfigurer IAM-legitimasjon
Du trenger en IAM-bruker eller en aktiv IAM-rolleøkt for å sende SageMaker notatbokjobber. For å sette opp IAM-legitimasjonen din, kan du konfigurere AWS CLI med AWS-legitimasjonen din for IAM-brukeren din, eller påta deg en IAM-rolle. For instruksjoner om hvordan du konfigurerer legitimasjonen din, se Konfigurering av AWS CLI. IAM-prinsipalen (bruker eller antatt rolle) trenger følgende tillatelser for å planlegge notatbokjobber. For å legge til polisen til rektor, se Legger til IAM-identitetstillatelser.
Hvis dine bærbare jobber må krypteres med kundeadministrert AWS nøkkelstyringstjeneste (AWS KMS)-nøkler, legg til policyerklæringen som også gir AWS KMS-tilgang. For et eksempel på policy, se Installer retningslinjer og tillatelser for lokale Jupyter-miljøer.
Sett opp en IAM-rolle for den bærbare jobbforekomsten
SageMaker krever en IAM-rolle for å kjøre jobber på brukerens vegne, for eksempel å kjøre den bærbare jobben. Denne rollen bør ha tilgang til ressursene som kreves for at den bærbare datamaskinen skal fullføre jobben, for eksempel tilgang til data i Amazon S3.
Planleggerutvidelsen ser automatisk etter IAM-roller i AWS-kontoen, med prefikset SagemakerJupyterScheduler
for å kjøre den bærbare jobben.
For å opprette en IAM-rolle, opprette en utførelsesrolle for Amazon SageMaker med AmazonSageMakerFullAccess
Politikk. Gi rollen et navn SagemakerJupyterSchedulerDemo
, eller oppgi et navn med forventet prefiks.
Etter at rollen er opprettet, på Tillitsforhold kategorien, velg Rediger retningslinjer for tillit. Erstatt den eksisterende tillitspolicyen med følgende:
De AmazonSageMakerFullAccess
policy er ganske ettergivende og foretrekkes generelt for eksperimentering og for å komme i gang med SageMaker. Vi oppfordrer deg på det sterkeste til å lage en policy med minimum omfang for eventuelle fremtidige arbeidsbelastninger i samsvar med beste praksis for sikkerhet i IAM. For minimumssettet med tillatelser som kreves for den bærbare jobben, se Installer retningslinjer og tillatelser for lokale Jupyter-miljøer.
Installer utvidelsen
Åpne en terminal på din lokale maskin og installer utvidelsen ved å kjøre følgende kommando:
Etter at denne kommandoen er kjørt, kan du starte JupyterLab ved å kjøre jupyter lab.
Hvis du installerer utvidelsen fra JupyterLab-terminalen, start Jupyter-serveren på nytt for å laste utvidelsen. Du kan starte Jupyter-serveren på nytt ved å velge Shut Down på filet menyen fra JupyterLab, og start JupyterLab fra kommandolinjen ved å kjøre jupyter lab
.
Send inn en notatbokjobb
Etter at utvidelsen er installert på miljøet ditt, kan du kjøre en hvilken som helst selvstendig notatbok som en flyktig jobb. La oss sende inn en enkel "Hello world"-notisbok som skal kjøres som en planlagt jobb.
- På filet meny, velg Ny og bærbare.
- Skriv inn følgende innhold:
Etter at utvidelsen er installert, vil du se planleggingsikonet for den bærbare datamaskinen på den bærbare datamaskinen.
- Velg ikonet for å opprette en notatbokjobb.
Alternativt kan du høyreklikke på notatboken i filutforskeren og velge Opprett notatbokjobb.
- Oppgi jobbnavn, inndatafil, beregningstype og tilleggsparametere.
- La de gjenværende innstillingene være standard og velg Skape.
Etter at jobben er planlagt, blir du omdirigert til Notebook-jobber fanen, der du kan se listen over bærbare jobber og statusen deres, og se utdataene og loggene for den bærbare datamaskinen etter at jobben er fullført. Du kan også få tilgang til dette bærbare jobbvinduet fra startprogrammet, som vist i følgende skjermbilde.
Avanserte konfigurasjoner
Fra din lokale datamaskin kjører bærbare datamaskiner automatisk på SageMaker Base Python-bildet, som er det offisielle Python 3.8-bildet fra Docker Hub med Boto3 og AWS CLI inkludert. I virkelige tilfeller må dataforskere installere spesifikke pakker eller rammeverk for bærbare datamaskiner. Det er tre måter å oppnå et reproduserbart miljø på:
- På det enkleste alternativet kan du installere pakkene og rammeverket direkte på den første cellen i den bærbare datamaskinen.
- Du kan også gi et initialiseringsskript i Ekstra alternativer seksjonen, peker på et bash-skript på din lokale lagring som kjøres av den bærbare jobben når den bærbare datamaskinen starter opp. I den følgende delen viser vi et eksempel på bruk av initialiseringsskript for å installere pakker.
- Til slutt, hvis du vil ha maksimal fleksibilitet i å konfigurere kjøremiljøet ditt, kan du bygge ditt eget tilpassede bilde med en Python3-kjerne, skyv bildet til Amazon Elastic Container Registry (Amazon ECR), og oppgi ECR-bilde-URI til din bærbare jobb under Ekstra alternativer. ECR-bildet skal følge kravene for SageMaker-bilder, som oppført i Egendefinerte SageMaker bildespesifikasjoner.
I tillegg kan bedriften din sette opp rekkverk som å kjøre jobber i internettfri modus i en Amazon VPC, bruke en tilpasset minste-privilegium-rolle for jobben og håndheve kryptering. Du kan spesifisere slike konfigurasjoner for dine bærbare jobber i Ekstra alternativer seksjon også. For en detaljert liste over avanserte konfigurasjoner, se Ekstra alternativer.
Legg til et initialiseringsskript
For å vise frem initialiseringsskriptet, kjører vi nå eksempelnotatboken for Studio-notatbokjobber tilgjengelig på GitHub. For å kjøre denne notatboken, må du installere de nødvendige pakkene gjennom et initialiseringsskript. Fullfør følgende trinn:
- Kjør følgende kommando fra JupyterLab-terminalen for å laste ned filen:
- På filet meny, velg Ny og Tekstfil.
- Skriv inn følgende innhold i filen din, og lagre filen under navnet
init-script.sh
: - Velg
scheduled-example.ipynb
fra filutforskeren for å åpne notatblokken. - Velg notatbokjobbikonet for å planlegge notatboken, og utvide Ekstra alternativer seksjon.
- Til Initialiseringsskriptplassering, skriv inn hele banen til skriptet.
Du kan også tilpasse inn- og utdata S3-mappene for din bærbare jobb. SageMaker oppretter en inndatamappe på et spesifisert S3-sted for å lagre inndatafilene, og oppretter en S3-utgangsmappe der utdataene til den bærbare datamaskinen lagres. Du kan spesifisere kryptering, IAM-rolle og VPC-konfigurasjoner her. Se Begrensninger og hensyn for tilpassede bilder og VPC-spesifikasjoner.
- For nå, bare oppdater initialiseringsskriptet, velg Løp nå for timeplanen, og velg Opprett.
Når jobben er fullført, kan du se notisboken med utganger og utdataloggen under Utdatafiler, som vist i følgende skjermbilde. I utdataloggen bør du kunne se initialiseringsskriptet kjøres før du kjører den bærbare datamaskinen.
For å tilpasse arbeidsmiljøet for den bærbare datamaskinen ytterligere, kan du bruke ditt eget bilde ved å spesifisere ECR URI for det tilpassede bildet. Hvis du tar med ditt eget bilde, sørg for at du installerer en Python3-kjerne når du bygger bildet. For et eksempel på Dockerfile som kan kjøre en bærbar PC ved hjelp av TensorFlow, se følgende kode:
konklusjonen
I dette innlegget viste vi deg hvordan du kjører notatbøkene dine fra et hvilket som helst JupyterLab-miljø som er vert lokalt som SageMaker-treningsjobber, ved å bruke SageMaker Jupyter-planleggerutvidelsen. Å kunne kjøre notatbøker på en hodeløs måte, etter en tidsplan, reduserer i stor grad udifferensierte tunge løft for dataforskerne, for eksempel omstrukturering av notatbøker til Python-skript, oppsett Amazon EventBridge hendelsestriggere og opprettelse AWS Lambda funksjoner eller SageMaker-rørledninger for å starte treningsjobbene. SageMaker bærbare jobber kjøres på forespørsel, så du betaler kun for tiden den bærbare datamaskinen kjøres, og du kan bruke utvidelsen for bærbare jobbe til å se utdataene til den bærbare datamaskinen når som helst fra JupyterLab-miljøet. Vi oppfordrer deg til å prøve planlagte bærbare jobber, og koble deg til Maskinlæring og AI-fellesskap på re:Post for tilbakemelding!
Om forfatterne
Bhadrinath Pani er en programvareutviklingsingeniør hos Amazon Web Services, og jobber med Amazon SageMaker interaktive ML-produkter, med over 12 års erfaring innen programvareutvikling på tvers av domener som bilindustrien, IoT, AR/VR og datasyn. For tiden er hovedfokuset hans på å utvikle maskinlæringsverktøy rettet mot å forenkle opplevelsen for dataforskere. På fritiden liker han å tilbringe tid med familien og utforske skjønnheten i Pacific Northwest.
Durga Sury er en ML Solutions Architect på Amazon SageMaker Service SA-teamet. Hun brenner for å gjøre maskinlæring tilgjengelig for alle. I løpet av sine 4 år i AWS har hun vært med på å sette opp AI/ML-plattformer for bedriftskunder. Når hun ikke jobber, elsker hun motorsykkelturer, mysterieromaner og lange turer med sin 5 år gamle husky.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoAiStream. Web3 Data Intelligence. Kunnskap forsterket. Tilgang her.
- Minting the Future med Adryenn Ashley. Tilgang her.
- Kjøp og selg aksjer i PRE-IPO-selskaper med PREIPO®. Tilgang 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
- $OPP
- 100
- 12
- 202
- 2022
- 7
- 77
- 8
- a
- evne
- I stand
- Om oss
- adgang
- Tilgang til data
- tilgjengelig
- samsvar
- Logg inn
- Oppnå
- tvers
- Handling
- aktiv
- Aktiviteter
- legge til
- tillegg
- Ytterligere
- avansert
- Etter
- AI
- AI / ML
- sikte
- Alle
- tillate
- tillate
- allerede
- også
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- og
- noen
- AR / VR
- arkitektur
- ER
- AS
- antatt
- At
- automatisere
- automatisk
- automotive
- tilgjengelig
- borte
- AWS
- basen
- bash
- BE
- Beauty
- blir
- før du
- være
- BEST
- beste praksis
- Blokker
- Bringe
- bygge
- Bygning
- virksomhet
- by
- CAN
- saker
- Velg
- velge
- Cloud
- sky infrastruktur
- kode
- COM
- samfunnet
- fullføre
- Beregn
- datamaskin
- Datamaskin syn
- tilstand
- konfigurasjoner
- Koble
- Container
- innhold
- Kjerne
- skape
- opprettet
- skaper
- Opprette
- Credentials
- I dag
- skikk
- kunde
- Kunder
- tilpasse
- dato
- datavitenskap
- Desember
- Misligholde
- Etterspørsel
- distribusjoner
- detaljert
- utvikle
- Utvikling
- direkte
- diskutere
- Vise
- Diversion
- Docker
- domener
- ikke
- ned
- nedlasting
- effekt
- oppmuntre
- kryptert
- kryptering
- håndheving
- ingeniør
- Ingeniørarbeid
- sikre
- Enter
- Enterprise
- bedriftskunder
- Miljø
- miljøer
- Eter (ETH)
- Event
- hendelser
- alle
- eksempel
- eksempler
- gjennomføring
- eksisterende
- Expand
- forventet
- forventer
- erfaring
- explorer
- Utforske
- forlengelse
- ganske
- familie
- Trekk
- filet
- Filer
- Først
- fleksibilitet
- Fokus
- følge
- etter
- Til
- rammer
- Gratis
- fra
- fullt
- funksjoner
- videre
- framtid
- Gevinst
- generelt
- få
- sterkt
- HAD
- Ha
- he
- tung
- tung løfting
- hjelpe
- hjulpet
- her
- her.
- høyere
- svært
- hans
- vert
- Hvordan
- Hvordan
- Men
- HTML
- http
- HTTPS
- Hub
- IAM
- ICON
- Identitet
- if
- bilde
- bilder
- importere
- in
- inkludere
- inkludert
- Infrastruktur
- inngang
- innsikt
- installere
- installasjon
- installerte
- installere
- f.eks
- instruksjoner
- interaktiv
- inn
- introdusert
- IOT
- IT
- DET ER
- Jobb
- Jobb
- nøkkel
- nøkler
- lab
- seinere
- siste
- læring
- løfte
- i likhet med
- linje
- Liste
- oppført
- laste
- lokal
- lokalt
- plassering
- logg
- Lang
- UTSEENDE
- elsker
- maskin
- maskinlæring
- Hoved
- Making
- fikk til
- ledelse
- måte
- matplotlib
- maksimal
- Kan..
- Meny
- Metrics
- kunne
- minimum
- ML
- Mote
- modeller
- motorsykkel
- flytting
- Mystery
- navn
- Trenger
- nødvendig
- behov
- Ny
- bærbare
- notatbøker
- nå
- følelsesløs
- of
- offisiell
- on
- bare
- åpen
- åpen kildekode
- Alternativ
- or
- produksjon
- enn
- overvåke
- egen
- Pacific
- pakke
- pakker
- pandaer
- parametere
- lidenskapelig
- banen
- Betale
- tillatelser
- Plattformer
- plato
- Platon Data Intelligence
- PlatonData
- Politikk
- politikk
- Post
- praksis
- trekker
- trekkes
- tidligere
- Principal
- prosess
- Produkter
- gi
- gir
- Skyv
- Python
- RE
- virkelige verden
- reduserer
- Relasjoner
- gjenværende
- GJENTATTE GANGER
- erstatte
- Rapporter
- påkrevd
- Krav
- Krever
- ressurs
- Ressurser
- resulterende
- omskolering
- Høyreklikk
- Rolle
- roller
- Kjør
- rennende
- går
- SA
- sagemaker
- SageMaker-rørledninger
- samme
- Eksempel på datasett
- Spar
- skalering
- scenarier
- planlegge
- planlagt
- Planlagte jobber
- planlegging
- Vitenskap
- forskere
- skript
- Søk
- Seksjon
- seksjoner
- sikkerhet
- se
- tjeneste
- Tjenester
- Session
- sett
- innstilling
- innstillinger
- hun
- bør
- Vis
- presentere
- viste
- vist
- Enkelt
- forenkle
- forenkle
- ganske enkelt
- liten
- So
- Software
- programvareutvikling
- løsning
- Solutions
- spesifikk
- spesifikasjoner
- spesifisert
- utgifter
- Begynn
- startet
- Start
- starter
- Uttalelse
- status
- Steps
- lagring
- oppbevare
- lagret
- sterk
- studio
- send
- vellykket
- slik
- lag
- tensorflow
- terminal
- test
- Det
- De
- deres
- Der.
- Disse
- denne
- tre
- Gjennom
- tid
- til
- verktøy
- Kurs
- overgang
- sant
- Stol
- prøve
- typen
- etter
- Oppdater
- oppdatering
- URI
- bruke
- brukt
- Bruker
- ved hjelp av
- Verdifull
- versjon
- Se
- syn
- ønsker
- var
- måter
- we
- web
- webtjenester
- VI VIL
- når
- hvilken
- med
- innenfor
- arbeidsflyt
- arbeid
- virker
- år
- du
- Din
- zephyrnet