Pe măsură ce din ce în ce mai mulți clienți caută să pună în producție sarcinile de lucru de învățare automată (ML), există un efort mare în organizații pentru a scurta ciclul de viață de dezvoltare a codului ML. Multe organizații preferă să-și scrie codul ML într-un stil pregătit pentru producție sub formă de metode și clase Python, spre deosebire de un stil explorator (scrierea codului fără a folosi metode sau clase), deoarece acest lucru le ajută să trimită mai rapid codul pregătit pentru producție.
cu Amazon SageMaker, puteți utiliza funcția @decorator la distanță pentru a rula o lucrare de antrenament SageMaker pur și simplu prin adnotarea codului dvs. Python cu un decorator @remote. The SageMaker Python SDK va traduce automat mediul dvs. de lucru existent și orice cod asociat de procesare a datelor și seturi de date într-o lucrare de instruire SageMaker care rulează pe platforma de instruire SageMaker.
Rularea unei funcții Python la nivel local necesită adesea mai multe dependențe, care ar putea să nu vină cu mediul de rulare Python local. Le puteți instala prin intermediul instrumentelor de gestionare a pachetelor și dependențelor, cum ar fi țâfnă or judetul.
Cu toate acestea, organizațiile care operează în industrii reglementate, cum ar fi bancare, asigurări și asistență medicală, operează în medii care au stabilite stricte privind confidențialitatea datelor și controale de rețea. Aceste controale impun adesea să nu aibă acces la internet disponibil în niciunul dintre mediile lor. Motivul pentru o astfel de restricție este de a avea control deplin asupra traficului de ieșire și de intrare, astfel încât să poată reduce șansele ca actori fără scrupule să trimită sau să primească informații neverificate prin intermediul rețelei lor. Adesea este, de asemenea, mandatat să existe o astfel de izolare a rețelei ca parte a regulilor de conformitate auditivă și industrială. Când vine vorba de ML, acest lucru restricționează oamenii de știință de date să descarce orice pachet din depozitele publice, cum ar fi PyPI, anaconda, Sau Conda-Forge.
Pentru a oferi oamenilor de știință acces la instrumentele alese, respectând în același timp restricțiile de mediu, organizațiile își creează adesea propriul depozit privat de pachete găzduit în propriul mediu. Puteți configura depozite private de pachete pe AWS în mai multe moduri:
În această postare, ne concentrăm pe prima opțiune: folosirea CodeArtifact.
Prezentare generală a soluțiilor
Următoarea diagramă de arhitectură arată arhitectura soluției.
Pașii de nivel înalt pentru implementarea soluției sunt următorii
- Configurați un cloud privat virtual (VPC) fără acces la internet folosind un Formarea AWS Cloud șablon.
- Utilizați un al doilea șablon CloudFormation pentru a configura CodeArtifact ca depozit privat PyPI și pentru a oferi conectivitate la VPC și pentru a configura un Amazon SageMaker Studio mediu pentru a utiliza depozitul privat PyPI.
- Antrenează un model de clasificare bazat pe MNIST set de date utilizând un decorator @remote din SDK-ul open-source SageMaker Python. Toate dependențele vor fi descărcate din depozitul privat PyPI.
Rețineți că utilizarea SageMaker Studio în această postare este opțională. Puteți alege să lucrați în orice mediu de dezvoltare integrat (IDE) la alegere. Trebuie doar să vă configurați Interfața liniei de comandă AWS (AWS CLI) corect. Pentru mai multe informații, consultați Configurați AWS CLI.
Cerințe preliminare
Aveți nevoie de un cont AWS cu un Gestionarea identității și accesului AWS (EU SUNT) rol cu permisiuni de gestionare a resurselor create ca parte a soluției. Pentru detalii, consultați Crearea unui cont AWS.
Configurați un VPC fără conexiune la internet
Creați o nouă stivă CloudFormation folosind vpc.yaml șablon. Acest șablon creează următoarele resurse:
- Un VPC cu două subrețele private în două zone de disponibilitate fără conexiune la internet
- Un punct final VPC Gateway pentru accesarea Amazon S3
- Punctele finale VPC de interfață pentru SageMaker, CodeArtifact și alte câteva servicii pentru a permite resurselor din VPC să se conecteze la serviciile AWS prin AWS PrivateLink
Furnizați un nume de stivă, cum ar fi No-Internet
și finalizați procesul de creare a stivei.
Așteptați finalizarea procesului de creare a stivei.
Configurați un depozit privat și SageMaker Studio folosind VPC
Următorul pas este să implementați o altă stivă CloudFormation folosind sagemaker_studio_codeartifact.yaml șablon. Acest șablon creează următoarele resurse:
Furnizați un nume de stivă și păstrați valorile implicite sau ajustați parametrii pentru Nume de domeniu CodeArtifact, numele depozitului privat, numele profilului utilizatorului pentru SageMaker Studio și numele pentru depozitul public PyPI din amonte. De asemenea, trebuie să vă oferim Numele stivei VPC creat la pasul anterior.
Când crearea stivei este finalizată, domeniul SageMaker ar trebui să fie vizibil pe consola SageMaker.
Pentru a verifica că nu există o conexiune la internet disponibilă în SageMaker Studio, lansați SageMaker Studio. Alege File
, New
, și Terminal
pentru a lansa un terminal și a încerca răsuci orice resursă de internet. Ar trebui să nu se conecteze, așa cum se arată în următoarea captură de ecran.
Antrenați un clasificator de imagini folosind un decorator @remote cu depozitul privat PyPI
În această secțiune, folosim decoratorul @remote pentru a rula a PyTorch job de formare care produce un model de clasificare a imaginilor MNIST. Pentru a realiza acest lucru, creăm un fișier de configurare, dezvoltăm scriptul de antrenament și rulăm codul de antrenament.
Configurați un fișier de configurare
Am înființat o config.yaml
fișier și furnizați configurațiile necesare pentru a face următoarele:
- Fugiți a Job de formare SageMaker în VPC-ul fără internet creat mai devreme
- Descărcați pachetele necesare conectându-vă la depozitul privat PyPI creat mai devreme
Fișierul arată ca următorul cod:
Dependencies
câmpul conține calea către requirements.txt
, care conține toate dependențele necesare. Rețineți că toate dependențele vor fi descărcate din depozitul privat. The requirements.txt
fișierul conține următorul cod:
PreExecutionCommands
secțiunea conține comanda de conectare la depozitul privat PyPI. Pentru a obține adresa URL a punctului final CodeArtifact VPC, utilizați următorul cod:
În general, obținem două puncte finale VPC pentru CodeArtifact și putem folosi oricare dintre ele în comenzile de conexiune. Pentru mai multe detalii, consultați Utilizați CodeArtifact dintr-un VPC.
În plus, configurații precum execution role
, output location
, și VPC configurations
sunt furnizate în fișierul de configurare. Aceste configurații sunt necesare pentru a rula jobul de instruire SageMaker. Pentru a afla mai multe despre toate configurațiile acceptate, consultați Fișier de configurare.
Nu este obligatoriu să utilizați config.yaml
fișier pentru a lucra cu decoratorul @remote. Acesta este doar o modalitate mai curată de a furniza toate configurațiile decoratorului @remote. Toate configurațiile ar putea fi, de asemenea, furnizate direct în argumentele decoratorului, dar asta reduce lizibilitatea și menținerea modificărilor pe termen lung. De asemenea, fișierul de configurare poate fi creat de un administrator și partajat cu toți utilizatorii dintr-un mediu.
Elaborați scenariul de antrenament
În continuare, pregătim codul de antrenament în fișiere Python simple. Am împărțit codul în trei fișiere:
- load_data.py – Conține codul pentru a descărca setul de date MNIST
- model.py – Conține codul pentru arhitectura rețelei neuronale pentru model
- tren.py – Conține codul pentru antrenarea modelului utilizând load_data.py și model.py
In train.py
, trebuie să decoram funcția principală de antrenament după cum urmează:
Acum suntem gata să rulăm codul de antrenament.
Rulați codul de antrenament cu un decorator @remote
Putem rula codul dintr-un terminal sau din orice prompt executabil. În această postare, folosim o celulă de notebook SageMaker Studio pentru a demonstra acest lucru:
Rularea comenzii precedente declanșează jobul de antrenament. În jurnale, putem vedea că descarcă pachetele din depozitul privat PyPI.
Aceasta încheie implementarea unui decorator @remote care lucrează cu un depozit privat într-un mediu fără acces la internet.
A curăța
Pentru a curăța resursele, urmați instrucțiunile din CLEANUP.md.
Concluzie
În această postare, am învățat cum să folosim eficient capacitățile decoratorului @remote în timp ce lucrăm în medii restrictive fără acces la internet. De asemenea, am învățat cum putem integra capabilitățile de depozit private CodeArtifact cu ajutorul suportului pentru fișierele de configurare în SageMaker. Această soluție face dezvoltarea iterativă mult mai simplă și mai rapidă. Un alt avantaj suplimentar este că puteți continua să scrieți codul de antrenament într-un mod mai natural, orientat pe obiect și să utilizați în continuare capabilitățile SageMaker pentru a rula joburi de antrenament pe un cluster la distanță cu modificări minime ale codului. Tot codul afișat ca parte a acestei postări este disponibil în GitHub depozit.
Ca pas următor, vă încurajăm să verificați @funcționalitatea decoratorului de la distanță și API-ul Python SDK și utilizați-l în mediul și IDE alese. Exemple suplimentare sunt disponibile în amazon-sagemaker-exemple depozit pentru a începe rapid. De asemenea, puteți consulta postarea Rulați codul local de învățare automată ca joburi Amazon SageMaker Training cu modificări minime de cod pentru mai multe detalii.
Despre autor
Vikesh Pandey este arhitect de soluții specializat în învățare automată la AWS, ajutând clienții din industriile financiare să proiecteze și să construiască soluții pe IA generativă și ML. În afara serviciului, lui Vikesh îi place să încerce diferite bucătării și să facă sporturi în aer liber.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoData.Network Vertical Generative Ai. Împuterniciți-vă. Accesați Aici.
- PlatoAiStream. Web3 Intelligence. Cunoștințe amplificate. Accesați Aici.
- PlatoESG. Automobile/VE-uri, carbon, CleanTech, Energie, Mediu inconjurator, Solar, Managementul deșeurilor. Accesați Aici.
- BlockOffsets. Modernizarea proprietății de compensare a mediului. Accesați Aici.
- Sursa: https://aws.amazon.com/blogs/machine-learning/access-private-repos-using-the-remote-decorator-for-amazon-sagemaker-training-workloads/
- :este
- :nu
- $UP
- 1
- 10
- 100
- 12
- 23
- 7
- 8
- a
- Despre Noi
- acces
- accesarea
- Cont
- Obține
- peste
- actori
- adăugat
- Suplimentar
- admin
- Avantaj
- AI
- TOATE
- permite
- de asemenea
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- și
- O alta
- Orice
- api
- arhitectură
- SUNT
- argumente
- AS
- asociate
- At
- în mod automat
- disponibilitate
- disponibil
- AWS
- Bancar
- bazat
- BE
- deoarece
- construi
- dar
- by
- CAN
- capacități
- șansele
- Modificări
- verifica
- alegere
- Alege
- clase
- clasificare
- Cloud
- Grup
- cod
- COM
- cum
- vine
- Completă
- conformitate
- Configuraţie
- Conectați
- Conectarea
- conexiune
- Suport conectare
- Consoleze
- conține
- continua
- Control
- controale
- ar putea
- a creat
- creează
- creaţie
- scrisori de acreditare
- clienţii care
- de date
- confidențialitatea datelor
- de prelucrare a datelor
- seturi de date
- Mod implicit
- demonstra
- Dependenţă
- implementa
- Amenajări
- detalii
- dezvolta
- Dezvoltare
- diferit
- direct
- împărțit
- do
- domeniu
- Descarca
- în mod eficient
- încuraja
- Punct final
- Mediu inconjurator
- medii
- epoci
- exemple
- execuție
- existent
- FAIL
- fals
- mai repede
- puțini
- camp
- Fișier
- Fişiere
- financiar
- industriile financiare
- First
- pluti
- Concentra
- urma
- următor
- urmează
- Pentru
- formă
- din
- Complet
- funcţie
- poartă
- generativ
- AI generativă
- obține
- grup
- Avea
- având în
- de asistență medicală
- ajutor
- ajutor
- ajută
- la nivel înalt
- găzduit
- Cum
- Cum Pentru a
- HTML
- http
- HTTPS
- ID
- Identitate
- imagine
- Clasificarea imaginilor
- punerea în aplicare a
- implementarea
- in
- industrial
- industrii
- informații
- instala
- instrucțiuni
- asigurare
- integra
- integrate
- Internet
- acces la internet
- conexiune internet
- în
- izolare
- IT
- Loc de munca
- Locuri de munca
- jpg
- doar
- A pastra
- Cunoaște
- mare
- lansa
- învățat
- învăţare
- ciclu de viață
- ca
- Linie
- local
- la nivel local
- Logare
- Lung
- cautati
- Se pare
- maşină
- masina de învățare
- Principal
- FACE
- administra
- administrare
- Instrumente de management
- Mandat
- obligatoriu
- multe
- Mai..
- Metode
- minim
- ML
- model
- Module
- mai mult
- mult
- multiplu
- nume
- nativ
- Natural
- Nevoie
- necesar
- reţea
- rețele
- rețele neuronale
- Nou
- următor
- Nu.
- caiet
- of
- de multe ori
- on
- open-source
- funcionar
- de operare
- opus
- Opțiune
- or
- comandă
- organizații
- Altele
- afară
- exterior
- peste
- propriu
- pachet
- ofertele
- parametrii
- parte
- cale
- permisiuni
- Loc
- platformă
- Plato
- Informații despre date Platon
- PlatoData
- joc
- Post
- a prefera
- Pregăti
- precedent
- intimitate
- privat
- proces
- prelucrare
- produce
- producere
- Profil
- furniza
- prevăzut
- public
- Împinge
- pune
- Piton
- pirtorh
- repede
- gata
- motiv
- primire
- reduce
- reduce
- reglementate
- industriile reglementate
- la distanta
- depozit
- necesar
- Necesită
- resursă
- Resurse
- respectare
- restricţie
- restricții
- restrictiv
- Rol
- norme
- Alerga
- funcţionare
- ruleaza
- sagemaker
- oamenii de stiinta
- sdk
- Al doilea
- Secțiune
- securitate
- vedea
- sămânţă
- trimitere
- Servicii
- set
- câteva
- comun
- NAVA
- să
- indicat
- Emisiuni
- simplu
- simplu
- pur şi simplu
- So
- soluţie
- soluţii
- specialist
- Sportul
- stivui
- început
- Pas
- paşi
- Încă
- stoca
- Strict
- studio
- stil
- subrețea
- subrețele
- astfel de
- furnizat
- livra
- a sustine
- Suportat
- șablon
- Terminal
- acea
- lor
- Lor
- Acolo.
- Acestea
- ei
- acest
- trei
- Prin
- la
- Unelte
- Torchvision
- trafic
- Pregătire
- Traduceți
- adevărat
- încerca
- Două
- lipsit de scrupule
- URL-ul
- utilizare
- utilizat
- utilizatorii
- folosind
- Valori
- verifica
- de
- Virtual
- vizibil
- Cale..
- modalități de
- we
- web
- servicii web
- cand
- care
- în timp ce
- Wikipedia
- voi
- cu
- fără
- Apartamente
- de lucru
- scrie
- scris
- yaml
- Tu
- Ta
- zephyrnet
- zone