Podatkovni znanstveniki si pogosto prizadevajo razumeti učinke različnih strategij predobdelave podatkov in inženiringa funkcij v kombinaciji z različnimi arhitekturami modelov in hiperparametri. To zahteva, da iterativno pokrivate velike prostore parametrov, zato je lahko izjemno težko slediti predhodno izvedenim konfiguracijam in rezultatom, hkrati pa ohranjati ponovljivost poskusov.
Ta objava vas vodi skozi primer, kako sledite svojim poskusom prek kode, podatkov, artefaktov in meritev z uporabo Eksperimenti Amazon SageMaker v povezavi z Nadzor različic podatkov (DVC). Pokažemo, kako lahko uporabljate DVC vzporedno z Amazon SageMaker predelava in usposabljanje. Usposabljamo različne modele CatBoost na kalifornijskem nizu podatkov o stanovanjih iz Repozitorij StatLibin spremenite strategije zadrževanja, medtem ko spremljate različico podatkov z DVC. V vsakem posameznem poskusu sledimo vhodnim in izhodnim artefaktom, kodi in metrikam z uporabo SageMaker Experiments.
Poskusi SageMaker
SageMaker Experiments je storitev AWS za sledenje poskusom strojnega učenja (ML). The SageMaker Experiments Python SDK je vmesnik na visoki ravni za to storitev, ki vam pomaga slediti eksperimentalnim informacijam z uporabo Pythona.
Cilj SageMaker Experiments je čim bolj poenostaviti ustvarjanje poskusov, jih zapolniti s poskusi, dodati informacije o sledenju in rodu ter izvajati analitiko med poskusi in eksperimenti.
Ko razpravljamo o poskusih SageMaker, se sklicujemo na naslednje koncepte:
- Preizkusna – Zbirka povezanih poskusov. Eksperimentu dodate poskuse, ki jih želite skupaj primerjati.
- Trial – Opis večstopenjskega poteka dela ML. Vsak korak v delovnem procesu je opisan s preizkusno komponento.
- Preskusna komponenta – Opis posameznega koraka v delovnem toku ML, kot je čiščenje podatkov, ekstrakcija funkcij, usposabljanje modela ali vrednotenje modela.
- Tracker – Upravljalnik konteksta Python za beleženje informacij o posamezni preskusni komponenti (na primer parametri, meritve ali artefakti).
Nadzor različic podatkov
Data Version Control (DVC) je nova vrsta programske opreme za upravljanje različic podatkov, poteka dela in eksperimentov, ki temelji na git (čeprav lahko deluje samostojno). DVC zmanjšuje vrzel med uveljavljenimi nabori inženirskih orodij in potrebami podatkovne znanosti, kar vam omogoča, da izkoristite nove lastnosti ob ponovni uporabi obstoječih veščin in intuicije.
Skupna raba eksperimentov v znanosti o podatkih in sodelovanje je mogoče izvesti prek običajnega toka Git (zaveza, razvejanje, označevanje, zahteve za vlečenje) na enak način, kot to deluje za programske inženirje. Z Git in DVC lahko ekipe za podatkovno znanost in strojno učenje verzirajo eksperimente, upravljajo velike nabore podatkov in naredijo projekte ponovljive.
DVC ima naslednje lastnosti:
- DVC je a brezplačno, odprtokodno ukazni vrstici orodje.
- DVC deluje na vrhu repozitorijev Git in ima podoben vmesnik in potek ukazne vrstice kot Git. DVC lahko deluje tudi samostojno, vendar brez različic zmogljivosti.
- Različice podatkov so omogočene z zamenjavo velikih datotek, imenikov naborov podatkov, modelov ML in tako naprej z majhnimi metadatoteke (lahek za uporabo z Gitom). Ti nadomestni znaki kažejo na izvirne podatke, ki so ločeni od upravljanja izvorne kode.
- Za shranjevanje podatkov projekta ločeno od baze kode lahko uporabite lokalno shrambo ali shrambo v oblaku. Tako lahko podatkovni znanstveniki prenašajo velike nabore podatkov ali z drugimi delijo model, usposobljen z GPU.
- DVC omogoča ponovljive projekte podatkovne znanosti z ustvarjanjem lahkih cevovodov z uporabo implicitnih grafov odvisnosti in s kodificiranjem vključenih podatkov in artefaktov.
- DVC je neodvisen od platforme. Deluje v vseh glavnih operacijskih sistemih (Linux, macOS in Windows) in deluje neodvisno od programskih jezikov (Python, R, Julia, lupinski skripti itd.) ali knjižnic ML (Keras, TensorFlow, PyTorch, Scipy in več), uporabljenih v projektu.
- DVC je hiter namestitev in ne zahteva posebne infrastrukture, niti ni odvisen od API-jev ali zunanjih storitev. Je samostojno orodje CLI.
Eksperimenti SageMaker in vzorec DVC
Naslednja GitHub vzorec prikazuje, kako uporabljati DVC v okolju SageMaker. Zlasti si ogledamo, kako zgraditi sliko po meri s privzeto nameščenimi knjižnicami DVC, da zagotovimo dosledno razvojno okolje vašim podatkovnim znanstvenikom v Amazon SageMaker Studioin kako zagnati DVC poleg upravljane infrastrukture SageMaker za obdelavo in usposabljanje. Poleg tega pokažemo, kako obogatiti informacije o sledenju SageMaker z informacijami o različicah podatkov iz DVC in jih vizualizirati v konzoli Studio.
Naslednji diagram ponazarja arhitekturo rešitve in potek dela.
Zgradite sliko Studio po meri z že nameščenim DVC
V tem primeru GitHub repozitorij, pojasnjujemo, kako ustvariti sliko po meri za Studio, ki ima že nameščen DVC. Prednost ustvarjanja slike in njene dostopnosti vsem uporabnikom Studia je v tem, da ustvari konsistentno okolje za uporabnike Studia, ki ga lahko izvajajo tudi lokalno. Čeprav vzorec temelji na AWS Cloud9, lahko vsebnik sestavite tudi na vašem lokalnem računalniku, če imate nameščen in zagnan Docker. Ta vzorec temelji na naslednjem Dockerfile in okolje.yml. Nastala slika Dockerja je shranjena v Registar elastičnih zabojnikov Amazon (Amazon EMR) v vašem računu AWS. Oglejte si naslednjo kodo:
Zdaj lahko ustvarite novo domeno Studio or posodobite obstoječo domeno Studio ki ima dostop do novo ustvarjene slike Docker.
Mi uporabljamo Komplet za razvoj oblaka AWS (AWS CDK), da ustvarite naslednje vire prek Oblikovanje oblaka AWS:
- Izvršilna vloga SageMaker s pravimi dovoljenji za vašo novo ali obstoječo domeno Studio
- Slika SageMaker in različica slike SageMaker iz slike Docker
conda-env-dvc-kernel
ki smo jih prej ustvarili - An
AppImageConfig
ki določa, kako naj bo konfiguriran prehod jedra - Uporabnik Studia (
data-scientist-dvc
) s pravilno izvajalsko vlogo SageMaker in sliko Studio po meri, ki ji je na voljo
Za podrobna navodila glejte Povežite sliko po meri s SageMaker Studio.
Vodi laboratorij
Za zagon laboratorija izvedite naslednje korake:
- V domeni Studio zaženite Studio za
data-scientist-dvc
uporabnik. - Izberite ikono Git in nato izberite Klonirajte repozitorij.
- Vnesite URL repozitorija (
https://github.com/aws-samples/amazon-sagemaker-experiments-dvc-demo
) in izberite Clone. - V brskalniku datotek izberite
amazon-sagemaker-experiments-dvc-demo
skladišče. - odprite
dvc_sagemaker_script_mode.ipynb
zvezek. - za Slika po meri, izberite sliko conda-env-dvc-kernel.
- Izberite Izberite.
Konfigurirajte DVC za različico podatkov
Ustvarimo podimenik, kjer pripravimo podatke: sagemaker-dvc-sample. Znotraj tega podimenika inicializiramo nov repozitorij Git in nastavimo oddaljeni repozitorij, ki ga ustvarimo v AWS CodeCommit. Cilj je imeti konfiguracije DVC in datoteke za sledenje podatkov v tem repozitoriju. Vendar pa Git ponuja izvorne zmogljivosti za upravljanje podprojektov prek, na primer, podmodulov git in poddreves git, ta vzorec pa lahko razširite tako, da uporabite katero koli od zgoraj omenjenih orodij, ki najbolje ustrezajo vašemu delovnemu toku.
Glavna prednost uporabe CodeCommit s SageMakerjem v našem primeru je njegova integracija s AWS upravljanje identitete in dostopa (IAM) za preverjanje pristnosti in avtorizacijo, kar pomeni, da lahko uporabljamo vloge IAM za potiskanje in vlečenje podatkov brez potrebe po pridobivanju poverilnic (ali ključev SSH). Nastavitev ustreznih dovoljenj za vlogo izvajanja SageMaker prav tako omogoča varno interakcijo prenosnika Studio in opravila za usposabljanje in obdelavo SageMaker s CodeCommit.
Čeprav lahko CodeCommit zamenjate s katero koli drugo storitvijo za nadzor vira, kot je GitHub, Gitlab ali Bitbucket, morate razmisliti, kako ravnati s poverilnicami za svoj sistem. Ena od možnosti je, da te poverilnice shranite na Upravitelj skrivnosti AWS in jih prenesite med izvajanjem iz prenosnega računalnika Studio ter iz opravil obdelave in usposabljanja SageMaker.
Obdelajte in učite z DVC in SageMaker
V tem razdelku raziskujemo dva različna pristopa za reševanje naše težave in kako lahko sledimo obema preizkusoma z uporabo eksperimentov SageMaker v skladu s konceptualno arhitekturo na visoki ravni, ki smo vam jo pokazali prej.
Nastavite poskus SageMaker
Za sledenje temu testu v SageMakerju moramo ustvariti poskus. Opredeliti moramo tudi poskus znotraj eksperimenta. Zaradi poenostavitve upoštevamo le en preizkus za poskus, vendar lahko imate poljubno število poskusov v poskusu, če želite na primer preizkusiti različne algoritme.
Ustvarimo poskus z imenom DEMO-sagemaker-experiments-dvc
z dvema poskusoma, dvc-trial-single-file
in dvc-trial-multi-files
, pri čemer vsak predstavlja drugo različico nabora podatkov.
Ustvarimo DEMO-sagemaker-experiments-dvc
poskus:
Preizkus 1: Ustvari posamezne datoteke za usposabljanje in validacijo
V tem razdelku ustvarimo skript za obdelavo, ki pridobiva neobdelane podatke neposredno iz Preprosta storitev shranjevanja Amazon (Amazon S3) kot vhod; obdeluje, da ustvari nabore podatkov za usposabljanje, validacijo in testiranje; in shrani rezultate nazaj v Amazon S3 z uporabo DVC. Poleg tega pokažemo, kako lahko sledite izhodnim artefaktom, ki jih ustvari DVC s SageMakerjem, ko izvajate opravila obdelave in usposabljanja ter prek eksperimentov SageMaker.
Najprej ustvarimo dvc-trial-single-file
preizkus in ga dodajte v DEMO-sagemaker-experiments-dvc
poskus. S tem ohranjamo vse komponente preskusa, povezane s tem testom, organizirane na smiseln način.
Uporabite DVC v opravilu obdelave SageMaker, da ustvarite različico ene datoteke
V tem razdelku ustvarimo skript za obdelavo, ki dobi neobdelane podatke neposredno iz Amazona S3 kot vhod z uporabo zmožnosti upravljanega nalaganja podatkov SageMakerja; obdeluje, da ustvari nabore podatkov za usposabljanje, validacijo in testiranje; in shrani rezultate nazaj v Amazon S3 z uporabo DVC. Zelo pomembno je razumeti, da pri uporabi DVC za shranjevanje podatkov v Amazon S3 (ali črpanje podatkov iz Amazona S3) izgubljamo zmožnosti nalaganja podatkov, ki jih upravlja SageMaker, kar lahko potencialno vpliva na zmogljivost in stroške naših opravil obdelave in usposabljanja. , zlasti pri delu z zelo velikimi zbirkami podatkov. Za več informacij o različnih zmožnostih izvornega načina vnosa SageMaker glejte Dostop do podatkov o usposabljanju.
Nazadnje združujemo zmožnosti sledenja DVC z zmogljivostmi sledenja SageMaker pri izvajanju opravil obdelave prek SageMaker Experiments.
Skript za obdelavo pričakuje naslov repozitorija Git in veje, ki jo želimo ustvariti za shranjevanje metapodatkov DVC, posredovanih prek spremenljivk okolja. Podatkovne nize v Amazon S3 shrani DVC. Čeprav se spremenljivke okolja samodejno spremljajo v SageMaker Experiments in so vidne v parametrih preskusne komponente, bomo morda želeli obogatiti preskusne komponente z dodatnimi informacijami, ki bodo nato na voljo za vizualizacijo v uporabniškem vmesniku Studio z uporabo sledilnega objekta. V našem primeru parametri preskusnih komponent vključujejo naslednje:
DVC_REPO_URL
DVC_BRANCH
USER
data_commit_hash
train_test_split_ratio
Skript za predprocesiranje klonira repozitorij Git; generira nize podatkov o usposabljanju, validaciji in testiranju; in ga sinhronizira z uporabo DVC. Kot smo že omenili, pri uporabi DVC ne moremo izkoristiti domačih zmožnosti nalaganja podatkov SageMaker. Poleg zmanjšanja zmogljivosti, ki bi ga lahko utrpeli pri velikih naborih podatkov, izgubimo tudi zmožnosti samodejnega sledenja za izhodne artefakte. Vendar pa lahko zahvaljujoč sledilniku in API-ju DVC Python nadomestimo te pomanjkljivosti, pridobimo take informacije med izvajanjem in jih shranimo v preizkusno komponento z malo truda. Dodana vrednost s tem je imeti v enem samem pogledu vhodne in izhodne artefakte, ki pripadajo temu posebnemu opravilu obdelave.
Celoten skript Python za predprocesiranje je na voljo v GitHub repo.
SageMaker nam daje možnost izvajanja našega skripta za obdelavo na slikah vsebnikov, ki jih upravlja AWS, ki so optimizirane za delovanje v infrastrukturi AWS. Če naš skript zahteva dodatne odvisnosti, lahko zagotovimo a requirements.txt
mapa. Ko začnemo obdelavo, SageMaker uporabi pip-install
da namestimo vse knjižnice, ki jih potrebujemo (na primer knjižnice, povezane z DVC). Če morate imeti strožji nadzor nad vsemi knjižnicami, nameščenimi na vsebnikih, lahko v SageMaker prinesete svoj vsebnik, na primer za obravnavati in usposabljanje.
Zdaj imamo vse sestavine za izvajanje našega dela obdelave SageMaker:
- Skript za obdelavo, ki lahko obdela več argumentov (
--train-test-split-ratio
) in dve okoljski spremenljivki (DVC_REPO_URL
inDVC_BRANCH
) - A
requiremets.txt
datoteka - Repozitorij Git (v CodeCommit)
- Eksperiment in preizkus SageMaker
Nato zaženemo obdelavo z preprocessing-experiment.py
skripta, experiment_config
, dvc_repo_url
in dvc_branch
smo definirali prej.
Posel obdelave traja približno 5 minut. Zdaj si lahko ogledate podrobnosti preskusa za eno datoteko.
Naslednji posnetek zaslona prikazuje, kje lahko najdete shranjene informacije v Studiu. Upoštevajte vrednosti za dvc-trial-single-file
in DVC_BRANCH
, DVC_REPO_URL
in data_commit_hash
o parametri tab.
Upoštevajte tudi vhodne in izhodne podrobnosti na Artefakte tab.
Ustvarite ocenjevalec in prilagodite model z različico podatkov ene datoteke
Za uporabo integracije DVC znotraj izobraževalnega opravila SageMaker posredujemo a dvc_repo_url
in dvc_branch
kot spremenljivke okolja, ko ustvarite objekt Estimator.
Treniramo na dvc-trial-single-file
najprej veja.
Pri pridobivanju podatkov z DVC uporabljamo naslednjo strukturo nabora podatkov:
Zdaj ustvarimo Scikit-learn Estimator z uporabo SDK SageMaker Python. To nam omogoča, da določimo naslednje:
- Pot do izvorne datoteke Python, ki jo je treba zagnati kot vstopno točko za usposabljanje.
- Vloga IAM, ki nadzoruje dovoljenja za dostop do podatkov Amazon S3 in CodeCommit ter izvajanje funkcij SageMaker.
- Seznam slovarjev, ki opredeljujejo metrike, ki se uporabljajo za ocenjevanje delovnih mest za usposabljanje.
- Število in vrsta primerkov usposabljanja. Uporabljamo en ml.m5.velik primerek.
- Hiperparametri, ki se uporabljajo za usposabljanje.
- Spremenljivke okolja za uporabo med usposabljanjem. Uporabljamo
DVC_REPO_URL
,DVC_BRANCH
inUSER
.
Za začetek usposabljanja pokličemo metodo prileganja ocenjevalca z eksperimentalno konfiguracijo, ki smo jo definirali prej.
Delo usposabljanja traja približno 5 minut. Dnevniki prikazujejo te vrstice, ki označujejo datoteke, ki jih je pridobil DVC:
Preizkus 2: Ustvarite več datotek za usposabljanje in validacijo
Ustvarjamo novo dvc-trial-multi-files
preizkus in ga dodajte trenutnemu DEMO-sagemaker-experiments-dvc
poskus.
Za razliko od prvega skripta za obdelavo zdaj iz izvirnega nabora podatkov ustvarimo več datotek za usposabljanje in validacijo ter shranimo metapodatke DVC v drugo vejo.
Drugi skript Python za predprocesiranje lahko raziščete na GitHub.
Posel obdelave traja približno 5 minut. Zdaj si lahko ogledate podrobnosti preskusa za nabor podatkov z več datotekami.
Naslednji posnetki zaslona prikazujejo, kje lahko najdete shranjene informacije znotraj SageMaker Experiments v Preskusne komponente v uporabniškem vmesniku Studio. Upoštevajte vrednosti za dvc-trial-multi-files
in DVC_BRANCH
, DVC_REPO_URL
in data_commit_hash
o parametri tab.
Podrobnosti o vhodu in izhodu lahko pregledate tudi na Artefakte tab.
Zdaj treniramo na dvc-trial-multi-files
podružnica. Pri pridobivanju podatkov z DVC uporabljamo naslednjo strukturo nabora podatkov:
Podobno kot prej, ustvarimo nov Scikit-learn Estimator s poskusnim imenom dvc-trial-multi-files
in začnite z usposabljanjem.
Delo usposabljanja traja približno 5 minut. V dnevnikih opravil usposabljanja, izpisanih v prenosni računalnik, lahko vidite te vrstice, ki označujejo datoteke, ki jih je pridobil DVC:
Gostite svoj model v SageMakerju
Ko usposobite svoj model ML, ga lahko uvedete s SageMakerjem. Za uvedbo obstojne končne točke v realnem času, ki naredi eno napoved naenkrat, uporabljamo Storitve gostovanja v realnem času SageMaker.
Najprej dobimo najnovejši preskusni nabor podatkov lokalno v razvojnem zvezku v Studiu. V ta namen lahko uporabimo dvc.api.read()
za nalaganje neobdelanih podatkov, ki jih je opravilo obdelave SageMaker shranilo v Amazon S3.
Nato pripravimo podatke s pomočjo Pande, naložimo testno datoteko CSV in pokličemo predictor.predict
da prikličete prej ustvarjeno končno točko SageMaker s podatki in pridobite napovedi.
Izbrišite končno točko
Končne točke bi morali izbrisati, ko niso več v uporabi, ker se zaračunajo ob času uvedbe (za več informacij glejte Cene Amazon SageMaker). Ne pozabite izbrisati končne točke, da se izognete nepričakovanim stroškom.
Čiščenje
Preden odstranite vse vire, ki ste jih ustvarili, se prepričajte, da so vse aplikacije izbrisane iz data-scientist-dvc
uporabnik, vključno z vsemi aplikacijami KernelGateway, kot tudi privzeto aplikacijo JupiterServer.
Nato lahko uničite sklad AWS CDK tako, da zaženete naslednji ukaz:
Če ste uporabili obstoječo domeno, zaženite tudi naslednje ukaze:
zaključek
V tej objavi ste predstavili primer, kako slediti svojim poskusom prek kode, podatkov, artefaktov in metrik z uporabo SageMaker Experiments ter opravil obdelave in usposabljanja SageMaker v povezavi z DVC. Ustvarili smo sliko Docker, ki vsebuje DVC, ki je bila potrebna za Studio kot razvojni prenosni računalnik, in pokazali, kako lahko z DVC uporabljate opravila obdelave in usposabljanja. Pripravili smo dve različici podatkov in uporabili DVC za upravljanje z Gitom. Nato ste uporabili SageMaker Experiments za sledenje obdelavi in usposabljanju z dvema različicama podatkov, da bi imeli enoten pogled parametrov, artefaktov in meritev v enem steklenem podoknu. Nazadnje ste razmestili model na končno točko SageMaker in uporabili preskusni nabor podatkov iz druge različice nabora podatkov, da prikličete končno točko SageMaker in pridobite napovedi.
Kot naslednji korak lahko razširite obstoječi prenosni računalnik in uvedete lastno strategijo inženiringa funkcij ter uporabite DVC in SageMaker za izvajanje svojih poskusov. Gremo graditi!
Za nadaljnje branje si oglejte naslednje vire:
O avtorjih
Paolo Di Francesco je arhitekt rešitev pri AWS. Ima izkušnje na področju telekomunikacij in programskega inženiringa. Navdušen je nad strojnim učenjem in se trenutno osredotoča na uporabo svojih izkušenj za pomoč strankam pri doseganju njihovih ciljev na AWS, zlasti v razpravah o MLOps. Izven službe rad igra nogomet in bere.
Eitan Sela je specialist za strojno učenje, arhitekt rešitev pri Amazon Web Services. Sodeluje s strankami AWS, da bi zagotovil smernice in tehnično pomoč ter jim pomagal zgraditi in upravljati rešitve strojnega učenja na AWS. V prostem času Eitan rad teče in bere najnovejše članke o strojnem učenju.
- 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
- Nadzor različic podatkov
- globoko učenje
- KVB
- strojno učenje
- platon
- platon ai
- Platonova podatkovna inteligenca
- Igra Platon
- PlatoData
- platogaming
- lestvica ai
- sintaksa
- Tehnična navodila
- zefirnet