De Amazon SageMaker Python-SDK is een open-sourcebibliotheek voor het trainen en implementeren van machine learning (ML)-modellen Amazon Sage Maker. Zakelijke klanten in streng gecontroleerde sectoren zoals de gezondheidszorg en de financiรซle wereld zetten beveiligingsrails op om ervoor te zorgen dat hun gegevens worden versleuteld en dat verkeer niet via internet gaat. Om ervoor te zorgen dat de SageMaker-training en implementatie van ML-modellen deze vangrails volgen, is het gebruikelijk om beperkingen in te stellen op het account of AWS-organisaties niveau via servicecontrolebeleid en AWS Identiteits- en toegangsbeheer (IAM)-beleid om het gebruik van specifieke IAM-rollen af โโte dwingen, Amazon virtuele privรฉcloud (Amazon VPC) configuraties, en AWS Sleutelbeheerservice (AWS KMS) toetsen. In dergelijke gevallen moeten datawetenschappers deze parameters handmatig aan hun ML-modeltraining en implementatiecode leveren door subnetten, beveiligingsgroepen en KMS-sleutels te noteren. Dit legt de verantwoordelijkheid bij de datawetenschappers om te onthouden dat ze deze configuraties moeten specificeren, om hun taken met succes uit te voeren en om te voorkomen dat ze Access Denied-fouten krijgen.
Vanaf SageMaker Python SDK versie 2.148.0 kunt u nu standaardwaarden configureren voor parameters zoals IAM-rollen, VPC's en KMS-sleutels. Beheerders en eindgebruikers kunnen AWS-infrastructuurprimitieven initialiseren met standaardwaarden gespecificeerd in een configuratiebestand in YAML-indeling. Eenmaal geconfigureerd, neemt de Python SDK deze waarden automatisch over en verspreidt ze deze naar de onderliggende SageMaker API-aanroepen, zoals CreateProcessingJob()
, CreateTrainingJob()
en CreateEndpointConfig()
, zonder dat er aanvullende acties nodig zijn. De SDK ondersteunt ook meerdere configuratiebestanden, waardoor beheerders een configuratiebestand voor alle gebruikers kunnen instellen en gebruikers dit kunnen overschrijven via een configuratie op gebruikersniveau die kan worden opgeslagen in Amazon eenvoudige opslagservice (Amazone S3), Amazon elastisch bestandssysteem (Amazon EFS) voor Amazon SageMaker Studio, of het lokale bestandssysteem van de gebruiker.
In dit bericht laten we u zien hoe u het standaardconfiguratiebestand in Studio kunt maken en opslaan en de SDK-standaardfunctie kunt gebruiken om uw SageMaker-bronnen te maken.
Overzicht oplossingen
We demonstreren deze nieuwe feature met een end-to-end AWS CloudFormatie sjabloon die de vereiste infrastructuur creรซert en een Studio-domein maakt in de geรฏmplementeerde VPC. Daarnaast maken we KMS-sleutels voor het versleutelen van de volumes die worden gebruikt bij trainings- en verwerkingstaken. De stappen zijn als volgt:
- Start de CloudFormation-stack in uw account. Of sla deze stap over als u deze functie wilt verkennen op een bestaand SageMaker-domein of -notebook.
- Vul het
config.yaml
bestand en sla het bestand op de standaardlocatie op. - Voer een voorbeeld notebook uit met een end-to-end ML use case, inclusief gegevens verwerking, model training en inferentie.
- Negeer de standaard configuratiewaarden.
Voorwaarden
Voordat u aan de slag gaat, moet u ervoor zorgen dat u een AWS-account en een IAM-gebruiker of -rol met beheerdersrechten hebt. Als u een datawetenschapper bent die momenteel infrastructuurparameters doorgeeft aan resources in uw notebook, kunt u de volgende stap van het instellen van uw omgeving overslaan en beginnen met het maken van het configuratiebestand.
Om deze functie te gebruiken, moet u ervoor zorgen dat u uw SageMaker SDK-versie upgradet door uit te voeren pip install --upgrade sagemaker
.
Stel de omgeving in
Voer de volgende stappen uit om een โโcomplete infrastructuur te implementeren, inclusief netwerken en een Studio-domein:
- Kloon het GitHub-repository.
- Log in op uw AWS-account en open de AWS CloudFormation-console.
- Kies om de netwerkbronnen te implementeren Maak een stapel.
- Upload het sjabloon hieronder
setup/vpc_mode/01_networking.yaml
. - Geef een naam op voor de stapel (bijvoorbeeld
networking-stack
), en voltooi de resterende stappen om de stapel te maken. - Kies om het Studio-domein te implementeren Maak een stapel weer.
- Upload het sjabloon hieronder
setup/vpc_mode/02_sagemaker_studio.yaml
. - Geef een naam op voor de stapel (bijvoorbeeld
sagemaker-stack
), en geef de naam van de netwerkstack op wanneer hierom wordt gevraagdCoreNetworkingStackName
parameter. - Ga verder met de resterende stappen, selecteer de bevestigingen voor IAM-resources en maak de stapel.
Wanneer de status van beide stapels wordt bijgewerkt naar CREATE_COMPLETE, ga verder met de volgende stap.
Maak het configuratiebestand
Om de standaardconfiguratie voor de SageMaker Python SDK te gebruiken, maakt u een config.yaml-bestand in de indeling die de SDK verwacht. Raadpleeg voor de indeling van het bestand config.yaml Structuur van het configuratiebestand. Afhankelijk van uw werkomgeving, zoals Studio-notebooks, SageMaker-notebookinstanties of uw lokale IDE, kunt u het configuratiebestand opslaan op de standaardlocatie of de standaardinstellingen negeren door een configuratiebestandslocatie door te geven. Raadpleeg voor de standaardlocaties voor andere omgevingen Locaties van configuratiebestanden. De volgende stappen demonstreren de installatie voor een Studio-notebookomgeving.
Om eenvoudig de config.yaml
bestand, voert u de volgende cellen uit in uw Studio-systeemterminal, waarbij u de tijdelijke aanduidingen vervangt door de CloudFormation-stacknamen uit de vorige stap:
Dit script vult automatisch het YAML-bestand, vervangt de tijdelijke aanduidingen door de infrastructuurstandaarden en slaat het bestand op in de thuismap. Vervolgens kopieert het het bestand naar de standaardlocatie voor Studio-notebooks. Het resulterende configuratiebestand zou er ongeveer zo uit moeten zien als het volgende formaat:
Als u een bestaande domein- en netwerkconfiguratie hebt ingesteld, maakt u het config.yaml
bestand in de vereiste indeling en sla het op de standaardlocatie voor Studio-notebooks op.
Houd er rekening mee dat deze standaardinstellingen de configuratiewaarden voor de juiste SageMaker SDK-aanroepen gewoon automatisch invullen en de gebruiker niet dwingen tot een specifieke VPC, subnet of rol. Als u als beheerder wilt dat uw gebruikers een specifieke configuratie of rol gebruiken, gebruikt u IAM-voorwaardesleutels om de standaardwaarden af โโte dwingen.
Bovendien kan elke API-aanroep zijn eigen configuraties hebben. In het voorgaande voorbeeld van het configuratiebestand kunt u bijvoorbeeld specificeren vpc-a
en subnet-a
voor opleidingsopdrachten, en specificeer vpc-b
en subnet-c
, subnet-d
voor het verwerken van opdrachten.
Voer een voorbeeldnotitieblok uit
Nu u het configuratiebestand hebt ingesteld, kunt u voor de meeste SDK-functies uw modelbouw- en trainingsnotebooks zoals gewoonlijk uitvoeren, zonder dat u expliciet netwerk- en versleutelingsparameters hoeft in te stellen. Zien Ondersteunde API's en parameters voor een volledige lijst met ondersteunde API-aanroepen en parameters.
Kies in Studio het pictogram Verkenner in het navigatievenster en open 03_feature_engineering/03_feature_engineering.ipynb
, zoals weergegeven in de volgende schermafbeelding.
Voer de notebookcellen een voor een uit en merk op dat u geen aanvullende configuratie opgeeft. Wanneer u het processorobject maakt, ziet u de celuitvoer zoals in het volgende voorbeeld.
Zoals u in de uitvoer kunt zien, wordt de standaardconfiguratie automatisch toegepast op de verwerkingstaak, zonder dat er extra input van de gebruiker nodig is.
Wanneer u de volgende cel uitvoert om de processor te laten werken, kunt u ook controleren of de standaardinstellingen zijn ingesteld door de taak op de SageMaker-console te bekijken. Kiezen Taken verwerken voor In behandeling in het navigatievenster, zoals weergegeven in de volgende schermafbeelding.
Kies de verwerkingstaak met het voorvoegsel end-to-end-ml-sm-proc
, en u zou de reeds geconfigureerde netwerken en codering moeten kunnen zien.
U kunt doorgaan met het uitvoeren van de resterende notebooks om het model te trainen en te implementeren, en u zult merken dat de standaardinstellingen voor de infrastructuur automatisch worden toegepast voor zowel trainingstaken als modellen.
Negeer het standaard configuratiebestand
Er kunnen gevallen zijn waarin een gebruiker de standaardconfiguratie moet overschrijven, bijvoorbeeld om te experimenteren met openbare internettoegang, of de netwerkconfiguratie moet bijwerken als het subnet geen IP-adressen meer heeft. In dergelijke gevallen kunt u met de Python SDK ook een aangepaste locatie opgeven voor het configuratiebestand, hetzij op lokale opslag, of u kunt verwijzen naar een locatie in Amazon S3. In deze sectie onderzoeken we een voorbeeld.
Open de user-configs.yaml
bestand in uw homedirectory en werk het EnableNetworkIsolation
waarde voor True
, Onder het TrainingJob
pagina.
Open nu hetzelfde notitieblok en voeg de volgende cel toe aan het begin van het notitieblok:
Met deze cel wijst u de locatie van het configuratiebestand naar de SDK. Wanneer u nu het processorobject maakt, zult u merken dat de standaardconfiguratie is overschreven om netwerkisolatie mogelijk te maken, en dat de verwerkingstaak zal mislukken in de netwerkisolatiemodus.
U kunt dezelfde vervangende omgevingsvariabele gebruiken om de locatie van het configuratiebestand in te stellen als u uw lokale omgeving gebruikt, zoals VSCode.
Fouten opsporen en standaardwaarden ophalen
Voor snelle probleemoplossing als u fouten tegenkomt bij het uitvoeren van API-aanroepen vanaf uw notebook, geeft de celuitvoer de toegepaste standaardconfiguraties weer, zoals weergegeven in de vorige sectie. Om de exacte Boto3-oproep te bekijken die is gemaakt om de kenmerkwaarden te bekijken die zijn doorgegeven vanuit het standaardconfiguratiebestand, kunt u fouten opsporen door Boto3-logboekregistratie in te schakelen. Voer de volgende cel bovenaan het notitieblok uit om logboekregistratie in te schakelen:
Alle volgende Boto3-oproepen worden gelogd met het volledige verzoek, zichtbaar onder de body-sectie in het logboek.
U kunt ook de verzameling standaardconfiguraties bekijken met behulp van de session.sagemaker_config
waarde zoals getoond in het volgende voorbeeld.
Ten slotte, als u Boto3 gebruikt om uw SageMaker-resources te maken, kunt u de standaardconfiguratiewaarden ophalen met behulp van de sagemaker_config
variabel. Bijvoorbeeld om de verwerkingstaak uit te voeren 03_feature_engineering.ipynb
met Boto3 kunt u de inhoud van de volgende cel in hetzelfde notitieblok invoeren en de cel uitvoeren:
Automatiseer het aanmaken van configuratiebestanden
Voor beheerders kan het een ontmoedigende taak zijn om het configuratiebestand te maken en het bestand op te slaan in elke SageMaker-notebookinstantie of Studio-gebruikersprofiel. Hoewel u kunt aanbevelen dat gebruikers een gemeenschappelijk bestand gebruiken dat is opgeslagen op een standaard S3-locatie, legt dit de extra overhead van het specificeren van de override op de datawetenschappers.
Om dit te automatiseren, kunnen beheerders SageMaker Lifecycle Configurations (LCC) gebruiken. Voor Studio-gebruikersprofielen of notebookinstanties kunt u het volgende voorbeeld-LCC-script toevoegen als standaard-LCC voor de standaard Jupyter Server-app van de gebruiker:
Bekijk Gebruik levenscyclusconfiguraties voor Amazon SageMaker Studio or Een notitieboekexemplaar aanpassen voor instructies over het maken en instellen van een standaard levenscyclusscript.
Opruimen
Wanneer u klaar bent met het experimenteren met deze functie, ruimt u uw resources op om te voorkomen dat u extra kosten moet betalen. Als u nieuwe bronnen hebt ingericht zoals gespecificeerd in dit bericht, voert u de volgende stappen uit om uw bronnen op te schonen:
- Sluit uw Studio-apps af voor het gebruikersprofiel. Zien SageMaker Studio- en Studio-apps afsluiten en bijwerken voor instructies. Zorg ervoor dat alle apps zijn verwijderd voordat u de stapel verwijdert.
- Verwijder het EFS-volume dat is gemaakt voor het Studio-domein. U kunt het EFS-volume bekijken dat aan het domein is gekoppeld door een Beschrijf Domein API-oproep.
- Verwijder de Studio-domeinstack.
- Verwijder de beveiligingsgroepen die zijn gemaakt voor het Studio-domein. Je vindt ze op de Amazon Elastic Compute-cloud (Amazon EC2) console, met de namen security-group-for-inbound-nfs-d-xxx en security-group-for-outbound-nfs-d-xxx
- Verwijder de netwerkstack.
Conclusie
In dit bericht hebben we het configureren en gebruiken van standaardwaarden voor belangrijke infrastructuurparameters besproken met behulp van de SageMaker Python SDK. Hierdoor kunnen beheerders standaardconfiguraties instellen voor datawetenschappers, waardoor gebruikers en beheerders tijd besparen, de last van het herhaaldelijk specificeren van parameters wordt geรซlimineerd, wat resulteert in slankere en beter beheersbare code. Zie voor de volledige lijst met ondersteunde parameters en API's Standaardinstellingen configureren en gebruiken met de SageMaker Python SDK. Voor alle vragen en discussies, sluit je aan bij de Machine Learning & AI-gemeenschap.
Over de auteurs
Giuseppe Angelo Porcelli is een Principal Machine Learning Specialist Solutions Architect voor Amazon Web Services. Met meerdere jaren software-engineering en ML-achtergrond, werkt hij met klanten van elke omvang om hun zakelijke en technische behoeften grondig te begrijpen en AI- en Machine Learning-oplossingen te ontwerpen die optimaal gebruik maken van de AWS Cloud en de Amazon Machine Learning-stack. Hij heeft gewerkt aan projecten in verschillende domeinen, waaronder MLOps, Computer Vision, NLP, en met een breed scala aan AWS-services. In zijn vrije tijd voetbalt Giuseppe graag.
Bruno Piston is een AI/ML Specialist Solutions Architect voor AWS gevestigd in Milaan. Hij werkt met klanten van elke omvang om hen te helpen hun technische behoeften grondig te begrijpen en AI- en machine learning-oplossingen te ontwerpen die optimaal gebruik maken van de AWS Cloud en de Amazon Machine Learning-stack. Zijn expertisegebieden zijn Machine Learning end-to-end, Machine Learning Industrialization en MLOps. Hij brengt graag tijd door met zijn vrienden en het verkennen van nieuwe plaatsen, maar ook van reizen naar nieuwe bestemmingen.
Durga Sury is een ML Solutions Architect in het Amazon SageMaker Service SA-team. Ze is gepassioneerd om machine learning voor iedereen toegankelijk te maken. In haar 4 jaar bij AWS heeft ze geholpen bij het opzetten van AI/ML-platforms voor zakelijke klanten. Als ze niet aan het werk is, houdt ze van motorritten, mysterieromans en lange wandelingen met haar 5-jarige husky.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoAiStream. Web3 gegevensintelligentie. Kennis versterkt. Toegang hier.
- De toekomst slaan met Adryenn Ashley. Toegang hier.
- Koop en verkoop aandelen in PRE-IPO-bedrijven met PREIPOยฎ. Toegang hier.
- Bron: https://aws.amazon.com/blogs/machine-learning/configure-and-use-defaults-for-amazon-sagemaker-resources-with-the-sagemaker-python-sdk/
- : heeft
- :is
- :niet
- :waar
- $UP
- 1
- 10
- 100
- 20
- 30
- 60
- 7
- 9
- a
- in staat
- Over
- toegang
- beschikbaar
- Account
- acties
- toevoegen
- toevoeging
- Extra
- adressen
- beheerders
- weer
- AI
- AI / ML
- Alles
- Het toestaan
- toestaat
- al
- ook
- Hoewel
- Amazone
- Amazon EC2
- Amazon machinaal leren
- Amazon Sage Maker
- Amazon Web Services
- an
- en
- elke
- api
- APIs
- gebruiken
- toegepast
- passend
- apps
- ZIJN
- AS
- At
- hechten
- automatiseren
- webmaster.
- vermijd
- AWS
- AWS CloudFormatie
- achtergrond
- gebaseerde
- BE
- geweest
- vaardigheden
- Begin
- BEST
- lichaam
- zowel
- breed
- Gebouw
- last
- bedrijfsdeskundigen
- by
- Bellen
- oproepen
- CAN
- geval
- gevallen
- CD
- Cellen
- Kies
- klant
- Cloud
- code
- Collectie
- Gemeen
- compleet
- Berekenen
- computer
- Computer visie
- voorwaarde
- Configuratie
- troosten
- inhoud
- voortzetten
- onder controle te houden
- gecontroleerd
- Kosten
- kon
- en je merk te creรซren
- aangemaakt
- creรซert
- Wij creรซren
- Op dit moment
- gewoonte
- Klanten
- gegevens
- gegevensverwerking
- data scientist
- Standaard
- defaults
- tonen
- Afhankelijk
- implementeren
- ingezet
- het inzetten
- inzet
- Design
- bestemmingen
- anders
- besproken
- discussies
- displays
- Nee
- domein
- domeinen
- gedaan
- Dont
- beneden
- elk
- gemakkelijk
- echo
- beide
- elimineren
- in staat stellen
- versleutelde
- encryptie
- einde
- eind tot eind
- Endpoint
- afdwingen
- Engineering
- verzekeren
- Enter
- Enterprise
- Milieu
- omgevingen
- fouten
- iedereen
- voorbeeld
- bestaand
- verwacht
- experiment
- expertise
- Verken
- ontdekkingsreiziger
- Verkennen
- FAIL
- vals
- Kenmerk
- veld-
- Dien in
- Bestanden
- financiรซn
- VIND DE PLEK DIE PERFECT VOOR JOU IS
- volgen
- volgend
- volgt
- Voetbal
- Voor
- formaat
- Gratis
- vrienden
- oppompen van
- vol
- functies
- krijgen
- het krijgen van
- Git
- Groep
- Hebben
- met
- he
- gezondheidszorg
- geholpen
- het helpen van
- haar
- zijn
- Home
- Hoe
- How To
- HTML
- http
- HTTPS
- ICON
- Identiteit
- if
- importeren
- in
- Inclusief
- industrieรซn
- Infrastructuur
- invoer
- installeren
- instantie
- instructies
- Interface
- Internet
- internet toegang
- in
- waarbij
- IP
- IP adressen
- isolatie
- IT
- HAAR
- Jobomschrijving:
- Vacatures
- mee
- jpg
- sleutel
- toetsen
- Groot
- leren
- Niveau
- Bibliotheek
- levenscyclus van uw product
- als
- Lijst
- lokaal
- plaats
- locaties
- inloggen
- ingelogd
- logging
- lang
- Kijk
- houdt
- machine
- machine learning
- maken
- maken
- management
- handmatig
- MILAAN
- ML
- MLops
- Mode
- model
- modellen
- meer
- meest
- motorfiets
- meervoudig
- Mysterie
- naam
- namen
- Navigatie
- Noodzaak
- nodig
- nodig
- behoeften
- netwerk
- netwerken
- New
- volgende
- nlp
- geen
- notitieboekje
- Merk op..
- opmerkend
- nu
- object
- of
- on
- eens
- EEN
- open
- open source
- or
- OS
- Overige
- uit
- uitgang
- override
- het te bezitten.
- brood
- parameter
- parameters
- voorbij
- Voorbijgaand
- hartstochtelijk
- het betalen van
- plaatsen
- platforms
- Plato
- Plato gegevensintelligentie
- PlatoData
- spelen
- punt
- beleidsmaatregelen door te lezen.
- Post
- praktijk
- vorig
- Principal
- privaat
- voorrechten
- verwerking
- Gegevensverwerker
- Profiel
- Profielen
- projecten
- zorgen voor
- publiek
- puts
- Python
- Contact
- Quick
- adviseren
- resterende
- niet vergeten
- te vragen
- nodig
- Resources
- antwoord
- beperkingen
- verkregen
- Rol
- rollen
- lopen
- lopend
- s
- SA
- sagemaker
- dezelfde
- Bespaar
- besparing
- Wetenschapper
- wetenschappers
- sdk
- sectie
- veiligheid
- zien
- service
- Diensten
- Sessie
- reeks
- het instellen van
- setup
- verscheidene
- ze
- moet
- tonen
- showcase
- getoond
- gelijk
- Eenvoudig
- eenvoudigweg
- Maat
- Software
- software engineering
- Oplossingen
- iets
- specialist
- specifiek
- gespecificeerd
- Uitgaven
- stack
- Stacks
- begin
- gestart
- Status
- Stap voor
- Stappen
- mediaopslag
- shop
- opgeslagen
- studio
- subnet
- subnetten
- volgend
- Met goed gevolg
- dergelijk
- ondersteunde
- steunen
- system
- Taak
- team
- Technisch
- sjabloon
- terminal
- dat
- De
- hun
- Ze
- harte
- daarbij
- Deze
- dit
- Door
- strak
- niet de tijd of
- naar
- top
- verkeer
- Trainen
- Trainingen
- BEURT
- Draai
- voor
- die ten grondslag liggen
- begrijpen
- bijwerken
- upgrade
- Gebruik
- .
- use case
- gebruikt
- Gebruiker
- gebruikers
- gebruik
- waarde
- Values
- controleren
- versie
- via
- Bekijk
- viewing
- Virtueel
- zichtbaar
- visie
- volume
- volumes
- willen
- we
- web
- webservices
- GOED
- wanneer
- wil
- Met
- zonder
- Mijn werk
- werkte
- werkzaam
- Bedrijven
- YAML
- jaar
- You
- Your
- zephyrnet