Amazonski cevovodi SageMaker omogoča podatkovnim znanstvenikom in inženirjem strojnega učenja (ML), da avtomatizirajo delovne tokove usposabljanja, kar vam pomaga ustvariti ponovljiv proces za usmerjanje razvojnih korakov modela za hitro eksperimentiranje in ponovno usposabljanje modela. Avtomatizirate lahko celoten delovni tok gradnje modela, vključno s pripravo podatkov, inženiringom funkcij, usposabljanjem modela, prilagajanjem modela in preverjanjem veljavnosti modela, ter ga katalogizirate v registru modelov. Cevovode lahko konfigurirate tako, da se izvajajo samodejno v rednih intervalih ali ko se sprožijo določeni dogodki, ali pa jih po potrebi zaženete ročno.
V tej objavi izpostavljamo nekatere izboljšave za Amazon SageMaker SDK in predstavite nove funkcije Amazon SageMaker Pipelines, ki strokovnjakom ML olajšajo izdelavo in usposabljanje modelov ML.
Pipelines še naprej izpopolnjuje svojo izkušnjo za razvijalce in s temi nedavnimi izdajami lahko zdaj storitev uporabljate na bolj prilagojen način:
- 2.99.0, 2.101.1, 2.102.0, 2.104.0 – posodobljena dokumentacija o
PipelineVariable
uporaba za osnovne razrede ocenjevalcev, procesorjev, sprejemnikov, transformatorjev in modelov, Amazonove modele in okvirne modele. Prišlo bo do dodatnih sprememb z novejšimi različicami SDK za podporo vsem podrazredom ocenjevalcev in procesorjev. - 2.90.0 – Razpoložljivost ModelStep za naloge ustvarjanja in registracije virov integriranega modela.
- 2.88.2 – Razpoložljivost PipelineSession za upravljano interakcijo z entitetami in viri SageMaker.
- 2.88.2 – Združljivost podrazredov za koraki dela cevovoda delovnega toka tako da lahko gradite abstrakcije opravil ter konfigurirate in izvajate opravila obdelave, usposabljanja, preoblikovanja in prilagajanja, kot bi to storili brez cevovoda.
- 2.76.0 – Razpoložljivost FailStep za pogojno zaustavitev cevovoda s statusom okvare.
V tej objavi vas vodimo skozi potek dela z uporabo vzorčnega nabora podatkov s poudarkom na gradnji in uvajanju modela, da pokažemo, kako implementirati nove funkcije Pipelines. Na koncu bi morali imeti dovolj informacij za uspešno uporabo teh novejših funkcij in poenostavitev delovnih obremenitev ML.
Pregled funkcij
Cevovodi ponujajo naslednje nove funkcije:
- Opomba spremenljivke cevovoda – Nekateri parametri metode sprejemajo več vrst vnosa, vključno z
PipelineVariables
, dodana pa je bila dodatna dokumentacija, ki pojasnjuje, kjePipelineVariables
so podprte tako v najnovejši stabilni različici dokumentacije SDK SageMaker kot v zagonskem podpisu funkcij. Na primer, v naslednjem ocenjevalcu TensorFlow začetni podpis to zdaj pokažemodel_dir
inimage_uri
podporaPipelineVariables
, medtem ko drugi parametri ne. Za več informacij glejte Ocenjevalnik TensorFlow.- Pred:
- Po:
- Pipeline session - PipelineSession je nov koncept, uveden za enotnost SDK-ja SageMaker in uvaja leno inicializacijo virov cevovoda (klici izvajanja so zajeti, vendar se ne izvajajo, dokler cevovod ni ustvarjen in zagnan). The
PipelineSession
kontekst podedujeSageMakerSession
in izvaja priročne metode za vašo interakcijo z drugimi entitetami in viri SageMaker, kot so delovna mesta za usposabljanje, končne točke in nabori vhodnih podatkov, shranjeni v Preprosta storitev shranjevanja Amazon (Amazon S3). - Združljivost podrazreda s koraki opravila cevovoda delovnega toka – Zdaj lahko gradite abstrakcije opravil ter konfigurirate in izvajate opravila obdelave, usposabljanja, preoblikovanja in prilagajanja, kot bi to storili brez cevovoda.
- Na primer, ustvarjanje koraka obdelave z
SKLearnProcessor
prej zahteval naslednje: - Kot vidimo v prejšnji kodi,
ProcessingStep
mora izvesti v bistvu enako logiko predprocesiranja kot.run
, samo brez sprožitve klica API za začetek opravila. Toda z združljivostjo podrazredov, ki je zdaj omogočena s koraki opravil cevovoda delovnega toka, razglasimostep_args
argument, ki prevzame logiko predprocesiranja z .run, tako da lahko zgradite abstrakcijo opravila in jo konfigurirate, kot bi jo uporabljali brez cevovodov. Prehajamo tudi vpipeline_session
, Ki jePipelineSession
objekt, namestosagemaker_session
da zagotovite, da so zagonski klici zajeti, vendar ne klicani, dokler cevovod ni ustvarjen in zagnan. Oglejte si naslednjo kodo:
- Na primer, ustvarjanje koraka obdelave z
- Korak modela (poenostavljen pristop s koraki ustvarjanja modela in registracije) –Pipelines ponuja dve vrsti korakov za integracijo z modeli SageMaker:
CreateModelStep
inRegisterModel
. Zdaj lahko oboje dosežete le z uporaboModelStep
vrsto. Upoštevajte, da aPipelineSession
je potrebno za dosego tega. To prinaša podobnost med koraki cevovoda in SDK.- Pred:
-
- Po:
- Fail step (pogojna ustavitev teka cevovoda) -
FailStep
omogoča zaustavitev cevovoda s statusom napake, če je izpolnjen pogoj, na primer, če je rezultat modela pod določenim pragom.
Pregled rešitev
V tej rešitvi je vaša vstopna točka Amazon SageMaker Studio integrirano razvojno okolje (IDE) za hitro eksperimentiranje. Studio ponuja okolje za upravljanje izkušnje Pipelines od konca do konca. S programom Studio lahko obidete Konzola za upravljanje AWS za celotno upravljanje poteka dela. Za več informacij o upravljanju cevovodov znotraj Studia glejte Oglejte si, sledite in izvajajte cevovode SageMaker v SageMaker Studio.
Naslednji diagram ponazarja visokonivojsko arhitekturo delovnega toka ML z različnimi koraki za usposabljanje in ustvarjanje sklepanja z uporabo novih funkcij.
Cevovod vključuje naslednje korake:
- Vnaprej obdelajte podatke za izgradnjo zahtevanih funkcij in razdelite podatke na nabore podatkov za usposabljanje, validacijo in testiranje.
- Ustvarite delovno mesto za usposabljanje z ogrodjem SageMaker XGBoost.
- Ocenite usposobljeni model z uporabo preskusnega nabora podatkov.
- Preverite, ali je rezultat AUC nad vnaprej določenim pragom.
- Če je rezultat AUC nižji od praga, ustavite zagon cevovoda in ga označite kot neuspešnega.
- Če je rezultat AUC višji od praga, ustvarite model SageMaker in ga registrirajte v registru modelov SageMaker.
- Uporabite paketno transformacijo na danem naboru podatkov z uporabo modela, ustvarjenega v prejšnjem koraku.
Predpogoji
Če želite slediti tej objavi, potrebujete račun AWS z a Studio domena.
Cevovodi so integrirani neposredno z entitetami in viri SageMaker, tako da vam ni treba komunicirati z drugimi storitvami AWS. Prav tako vam ni treba upravljati virov, ker gre za popolnoma upravljano storitev, kar pomeni, da ustvarja in upravlja vire namesto vas. Za več informacij o različnih komponentah SageMaker, ki so samostojni API-ji Python skupaj z integriranimi komponentami Studia, glejte Stran izdelka SageMaker.
Preden začnete, namestite različico SDK SageMaker >= 2.104.0 in xlrd >=1.0.0 v prenosnem računalniku Studio z naslednjim delčkom kode:
Potek dela ML
Za to objavo uporabite naslednje komponente:
- Priprava podatkov
- Obdelava žajblja – SageMaker Processing je popolnoma upravljana storitev, ki vam omogoča izvajanje transformacij podatkov po meri in inženiring funkcij za delovne obremenitve ML.
- Izdelava makete
- Modelno usposabljanje in vrednotenje
- Usposabljanje z enim klikom – Funkcija porazdeljenega usposabljanja SageMaker. SageMaker zagotavlja porazdeljene učne knjižnice za paralelizem podatkov in modelov. Knjižnice so optimizirane za vadbeno okolje SageMaker, pomagajo prilagoditi vaša porazdeljena vadbena opravila SageMakerju ter izboljšajo hitrost in prepustnost vadbe.
- Poskusi SageMaker – Eksperimenti so zmožnost SageMakerja, ki vam omogoča organiziranje, sledenje, primerjavo in ocenjevanje vaših iteracij ML.
- Serijska preobrazba SageMaker – Paketno preoblikovanje ali točkovanje brez povezave je upravljana storitev v SageMakerju, ki vam omogoča napovedovanje na večjem naboru podatkov z uporabo vaših modelov ML.
- Orkestracija poteka dela
Cevovod SageMaker je niz medsebojno povezanih korakov, ki jih definira definicija cevovoda JSON. Kodira cevovod z uporabo usmerjenega acikličnega grafa (DAG). DAG daje informacije o zahtevah in odnosih med posameznimi koraki cevovoda, njegovo strukturo pa določajo odvisnosti podatkov med koraki. Te odvisnosti se ustvarijo, ko se lastnosti izhoda koraka posredujejo kot vhod v drug korak.
Naslednji diagram ponazarja različne korake v cevovodu SageMaker (za primer uporabe predvidevanja odliva), kjer SageMaker sklepa o povezavah med koraki na podlagi vhodov in izhodov, opredeljenih z definicijami korakov.
Naslednji razdelki prikazujejo ustvarjanje vsakega koraka cevovoda in izvajanje celotnega cevovoda, ko je ustvarjen.
Struktura projekta
Začnimo s strukturo projekta:
- /sm-pipelines-end-to-end-example – Ime projekta
- / podatki – Nabori podatkov
- /cevovodi – Datoteke kode za komponente cevovoda
- /customerchurn
- preprocess.py
- oceni.py
- /customerchurn
- sagemaker-pipelines-project.ipynb – Beležnica, ki se sprehaja skozi potek dela modeliranja z uporabo novih funkcij Pipelines
Prenesite nabor podatkov
Če želite slediti tej objavi, morate prenesti in shraniti vzorec nabora podatkov pod podatkovno mapo v domačem imeniku projekta, v kateri se datoteka shrani Elastični datotečni sistem Amazon (Amazon EFS) v okolju Studio.
Zgradite komponente cevovoda
Zdaj ste pripravljeni na izdelavo komponent cevovoda.
Uvozi stavke ter deklariraj parametre in konstante
Ustvarite zvezek Studio, imenovan sagemaker-pipelines-project.ipynb
znotraj domačega imenika projekta. Vnesite naslednji blok kode v celico in zaženite celico, da nastavite odjemalske predmete SageMaker in S3, ustvarite PipelineSession
in nastavite lokacijo vedra S3 s privzetim vedrom, ki je priloženo seji SageMaker:
Cevovodi podpirajo parametrizacijo, ki vam omogoča, da določite vhodne parametre med izvajanjem, ne da bi spremenili kodo cevovoda. Uporabite lahko module, ki so na voljo pod sagemaker.workflow.parameters
modul, kot npr ParameterInteger
, ParameterFloat
in ParameterString
, da podate parametre cevovoda različnih tipov podatkov. Zaženite naslednjo kodo, da nastavite več vhodnih parametrov:
Ustvari paketni nabor podatkov
Ustvarite paketni nabor podatkov, ki ga boste pozneje uporabili v koraku paketnega preoblikovanja:
Naložite podatke v vedro S3
Naložite nabore podatkov v Amazon S3:
Določite skript obdelave in korak obdelave
V tem koraku pripravite skript Python za inženiring funkcij, eno vroče kodiranje in pripravite razdelitve usposabljanja, validacije in testiranja, ki se bodo uporabljali za gradnjo modela. Za izgradnjo skripta za obdelavo zaženite naslednjo kodo:
Nato zaženite naslednji blok kode, da ustvarite primerek procesorja, in korak Cevovodi, da zaženete skript za obdelavo. Ker je skript za obdelavo napisan v Pandas, uporabite a SKLearnProcessor. Cevovodi ProcessingStep
funkcija sprejme naslednje argumente: procesor, vhodne lokacije S3 za neobdelane nabore podatkov in izhodne lokacije S3 za shranjevanje obdelanih naborov podatkov.
Določite korak usposabljanja
Nastavite usposabljanje modela z uporabo ocenjevalca SageMaker XGBoost in cevovodov TrainingStep
funkcija:
Določite skript ocenjevanja in korak ocenjevanja modela
Zaženite naslednji kodni blok, da ocenite model, ko je usposobljen. Ta skript vsebuje logiko za preverjanje, ali rezultat AUC ustreza podanemu pragu.
Nato zaženite naslednji blok kode, da instancirate procesor in korak Cevovodi, da zaženete ocenjevalni skript. Ker ocenjevalni skript uporablja paket XGBoost, uporabite a ScriptProcessor
skupaj s sliko XGBoost. Cevovodi ProcessingStep
funkcija sprejme naslednje argumente: procesor, vhodne lokacije S3 za neobdelane nabore podatkov in izhodne lokacije S3 za shranjevanje obdelanih naborov podatkov.
Določite korak ustvarjanja modela
Zaženite naslednji blok kode, da ustvarite model SageMaker z uporabo koraka modela Cevovodi. Ta korak uporablja izhod koraka usposabljanja za pakiranje modela za uvajanje. Upoštevajte, da je vrednost za argument vrste primerka posredovana s parametrom Cevovodi, ki ste ga definirali prej v objavi.
Določite korak paketne transformacije
Zaženite naslednji blok kode, da zaženete paketno transformacijo z uporabo usposobljenega modela s paketnim vnosom, ustvarjenim v prvem koraku:
Določite korak modela registra
Naslednja koda registrira model v registru modelov SageMaker z uporabo koraka modela Cevovodi:
Določite neuspeli korak za zaustavitev cevovoda
Naslednja koda definira korak Pipelines fail za zaustavitev delovanja cevovoda s sporočilom o napaki, če rezultat AUC ne doseže definiranega praga:
Določite korak pogoja za preverjanje ocene AUC
Naslednja koda definira korak pogoja za preverjanje ocene AUC in pogojno ustvarjanje modela ter zagon paketne transformacije in registracijo modela v registru modelov ali zaustavitev izvajanja cevovoda v neuspelem stanju:
Zgradite in zaženite cevovod
Ko definirate vse korake komponente, jih lahko sestavite v objekt Cevovodi. Ni vam treba določiti vrstnega reda cevovoda, ker Cevovodi samodejno sklepajo zaporedje vrstnega reda na podlagi odvisnosti med koraki.
Zaženite naslednjo kodo v celici svojega zvezka. Če cevovod že obstaja, ga koda posodobi. Če cevovod ne obstaja, ustvari novega.
zaključek
V tej objavi smo predstavili nekaj novih funkcij, ki so zdaj na voljo s storitvijo Pipelines, skupaj z drugimi vgrajenimi funkcijami SageMaker in algoritmom XGBoost za razvoj, ponavljanje in uvajanje modela za napovedovanje opuščanja. Rešitev je mogoče razširiti z dodatnimi viri podatkov
za implementacijo lastnega delovnega procesa ML. Za več podrobnosti o korakih, ki so na voljo v poteku dela Cevovodi, glejte Amazon SageMaker Model Building Pipeline in Poteki dela SageMaker. Primeri AWS SageMaker GitHub repo ima več primerov različnih primerov uporabe z uporabo cevovodov.
O avtorjih
Jerry Peng je inženir za razvoj programske opreme pri AWS SageMaker. Osredotoča se na izgradnjo obsežnega sistema MLOps od konca do konca od usposabljanja do spremljanja modela v proizvodnji. Prav tako se strastno trudi predstaviti koncept MLOps širšemu občinstvu.
Dewen Qi je inženir za razvoj programske opreme v AWS. Trenutno se osredotoča na razvoj in izboljšanje cevovodov SageMaker. Zunaj službe rada vadi violončelo.
Gayatri Ghanakota je višji inženir strojnega učenja pri AWS Professional Services. Navdušena je nad razvojem, uvajanjem in razlago rešitev AI/ML na različnih področjih. Pred to vlogo je vodila številne pobude kot podatkovna znanstvenica in inženirka ML z vrhunskimi svetovnimi podjetji v finančnem in maloprodajnem prostoru. Ima magisterij iz računalništva, specializiran za podatkovno znanost, na univerzi Colorado, Boulder.
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.
Ray Li je višji podatkovni znanstvenik pri AWS Professional Services. Njegova posebnost se osredotoča na gradnjo in operacionalizacijo rešitev AI/ML za stranke različnih velikosti, od startupov do podjetniških organizacij. Poleg službe Ray uživa v fitnesu in potovanjih.
- 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