Dobro zasnovan cevovod CI/CD je bistvenega pomena za učinkovito prilagajanje delovnega toka razvoja programske opreme. Pri načrtovanju produkcijskih cevovodov CI/CD AWS priporoča uporabo več računov za izolacijo virov, zajezitev varnostnih groženj in poenostavitev zaračunavanja in podatkovnih cevovodov ni nič drugače. Pri AWS nadaljujemo z inovacijami, da bi poenostavili potek dela MLOps.
V tej objavi razpravljamo o nekaterih novejših funkcijah med računi Amazon SageMaker ki vam omogočajo boljšo skupno rabo in upravljanje skupin modelov ter upravljanje različic modelov. Sledi primer strukture računa najboljše prakse organizacijskih enot za gostovanje modelov, ki uporabljajo končne točke SageMaker v računih, glejte MLOps Workload Orchestrator.
Pregled rešitev
Naslednji diagram ponazarja našo arhitekturo registra modela v skupni rabi.
Nekaj stvari, ki jih je treba upoštevati pri prejšnji arhitekturi:
Naslednji koraki ustrezajo diagramu:
- Podatkovni znanstvenik registrira model iz računa podatkovne znanosti v register modelov SageMaker za skupne storitve v a
PendingManualApproval
država. Artefakt modela je ustvarjen v računu storitev v skupni rabi Preprosta storitev shranjevanja Amazon (Amazon S3) vedro. - Ob registraciji nove različice modela mora nekdo s pooblastilom za odobritev modela na podlagi meritev odobriti ali zavrniti model.
- Ko je model odobren, je cevovod CI/CD v računu za uvedbo sprožil za namestitev posodobljene podrobnosti modela v računu QA in posodobite stopnjo kot QA.
- Ko uspešno opravite postopek testiranja, se lahko odločite za ročni korak odobritve v procesu CI/CD ali pa vaš cevovod CI/CD neposredno uvede model v proizvodnjo in posodobi stopnjo kot Prod.
- Proizvodno okolje se sklicuje na odobren model in kodo, morda izvaja A/B test v proizvodnji. V primeru revizije ali kakršne koli težave z modelom lahko uporabite Sledenje rodu Amazon SageMaker ML. Ustvarja in shranjuje informacije o korakih delovnega toka strojnega učenja (ML) od priprave podatkov do uvajanja modela. Z informacijami o sledenju lahko reproducirate korake poteka dela, sledite modelu in rodu nabora podatkov ter vzpostavite standarde upravljanja in revizije modela.
Skozi celoten postopek register modela v skupni rabi ohranja starejše različice modela. To ekipi omogoča povrnitev sprememb ali celo gostovanje proizvodne variante.
Predpogoji
Zagotovite, da imate naslednje predpogoje:
- Omogočena struktura z več računi – Za navodila gl Najboljše prakse za organizacijske enote z organizacijami AWS. Za namene tega bloga uporabljamo naslednje račune:
- Račun podatkovne znanosti – Račun, kjer imajo podatkovni znanstveniki dostop do podatkov o usposabljanju in ustvarjajo modele.
- Račun skupnih storitev – Osrednji račun za shranjevanje artefaktov modela (kot je prikazano v diagramu arhitekture), do katerega je mogoče dostopati prek različnih računov delovne obremenitve.
- Račun za uvedbo – Račun, odgovoren za uvajanje sprememb v različne račune.
- Računi delovne obremenitve – To so običajno QA in proizvodna okolja, kjer lahko programski inženirji izdelajo aplikacije za uporabo modela ML.
- Račun za uvajanje z ustreznimi dovoljenji – Za več informacij o najboljših praksah s strukturo OU z več računi glejte Razmestitve OU. Ta račun je odgovoren za usmerjanje računov delovne obremenitve na želeni model v registru modelov računa storitev v skupni rabi.
Določite politike med računi
Pri upoštevanju načela najmanjših privilegijev moramo virom storitev v skupni rabi najprej dodati pravilnike o virih med računi, da omogočimo dostop iz drugih računov.
Ker so artefakti modela shranjeni v vedru S3 računa za skupne storitve, račun podatkovne znanosti potrebuje dostop za branje/pisanje Amazon S3, da potisne usposobljene modele v Amazon S3. Naslednja koda ponazarja ta pravilnik, vendar ga še ne dodajte v račun storitev v skupni rabi:
Računu za uvajanje je treba odobriti le dostop za branje do vedra S3, tako da lahko uporablja artefakte modela za uvajanje v končne točke SageMaker. Vedru storitev S3 v skupni rabi moramo priložiti tudi naslednji pravilnik:
Združimo oba pravilnika, da dobimo naslednji končni pravilnik. Ustvarite ta pravilnik v računu storitev v skupni rabi, potem ko zamenjate ustrezne ID-je računa:
Da lahko uporabnik uvede model, ustvarjen v drugem računu, mora imeti vlogo, ki ima dostop do dejanj SageMaker, kot je vloga z AmazonSageMakerFullAccess
upravljana politika. Nanašati se na Razmestite različico modela iz drugega računa za dodatne podrobnosti.
Določiti moramo skupino modelov, ki vsebuje različice modela, ki jih želimo razmestiti. Prav tako želimo podeliti dovoljenja za račun podatkovne znanosti. To je mogoče doseči v naslednjih korakih. Na račune se sklicujemo na naslednji način:
- shared_services_account_id – Račun, kjer je register modelov in kjer želimo, da je model
- data_science_account_id – Račun, kjer se bomo usposabljali in s tem ustvarjali dejanski artefakt modela
- deployment_account_id – Račun, kjer želimo gostiti končno točko za ta model
Najprej moramo zagotoviti, da modelne skupine paketov obstajajo. Uporabite lahko API-je Boto3, kot je prikazano v naslednjem primeru, ali pa uporabite Konzola za upravljanje AWS za ustvarjanje paketa modela. Nanašati se na Ustvari skupino paketov modela za več podrobnosti. To predvideva, da imate nameščen Boto3.
Za dovoljenja za to skupino paketov modela lahko ustvarite dokument JSON, ki spominja na naslednjo kodo. Zamenjajte dejanske ID-je računa in ime skupine paketov modela s svojimi vrednostmi.
Na koncu uporabite pravilnik za skupino paketov modela. Tega pravilnika ne morete povezati s skupino paketov prek konzole. Potrebujete SDK oz Vmesnik ukazne vrstice AWS (AWS CLI) dostop. Naslednja koda na primer uporablja Boto3:
Potrebujemo tudi običaj AWS Service Key Management (AWS KMS) ključ za šifriranje modela med shranjevanjem v Amazon S3. To je treba storiti z računom data science. Na konzoli AWS KMS se pomaknite do Določite ključna dovoljenja za uporabo stran. V Drugi računi AWS oddelek, izberite Dodajte drug račun AWS. Vnesite številko računa AWS za račun za uvedbo. Ta ključ KMS uporabljate za nalogo usposabljanja SageMaker. Če za nalogo usposabljanja ne določite ključa KMS, SageMaker privzeto uporabi strežniški šifrirni ključ Amazon S3. Privzetega strežniškega šifrirnega ključa Amazon S3 ni mogoče deliti z drugim računom AWS ali ga uporabljati z njim.
Politika in dovoljenja sledijo temu vzorcu:
- Pravilnik Amazon S3, določen v
shared_services_account
daje dovoljenja za račun podatkovne znanosti in račun za uvedbe - Politika ključa KMS, navedena v
shared_services_account
daje dovoljenja za račun podatkovne znanosti in račun za uvedbe
Zagotoviti moramo, da imata račun storitev v skupni rabi in račun za uvajanje dostop do slik Docker, ki so bile uporabljene za usposabljanje modela. Te slike običajno gostujejo v računih AWS in skrbnik računa vam lahko pomaga pridobiti dostop, če dostopa še nimate. Za to objavo po usposabljanju modela ne ustvarjamo nobenih slik Docker po meri, zato za slike ne potrebujemo posebnih pravilnikov Amazon ECR.
V računih delovne obremenitve (QA ali prod) moramo ustvariti dva AWS upravljanje identitete in dostopa (IAM) podobne politike. To so vgrajeni pravilniki, kar pomeni, da so vdelani v identiteto IAM. To tem računom omogoči dostop do registra modelov.
Prvi vgrajeni pravilnik omogoča vlogi dostop do vira Amazon S3 v računu storitev v skupni rabi, ki vsebuje artefakt modela. Navedite ime vedra S3 in svoj model:
Drugi vgrajeni pravilnik omogoča vlogi, ki jo ustvarimo pozneje, uporabo ključa KMS v računu storitev v skupni rabi. Podajte ID računa za račun storitev v skupni rabi in ID ključa KMS:
Končno moramo ustvarite vlogo IAM za SageMaker. Ta vloga ima AmazonSageMakerFullAccess
pravilnik priložen. Ta dva vgrajena pravilnika nato priložimo vlogi, ki smo jo ustvarili. Če uporabljate obstoječo izvršilno vlogo SageMaker, tej vlogi pripnite ta dva pravilnika. Za navodila glejte Ustvarjanje vlog in pripenjanje pravilnikov (konzola).
Zdaj, ko smo definirali politike vsakega računa, si oglejmo primer v akciji.
Zgradite in učite model z uporabo cevovoda SageMaker
Najprej ustvarimo cevovod SageMaker v računu podatkovne znanosti za izvajanje obdelave podatkov, usposabljanje modelov in vrednotenje. Uporabljamo nabor stanovanjskih podatkov v Kaliforniji, pridobljen iz knjižnice StatLib. V naslednjem delčku kode uporabljamo skript za predhodno obdelavo po meri preprocess.py
za izvedbo preproste transformacije funkcij, kot je skaliranje funkcij, ki jo je mogoče ustvariti z naslednjim prenosnik. Ta skript tudi razdeli nabor podatkov na nabor podatkov za usposabljanje in test.
Ustvarimo a SKLearnProcessor
objekt za zagon tega skripta za predprocesiranje. V cevovodu SageMaker ustvarimo korak obdelave (ProcessingStep
), da zaženete kodo za obdelavo z uporabo SKLearnProcessor
. Ta koda za obdelavo se pokliče, ko je cevovod SageMaker inicializiran. Koda, ki ustvarja SKLearnProcessor
in ProcessingStep
so prikazani v naslednji kodi. Upoštevajte, da se vsa koda v tem razdelku izvaja v računu podatkovne znanosti.
Za šifriranje modela med shranjevanjem v Amazon S3 potrebujemo ključ KMS po meri. Oglejte si naslednjo kodo:
Za usposabljanje modela ustvarimo objekt ocenjevalca TensorFlow. Posredujemo mu ID ključa KMS skupaj s skriptom za usposabljanje train.py
, vrsto primerka usposabljanja in število. Ustvarjamo tudi a TrainingStep
dodamo v naš cevovod, in mu dodamo ocenjevalec TensorFlow. Oglejte si naslednjo kodo:
Poleg usposabljanja moramo izvesti evalvacijo modela, za katero v tem primeru kot metriko uporabimo srednjo kvadratno napako (MSE). The prejšnji zvezek tudi ustvarja evaluate.py
, ki ga uporabljamo za vrednotenje našega modela z uporabo MSE. Ustvarjamo tudi a ProcessingStep
za inicializacijo skripta za vrednotenje modela z uporabo a SKLearnProcessor
predmet. Naslednja koda ustvari ta korak:
Po oceni modela potrebujemo tudi korak za registracijo našega modela v registru modelov, če zmogljivost modela izpolnjuje zahteve. To je prikazano v naslednji kodi z uporabo RegisterModel
korak. Tukaj moramo določiti paket modela, ki smo ga prijavili v računu storitev v skupni rabi. Zamenjajte paket regije, računa in modela s svojimi vrednostmi. Tukaj uporabljeno ime modela je modeltest
, vendar lahko uporabite katero koli ime po vaši izbiri.
Prav tako moramo ustvariti artefakte modela, da ga bo mogoče razmestiti (z uporabo drugega računa). Za izdelavo modela izdelamo a CreateModelStep
, kot je prikazano v naslednji kodi:
Dodajanje pogojev v cevovod se izvede z a ConditionStep
. V tem primeru želimo novo različico modela registrirati samo v registru modelov, če novi model izpolnjuje pogoj točnosti. Oglejte si naslednjo kodo:
Končno želimo orkestrirati vse korake cevovoda, tako da je cevovod mogoče inicializirati:
Namestite različico modela iz drugega računa
Zdaj, ko je bil model registriran v računu storitev v skupni rabi, ga moramo uvesti v naše račune delovne obremenitve z uporabo cevovoda CI/CD v računu za uvajanje. Vlogo in pravilnik smo že konfigurirali v prejšnjem koraku. Za razmestitev modela iz registra modelov uporabljamo modelni paket ARN. Naslednja koda se izvaja v računu za uvajanje in se uporablja za uvajanje odobrenih modelov v QA in prod:
zaključek
V tej objavi smo pokazali, kako nastaviti pravilnike, potrebne za nastavitev več računov za ML, ki temelji na načelu najmanjših privilegijev. Nato smo prikazali postopek gradnje in usposabljanja modelov v računu podatkovne znanosti. Nazadnje smo uporabili cevovod CI/CD v uvedbenem računu za uvedbo najnovejše različice odobrenih modelov v QA in proizvodne račune. Poleg tega lahko ogled zgodovine uvajanja modelov in graditi sprožilce in AWS CodeBuild.
Koncepte v tej objavi lahko prilagodite tako, da v njih gostite modele Amazonski elastični računalniški oblak (Amazon EC2) oz Amazonski elastični kubernetes storitev (Amazon EKS), kot tudi zgraditi cevovod za serijsko sklepanje.
Če želite izvedeti več o ločenih računih, ki gradijo modele ML v AWS, glejte Najboljše prakse za organizacijske enote z organizacijami AWS in Varno posodobite modele v proizvodnji.
O avtorjih
Sandeep Verma je višji arhitekt za izdelavo prototipov pri AWS. Uživa v poglobljenem potapljanju v izzive strank in izdelavi prototipov za stranke, da pospešijo inovacije. Ima izkušnje z AI/ML, ustanovitelj New Knowledge in je na splošno strasten do tehnologije. V prostem času rad potuje in z družino smuča.
Mani Khanuja je strokovnjak za umetno inteligenco in strojno učenje pri podjetju Amazon Web Services (AWS). Strankam, ki uporabljajo strojno učenje, pomaga pri reševanju njihovih poslovnih izzivov z uporabo AWS. Večino časa posveča potapljanju in poučevanju strank na projektih AI / ML, povezanih z računalniškim vidom, obdelavo naravnega jezika, napovedovanjem, ML na robu in še več. Navdušena je nad ML na robu, zato je ustvarila lasten laboratorij s samovozečim kompletom in proizvodno linijo za izdelavo prototipov, kjer preživi veliko svojega prostega časa.
Saumitra Vikram je razvijalec programske opreme v skupini Amazon SageMaker in ima sedež v Chennaiju v Indiji. Zunaj službe rad preživlja čas s tekom, trekingom in vožnjo z motorjem po Himalaji.
Sreedevi Srinivasan je vodja inženiringa v AWS SageMaker. Je strastna in navdušena nad omogočanjem ML kot platforme, ki bo spremenila vsakdanje življenje. Trenutno se osredotoča na SageMaker Feature Store. V prostem času se rada posveča družini.
Rupinder Grewal je Sr Ai/ML Specialist Solutions Architect pri AWS. Trenutno se osredotoča na streženje modelov in MLO na SageMakerju. Pred to vlogo je delal kot inženir strojnega učenja za gradnjo in gostovanje modelov. Izven službe rad igra tenis in kolesari po gorskih poteh.
Farooq Sabir je višji strokovnjak za rešitve za umetno inteligenco in strojno učenje pri AWS. Ima doktorat in magisterij iz elektrotehnike na Univerzi v Teksasu v Austinu ter magisterij iz računalništva na Georgia Institute of Technology. Pri AWS strankam pomaga oblikovati in reševati njihove poslovne probleme na področju podatkovne znanosti, strojnega učenja, računalniškega vida, umetne inteligence, numerične optimizacije in sorodnih domen. Ima več kot 16 let delovnih izkušenj in je tudi pomožni član fakultete na Teksaški univerzi v Dallasu, kjer poučuje podiplomski tečaj o uporabnem strojnem učenju. On in njegova družina s sedežem v Dallasu v Teksasu obožujejo potovanja in dolga potovanja.
- Napredno (300)
- AI
- ai art
- ai art generator
- imajo robota
- Amazon SageMaker
- Umetna inteligenca
- certificiranje umetne inteligence
- umetna inteligenca v bančništvu
- robot z umetno inteligenco
- roboti z umetno inteligenco
- programska oprema za umetno inteligenco
- Strojno učenje AWS
- najboljše prakse
- blockchain
- blockchain konferenca ai
- coingenius
- pogovorna umetna inteligenca
- kripto konferenca ai
- dall's
- globoko učenje
- strojno učenje
- platon
- platon ai
- Platonova podatkovna inteligenca
- Igra Platon
- PlatoData
- platogaming
- lestvica ai
- sintaksa
- Tehnična navodila
- zefirnet