Nu steeds meer klanten machine learning-workloads (ML) in productie willen nemen, is er een grote druk bij organisaties om de ontwikkelingslevenscyclus van ML-code te verkorten. Veel organisaties geven er de voorkeur aan om hun ML-code te schrijven in een productieklare stijl in de vorm van Python-methoden en -klassen, in tegenstelling tot een verkennende stijl (code schrijven zonder methoden of klassen te gebruiken), omdat dit hen helpt productieklare code sneller te verzenden.
met Amazon Sage Maker, kunt u de @externe binnenhuisarchitect om een SageMaker-trainingstaak uit te voeren door simpelweg uw Python-code te annoteren met een @remote decorateur. De SageMaker Python-SDK vertaalt uw bestaande werkruimteomgeving en alle bijbehorende gegevensverwerkingscode en datasets automatisch naar een SageMaker-trainingstaak die op het SageMaker-trainingsplatform draait.
Het lokaal uitvoeren van een Python-functie vereist vaak verschillende afhankelijkheden, die mogelijk niet worden geleverd met de lokale Python-runtime-omgeving. U kunt ze installeren via pakket- en afhankelijkheidsbeheertools zoals pit or Conda.
Organisaties die actief zijn in gereguleerde sectoren zoals banken, verzekeringen en gezondheidszorg, opereren echter in omgevingen met strikte gegevensprivacy- en netwerkcontroles. Deze controles schrijven vaak voor dat er geen internettoegang beschikbaar is voor een van hun omgevingen. De reden voor een dergelijke beperking is om volledige controle te hebben over uitgaand en binnenkomend verkeer, zodat ze de kans kunnen verkleinen dat gewetenloze actoren niet-geverifieerde informatie via hun netwerk verzenden of ontvangen. Het is vaak ook verplicht om dergelijke netwerkisolatie te hebben als onderdeel van de auditieve en industriële nalevingsregels. Als het op ML aankomt, zorgt dit ervoor dat datawetenschappers geen enkel pakket kunnen downloaden van openbare repositories zoals PyPI, Anacondaof Conda-Forge.
Om datawetenschappers toegang te geven tot de tools van hun keuze en tegelijkertijd de beperkingen van de omgeving te respecteren, zetten organisaties vaak hun eigen private pakketrepository op die in hun eigen omgeving wordt gehost. U kunt op verschillende manieren privé-pakketrepository's op AWS instellen:
In dit bericht richten we ons op de eerste optie: CodeArtifact gebruiken.
Overzicht oplossingen
Het volgende architectuurdiagram toont de oplossingsarchitectuur.
De stappen op hoog niveau om de oplossing te implementeren zijn als volgt
- Zet een virtual private cloud (VPC) op zonder internettoegang met behulp van een AWS CloudFormatie sjabloon.
- Gebruik een tweede CloudFormation-sjabloon om CodeArtifact in te stellen als een privé PyPI-repository en connectiviteit met de VPC te bieden, en stel een Amazon SageMaker Studio omgeving om de privé PyPI-repository te gebruiken.
- Train een classificatiemodel op basis van de MNIST dataset met behulp van een @remote decorateur van de open-source SageMaker Python SDK. Alle afhankelijkheden worden gedownload van de privé PyPI-repository.
Merk op dat het gebruik van SageMaker Studio in dit bericht optioneel is. U kunt ervoor kiezen om in elke geïntegreerde ontwikkelomgeving (IDE) van uw keuze te werken. U hoeft alleen uw AWS-opdrachtregelinterface (AWS CLI) referenties correct. Voor meer informatie, zie Configureer de AWS CLI.
Voorwaarden
U hebt een AWS-account nodig met een AWS Identiteits- en toegangsbeheer (IAM) rol met machtigingen om bronnen te beheren die zijn gemaakt als onderdeel van de oplossing. Raadpleeg voor meer informatie Een AWS-account aanmaken.
Stel een VPC in zonder internetverbinding
Maak een nieuwe CloudFormation-stack met de vpc.yaml sjabloon. Deze sjabloon maakt de volgende resources:
- Een VPC met twee private subnetten verdeeld over twee beschikbaarheidszones zonder internetverbinding
- Een Gateway VPC-eindpunt voor toegang tot Amazon S3
- Interface VPC-eindpunten voor SageMaker, CodeArtifact en een paar andere services zodat de bronnen in de VPC verbinding kunnen maken met AWS-services via AWS PrivéLink
Geef een stapelnaam op, zoals No-Internet
en voltooi het proces voor het maken van de stapel.
Wacht tot het maken van de stapel is voltooid.
Stel een privérepository en SageMaker Studio in met behulp van de VPC
De volgende stap is het implementeren van een andere CloudFormation-stack met behulp van de sagemaker_studio_codeartifact.yaml sjabloon. Deze sjabloon maakt de volgende resources:
Geef een stapelnaam op en behoud de standaardwaarden of pas de parameters voor de CodeArtifact-domeinnaam, privé repository naam, naam gebruikersprofiel voor SageMaker Studio, en naam voor de upstream openbare PyPI-repository. U moet ook de VPC-stacknaam gemaakt in de vorige stap.
Wanneer het maken van de stapel is voltooid, moet het SageMaker-domein zichtbaar zijn op de SageMaker-console.
Om te controleren of er geen internetverbinding beschikbaar is in SageMaker Studio, start SageMaker Studio. Kiezen File
, New
en Terminal
om een terminal te starten en te proberen krullen elke internetbron. Het zou geen verbinding moeten maken, zoals weergegeven in de volgende schermafbeelding.
Train een afbeeldingsclassificator met behulp van een @remote-decorateur met de privé PyPI-repository
In deze sectie gebruiken we de @remote decorateur om een PyTorch trainingstaak die een MNIST-beeldclassificatiemodel produceert. Om dit te bereiken, stellen we een configuratiebestand op, ontwikkelen we het trainingsscript en voeren we de trainingscode uit.
Stel een configuratiebestand in
We hebben een config.yaml
bestand en geef de configuraties op die nodig zijn om het volgende te doen:
- Voer een uit SageMaker-trainingsbaan in de eerder gecreëerde VPC zonder internet
- Download de vereiste pakketten door verbinding te maken met de eerder gemaakte privé PyPI-repository
Het bestand ziet eruit als de volgende code:
De Dependencies
veld bevat het pad naar requirements.txt
, die alle benodigde afhankelijkheden bevat. Merk op dat alle afhankelijkheden worden gedownload uit de privérepository. De requirements.txt
bestand bevat de volgende code:
De PreExecutionCommands
sectie bevat de opdracht om verbinding te maken met de privé PyPI-repository. Gebruik de volgende code om de CodeArtifact VPC-eindpunt-URL te krijgen:
Over het algemeen krijgen we twee VPC-eindpunten voor CodeArtifact, en we kunnen elk van deze gebruiken in de verbindingsopdrachten. Voor meer details, zie Gebruik CodeArtifact vanaf een VPC.
Bovendien zijn configuraties zoals execution role
, output location
en VPC configurations
worden geleverd in het configuratiebestand. Deze configuraties zijn nodig om de SageMaker-trainingstaak uit te voeren. Raadpleeg voor meer informatie over alle ondersteunde configuraties Configuratiebestand.
Het is niet verplicht om de config.yaml
bestand om te werken met de @remote decorateur. Dit is gewoon een schonere manier om alle configuraties aan de @remote-decorateur te leveren. Alle configuraties kunnen ook rechtstreeks in de decorateur-argumenten worden geleverd, maar dat vermindert de leesbaarheid en onderhoudbaarheid van wijzigingen op de lange termijn. Het configuratiebestand kan ook worden gemaakt door een beheerder en worden gedeeld met alle gebruikers in een omgeving.
Ontwikkel het trainingsscript
Vervolgens bereiden we de trainingscode voor in eenvoudige Python-bestanden. We hebben de code opgedeeld in drie bestanden:
- load_data.py – Bevat de code om de MNIST-dataset te downloaden
- model.py – Bevat de code voor de neurale netwerkarchitectuur voor het model
- trein.py – Bevat de code voor het trainen van het model met behulp van load_data.py en model.py
In train.py
, moeten we de belangrijkste trainingsfunctie als volgt inrichten:
Nu zijn we klaar om de trainingscode uit te voeren.
Voer de trainingscode uit met een @remote decorateur
We kunnen de code uitvoeren vanaf een terminal of vanaf elke uitvoerbare prompt. In dit bericht gebruiken we een SageMaker Studio-notebookcel om dit te demonstreren:
Het uitvoeren van de voorgaande opdracht activeert de trainingstaak. In de logboeken kunnen we zien dat het de pakketten aan het downloaden is van de privé PyPI-repository.
Hiermee is de implementatie afgerond van een @remote decorateur die werkt met een privé-repository in een omgeving zonder internettoegang.
Opruimen
Volg de instructies in om de bronnen op te schonen SCHOONMAKEN.md.
Conclusie
In dit bericht hebben we geleerd hoe we de mogelijkheden van de @remote decorateur effectief kunnen gebruiken terwijl we nog steeds in beperkende omgevingen zonder internettoegang werken. We hebben ook geleerd hoe we CodeArtifact private repository-mogelijkheden kunnen integreren met behulp van configuratiebestandondersteuning in SageMaker. Deze oplossing maakt iteratieve ontwikkeling veel eenvoudiger en sneller. Een ander bijkomend voordeel is dat u de trainingscode nog steeds op een meer natuurlijke, objectgeoriënteerde manier kunt schrijven en nog steeds de mogelijkheden van SageMaker kunt gebruiken om trainingstaken uit te voeren op een extern cluster met minimale wijzigingen in uw code. Alle code die als onderdeel van dit bericht wordt weergegeven, is beschikbaar in de GitHub-repository.
Als volgende stap raden we je aan om de @remote decorateur-functionaliteit en Python SDK-API en gebruik het in uw keuze van omgeving en IDE. Meer voorbeelden zijn beschikbaar in de amazon-sagemaker-voorbeelden opslagplaats om u snel op weg te helpen. Je kunt het bericht ook bekijken Voer uw lokale machine learning-code uit als Amazon SageMaker-trainingstaken met minimale codewijzigingen voor meer details.
Over de auteur
Vikesh Pandey is een Machine Learning Specialist Solutions Architect bij AWS, die klanten uit de financiële sector helpt bij het ontwerpen en bouwen van oplossingen op basis van generatieve AI en ML. Buiten het werk houdt Vikesh ervan om verschillende keukens uit te proberen en buitensporten te beoefenen.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoData.Network Verticale generatieve AI. Versterk jezelf. Toegang hier.
- PlatoAiStream. Web3-intelligentie. Kennis versterkt. Toegang hier.
- PlatoESG. Automotive / EV's, carbon, CleanTech, Energie, Milieu, Zonne, Afvalbeheer. Toegang hier.
- BlockOffsets. Eigendom voor milieucompensatie moderniseren. Toegang hier.
- Bron: https://aws.amazon.com/blogs/machine-learning/access-private-repos-using-the-remote-decorator-for-amazon-sagemaker-training-workloads/
- :is
- :niet
- $UP
- 1
- 10
- 100
- 12
- 23
- 7
- 8
- a
- Over
- toegang
- toegang
- Account
- Bereiken
- over
- actoren
- toegevoegd
- Extra
- beheerder
- Voordeel
- AI
- Alles
- toelaten
- ook
- Amazone
- Amazon Sage Maker
- Amazon Web Services
- an
- en
- Nog een
- elke
- api
- architectuur
- ZIJN
- argumenten
- AS
- geassocieerd
- At
- webmaster.
- beschikbaarheid
- Beschikbaar
- AWS
- Bankieren
- gebaseerde
- BE
- omdat
- bouw
- maar
- by
- CAN
- mogelijkheden
- kansen
- Wijzigingen
- controle
- keuze
- Kies
- klassen
- classificatie
- Cloud
- TROS
- code
- COM
- hoe
- komt
- compleet
- nakoming
- Configuratie
- Verbinden
- Wij verbinden
- versterken
- Connectiviteit
- troosten
- bevat
- voortzetten
- onder controle te houden
- controles
- kon
- aangemaakt
- creëert
- het aanmaken
- Geloofsbrieven
- Klanten
- gegevens
- data Privacy
- gegevensverwerking
- datasets
- Standaard
- tonen
- Afhankelijkheid
- implementeren
- Design
- gegevens
- ontwikkelen
- Ontwikkeling
- anders
- direct
- Verdeeld
- do
- domein
- Download
- effectief
- aanmoedigen
- Endpoint
- Milieu
- omgevingen
- tijdperken
- voorbeelden
- uitvoering
- bestaand
- FAIL
- vals
- sneller
- weinig
- veld-
- Dien in
- Bestanden
- financieel
- financiële sectoren
- Voornaam*
- Vlotter
- Focus
- volgen
- volgend
- volgt
- Voor
- formulier
- oppompen van
- vol
- functie
- poort
- generatief
- generatieve AI
- krijgen
- Groep
- Hebben
- met
- gezondheidszorg
- hulp
- het helpen van
- helpt
- high-level
- gehost
- Hoe
- How To
- HTML
- http
- HTTPS
- ID
- Identiteit
- beeld
- Afbeeldingsclassificatie
- uitvoeren
- uitvoering
- in
- industrieel
- industrieën
- informatie
- installeren
- instructies
- verzekering
- integreren
- geïntegreerde
- Internet
- internet toegang
- internetverbinding
- in
- isolatie
- IT
- Jobomschrijving:
- Vacatures
- jpg
- voor slechts
- Houden
- blijven
- Groot
- lancering
- geleerd
- leren
- levenscyclus van uw product
- als
- Lijn
- lokaal
- plaatselijk
- Log in
- lang
- op zoek
- LOOKS
- machine
- machine learning
- Hoofd
- MERKEN
- beheer
- management
- management tools
- mandaat
- verplicht
- veel
- Mei..
- methoden
- minimaal
- ML
- model
- Modules
- meer
- veel
- meervoudig
- naam
- inheemse
- Naturel
- Noodzaak
- nodig
- netwerk
- netwerken
- neuraal netwerk
- New
- volgende
- geen
- notitieboekje
- of
- vaak
- on
- open source
- besturen
- werkzaam
- gekant tegen
- Keuze
- or
- bestellen
- organisaties
- Overige
- uit
- buiten
- over
- het te bezitten.
- pakket
- Paketten
- parameters
- deel
- pad
- permissies
- plaats
- platform
- Plato
- Plato gegevensintelligentie
- PlatoData
- spelen
- Post
- de voorkeur geven
- Voorbereiden
- vorig
- privacy
- privaat
- verwerking
- produceert
- productie
- Profiel
- zorgen voor
- mits
- publiek
- Duwen
- zetten
- Python
- pytorch
- snel
- klaar
- reden
- ontvangende
- verminderen
- vermindert
- gereguleerd
- gereguleerde industrieën
- vanop
- bewaarplaats
- nodig
- vereist
- hulpbron
- Resources
- met inachtneming van
- beperking
- beperkingen
- beperkend
- Rol
- reglement
- lopen
- lopend
- loopt
- sagemaker
- wetenschappers
- sdk
- Tweede
- sectie
- veiligheid
- zien
- zaad
- verzending
- Diensten
- reeks
- verscheidene
- gedeeld
- SHIP
- moet
- getoond
- Shows
- Eenvoudig
- eenvoudiger
- eenvoudigweg
- So
- oplossing
- Oplossingen
- specialist
- Sport
- stack
- gestart
- Stap voor
- Stappen
- Still
- shop
- Streng
- studio
- stijl
- subnet
- subnetten
- dergelijk
- geleverde
- leveren
- ondersteuning
- ondersteunde
- sjabloon
- terminal
- dat
- De
- hun
- Ze
- Er.
- Deze
- ze
- dit
- drie
- Door
- naar
- tools
- Fakkelvisie
- verkeer
- Trainingen
- vertalen
- waar
- proberen
- twee
- gewetenloos
- URL
- .
- gebruikt
- gebruikers
- gebruik
- Values
- controleren
- via
- Virtueel
- zichtbaar
- Manier..
- manieren
- we
- web
- webservices
- wanneer
- welke
- en
- Wikipedia
- wil
- Met
- zonder
- Mijn werk
- werkzaam
- schrijven
- het schrijven van
- YAML
- You
- Your
- zephyrnet
- zones