Amazon SageMaker Python SDK er et open source-bibliotek til træning og implementering af maskinlæringsmodeller (ML) på Amazon SageMaker. Virksomhedskunder i stramt kontrollerede brancher som f.eks. sundhedspleje og finans sætter sikkerhedsrækværk op for at sikre, at deres data er krypteret, og at trafikken ikke krydser internettet. For at sikre, at SageMaker-træningen og implementeringen af ML-modeller følger disse autoværn, er det almindelig praksis at sætte begrænsninger på kontoen eller AWS-organisationer niveau gennem servicekontrolpolitikker og AWS identitets- og adgangsstyring (IAM) politikker til at håndhæve brugen af specifikke IAM-roller, Amazon Virtual Private Cloud (Amazon VPC) konfigurationer, og AWS Key Management Service (AWS KMS) taster. I sådanne tilfælde skal dataforskere levere disse parametre til deres ML-modeltrænings- og implementeringskode manuelt ved at notere undernet, sikkerhedsgrupper og KMS-nøgler. Dette pålægger dataforskerne at huske at specificere disse konfigurationer, for at kunne køre deres job med succes og undgå at få adgang nægtet fejl.
Fra SageMaker Python SDK version 2.148.0 kan du nu konfigurere standardværdier for parametre såsom IAM-roller, VPC'er og KMS-nøgler. Administratorer og slutbrugere kan initialisere AWS-infrastrukturprimitiver med standardindstillinger angivet i en konfigurationsfil i YAML-format. Når den er konfigureret, arver Python SDK automatisk disse værdier og udbreder dem til de underliggende SageMaker API-kald som f.eks. CreateProcessingJob()
, CreateTrainingJob()
og CreateEndpointConfig()
uden yderligere handlinger. SDK'et understøtter også flere konfigurationsfiler, hvilket gør det muligt for administratorer at indstille en konfigurationsfil til alle brugere, og brugere kan tilsidesætte den via en konfiguration på brugerniveau, der kan gemmes i Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) for Amazon SageMaker Studio, eller brugerens lokale filsystem.
I dette indlæg viser vi dig, hvordan du opretter og gemmer standardkonfigurationsfilen i Studio og bruger SDK-standardfunktionen til at oprette dine SageMaker-ressourcer.
Løsningsoversigt
Vi demonstrerer denne nye funktion med en ende-til-ende AWS CloudFormation skabelon, der opretter den nødvendige infrastruktur og opretter et Studio-domæne i den installerede VPC. Derudover opretter vi KMS-nøgler til kryptering af de mængder, der bruges i trænings- og behandlingsjob. Trinene er som følger:
- Start CloudFormation-stakken på din konto. Alternativt, hvis du vil udforske denne funktion på et eksisterende SageMaker-domæne eller notesbog, skal du springe dette trin over.
- Befolke
config.yaml
fil og gem filen på standardplaceringen. - Kør et eksempel på en notesbog med en end-to-end ML use case, inklusive databehandling, modeltræning og inferens.
- Tilsidesæt standardkonfigurationsværdierne.
Forudsætninger
Før du går i gang, skal du sørge for, at du har en AWS-konto og en IAM-bruger eller -rolle med administratorrettigheder. Hvis du er dataforsker, der i øjeblikket sender infrastrukturparametre til ressourcer i din notebook, kan du springe det næste trin over i opsætningen af dit miljø og begynde at oprette konfigurationsfilen.
For at bruge denne funktion skal du sørge for at opgradere din SageMaker SDK-version ved at køre pip install --upgrade sagemaker
.
Indstil miljøet
For at implementere en komplet infrastruktur inklusive netværk og et Studio-domæne skal du udføre følgende trin:
- Klon GitHub repository.
- Log ind på din AWS-konto, og åbn AWS CloudFormation-konsollen.
- Vælg for at implementere netværksressourcerne Opret stak.
- Upload skabelonen under
setup/vpc_mode/01_networking.yaml
. - Angiv et navn til stakken (f.eks.
networking-stack
), og udfør de resterende trin for at oprette stakken. - For at implementere Studio-domænet skal du vælge Opret stak igen.
- Upload skabelonen under
setup/vpc_mode/02_sagemaker_studio.yaml
. - Angiv et navn til stakken (f.eks.
sagemaker-stack
), og angiv navnet på netværksstakken, når du bliver bedt omCoreNetworkingStackName
parameter. - Fortsæt med de resterende trin, vælg bekræftelserne for IAM-ressourcer, og opret stakken.
Når status for begge stakke opdateres til CREATE_COMPLETE, fortsæt til næste trin.
Opret konfigurationsfilen
For at bruge standardkonfigurationen for SageMaker Python SDK, opretter du en config.yaml-fil i det format, som SDK'en forventer. For formatet for filen config.yaml, se Konfigurationsfilstruktur. Afhængigt af dit arbejdsmiljø, såsom Studio-notesbøger, SageMaker-notebook-forekomster eller din lokale IDE, kan du enten gemme konfigurationsfilen på standardplaceringen eller tilsidesætte standardindstillingerne ved at videregive en konfigurationsfilplacering. Se standardplaceringerne for andre miljøer Placering af konfigurationsfiler. De følgende trin viser opsætningen til et Studio-notebook-miljø.
For nemt at skabe config.yaml
fil, skal du køre følgende celler i din Studio-systemterminal, og erstatte pladsholderne med CloudFormation-staknavnene fra det forrige trin:
Dette script udfylder automatisk YAML-filen, erstatter pladsholderne med infrastrukturstandarderne og gemmer filen i hjemmemappen. Derefter kopierer den filen til standardplaceringen for Studio-notebooks. Den resulterende konfigurationsfil skal ligne følgende format:
Hvis du har et eksisterende domæne og netværkskonfiguration opsat, skal du oprette config.yaml
fil i det krævede format og gem den på standardplaceringen for Studio-notebooks.
Bemærk, at disse standarder blot automatisk udfylder konfigurationsværdierne for de relevante SageMaker SDK-kald, og tvinger ikke brugeren til nogen specifik VPC, undernet eller rolle. Som administrator, hvis du ønsker, at dine brugere skal bruge en specifik konfiguration eller rolle, skal du bruge IAM-tilstandsnøgler for at håndhæve standardværdierne.
Derudover kan hvert API-kald have sine egne konfigurationer. For eksempel, i den foregående konfigurationsfileksempel kan du angive vpc-a
, subnet-a
til uddannelsesjob, og specificer vpc-b
, subnet-c
, subnet-d
til forarbejdningsopgaver.
Kør et eksempel på en notesbog
Nu hvor du har indstillet konfigurationsfilen, kan du begynde at køre dine modelbygnings- og træningsnotesbøger som sædvanligt, uden at det er nødvendigt eksplicit at indstille netværks- og krypteringsparametre for de fleste SDK-funktioner. Se Understøttede API'er og parametre for en komplet liste over understøttede API-kald og parametre.
I Studio skal du vælge File Explorer-ikonet i navigationsruden og åbne 03_feature_engineering/03_feature_engineering.ipynb
, som vist i følgende skærmbillede.
Kør notebook-cellerne én efter én, og bemærk, at du ikke angiver nogen yderligere konfiguration. Når du opretter processorobjektet, vil du se celleoutput som det følgende eksempel.
Som du kan se i outputtet, anvendes standardkonfigurationen automatisk på behandlingsjobbet uden behov for yderligere input fra brugeren.
Når du kører den næste celle for at køre processoren, kan du også kontrollere, at standardindstillingerne er indstillet ved at se jobbet på SageMaker-konsollen. Vælge Behandler job under Behandles i navigationsruden, som vist på det følgende skærmbillede.
Vælg forarbejdningsjobbet med præfikset end-to-end-ml-sm-proc
, og du bør være i stand til at se netværket og kryptering, der allerede er konfigureret.
Du kan fortsætte med at køre de resterende notebooks for at træne og implementere modellen, og du vil bemærke, at infrastrukturstandarderne automatisk anvendes til både træningsjob og modeller.
Tilsidesæt standardkonfigurationsfilen
Der kan være tilfælde, hvor en bruger skal tilsidesætte standardkonfigurationen, for eksempel for at eksperimentere med offentlig internetadgang eller opdatere netværkskonfigurationen, hvis undernettet løber tør for IP-adresser. I sådanne tilfælde giver Python SDK dig også mulighed for at angive en brugerdefineret placering til konfigurationsfilen, enten på lokal lagring, eller du kan pege på en placering i Amazon S3. I dette afsnit ser vi på et eksempel.
Åbne user-configs.yaml
fil i din hjemmemappe og opdater EnableNetworkIsolation
værdi til True
Under TrainingJob
sektion.
Åbn nu den samme notesbog, og tilføj følgende celle til begyndelsen af notesbogen:
Med denne celle peger du placeringen af konfigurationsfilen til SDK'et. Når du nu opretter processorobjektet, vil du bemærke, at standardkonfigurationen er blevet tilsidesat for at aktivere netværksisolering, og behandlingsjobbet vil mislykkes i netværksisoleringstilstand.
Du kan bruge den samme tilsidesættelsesmiljøvariabel til at indstille placeringen af konfigurationsfilen, hvis du bruger dit lokale miljø såsom VSCode.
Debug og hent standardindstillinger
Til hurtig fejlfinding, hvis du støder på fejl, når du kører API-kald fra din notebook, viser celleoutput de anvendte standardkonfigurationer som vist i det foregående afsnit. For at se det nøjagtige Boto3-kald, der er oprettet for at se attributværdierne, der er overført fra standardkonfigurationsfilen, kan du fejlsøge ved at slå Boto3-logning til. For at aktivere logning skal du køre følgende celle øverst på notesbogen:
Eventuelle efterfølgende Boto3-opkald vil blive logget med den komplette anmodning, synlig under brødteksten i loggen.
Du kan også se samlingen af standardkonfigurationer ved hjælp af session.sagemaker_config
værdi som vist i følgende eksempel.
Endelig, hvis du bruger Boto3 til at oprette dine SageMaker-ressourcer, kan du hente standardkonfigurationsværdierne ved hjælp af sagemaker_config
variabel. For eksempel at køre forarbejdningsjobbet i 03_feature_engineering.ipynb
ved hjælp af Boto3 kan du indtaste indholdet af følgende celle i den samme notesbog og køre cellen:
Automatiser oprettelse af konfigurationsfiler
For administratorer kan det være en skræmmende opgave at skulle oprette konfigurationsfilen og gemme filen i hver SageMaker notebook-forekomst eller Studio-brugerprofil. Selvom du kan anbefale, at brugere bruger en fælles fil, der er gemt på en standard S3-placering, lægger det ekstra omkostninger ved at specificere tilsidesættelsen på dataforskerne.
For at automatisere dette kan administratorer bruge SageMaker Lifecycle Configurations (LCC). For Studio-brugerprofiler eller notebook-forekomster kan du vedhæfte følgende eksempel LCC-script som standard LCC for brugerens standard Jupyter Server-app:
Se Brug livscykluskonfigurationer til Amazon SageMaker Studio or Tilpas en Notebook-instans for instruktioner om oprettelse og indstilling af et standard livscyklusscript.
Ryd op
Når du er færdig med at eksperimentere med denne funktion, skal du rydde op i dine ressourcer for at undgå at betale ekstra omkostninger. Hvis du har klargjort nye ressourcer som angivet i dette indlæg, skal du udføre følgende trin for at rydde op i dine ressourcer:
- Luk dine Studio-apps ned for brugerprofilen. Se Luk ned og opdater SageMaker Studio- og Studio-apps for instruktioner. Sørg for, at alle apps er slettet, før du sletter stakken.
- Slet den EFS-volumen, der er oprettet for Studio-domænet. Du kan se den EFS-volumen, der er knyttet til domænet, ved at bruge en Beskriv domæne API-kald.
- Slet Studio domæne stakken.
- Slet de sikkerhedsgrupper, der er oprettet for Studio-domænet. Du kan finde dem på Amazon Elastic Compute Cloud (Amazon EC2) konsol, med navnene security-group-for-inbound-nfs-d-xxx og security-group-for-outbound-nfs-d-xxx
- Slet netværksstakken.
Konklusion
I dette indlæg diskuterede vi konfiguration og brug af standardværdier for nøgleinfrastrukturparametre ved hjælp af SageMaker Python SDK. Dette giver administratorer mulighed for at indstille standardkonfigurationer for datavidenskabsfolk, hvilket sparer tid for brugere og administratorer, eliminerer byrden med gentagne parametre og resulterer i slankere og mere håndterbar kode. For den fulde liste over understøttede parametre og API'er, se Konfiguration og brug af standardindstillinger med SageMaker Python SDK. For eventuelle spørgsmål og diskussioner, tilmeld dig Machine Learning & AI-fællesskab.
Om forfatterne
Giuseppe Angelo Porcelli er en primær maskinlæringsspecialist-løsningsarkitekt for Amazon Web Services. Med flere års softwareingeniør og ML-baggrund arbejder han med kunder af enhver størrelse for at forstå deres forretningsmæssige og tekniske behov dybt og designe AI- og Machine Learning-løsninger, der gør den bedste brug af AWS Cloud og Amazon Machine Learning-stakken. Han har arbejdet på projekter inden for forskellige domæner, herunder MLOps, Computer Vision, NLP og involverer et bredt sæt af AWS-tjenester. I sin fritid nyder Giuseppe at spille fodbold.
Bruno Pistone er en AI/ML Specialist Solutions Architect for AWS baseret i Milano. Han arbejder med kunder af enhver størrelse for at hjælpe dem med at forstå deres tekniske behov dybt og designe AI- og Machine Learning-løsninger, der gør den bedste brug af AWS Cloud og Amazon Machine Learning-stakken. Hans ekspertiseområde er Machine Learning end to end, Machine Learning Industrialization og MLOps. Han nyder at tilbringe tid med sine venner og udforske nye steder, såvel som at rejse til nye destinationer.
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/configure-and-use-defaults-for-amazon-sagemaker-resources-with-the-sagemaker-python-sdk/
- :har
- :er
- :ikke
- :hvor
- $OP
- 1
- 10
- 100
- 20
- 30
- 60
- 7
- 9
- a
- I stand
- Om
- adgang
- tilgængelig
- Konto
- aktioner
- tilføje
- Desuden
- Yderligere
- adresser
- administratorer
- igen
- AI
- AI / ML
- Alle
- tillade
- tillader
- allerede
- også
- Skønt
- Amazon
- Amazon EC2
- Amazon maskinindlæring
- Amazon SageMaker
- Amazon Web Services
- an
- ,
- enhver
- api
- API'er
- app
- anvendt
- passende
- apps
- ER
- AS
- At
- vedhæfte
- automatisere
- automatisk
- undgå
- AWS
- AWS CloudFormation
- baggrund
- baseret
- BE
- været
- før
- Begyndelse
- BEDSTE
- krop
- både
- bred
- Bygning
- byrde
- virksomhed
- by
- ringe
- Opkald
- CAN
- tilfælde
- tilfælde
- CD
- Celler
- Vælg
- kunde
- Cloud
- kode
- samling
- Fælles
- fuldføre
- Compute
- computer
- Computer Vision
- betingelse
- Konfiguration
- Konsol
- indhold
- fortsæt
- kontrol
- kontrolleret
- Omkostninger
- kunne
- skabe
- oprettet
- skaber
- Oprettelse af
- For øjeblikket
- skik
- Kunder
- data
- databehandling
- dataforsker
- Standard
- defaults
- demonstrere
- Afhængigt
- indsætte
- indsat
- implementering
- implementering
- Design
- destinationer
- forskellige
- drøftet
- diskussioner
- displays
- Er ikke
- domæne
- Domæner
- færdig
- Dont
- ned
- hver
- nemt
- ekko
- enten
- eliminere
- muliggøre
- krypteret
- kryptering
- ende
- ende til ende
- Endpoint
- håndhæve
- Engineering
- sikre
- Indtast
- Enterprise
- Miljø
- miljøer
- fejl
- alle
- eksempel
- eksisterende
- forventer
- eksperiment
- ekspertise
- udforske
- opdagelsesrejsende
- Udforskning
- FAIL
- falsk
- Feature
- felt
- File (Felt)
- Filer
- finansiere
- Finde
- følger
- efter
- følger
- fodbold
- Til
- format
- Gratis
- venner
- fra
- fuld
- funktioner
- få
- få
- Git
- Gruppens
- Have
- have
- he
- sundhedspleje
- hjulpet
- hjælpe
- hende
- hans
- Home
- Hvordan
- How To
- HTML
- http
- HTTPS
- ICON
- Identity
- if
- importere
- in
- Herunder
- industrier
- Infrastruktur
- indgang
- installere
- instans
- anvisninger
- grænseflade
- Internet
- Internetadgang
- ind
- involverer
- IP
- IP-adresser
- isolation
- IT
- ITS
- Job
- Karriere
- deltage
- jpg
- Nøgle
- nøgler
- stor
- læring
- Niveau
- Bibliotek
- livscyklus
- ligesom
- Liste
- lokale
- placering
- placeringer
- log
- logget
- logning
- Lang
- Se
- elsker
- maskine
- machine learning
- lave
- Making
- ledelse
- manuelt
- MILAN
- ML
- MLOps
- tilstand
- model
- modeller
- mere
- mest
- motorcykel
- flere
- Mystery
- navn
- navne
- Navigation
- Behov
- behov
- behøve
- behov
- netværk
- netværk
- Ny
- næste
- NLP
- ingen
- notesbog
- Varsel..
- bemærke
- nu
- objekt
- of
- on
- engang
- ONE
- åbent
- open source
- or
- OS
- Andet
- ud
- output
- overstyring
- egen
- brød
- parameter
- parametre
- Bestået
- Passing
- lidenskabelige
- betale
- Steder
- Platforme
- plato
- Platon Data Intelligence
- PlatoData
- spiller
- Punkt
- politikker
- Indlæg
- praksis
- tidligere
- Main
- private
- privilegier
- forarbejdning
- Processor
- Profil
- Profiler
- projekter
- give
- offentlige
- sætter
- Python
- Spørgsmål
- Hurtig
- anbefaler
- resterende
- huske
- anmode
- påkrævet
- Ressourcer
- svar
- restriktioner
- resulterer
- roller
- roller
- Kør
- kører
- s
- SA
- sagemaker
- samme
- Gem
- besparelse
- Videnskabsmand
- forskere
- SDK
- Sektion
- sikkerhed
- se
- tjeneste
- Tjenester
- Session
- sæt
- indstilling
- setup
- flere
- hun
- bør
- Vis
- udstillingsvindue
- vist
- lignende
- Simpelt
- ganske enkelt
- Størrelse
- Software
- software Engineering
- Løsninger
- noget
- specialist
- specifikke
- specificeret
- udgifterne
- stable
- Stakke
- starte
- påbegyndt
- Status
- Trin
- Steps
- opbevaring
- butik
- opbevaret
- Studio
- subnet
- undernet
- efterfølgende
- Succesfuld
- sådan
- Understøttet
- Understøtter
- systemet
- Opgaver
- hold
- Teknisk
- skabelon
- terminal
- at
- deres
- Them
- derefter
- derved
- Disse
- denne
- Gennem
- stramt
- tid
- til
- top
- Trafik
- Tog
- Kurser
- TUR
- Drejning
- under
- underliggende
- forstå
- Opdatering
- opgradering
- Brug
- brug
- brug tilfælde
- anvendte
- Bruger
- brugere
- ved brug af
- værdi
- Værdier
- verificere
- udgave
- via
- Specifikation
- visning
- Virtual
- synlig
- vision
- bind
- mængder
- ønsker
- we
- web
- webservices
- GODT
- hvornår
- vilje
- med
- uden
- Arbejde
- arbejdede
- arbejder
- virker
- yaml
- år
- Du
- Din
- zephyrnet