Smakämnen Amazon SageMaker Python SDK är ett bibliotek med öppen källkod för utbildning och implementering av modeller för maskininlärning (ML). Amazon SageMaker. Företagskunder i hårt kontrollerade branscher som sjukvård och finans sätter upp skyddsräcken för att säkerställa att deras data är krypterad och att trafiken inte går över internet. För att säkerställa att SageMakers utbildning och implementering av ML-modeller följer dessa skyddsräcken är det vanligt att sätta begränsningar på kontot eller AWS-organisationer nivå genom servicekontrollpolicyer och AWS identitets- och åtkomsthantering (IAM) policyer för att upprätthålla användningen av specifika IAM-roller, Amazon Virtual Private Cloud (Amazon VPC) konfigurationer och AWS nyckelhanteringstjänst (AWS KMS)-tangenter. I sådana fall måste datavetare tillhandahålla dessa parametrar till sin ML-modellutbildning och distributionskod manuellt, genom att anteckna undernät, säkerhetsgrupper och KMS-nycklar. Detta lägger skyldigheten på dataforskarna att komma ihåg att specificera dessa konfigurationer, att framgångsrikt köra sina jobb och undvika att få Access Denied-fel.
Från och med SageMaker Python SDK version 2.148.0 kan du nu konfigurera standardvärden för parametrar som IAM-roller, VPC:er och KMS-nycklar. Administratörer och slutanvändare kan initiera AWS-infrastrukturprimitiver med standardinställningar som anges i en konfigurationsfil i YAML-format. När den väl har konfigurerats ärver Python SDK automatiskt dessa värden och sprider dem till de underliggande SageMaker API-anrop som t.ex. CreateProcessingJob()
, CreateTrainingJob()
och CreateEndpointConfig()
, utan att några ytterligare åtgärder behövs. SDK:n stöder också flera konfigurationsfiler, vilket gör att administratörer kan ställa in en konfigurationsfil för alla användare, och användare kan åsidosätta den via en konfiguration på användarnivå som kan lagras i Amazon enkel lagringstjänst (Amazon S3), Amazon Elastic File System (Amazon EFS) för Amazon SageMaker Studio, eller användarens lokala filsystem.
I det här inlägget visar vi dig hur du skapar och lagrar standardkonfigurationsfilen i Studio och använder SDK-standardfunktionen för att skapa dina SageMaker-resurser.
Lösningsöversikt
Vi demonstrerar den här nya funktionen med en helhet AWS molnformation mall som skapar den nödvändiga infrastrukturen och skapar en Studio-domän i den distribuerade VPC:n. Dessutom skapar vi KMS-nycklar för att kryptera de volymer som används i utbildnings- och bearbetningsjobb. Stegen är som följer:
- Starta CloudFormation-stacken i ditt konto. Alternativt, om du vill utforska den här funktionen på en befintlig SageMaker-domän eller anteckningsbok, hoppa över det här steget.
- Befolka
config.yaml
fil och spara filen på standardplatsen. - Kör en exempelanteckningsbok med ett heltäckande ML-användningsfall, inklusive databearbetning, modellträning och slutledning.
- Åsidosätt standardkonfigurationsvärdena.
Förutsättningar
Innan du börjar, se till att du har ett AWS-konto och en IAM-användare eller roll med administratörsbehörighet. Om du är en datavetare som för närvarande skickar infrastrukturparametrar till resurser i din bärbara dator, kan du hoppa över nästa steg för att ställa in din miljö och börja skapa konfigurationsfilen.
För att använda den här funktionen, se till att uppgradera din SageMaker SDK-version genom att köra pip install --upgrade sagemaker
.
Ställ in miljön
Utför följande steg för att distribuera en komplett infrastruktur inklusive nätverk och en Studio-domän:
- Klona GitHub repository.
- Logga in på ditt AWS-konto och öppna AWS CloudFormation-konsolen.
- För att distribuera nätverksresurserna, välj Skapa stack.
- Ladda upp mallen under
setup/vpc_mode/01_networking.yaml
. - Ange ett namn för stacken (t.ex.
networking-stack
), och slutför de återstående stegen för att skapa stacken. - För att distribuera Studio-domänen, välj Skapa stack igen.
- Ladda upp mallen under
setup/vpc_mode/02_sagemaker_studio.yaml
. - Ange ett namn för stacken (t.ex.
sagemaker-stack
), och ange namnet på nätverksstacken när du uppmanas tillCoreNetworkingStackName
parameter. - Fortsätt med de återstående stegen, välj bekräftelserna för IAM-resurser och skapa stacken.
När statusen för båda stackarna uppdateras till CREATE_COMPLETE, fortsätt till nästa steg.
Skapa konfigurationsfilen
För att använda standardkonfigurationen för SageMaker Python SDK skapar du en config.yaml-fil i det format som SDK:n förväntar sig. För formatet för filen config.yaml, se Konfigurationsfilstruktur. Beroende på din arbetsmiljö, till exempel Studio-anteckningsböcker, SageMaker-anteckningsboksinstanser eller din lokala IDE, kan du antingen spara konfigurationsfilen på standardplatsen eller åsidosätta standardinställningarna genom att skicka en konfigurationsfilplats. För standardplatserna för andra miljöer, se Platser för konfigurationsfiler. Följande steg visar inställningarna för en Studio-notebook-miljö.
För att enkelt skapa config.yaml
fil, kör följande celler i din Studio-systemterminal och ersätt platshållarna med CloudFormation-stacknamnen från föregående steg:
Detta skript fyller automatiskt i YAML-filen, ersätter platshållarna med infrastrukturens standardinställningar och sparar filen i hemmappen. Sedan kopierar den filen till standardplatsen för Studio-anteckningsböcker. Den resulterande konfigurationsfilen bör se ut som följande format:
Om du har en befintlig domän och nätverkskonfiguration inställd, skapa config.yaml
filen i önskat format och spara den på standardplatsen för Studio-anteckningsböcker.
Observera att dessa standardinställningar helt enkelt automatiskt fyller i konfigurationsvärdena för lämpliga SageMaker SDK-anrop och tvingar inte användaren till någon specifik VPC, subnät eller roll. Som administratör, om du vill att dina användare ska använda en specifik konfiguration eller roll, använd IAM-villkorsnycklar för att upprätthålla standardvärdena.
Dessutom kan varje API-anrop ha sina egna konfigurationer. Till exempel, i det föregående konfigurationsfilexemplet kan du ange vpc-a
och subnet-a
för utbildningsjobb, och specificera vpc-b
och subnet-c
, subnet-d
för bearbetningsjobb.
Kör en exempelanteckningsbok
Nu när du har ställt in konfigurationsfilen kan du börja köra dina modellbyggnads- och träningsanteckningsböcker som vanligt, utan att du behöver ställa in nätverks- och krypteringsparametrar uttryckligen, för de flesta SDK-funktioner. Ser API:er och parametrar som stöds för en komplett lista över API-anrop och parametrar som stöds.
I Studio, välj Filutforskaren-ikonen i navigeringsfönstret och öppna 03_feature_engineering/03_feature_engineering.ipynb
, som visas i följande skärmdump.
Kör anteckningsbokens celler en efter en och lägg märke till att du inte anger någon ytterligare konfiguration. När du skapar processorobjektet kommer du att se cellutgångarna som i följande exempel.
Som du kan se i utgången, tillämpas standardkonfigurationen automatiskt på bearbetningsjobbet, utan att användaren behöver ytterligare input.
När du kör nästa cell för att köra processorn kan du också verifiera att standardinställningarna är inställda genom att visa jobbet på SageMaker-konsolen. Välja Bearbetar jobb under Bearbetning i navigeringsfönstret, som visas i följande skärmdump.
Välj bearbetningsjobbet med prefixet end-to-end-ml-sm-proc
, och du bör kunna se nätverket och krypteringen som redan är konfigurerad.
Du kan fortsätta att köra de återstående bärbara datorerna för att träna och distribuera modellen, och du kommer att märka att infrastrukturstandarderna tillämpas automatiskt för både utbildningsjobb och modeller.
Åsidosätt standardkonfigurationsfilen
Det kan finnas fall där en användare behöver åsidosätta standardkonfigurationen, till exempel för att experimentera med offentlig internetåtkomst, eller uppdatera nätverkskonfigurationen om undernätet får slut på IP-adresser. I sådana fall låter Python SDK dig också tillhandahålla en anpassad plats för konfigurationsfilen, antingen på lokal lagring, eller så kan du peka på en plats i Amazon S3. I det här avsnittet utforskar vi ett exempel.
Öppna user-configs.yaml
filen i din hemkatalog och uppdatera EnableNetworkIsolation
värde till True
Under TrainingJob
sektion.
Öppna nu samma anteckningsbok och lägg till följande cell i början av anteckningsboken:
Med den här cellen pekar du platsen för konfigurationsfilen till SDK:n. Nu, när du skapar processorobjektet, kommer du att märka att standardkonfigurationen har åsidosatts för att möjliggöra nätverksisolering, och bearbetningsjobbet kommer att misslyckas i nätverksisoleringsläge.
Du kan använda samma åsidosättande miljövariabel för att ställa in platsen för konfigurationsfilen om du använder din lokala miljö som VSCode.
Felsöka och hämta standardvärden
För snabb felsökning om du stöter på några fel när du kör API-anrop från din bärbara dator, visar cellutgången de tillämpade standardkonfigurationerna som visas i föregående avsnitt. För att se det exakta Boto3-anropet som skapats för att se attributvärdena som skickats från standardkonfigurationsfilen, kan du felsöka genom att aktivera Boto3-loggning. För att aktivera loggning, kör följande cell överst i anteckningsboken:
Alla efterföljande Boto3-samtal kommer att loggas med den fullständiga begäran, synlig under kroppsdelen i loggen.
Du kan också se samlingen av standardkonfigurationer med hjälp av session.sagemaker_config
värde som visas i följande exempel.
Slutligen, om du använder Boto3 för att skapa dina SageMaker-resurser, kan du hämta standardkonfigurationsvärdena med hjälp av sagemaker_config
variabel. Till exempel att köra bearbetningsjobbet i 03_feature_engineering.ipynb
med Boto3 kan du ange innehållet i följande cell i samma anteckningsbok och köra cellen:
Automatisera skapandet av konfigurationsfiler
För administratörer kan det vara en skrämmande uppgift att behöva skapa konfigurationsfilen och spara filen i varje SageMaker-anteckningsbokförekomst eller Studio-användarprofil. Även om du kan rekommendera att användare använder en vanlig fil som är lagrad på en standard S3-plats, lägger det extra kostnader för att specificera åsidosättningen på dataforskarna.
För att automatisera detta kan administratörer använda SageMaker Lifecycle Configurations (LCC). För Studio-användarprofiler eller anteckningsboksinstanser kan du bifoga följande exempel på LCC-skript som ett standard-LCC för användarens standard Jupyter Server-app:
Se Använd livscykelkonfigurationer för Amazon SageMaker Studio or Anpassa en anteckningsbokinstans för instruktioner om hur du skapar och ställer in ett standardlivscykelskript.
Städa upp
När du är klar med att experimentera med den här funktionen, rensa upp dina resurser för att undvika att betala extra kostnader. Om du har tillhandahållit nya resurser enligt det här inlägget, slutför du följande steg för att rensa upp dina resurser:
- Stäng av dina Studio-appar för användarprofilen. Ser Stäng av och uppdatera SageMaker Studio och Studio-appar för instruktioner. Se till att alla appar raderas innan du tar bort stacken.
- Ta bort EFS-volymen som skapats för Studio-domänen. Du kan se EFS-volymen som är kopplad till domänen genom att använda en BeskrivDomän API-samtal.
- Ta bort Studio-domänstacken.
- Ta bort säkerhetsgrupperna som skapats för Studio-domänen. Du hittar dem på Amazon Elastic Compute Cloud (Amazon EC2) konsol, med namnen security-group-for-inbound-nfs-d-xxx och security-group-for-outbound-nfs-d-xxx
- Ta bort nätverksstacken.
Slutsats
I det här inlägget diskuterade vi konfigurering och användning av standardvärden för viktiga infrastrukturparametrar med SageMaker Python SDK. Detta gör att administratörer kan ställa in standardkonfigurationer för datavetare, vilket sparar tid för användare och administratörer, eliminerar bördan med att upprepade gånger specificera parametrar och resulterar i slankare och mer hanterbar kod. För hela listan över parametrar och API:er som stöds, se Konfigurera och använda standardinställningar med SageMaker Python SDK. För alla frågor och diskussioner, gå med i Machine Learning & AI community.
Om författarna
Giuseppe Angelo Porcelli är en huvudsaklig maskininlärningsspecialistlösningsarkitekt för Amazon Web Services. Med flera års mjukvaruutveckling och ML-bakgrund arbetar han med kunder av alla storlekar för att på djupet förstå deras affärsbehov och tekniska behov och designa AI- och Machine Learning-lösningar som utnyttjar AWS Cloud och Amazon Machine Learning-stacken på bästa sätt. Han har arbetat med projekt inom olika domäner, inklusive MLOps, Computer Vision, NLP och involverat en bred uppsättning AWS-tjänster. På fritiden tycker Giuseppe om att spela fotboll.
Bruno Pistone är en AI/ML Specialist Solutions Architect för AWS baserad i Milano. Han arbetar med kunder av alla storlekar för att hjälpa dem att på djupet förstå deras tekniska behov och designa lösningar för AI och Machine Learning som utnyttjar AWS Cloud och Amazon Machine Learning-stack på bästa sätt. Hans expertområde är Machine Learning end to end, Machine Learning Industrialization och MLOps. Han tycker om att umgås med sina vänner och utforska nya platser, samt att resa till nya destinationer.
Durga Sury är en ML Solutions Architect på Amazon SageMaker Service SA-teamet. Hon brinner för att göra maskininlärning tillgängligt för alla. Under sina fyra år på AWS har hon hjälpt till att sätta upp AI/ML-plattformar för företagskunder. När hon inte jobbar älskar hon motorcykelturer, mysterieromaner och långa promenader med sin 4-åriga husky.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoAiStream. Web3 Data Intelligence. Kunskap förstärkt. Tillgång här.
- Minting the Future med Adryenn Ashley. Tillgång här.
- Köp och sälj aktier i PRE-IPO-företag med PREIPO®. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/configure-and-use-defaults-for-amazon-sagemaker-resources-with-the-sagemaker-python-sdk/
- : har
- :är
- :inte
- :var
- $UPP
- 1
- 10
- 100
- 20
- 30
- 60
- 7
- 9
- a
- Able
- Om oss
- tillgång
- tillgänglig
- Konto
- åtgärder
- lägga till
- Dessutom
- Annat
- adresser
- administratörer
- igen
- AI
- AI / ML
- Alla
- tillåta
- tillåter
- redan
- också
- Även
- amason
- Amazon EC2
- Amazon maskininlärning
- Amazon SageMaker
- Amazon Web Services
- an
- och
- vilken som helst
- api
- API: er
- app
- tillämpas
- lämpligt
- appar
- ÄR
- AS
- At
- bifoga
- automatisera
- automatiskt
- undvika
- AWS
- AWS molnformation
- bakgrund
- baserat
- BE
- varit
- innan
- Börjar
- BÄST
- kropp
- båda
- bred
- Byggnad
- belastning
- företag
- by
- Ring
- Samtal
- KAN
- Vid
- fall
- CD
- Celler
- Välja
- klient
- cloud
- koda
- samling
- Gemensam
- fullborda
- Compute
- dator
- Datorsyn
- tillstånd
- konfiguration
- Konsol
- innehåll
- fortsätta
- kontroll
- kontrolleras
- Kostar
- kunde
- skapa
- skapas
- skapar
- Skapa
- För närvarande
- beställnings
- Kunder
- datum
- databehandling
- datavetare
- Standard
- defaults
- demonstrera
- beroende
- distribuera
- utplacerade
- utplacera
- utplacering
- Designa
- destinationer
- olika
- diskuteras
- diskussioner
- displayer
- inte
- domän
- domäner
- gjort
- inte
- ner
- varje
- lätt
- missar
- antingen
- eliminera
- möjliggöra
- krypterad
- kryptering
- änden
- början till slut
- Slutpunkt
- förstärka
- Teknik
- säkerställa
- ange
- Företag
- Miljö
- miljöer
- fel
- alla
- exempel
- befintliga
- förväntar
- experimentera
- expertis
- utforska
- explorer
- Utforska
- MISSLYCKAS
- falsk
- Leverans
- fält
- Fil
- Filer
- finansiering
- hitta
- följer
- efter
- följer
- fotboll
- För
- format
- Fri
- vänner
- från
- full
- funktioner
- skaffa sig
- få
- gå
- Gruppens
- Har
- har
- he
- hälso-och sjukvård
- hjälpte
- hjälpa
- här
- hans
- Hem
- Hur ser din drömresa ut
- How To
- html
- http
- HTTPS
- IKON
- Identitet
- if
- importera
- in
- Inklusive
- industrier
- Infrastruktur
- ingång
- installera
- exempel
- instruktioner
- Gränssnitt
- Internet
- internetåtkomst
- in
- involverar
- IP
- IP-adresser
- isolering
- IT
- DESS
- Jobb
- Lediga jobb
- delta
- jpg
- Nyckel
- nycklar
- Large
- inlärning
- Nivå
- Bibliotek
- livscykel
- tycka om
- Lista
- lokal
- läge
- platser
- log
- inloggad
- skogsavverkning
- Lång
- se
- älskar
- Maskinen
- maskininlärning
- göra
- Framställning
- ledning
- manuellt
- MILAN
- ML
- MLOps
- Mode
- modell
- modeller
- mer
- mest
- mc
- multipel
- Mystery
- namn
- namn
- Navigering
- Behöver
- behövs
- behöver
- behov
- nät
- nätverk
- Nya
- Nästa
- nlp
- Nej
- anteckningsbok
- Lägga märke till..
- notera
- nu
- objektet
- of
- on
- gång
- ONE
- öppet
- öppen källkod
- or
- OS
- Övriga
- ut
- produktion
- åsidosätta
- egen
- panelen
- parameter
- parametrar
- Godkänd
- Förbi
- brinner
- betalar
- platser
- Plattformar
- plato
- Platon Data Intelligence
- PlatonData
- i
- Punkt
- Strategier
- Inlägg
- praktiken
- föregående
- Principal
- privat
- privilegier
- bearbetning
- Processorn
- Profil
- Profiler
- projekt
- ge
- allmän
- Puts
- Python
- frågor
- Snabbt
- rekommenderar
- Återstående
- ihåg
- begära
- Obligatorisk
- Resurser
- respons
- begränsningar
- resulterande
- Roll
- roller
- Körning
- rinnande
- s
- SA
- sagemaker
- Samma
- Save
- sparande
- Forskare
- vetenskapsmän
- sDK
- §
- säkerhet
- se
- service
- Tjänster
- session
- in
- inställning
- inställning
- flera
- hon
- skall
- show
- visa
- visas
- liknande
- Enkelt
- helt enkelt
- Storlek
- Mjukvara
- mjukvaruutveckling
- Lösningar
- något
- specialist
- specifik
- specificerade
- Spendera
- stapel
- Stacks
- starta
- igång
- status
- Steg
- Steg
- förvaring
- lagra
- lagras
- studio
- undernät
- subnät
- senare
- Framgångsrikt
- sådana
- Som stöds
- Stöder
- system
- uppgift
- grupp
- Teknisk
- mall
- terminal
- den där
- Smakämnen
- deras
- Dem
- sedan
- vari
- Dessa
- detta
- Genom
- tätt
- tid
- till
- topp
- trafik
- Tåg
- Utbildning
- SVÄNG
- Vrida
- under
- underliggande
- förstå
- Uppdatering
- uppgradera
- Användning
- användning
- användningsfall
- Begagnade
- Användare
- användare
- med hjälp av
- värde
- Värden
- verifiera
- version
- via
- utsikt
- visning
- Virtuell
- synlig
- syn
- volym
- volymer
- vill
- we
- webb
- webbservice
- VÄL
- när
- kommer
- med
- utan
- Arbete
- arbetade
- arbetssätt
- fungerar
- jaml
- år
- Om er
- Din
- zephyrnet