Ker si vse več strank želi vključiti delovne obremenitve strojnega učenja (ML) v proizvodnjo, si organizacije močno prizadevajo za skrajšanje življenjskega cikla razvoja kode ML. Mnoge organizacije raje pišejo kodo ML v slogu, pripravljenem za proizvodnjo, v obliki metod in razredov Python v nasprotju z raziskovalnim slogom (pisanje kode brez uporabe metod ali razredov), ker jim to pomaga hitreje poslati kodo, pripravljeno za proizvodnjo.
z Amazon SageMaker, lahko uporabite @oddaljeni dekorater za izvajanje izobraževalnega opravila SageMaker preprosto tako, da svojo kodo Python označite z dekoratorjem @remote. The SDK SageMaker Python bo samodejno prevedel vaše obstoječe delovno okolje in katero koli povezano kodo za obdelavo podatkov in nabore podatkov v učno opravilo SageMaker, ki se izvaja na platformi za usposabljanje SageMaker.
Lokalno izvajanje funkcije Python pogosto zahteva več odvisnosti, ki morda ne prihajajo z lokalnim izvajalnim okoljem Python. Namestite jih lahko prek orodij za upravljanje paketov in odvisnosti, kot je pip or conda.
Vendar pa organizacije, ki delujejo v reguliranih panogah, kot so bančništvo, zavarovalništvo in zdravstvo, delujejo v okoljih, ki imajo vzpostavljen strog nadzor zasebnosti podatkov in mreženja. Te kontrole pogosto zahtevajo, da nobeno njihovo okolje nima dostopa do interneta. Razlog za takšno omejitev je popoln nadzor nad izhodnim in vhodnim prometom, da lahko zmanjšajo možnosti brezvestnih akterjev, ki pošiljajo ali prejemajo nepreverjene informacije prek svojega omrežja. Pogosto je tudi predpisana taka izolacija omrežja kot del pravil za zvočno in industrijsko skladnost. Ko gre za ML, to podatkovnim znanstvenikom omejuje prenos katerega koli paketa iz javnih skladišč, kot je PyPI, anacondaali Conda-Forge.
Da bi znanstvenikom zagotovili dostop do orodij po lastni izbiri, hkrati pa spoštovali omejitve okolja, organizacije pogosto vzpostavijo lastno zasebno skladišče paketov, ki gostuje v njihovem okolju. Zasebna skladišča paketov v AWS lahko nastavite na več načinov:
V tej objavi se osredotočamo na prvo možnost: uporabo CodeArtifact.
Pregled rešitev
Naslednji diagram arhitekture prikazuje arhitekturo rešitve.
Koraki na visoki ravni za implementacijo rešitve so naslednji
- Nastavite navidezni zasebni oblak (VPC) brez dostopa do interneta z uporabo Oblikovanje oblaka AWS predlogo.
- Uporabite drugo predlogo CloudFormation, da nastavite CodeArtifact kot zasebno skladišče PyPI in zagotovite povezljivost z VPC ter nastavite Amazon SageMaker Studio okolje za uporabo zasebnega repozitorija PyPI.
- Usposobite klasifikacijski model, ki temelji na MNIST nabor podatkov z @remote dekoratorjem iz odprtokodnega SDK-ja SageMaker Python. Vse odvisnosti bodo prenesene iz zasebnega repozitorija PyPI.
Upoštevajte, da uporaba SageMaker Studio v tej objavi ni obvezna. Izberete lahko delo v katerem koli integriranem razvojnem okolju (IDE) po vaši izbiri. Samo nastaviti morate svoj Vmesnik ukazne vrstice AWS (AWS CLI) pravilno poverilnice. Za več informacij glejte Konfigurirajte AWS CLI.
Predpogoji
Potrebujete račun AWS z AWS upravljanje identitete in dostopa (JAZ SEM) Vloga z dovoljenji za upravljanje virov, ustvarjenih kot del rešitve. Za podrobnosti glejte Ustvarjanje računa AWS.
Nastavite VPC brez internetne povezave
Ustvarite nov sklad CloudFormation uporabi vpc.yaml predlogo. Ta predloga ustvari naslednje vire:
- VPC z dvema zasebnima podomrežjema v dveh območjih razpoložljivosti brez internetne povezave
- Končna točka Gateway VPC za dostop do Amazon S3
- Vmesniške končne točke VPC za SageMaker, CodeArtifact in nekaj drugih storitev, da omogočite virom v VPC povezavo s storitvami AWS prek AWS PrivateLink
Navedite ime sklada, kot je No-Internet
in dokončajte postopek ustvarjanja sklada.
Počakajte, da se postopek ustvarjanja sklada zaključi.
Nastavite zasebno skladišče in SageMaker Studio z uporabo VPC
Naslednji korak je uvedba drugega sklada CloudFormation z uporabo sagemaker_studio_codeartifact.yaml predlogo. Ta predloga ustvari naslednje vire:
Navedite ime sklada in obdržite privzete vrednosti ali prilagodite parametre za Ime domene CodeArtifact, ime zasebnega repozitorija, ime uporabniškega profila za SageMaker Studio in ime za zgornji javni repozitorij PyPI. Prav tako vam moramo zagotoviti Ime sklada VPC ustvarjen v prejšnjem koraku.
Ko je ustvarjanje sklada končano, mora biti domena SageMaker vidna na konzoli SageMaker.
Če želite preveriti, ali v SageMaker Studio ni na voljo internetne povezave, zaženite SageMaker Studio. Izberite File
, New
in Terminal
da zaženete terminal in poskusite curl kateri koli internetni vir. Povezava ne bi smela uspeti, kot je prikazano na naslednjem posnetku zaslona.
Usposobite klasifikator slik z uporabo dekoraterja @remote z zasebnim repozitorijem PyPI
V tem razdelku uporabljamo dekorater @remote za zagon a PyTorch usposabljanje, ki izdela model klasifikacije slik MNIST. Da bi to dosegli, nastavimo konfiguracijsko datoteko, razvijemo skript za usposabljanje in zaženemo kodo za usposabljanje.
Nastavite konfiguracijsko datoteko
Postavili smo a config.yaml
in zagotovite konfiguracije, potrebne za naslednje:
- Zaženi a Usposabljanje SageMaker v prej ustvarjenem VPC brez interneta
- Prenesite zahtevane pakete tako, da se povežete z zasebnim repozitorijem PyPI, ustvarjenim prej
Datoteka izgleda kot naslednja koda:
O Dependencies
polje vsebuje pot do requirements.txt
, ki vsebuje vse potrebne odvisnosti. Upoštevajte, da bodo vse odvisnosti prenesene iz zasebnega repozitorija. The requirements.txt
datoteka vsebuje naslednjo kodo:
O PreExecutionCommands
vsebuje ukaz za povezavo z zasebnim repozitorijem PyPI. Če želite pridobiti URL končne točke CodeArtifact VPC, uporabite to kodo:
Na splošno dobimo dve končni točki VPC za CodeArtifact in katero koli od njiju lahko uporabimo v ukazih za povezavo. Za več podrobnosti glejte Uporabite CodeArtifact iz VPC.
Poleg tega konfiguracije, kot je execution role
, output location
in VPC configurations
so na voljo v konfiguracijski datoteki. Te konfiguracije so potrebne za izvajanje učnega opravila SageMaker. Če želite izvedeti več o vseh podprtih konfiguracijah, glejte Konfiguracijska datoteka.
Uporaba ni obvezna config.yaml
datoteko za delo z dekoratorjem @remote. To je samo čistejši način za posredovanje vseh konfiguracij dekoratorju @remote. Vse konfiguracije bi lahko posredovali tudi neposredno v argumentih dekoratorja, vendar to dolgoročno zmanjša berljivost in vzdržljivost sprememb. Poleg tega lahko konfiguracijsko datoteko ustvari skrbnik in jo deli z vsemi uporabniki v okolju.
Razvijte scenarij usposabljanja
Nato pripravimo kodo za usposabljanje v preprostih datotekah Python. Kodo smo razdelili v tri datoteke:
- load_data.py – Vsebuje kodo za prenos nabora podatkov MNIST
- model.py – Vsebuje kodo za arhitekturo nevronske mreže za model
- vlak.py – Vsebuje kodo za usposabljanje modela z uporabo load_data.py in model.py
In train.py
, moramo glavno funkcijo usposabljanja okrasiti na naslednji način:
Zdaj smo pripravljeni za izvajanje kode za usposabljanje.
Zaženite kodo za usposabljanje z dekoratorjem @remote
Kodo lahko zaženemo s terminala ali iz katerega koli izvedljivega poziva. V tej objavi uporabljamo celico prenosnega računalnika SageMaker Studio, da to pokažemo:
Zagon prejšnjega ukaza sproži opravilo usposabljanja. V dnevnikih lahko vidimo, da prenaša pakete iz zasebnega repozitorija PyPI.
S tem je zaključena implementacija dekoraterja @remote, ki dela z zasebnim repozitorijem v okolju brez dostopa do interneta.
Čiščenje
Za čiščenje virov sledite navodilom v ČIŠČENJE.md.
zaključek
V tej objavi smo se naučili učinkovito uporabljati zmožnosti @remote dekoraterja, medtem ko še vedno delamo v omejevalnih okoljih brez dostopa do interneta. Naučili smo se tudi, kako lahko integriramo zmogljivosti zasebnega repozitorija CodeArtifact s pomočjo podpore za konfiguracijske datoteke v SageMakerju. Ta rešitev naredi iterativni razvoj veliko preprostejši in hitrejši. Druga dodatna prednost je, da lahko še vedno nadaljujete s pisanjem učne kode na bolj naraven, objektno usmerjen način in še vedno uporabljate zmožnosti SageMaker za izvajanje učnih opravil v oddaljeni gruči z minimalnimi spremembami kode. Vsa koda, prikazana kot del te objave, je na voljo v GitHub repozitorij.
Kot naslednji korak vam priporočamo, da preverite Funkcionalnost @oddaljenega dekoraterja in Python SDK API in ga uporabite v izbranem okolju in IDE. Dodatni primeri so na voljo v amazon-sagemaker-primeri repozitorij za hiter začetek. Lahko tudi preverite objavo Zaženite svojo lokalno kodo za strojno učenje kot delovna mesta Amazon SageMaker Training z minimalnimi spremembami kode Za več podrobnosti.
O avtorju
Vikesh Pandey je strokovnjak za rešitve za strojno učenje pri AWS, ki strankam iz finančnih industrij pomaga oblikovati in graditi rešitve na generativni AI in ML. Zunaj službe Vikesh rad preizkuša različne kuhinje in se ukvarja s športi na prostem.
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- PlatoData.Network Vertical Generative Ai. Opolnomočite se. Dostopite tukaj.
- PlatoAiStream. Web3 Intelligence. Razširjeno znanje. Dostopite tukaj.
- PlatoESG. Avtomobili/EV, Ogljik, CleanTech, Energija, Okolje, sončna energija, Ravnanje z odpadki. Dostopite tukaj.
- BlockOffsets. Posodobitev okoljskega offset lastništva. Dostopite tukaj.
- vir: https://aws.amazon.com/blogs/machine-learning/access-private-repos-using-the-remote-decorator-for-amazon-sagemaker-training-workloads/
- : je
- :ne
- $GOR
- 1
- 10
- 100
- 12
- 23
- 7
- 8
- a
- O meni
- dostop
- Dostop
- Račun
- Doseči
- čez
- akterji
- dodano
- Dodatne
- admin
- Prednost
- AI
- vsi
- omogočajo
- Prav tako
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- in
- Še ena
- kaj
- API
- Arhitektura
- SE
- Argumenti
- AS
- povezan
- At
- samodejno
- razpoložljivost
- Na voljo
- AWS
- Bančništvo
- temeljijo
- BE
- ker
- izgradnjo
- vendar
- by
- CAN
- Zmogljivosti
- kvote
- Spremembe
- preveriti
- izbira
- Izberite
- razredi
- Razvrstitev
- Cloud
- Grozd
- Koda
- COM
- kako
- prihaja
- dokončanje
- skladnost
- konfiguracija
- Connect
- Povezovanje
- povezava
- Povezovanje
- Konzole
- Vsebuje
- naprej
- nadzor
- Nadzor
- bi
- ustvaril
- ustvari
- Oblikovanje
- Mandatno
- Stranke, ki so
- datum
- zasebnost podatkov
- obdelava podatkov
- nabor podatkov
- privzeto
- izkazati
- Odvisnost
- razporedi
- Oblikovanje
- Podrobnosti
- Razvoj
- Razvoj
- drugačen
- neposredno
- deljeno
- do
- domena
- prenesi
- učinkovito
- spodbujanje
- Končna točka
- okolje
- okolja
- epohe
- Primeri
- izvedba
- obstoječih
- FAIL
- false
- hitreje
- Nekaj
- Polje
- file
- datoteke
- finančna
- finančne industrije
- prva
- Plavaj
- Osredotočite
- sledi
- po
- sledi
- za
- obrazec
- iz
- polno
- funkcija
- Prehod
- generativno
- Generativna AI
- dobili
- skupina
- Imajo
- ob
- zdravstveno varstvo
- pomoč
- pomoč
- Pomaga
- na visoki ravni
- gostila
- Kako
- Kako
- HTML
- http
- HTTPS
- ID
- identiteta
- slika
- Razvrstitev slik
- izvajati
- Izvajanje
- in
- industrijske
- industrij
- Podatki
- namestitev
- Navodila
- zavarovanje
- integrirati
- integrirana
- Internet
- dostop do interneta
- internetna povezava
- v
- izolacija
- IT
- Job
- Delovna mesta
- jpg
- samo
- Imejte
- Vedite
- velika
- kosilo
- naučili
- učenje
- življenski krog
- kot
- vrstica
- lokalna
- lokalno
- prijava
- Long
- si
- POGLEDI
- stroj
- strojno učenje
- Glavne
- IZDELA
- upravljanje
- upravljanje
- Orodja za upravljanje
- Mandat
- obvezna
- več
- Maj ..
- Metode
- minimalna
- ML
- Model
- Moduli
- več
- veliko
- več
- Ime
- materni
- naravna
- Nimate
- potrebna
- mreža
- mreženje
- nevronska mreža
- Novo
- Naslednja
- št
- prenosnik
- of
- pogosto
- on
- open source
- deluje
- deluje
- nasprotuje
- Možnost
- or
- Da
- organizacije
- Ostalo
- ven
- zunaj
- več
- lastne
- paket
- pakete
- parametri
- del
- pot
- Dovoljenja
- Kraj
- platforma
- platon
- Platonova podatkovna inteligenca
- PlatoData
- igranje
- Prispevek
- raje
- Pripravimo
- prejšnja
- zasebnost
- zasebna
- Postopek
- obravnavati
- proizvaja
- proizvodnja
- profil
- zagotavljajo
- če
- javnega
- Push
- dal
- Python
- pitorha
- hitro
- pripravljen
- Razlog
- prejema
- zmanjša
- zmanjšuje
- urejeno
- regulirane industrije
- daljinsko
- Skladišče
- obvezna
- zahteva
- vir
- viri
- spoštovanje
- omejitev
- Omejitve
- Omejevalna
- vloga
- pravila
- Run
- tek
- deluje
- sagemaker
- Znanstveniki
- SDK
- drugi
- Oddelek
- varnost
- glej
- seme
- pošiljanja
- Storitve
- nastavite
- več
- deli
- LADJE
- shouldnt
- pokazale
- Razstave
- Enostavno
- enostavnejši
- preprosto
- So
- Rešitev
- rešitve
- specialist
- Šport
- sveženj
- začel
- Korak
- Koraki
- Še vedno
- trgovina
- Stroga
- studio
- slog
- subnet
- podomrežja
- taka
- dobavljeno
- dobavi
- podpora
- Podprti
- Predloga
- terminal
- da
- O
- njihove
- Njih
- Tukaj.
- te
- jih
- ta
- 3
- skozi
- do
- orodja
- Torchvision
- Prometa
- usposabljanje
- prevesti
- Res
- poskusite
- dva
- brezvestnih
- URL
- uporaba
- Rabljeni
- Uporabniki
- uporabo
- Vrednote
- preverjanje
- preko
- Virtual
- vidna
- način..
- načini
- we
- web
- spletne storitve
- kdaj
- ki
- medtem
- Wikipedia
- bo
- z
- brez
- delo
- deluje
- pisati
- pisanje
- yaml
- Vi
- Vaša rutina za
- zefirnet
- cone