Novembra 2021 je v sodelovanju z RStudio PBCSmo razglasitve splošna razpoložljivost RStudio na Amazon SageMaker, prvi popolnoma upravljani RStudio Workbench IDE v oblaku. Zdaj lahko prinesete svojo trenutno licenco RStudio, da preprosto preselite svoja samoupravljana okolja RStudio Amazon SageMaker v le nekaj preprostih korakih.
RStudio je eden najbolj priljubljenih IDE med razvijalci R za strojno učenje (ML) in projekte podatkovne znanosti. RStudio ponuja odprtokodna orodja za R in profesionalno programsko opremo, pripravljeno za podjetja, za ekipe podatkovne znanosti, da razvijejo in delijo svoje delo v organizaciji. Uvedba RStudio na SageMaker vam ne omogoča le dostopa do infrastrukture AWS na popolnoma upravljan način, ampak vam omogoča tudi izvorni dostop do SageMaker.
V tej objavi raziskujemo, kako lahko uporabite funkcije SageMaker prek RStudio na SageMaker za izgradnjo cevovoda SageMaker, ki gradi, obdeluje, usposablja in registrira vaše modele R. Raziskujemo tudi uporabo SageMakerja za našo uvedbo modela, vse z uporabo R.
Pregled rešitev
Naslednji diagram prikazuje arhitekturo, uporabljeno v naši rešitvi. Vso kodo, uporabljeno v tem primeru, lahko najdete v GitHub repozitorij.
Predpogoji
Za spremljanje te objave je potreben dostop do RStudio na SageMaker. Če še niste začeli uporabljati RStudio na SageMakerju, preglejte Začnite uporabljati RStudio na Amazon SageMaker.
Prav tako moramo zgraditi prilagojene vsebnike Docker. Uporabljamo AWS CodeBuild za izdelavo teh zabojnikov, zato potrebujete nekaj dodatnih AWS upravljanje identitete in dostopa (IAM), ki jih morda nimate privzeto. Preden nadaljujete, se prepričajte, da ima vloga IAM, ki jo uporabljate, pravilnik o zaupanju s programom CodeBuild:
V vlogi IAM so potrebna tudi naslednja dovoljenja za zagon gradnje v CodeBuild in potiskanje slike Registar elastičnih zabojnikov Amazon (Amazon ECR):
Ustvarite osnovne R vsebnike
Če želimo uporabljati naše skripte R za obdelavo in usposabljanje na opravilih obdelave in usposabljanja SageMaker, moramo ustvariti lastne Docker posode ki vsebuje potrebno izvajalno okolje in pakete. Možnost uporabe lastnega vsebnika, ki je del ponudbe SageMaker, daje razvijalcem in podatkovnim znanstvenikom veliko prilagodljivost pri uporabi orodij in ogrodij po lastni izbiri, skoraj brez omejitev.
Ustvarimo dva vsebnika Docker, ki podpirata R: enega za obdelavo opravil in enega za usposabljanje in uvajanje naših modelov. Obdelava podatkov običajno zahteva drugačne pakete in knjižnice kot modeliranje, zato je tukaj smiselno ločiti obe stopnji in uporabiti različne vsebnike.
Za več podrobnosti o uporabi vsebnikov s SageMakerjem glejte Uporaba Docker posod z SageMakerjem.
Vsebnik, ki se uporablja za obdelavo, je opredeljen na naslednji način:
Za to objavo uporabljamo preprosto in razmeroma lahko posodo. Odvisno od vaših potreb ali potreb vaše organizacije boste morda želeli vnaprej namestiti več dodatnih paketov R.
Vsebnik, ki se uporablja za usposabljanje in uvajanje, je opredeljen na naslednji način:
Jedro RStudio deluje na vsebniku Docker, zato ne boste mogli zgraditi in razmestiti vsebnikov z ukazi Docker neposredno v seji Studio. Namesto tega lahko uporabite zelo uporabno knjižnico sagemaker-studio-gradnja-slike, ki v bistvu prenese nalogo gradnje vsebnikov na CodeBuild.
Z naslednjimi ukazi ustvarimo dva registra Amazon ECR: sagemaker-r-processing
in sagemaker-r-train-n-deploy
in zgradimo ustrezne vsebnike, ki jih bomo uporabili pozneje:
Ustvarite cevovod
Zdaj, ko so vsebniki izdelani in pripravljeni, lahko ustvarimo cevovod SageMaker, ki usmerja delovni tok gradnje modela. Celotna koda tega je pod datoteko pipeline.R
v skladišču. Najlažji način za ustvarjanje cevovoda SageMaker je uporaba SDK-ja SageMaker, ki je knjižnica Python, do katere lahko dostopamo s knjižnico mrežasti. To nam omogoča dostop do vseh funkcionalnosti SageMakerja, ne da bi zapustili jezikovno okolje R.
Cevovod, ki ga gradimo, ima naslednje komponente:
- Korak predhodne obdelave – To je opravilo obdelave SageMaker (z uporabo
sagemaker-r-processing
vsebnik), ki je odgovoren za predhodno obdelavo podatkov in razdelitev podatkov v nabore podatkov o vlaku in testu. - Trening korak – To je usposabljanje za SageMaker (z uporabo
sagemaker-r-train-n-deploy
kontejner), odgovoren za usposabljanje modela. V tem primeru urimo preprost linearni model. - Ocenjevalni korak – To je opravilo obdelave SageMaker (z uporabo
sagemaker-r-processing
kontejner), ki je odgovoren za ocenjevanje modela. Natančneje v tem primeru nas zanima RMSE (srednja kvadratna napaka) na testnem nizu podatkov, ki ga želimo uporabiti v naslednjem koraku in ga povezati s samim modelom. - Pogojni korak – To je pogojni korak, izviren iz cevovodov SageMaker, ki nam omogoča razvejanje logike cevovoda na podlagi nekega parametra. V tem primeru se cevovod razveja na podlagi vrednosti RMSE, ki je bila izračunana v prejšnjem koraku.
- Registrirajte korak modela – Če je prejšnji pogojni korak
True
in je zmogljivost modela sprejemljiva, potem je model registriran v registru modelov. Za več informacij glejte Registrirajte in uvedite modele z registrom modelov.
Najprej pokličite funkcijo upsert, da ustvarite (ali posodobite) cevovod, nato pa pokličite funkcijo start, da dejansko začnete izvajati cevovod:
Preglejte cevovod in register modelov
Ena od odličnih stvari pri uporabi RStudio na SageMakerju je, da lahko s platformo SageMaker uporabite pravo orodje za pravo delo in hitro preklapljate med njimi glede na to, kaj morate narediti.
Takoj, ko začnemo s plinovodom, lahko preklopimo na Amazon SageMaker Studio, ki nam omogoča vizualizacijo cevovoda in spremljanje trenutnih in prejšnjih tekov le-tega.
Če si želite ogledati podrobnosti o cevovodu, ki smo ga pravkar ustvarili in zagnali, se pomaknite do vmesnika Studio IDE in izberite Viri SageMaker, izberite Cevovodi v spustnem meniju in izberite cevovod (v tem primeru AbalonePipelineUsingR
).
To razkrije podrobnosti cevovoda, vključno z vsemi trenutnimi in prejšnjimi zagoni. Izberite najnovejšega, da prikažete vizualno predstavitev cevovoda, kot je prikazano na naslednjem posnetku zaslona.
DAG cevovoda samodejno ustvari storitev na podlagi podatkovnih odvisnosti med koraki, pa tudi na podlagi dodanih odvisnosti po meri (v tem primeru niso dodane nobene).
Ko je tek končan in če je uspešen, bi morali videti, da se vsi koraki obarvajo zeleno.
Če izberete katerega koli od posameznih korakov, se prikažejo podrobnosti o določenem koraku, vključno z vhodi, izhodi, dnevniki in nastavitvami začetne konfiguracije. To vam omogoča, da se poglobite v cevovod in raziščete vse neuspele korake.
Podobno se model shrani v register modelov, ko se cevovod konča. Za dostop do njega v Viri SageMaker podokno, izberite Register modelov na spustnem meniju in izberite svoj model. To razkrije seznam registriranih modelov, kot je prikazano na naslednjem posnetku zaslona. Izberite enega, da odprete stran s podrobnostmi za določeno različico modela.
Ko odprete različico modela, izberite Stanje posodobitve in Odobriti odobriti model.
Na tej točki lahko glede na vaš primer uporabe nastavite to odobritev za sprožitev nadaljnjih dejanj, vključno z uvedbo modela glede na vaše potrebe.
Brezstrežniška uvedba modela
Ko usposobite in registrirate model na SageMakerju, je namestitev modela na SageMaker preprosta.
Obstaja več možnosti, kako lahko uvedete model, na primer paketno sklepanje, končne točke v realnem času ali asinhrone končne točke. Vsaka metoda ima več zahtevanih konfiguracij, vključno z izbiro vrste primerka, ki ga želite, in mehanizma za skaliranje.
Za ta primer uporabljamo nedavno napovedano funkcijo SageMaker, Brezstrežniško sklepanje (v načinu predogleda v času pisanja), da uvedemo naš model R na končni točki brez strežnika. Za to vrsto končne točke definiramo samo količino RAM-a, ki jo želimo dodeliti modelu za sklepanje, kot tudi največje dovoljeno število sočasnih klicev modela. SageMaker poskrbi za gostovanje modela in samodejno skaliranje po potrebi. Zaračunamo vam samo točno število sekund in podatkov, ki jih uporablja model, brez stroškov za čas nedejavnosti.
Model lahko uvedete na končno točko brez strežnika z naslednjo kodo:
Če vidite napako ClientError: An error occurred (ValidationException) when calling the CreateModel operation: Invalid approval status "PendingManualApproval"
model, ki ga želite uvesti, ni bil odobren. Za odobritev modela sledite korakom iz prejšnjega razdelka.
Prikličite končno točko tako, da pošljete zahtevo končni točki HTTP, ki smo jo uvedli, ali namesto tega uporabite SDK SageMaker. V naslednji kodi prikličemo končno točko na nekaterih testnih podatkih:
Končna točka, ki smo jo poklicali, je bila končna točka brez strežnika, zato se nam zaračuna točno trajanje in uporabljeni podatki. Morda boste opazili, da ko prvič pokličete končno točko, traja približno sekundo, da se odzove. To je posledica časa hladnega zagona končne točke brez strežnika. Če kmalu zatem izvedete še en priklic, model vrne napoved v realnem času, ker je že toplo.
Ko končate eksperimentiranje s končno točko, jo lahko izbrišete z naslednjim ukazom:
zaključek
V tej objavi smo se sprehodili skozi postopek ustvarjanja cevovoda SageMaker z uporabo R v našem okolju RStudio in predstavili, kako razmestiti naš model R na končni točki brez strežnika na SageMaker z uporabo registra modelov SageMaker.
S kombinacijo RStudio in SageMaker lahko zdaj ustvarjate in orkestrirate celotne poteke dela ML od konca do konca v AWS z uporabo našega prednostnega izbranega jezika, R.
Da bi se poglobili v to rešitev, vam priporočam, da pregledate izvorno kodo te rešitve in druge primere na GitHub.
O Author
Georgios Schinas je specializirani arhitekt rešitev za AI/ML v regiji EMEA. Sedež ima v Londonu in tesno sodeluje s strankami v Veliki Britaniji in na Irskem. Georgios strankam pomaga oblikovati in uvajati aplikacije za strojno učenje v produkciji na AWS s posebnim zanimanjem za prakse MLOps in strankam omogoča izvajanje strojnega učenja v velikem obsegu. V prostem času rad potuje, kuha in preživlja čas s prijatelji in družino.
- 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
- 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
- zefirnet