De Amazon SageMaker Python SDK er et åpen kildekode-bibliotek for opplæring og distribusjon av modeller for maskinlæring (ML). Amazon SageMaker. Bedriftskunder i strengt kontrollerte bransjer som helsevesen og finans setter opp sikkerhetsrekkverk for å sikre at dataene deres er kryptert og at trafikken ikke går over internett. For å sikre at SageMaker-opplæringen og distribusjonen av ML-modeller følger disse rekkverkene, er det vanlig praksis å sette begrensninger på kontoen eller AWS organisasjoner nivå gjennom tjenestekontrollpolicyer og AWS identitets- og tilgangsadministrasjon (IAM) retningslinjer for å håndheve bruken av spesifikke IAM-roller, Amazon Virtual Private Cloud (Amazon VPC) konfigurasjoner, og AWS nøkkelstyringstjeneste (AWS KMS)-taster. I slike tilfeller må dataforskere levere disse parameterne til opplærings- og distribusjonskoden for ML-modellen deres manuelt, ved å notere ned undernett, sikkerhetsgrupper og KMS-nøkler. Dette legger ansvaret på dataforskerne til å huske å spesifisere disse konfigurasjonene, for å lykkes med å kjøre jobbene deres og unngå å få tilgangsnekt-feil.
Fra og med SageMaker Python SDK versjon 2.148.0 kan du nå konfigurere standardverdier for parametere som IAM-roller, VPC-er og KMS-nøkler. Administratorer og sluttbrukere kan initialisere AWS-infrastrukturprimitiver med standarder spesifisert i en konfigurasjonsfil i YAML-format. Når den er konfigurert, arver Python SDK automatisk disse verdiene og sprer dem til de underliggende SageMaker API-kallene som f.eks. CreateProcessingJob()
, CreateTrainingJob()
og CreateEndpointConfig()
, uten behov for ytterligere handlinger. SDK-en støtter også flere konfigurasjonsfiler, slik at administratorer kan angi en konfigurasjonsfil for alle brukere, og brukere kan overstyre den via en konfigurasjon på brukernivå som kan lagres i Amazon enkel lagringstjeneste (Amazon S3), Amazon elastisk filsystem (Amazon EFS) for Amazon SageMaker Studio, eller brukerens lokale filsystem.
I dette innlegget viser vi deg hvordan du oppretter og lagrer standard konfigurasjonsfilen i Studio og bruker SDK-standardfunksjonen for å lage SageMaker-ressursene dine.
Løsningsoversikt
Vi demonstrerer denne nye funksjonen med en ende-til-ende AWS skyformasjon mal som oppretter den nødvendige infrastrukturen, og oppretter et Studio-domene i den distribuerte VPC-en. I tillegg lager vi KMS-nøkler for kryptering av volumene som brukes i opplærings- og behandlingsjobber. Trinnene er som følger:
- Start CloudFormation-stakken i kontoen din. Alternativt, hvis du vil utforske denne funksjonen på et eksisterende SageMaker-domene eller notatbok, kan du hoppe over dette trinnet.
- Befolk
config.yaml
fil og lagre filen på standardplasseringen. - Kjør en eksempelnotisbok med en ende-til-ende ML-brukersak, inkludert databehandling, modellopplæring og inferens.
- Overstyr standard konfigurasjonsverdier.
Forutsetninger
Før du begynner, sørg for at du har en AWS-konto og en IAM-bruker eller -rolle med administratorrettigheter. Hvis du er en dataforsker som for øyeblikket sender infrastrukturparametere til ressurser i den bærbare datamaskinen din, kan du hoppe over neste trinn med å sette opp miljøet og begynne å lage konfigurasjonsfilen.
For å bruke denne funksjonen, sørg for å oppgradere SageMaker SDK-versjonen ved å kjøre pip install --upgrade sagemaker
.
Sett opp miljøet
For å distribuere en komplett infrastruktur inkludert nettverk og et Studio-domene, fullfør følgende trinn:
- Klone GitHub repository.
- Logg på AWS-kontoen din og åpne AWS CloudFormation-konsollen.
- For å distribuere nettverksressursene, velg Lag stabel.
- Last opp malen under
setup/vpc_mode/01_networking.yaml
. - Oppgi et navn for stabelen (f.eks.
networking-stack
), og fullfør de resterende trinnene for å lage stabelen. - For å distribuere Studio-domenet, velg Lag stabel en gang til.
- Last opp malen under
setup/vpc_mode/02_sagemaker_studio.yaml
. - Oppgi et navn for stabelen (f.eks.
sagemaker-stack
), og oppgi navnet på nettverksstakken når du blir bedt omCoreNetworkingStackName
parameter. - Fortsett med de resterende trinnene, velg bekreftelsene for IAM-ressurser og lag stabelen.
Når statusen til begge stabler oppdateres til CREATE_COMPLETE, fortsett til neste trinn.
Opprett konfigurasjonsfilen
For å bruke standardkonfigurasjonen for SageMaker Python SDK, oppretter du en config.yaml-fil i formatet som SDK-en forventer. For formatet for config.yaml-filen, se Konfigurasjonsfilstruktur. Avhengig av arbeidsmiljøet ditt, for eksempel Studio-notatbøker, SageMaker-notatbokforekomster eller din lokale IDE, kan du enten lagre konfigurasjonsfilen på standardplasseringen eller overstyre standardinnstillingene ved å sende en konfigurasjonsfilplassering. For standardplasseringer for andre miljøer, se Konfigurasjonsfilplasseringer. De følgende trinnene viser oppsettet for et Studio-notebook-miljø.
For enkelt å lage config.yaml
fil, kjør følgende celler i Studio-systemterminalen, og bytt ut plassholderne med CloudFormation-stabelnavnene fra forrige trinn:
Dette skriptet fyller automatisk ut YAML-filen, erstatter plassholderne med infrastrukturstandardene, og lagrer filen i hjemmemappen. Deretter kopierer den filen til standardplasseringen for Studio-notatbøker. Den resulterende konfigurasjonsfilen skal se ut som følgende format:
Hvis du har konfigurert et eksisterende domene og nettverkskonfigurasjon, oppretter du config.yaml
filen i ønsket format og lagre den på standardplasseringen for Studio-notatbøker.
Merk at disse standardinnstillingene bare automatisk fyller ut konfigurasjonsverdiene for de riktige SageMaker SDK-kallene, og tvinger ikke brukeren til noen spesifikk VPC, subnett eller rolle. Som administrator, hvis du vil at brukerne dine skal bruke en spesifikk konfigurasjon eller rolle, bruk IAM-tilstandsnøkler for å håndheve standardverdiene.
I tillegg kan hvert API-kall ha sine egne konfigurasjoner. For eksempel, i det foregående konfigurasjonsfileksemplet kan du spesifisere vpc-a
og subnet-a
for opplæringsjobber, og spesifisere vpc-b
og subnet-c
, subnet-d
for behandlingsjobber.
Kjør en eksempelnotisbok
Nå som du har angitt konfigurasjonsfilen, kan du begynne å kjøre modellbyggings- og treningsnotatblokkene dine som vanlig, uten å måtte angi eksplisitt nettverks- og krypteringsparametere, for de fleste SDK-funksjoner. Se Støttede APIer og parametere for en fullstendig liste over støttede API-kall og parametere.
I Studio velger du Filutforsker-ikonet i navigasjonsruten og åpner 03_feature_engineering/03_feature_engineering.ipynb
, som vist på følgende skjermbilde.
Kjør notatbokcellene én etter én, og legg merke til at du ikke spesifiserer noen ekstra konfigurasjon. Når du oppretter prosessorobjektet, vil du se celleutgangene som i følgende eksempel.
Som du kan se i utdataene, blir standardkonfigurasjonen automatisk brukt på behandlingsjobben, uten å trenge ytterligere input fra brukeren.
Når du kjører neste celle for å kjøre prosessoren, kan du også bekrefte at standardinnstillingene er angitt ved å se jobben på SageMaker-konsollen. Velge Behandler jobber etter i prosess i navigasjonsruten, som vist i følgende skjermbilde.
Velg behandlingsjobben med prefikset end-to-end-ml-sm-proc
, og du bør kunne se nettverket og krypteringen som allerede er konfigurert.
Du kan fortsette å kjøre de resterende bærbare PC-ene for å trene og distribuere modellen, og du vil legge merke til at standardinnstillingene for infrastruktur brukes automatisk for både treningsjobber og modeller.
Overstyr standard konfigurasjonsfil
Det kan være tilfeller der en bruker må overstyre standardkonfigurasjonen, for eksempel for å eksperimentere med offentlig internettilgang, eller oppdatere nettverkskonfigurasjonen hvis subnettet går tom for IP-adresser. I slike tilfeller lar Python SDK deg også oppgi en tilpasset plassering for konfigurasjonsfilen, enten på lokal lagring, eller du kan peke til en plassering i Amazon S3. I denne delen ser vi på et eksempel.
Åpne user-configs.yaml
filen i hjemmekatalogen din og oppdater EnableNetworkIsolation
verdi til True
Under TrainingJob
seksjon.
Åpne nå den samme notatboken, og legg til følgende celle i begynnelsen av notatboken:
Med denne cellen peker du plasseringen til konfigurasjonsfilen til SDK. Nå, når du oppretter prosessorobjektet, vil du legge merke til at standardkonfigurasjonen har blitt overstyrt for å aktivere nettverksisolering, og behandlingsjobben vil mislykkes i nettverksisolasjonsmodus.
Du kan bruke den samme overstyringsmiljøvariabelen for å angi plasseringen til konfigurasjonsfilen hvis du bruker ditt lokale miljø som VSCode.
Feilsøk og hent standardinnstillinger
For rask feilsøking hvis du får feil når du kjører API-anrop fra den bærbare datamaskinen, viser celleutgangen de brukte standardkonfigurasjonene som vist i forrige seksjon. For å se det nøyaktige Boto3-kallet som er opprettet for å se attributtverdiene som er sendt fra standard konfigurasjonsfil, kan du feilsøke ved å slå på Boto3-logging. For å slå på logging, kjør følgende celle øverst på notatboken:
Eventuelle påfølgende Boto3-anrop vil bli logget med hele forespørselen, synlig under hoveddelen i loggen.
Du kan også se samlingen av standardkonfigurasjoner ved å bruke session.sagemaker_config
verdi som vist i følgende eksempel.
Til slutt, hvis du bruker Boto3 til å lage SageMaker-ressursene dine, kan du hente standardkonfigurasjonsverdiene ved å bruke sagemaker_config
variabel. For eksempel å kjøre behandlingsjobben i 03_feature_engineering.ipynb
ved å bruke Boto3 kan du skrive inn innholdet i følgende celle i samme notatbok og kjøre cellen:
Automatiser oppretting av konfigurasjonsfil
For administratorer kan det være en skremmende oppgave å måtte opprette konfigurasjonsfilen og lagre filen i hver SageMaker notebook-forekomst eller Studio-brukerprofil. Selv om du kan anbefale at brukere bruker en vanlig fil som er lagret på en standard S3-plassering, legger det ekstra kostnadene ved å spesifisere overstyringen på dataforskerne.
For å automatisere dette kan administratorer bruke SageMaker Lifecycle Configurations (LCC). For Studio-brukerprofiler eller notatbokforekomster kan du legge ved følgende eksempel LCC-skript som standard LCC for brukerens standard Jupyter Server-app:
Se Bruk livssykluskonfigurasjoner for Amazon SageMaker Studio or Tilpass en Notebook-forekomst for instruksjoner om hvordan du oppretter og angir et standard livssyklusskript.
Rydd opp
Når du er ferdig med å eksperimentere med denne funksjonen, må du rydde opp i ressursene dine for å unngå å betale ekstra kostnader. Hvis du har klargjort nye ressurser som spesifisert i dette innlegget, fullfør følgende trinn for å rydde opp i ressursene dine:
- Slå av Studio-appene dine for brukerprofilen. Se Slå av og oppdater SageMaker Studio- og Studio-apper for instruksjoner. Sørg for at alle apper er slettet før du sletter stabelen.
- Slett EFS-volumet som er opprettet for Studio-domenet. Du kan se EFS-volumet knyttet til domenet ved å bruke en Beskriv domene API-anrop.
- Slett Studio-domenestakken.
- Slett sikkerhetsgruppene som er opprettet for Studio-domenet. Du finner dem på Amazon Elastic Compute Cloud (Amazon EC2)-konsoll, med navnene security-group-for-inbound-nfs-d-xxx og security-group-for-outbound-nfs-d-xxx
- Slett nettverksstabelen.
konklusjonen
I dette innlegget diskuterte vi konfigurering og bruk av standardverdier for nøkkelinfrastrukturparametere ved å bruke SageMaker Python SDK. Dette lar administratorer sette standardkonfigurasjoner for dataforskere, og dermed spare tid for brukere og administratorer, eliminere byrden med gjentatte spesifikasjoner av parametere, og resultere i slankere og mer håndterlig kode. For en fullstendig liste over støttede parametere og APIer, se Konfigurering og bruk av standardinnstillinger med SageMaker Python SDK. For spørsmål og diskusjoner, bli med Maskinlæring og AI-fellesskap.
Om forfatterne
Giuseppe Angelo Porcelli er en hovedløsningsarkitekt for maskinlæring for Amazon Web Services. Med flere års programvareutvikling og ML-bakgrunn, jobber han med kunder av alle størrelser for å forstå deres forretningsmessige og tekniske behov dypt og utforme AI- og Machine Learning-løsninger som utnytter AWS Cloud og Amazon Machine Learning-stabel på best mulig måte. Han har jobbet med prosjekter innen forskjellige domener, inkludert MLOps, Computer Vision, NLP, og involverer et bredt sett av AWS-tjenester. På fritiden liker Giuseppe å spille fotball.
Bruno Pistone er en AI/ML Specialist Solutions Architect for AWS basert i Milano. Han jobber med kunder av alle størrelser for å hjelpe dem med å forstå deres tekniske behov og utforme AI- og maskinlæringsløsninger som utnytter AWS Cloud og Amazon Machine Learning-stabel på best mulig måte. Hans kompetansefelt er Machine Learning ende til ende, Machine Learning Industrialization og MLOps. Han liker å tilbringe tid med vennene sine og utforske nye steder, i tillegg til å reise til nye destinasjoner.
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/configure-and-use-defaults-for-amazon-sagemaker-resources-with-the-sagemaker-python-sdk/
- : har
- :er
- :ikke
- :hvor
- $OPP
- 1
- 10
- 100
- 20
- 30
- 60
- 7
- 9
- a
- I stand
- Om oss
- adgang
- tilgjengelig
- Logg inn
- handlinger
- legge til
- tillegg
- Ytterligere
- adresser
- administratorer
- en gang til
- AI
- AI / ML
- Alle
- tillate
- tillater
- allerede
- også
- Selv
- Amazon
- Amazon EC2
- Amazon maskinlæring
- Amazon SageMaker
- Amazon Web Services
- an
- og
- noen
- api
- APIer
- app
- anvendt
- hensiktsmessig
- apps
- ER
- AS
- At
- feste
- automatisere
- automatisk
- unngå
- AWS
- AWS skyformasjon
- bakgrunn
- basert
- BE
- vært
- før du
- Begynnelsen
- BEST
- kroppen
- både
- bred
- Bygning
- byrde
- virksomhet
- by
- ring
- Samtaler
- CAN
- saken
- saker
- CD
- Celler
- Velg
- kunde
- Cloud
- kode
- samling
- Felles
- fullføre
- Beregn
- datamaskin
- Datamaskin syn
- tilstand
- Konfigurasjon
- Konsoll
- innhold
- fortsette
- kontroll
- kontrolleres
- Kostnader
- kunne
- skape
- opprettet
- skaper
- Opprette
- I dag
- skikk
- Kunder
- dato
- databehandling
- dataforsker
- Misligholde
- mislighold
- demonstrere
- avhengig
- utplassere
- utplassert
- utplasserings
- distribusjon
- utforming
- destinasjoner
- forskjellig
- diskutert
- diskusjoner
- skjermer
- ikke
- domene
- domener
- gjort
- ikke
- ned
- hver enkelt
- lett
- savner
- enten
- eliminere
- muliggjøre
- kryptert
- kryptering
- slutt
- ende til ende
- Endpoint
- håndheve
- Ingeniørarbeid
- sikre
- Enter
- Enterprise
- Miljø
- miljøer
- feil
- alle
- eksempel
- eksisterende
- forventer
- eksperiment
- ekspertise
- utforske
- explorer
- Utforske
- FAIL
- falsk
- Trekk
- felt
- filet
- Filer
- finansiere
- Finn
- følge
- etter
- følger
- fotball
- Til
- format
- Gratis
- venner
- fra
- fullt
- funksjoner
- få
- få
- gå
- Gruppens
- Ha
- å ha
- he
- helsetjenester
- hjulpet
- hjelpe
- her
- hans
- Hjemprodukt
- Hvordan
- Hvordan
- HTML
- http
- HTTPS
- ICON
- Identitet
- if
- importere
- in
- Inkludert
- bransjer
- Infrastruktur
- inngang
- installere
- f.eks
- instruksjoner
- Interface
- Internet
- Internettilgang
- inn
- involverer
- IP
- IP-adresser
- isolasjon
- IT
- DET ER
- Jobb
- Jobb
- bli medlem
- jpg
- nøkkel
- nøkler
- stor
- læring
- Nivå
- Bibliotek
- Livssyklus
- i likhet med
- Liste
- lokal
- plassering
- steder
- logg
- logget
- logging
- Lang
- Se
- elsker
- maskin
- maskinlæring
- gjøre
- Making
- ledelse
- manuelt
- MILAN
- ML
- MLOps
- Mote
- modell
- modeller
- mer
- mest
- motorsykkel
- flere
- Mystery
- navn
- navn
- Navigasjon
- Trenger
- nødvendig
- trenger
- behov
- nettverk
- nettverk
- Ny
- neste
- nlp
- Nei.
- bærbare
- Legge merke til..
- merke seg
- nå
- objekt
- of
- on
- gang
- ONE
- åpen
- åpen kildekode
- or
- OS
- Annen
- ut
- produksjon
- overstyring
- egen
- brød
- parameter
- parametere
- bestått
- Passerer
- lidenskapelig
- betalende
- steder
- Plattformer
- plato
- Platon Data Intelligence
- PlatonData
- spiller
- Point
- Politikk
- Post
- praksis
- forrige
- Principal
- privat
- privilegier
- prosessering
- prosessor
- Profil
- Profiler
- prosjekter
- gi
- offentlig
- setter
- Python
- spørsmål
- Rask
- anbefaler
- gjenværende
- husker
- anmode
- påkrevd
- Ressurser
- svar
- restriksjoner
- resulterende
- Rolle
- roller
- Kjør
- rennende
- s
- SA
- sagemaker
- samme
- Spar
- besparende
- Forsker
- forskere
- SDK
- Seksjon
- sikkerhet
- se
- tjeneste
- Tjenester
- Session
- sett
- innstilling
- oppsett
- flere
- hun
- bør
- Vis
- presentere
- vist
- lignende
- Enkelt
- ganske enkelt
- Størrelse
- Software
- software engineering
- Solutions
- noe
- spesialist
- spesifikk
- spesifisert
- utgifter
- stable
- Stabler
- Begynn
- startet
- status
- Trinn
- Steps
- lagring
- oppbevare
- lagret
- studio
- subnett
- subnett
- senere
- vellykket
- slik
- Støttes
- Støtter
- system
- Oppgave
- lag
- Teknisk
- mal
- terminal
- Det
- De
- deres
- Dem
- deretter
- derved
- Disse
- denne
- Gjennom
- tett
- tid
- til
- topp
- trafikk
- Tog
- Kurs
- SVING
- Turning
- etter
- underliggende
- forstå
- Oppdater
- oppgradering
- bruk
- bruke
- bruk sak
- brukt
- Bruker
- Brukere
- ved hjelp av
- verdi
- Verdier
- verifisere
- versjon
- av
- Se
- ser
- virtuelle
- synlig
- syn
- volum
- volumer
- ønsker
- we
- web
- webtjenester
- VI VIL
- når
- vil
- med
- uten
- Arbeid
- arbeidet
- arbeid
- virker
- yaml
- år
- Du
- Din
- zephyrnet