Oblikovalski vzorci za serijsko sklepanje na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Oblikovalski vzorci za serijsko sklepanje na Amazon SageMaker

Ker strojno učenje (ML) postaja vse bolj razširjeno in se vse bolj uporablja, postajajo aplikacije, ki jih poganja ML, vse pogostejše za reševanje vrste zapletenih poslovnih problemov. Rešitev teh kompleksnih poslovnih težav pogosto zahteva uporabo več modelov ML. Te modele je mogoče zaporedno kombinirati za izvajanje različnih nalog, kot so predprocesiranje, transformacija podatkov, izbira modela, generiranje sklepanja, konsolidacija sklepanja in naknadna obdelava. Organizacije potrebujejo prilagodljive možnosti za usmerjanje teh zapletenih delovnih tokov ML. Serijski inferenčni cevovodi so en tak vzorec načrtovanja za razporeditev teh delovnih tokov v vrsto korakov, pri čemer vsak korak obogati ali dodatno obdela izhod, ustvarjen s prejšnjimi koraki, in posreduje izhod v naslednji korak v cevovodu.

Poleg tega morajo ti cevovodi serijskega sklepanja zagotoviti naslednje:

  • Prilagodljiva in prilagojena implementacija (odvisnosti, algoritmi, poslovna logika itd.)
  • Ponovljivo in dosledno za produkcijsko izvedbo
  • Nediferencirano dvigovanje težkih stvari z zmanjšanjem upravljanja infrastrukture

V tem prispevku si ogledamo nekaj pogostih primerov uporabe za serijske inferenčne cevovode in se sprehodimo skozi nekatere izvedbene možnosti za vsakega od teh primerov uporabe z Amazon SageMaker. Razpravljamo tudi o premislekih za vsako od teh možnosti izvedbe.

Naslednja tabela povzema različne primere uporabe za serijsko sklepanje, vidike implementacije in možnosti. O njih razpravljamo v tej objavi.

Uporabi zadevo Opis primera uporabe Primarni premisleki Splošna zapletenost izvedbe Priporočene možnosti izvedbe Artefakti vzorčne kode in zvezki
Serijski inferenčni cevovod (z vključenimi koraki predprocesiranja in naknadne obdelave) Sklepni cevovod mora predhodno obdelati dohodne podatke, preden prikliče usposobljeni model za generiranje sklepov, in nato naknadno obdelati ustvarjene sklepe, tako da jih lahko aplikacije na nižji stopnji zlahka porabijo Enostavnost izvedbe nizka Vsebnik sklepanja z orodjem SageMaker Inference Toolkit Namestite usposobljeni model PyTorch
Serijski inferenčni cevovod (z vključenimi koraki predprocesiranja in naknadne obdelave) Sklepni cevovod mora predhodno obdelati dohodne podatke, preden prikliče usposobljeni model za generiranje sklepov, in nato naknadno obdelati ustvarjene sklepe, tako da jih lahko aplikacije na nižji stopnji zlahka porabijo Ločitev, poenostavljena uvedba in nadgradnje srednje Sklepni cevovod SageMaker Inference Pipeline z vsebniki po meri in xgBoost
Serijski manekenski ansambel Sklepni cevovod mora gostiti in razporediti več modelov zaporedoma, tako da vsak model izboljša sklepanje, ki ga ustvari prejšnji, preden ustvari končni sklep Ločitev, poenostavljena uvedba in nadgradnje, prilagodljivost pri izbiri ogrodja modela srednje Sklepni cevovod SageMaker Inference Pipeline s Scikit-learn in Linear Learner
Serijski inferenčni cevovod (s ciljanim priklicem modela iz skupine) Sklepni cevovod mora priklicati določen prilagojen model iz skupine razporejenih modelov na podlagi značilnosti zahteve ali za optimizacijo stroškov, poleg opravil predprocesiranja in naknadnega procesiranja Optimizacija stroškov in prilagoditev visoka Sklepni cevovod SageMaker z večmodelnimi končnimi točkami (MME) Večmodelne končne točke Amazon SageMaker z uporabo Linear Learner

V naslednjih razdelkih podrobneje obravnavamo vsak primer uporabe.

Serijski inferenčni cevovod z uporabo inferenčnih vsebnikov

Primeri uporabe cevovoda serijskega sklepanja zahtevajo predhodno obdelavo dohodnih podatkov, preden prikličejo predhodno usposobljen model ML za generiranje sklepov. Poleg tega bo v nekaterih primerih morda treba ustvarjene sklepe dodatno obdelati, tako da jih lahko aplikacije na nižji stopnji zlahka uporabijo. To je običajen scenarij za primere uporabe, kjer je treba vir pretočnih podatkov obdelati v realnem času, preden se nanj lahko namesti model. Vendar se ta primer uporabe lahko manifestira tudi za sklepanje paketov.

SageMaker ponuja možnost prilagajanja vsebnikov sklepanja in njihove uporabe za izdelavo serijskega cevovoda sklepanja. Vsebniki sklepanja uporabljajo Komplet orodij za sklepanje SageMaker in so nadgrajeni SageMaker Multi Model Server (MMS), ki zagotavlja prilagodljiv mehanizem za strežbo modelov ML. Naslednji diagram ponazarja referenčni vzorec, kako implementirati cevovod serijskega sklepanja z uporabo vsebnikov sklepanja.

SageMaker MMS pričakuje skript Python, ki izvaja naslednje funkcije za nalaganje modela, predhodno obdelavo vhodnih podatkov, pridobivanje napovedi iz modela in naknadno obdelavo izhodnih podatkov:

  • input_fn () – Odgovoren za deserializacijo in predhodno obdelavo vhodnih podatkov
  • model_fn () – Odgovoren za nalaganje izurjenega modela iz artefaktov Preprosta storitev shranjevanja Amazon (Amazon S3)
  • predvidi_fn () – Odgovoren za ustvarjanje sklepov iz modela
  • output_fn() – Odgovoren za serializacijo in naknadno obdelavo izhodnih podatkov (sklepi)

Za podrobne korake za prilagajanje vsebnika sklepanja glejte Prilagajanje lastnega vsebnika za sklepanje.

Vsebniki sklepanja so idealen vzorec načrtovanja za primere uporabe cevovoda serijskega sklepanja z naslednjimi primarnimi premisleki:

  • Visoka kohezija – Logika obdelave in ustrezen model poganjata enotno poslovno funkcionalnost in ju je treba postaviti na drugo lokacijo
  • Nizka splošna zakasnitev – Čas, ki je pretekel med vložitvijo zahteve za sklepanje in prejetjem odgovora

V serijskem sklepnem cevovodu sta logika in model obdelave enkapsulirana znotraj istega vsebnika, tako da večina klicev priklica ostane znotraj vsebnika. To pomaga zmanjšati skupno število skokov, kar ima za posledico boljšo skupno zakasnitev in odzivnost cevovoda.

Tudi za primere uporabe, kjer je pomembno merilo enostavnost implementacije, lahko pomagajo vsebniki sklepanja, pri čemer so različni koraki obdelave cevovoda nameščeni znotraj istega vsebnika.

Cevovod serijskega sklepanja z uporabo cevovoda sklepanja SageMaker

Druga različica primera uporabe cevovoda serijskega sklepanja zahteva jasnejšo ločitev med različnimi koraki v cevovodu (kot so predhodna obdelava podatkov, generiranje sklepanja, naknadna obdelava podatkov ter oblikovanje in serializacija). To je lahko posledica različnih razlogov:

  • Ločitev – Različni koraki cevovoda imajo jasno opredeljen namen in jih je treba izvajati v ločenih vsebnikih zaradi vpletenih osnovnih odvisnosti. To tudi pomaga, da je cevovod dobro strukturiran.
  • okviri – Različni koraki cevovoda uporabljajo posebna ogrodja, ki ustrezajo namenu (kot je scikit ali Spark ML), zato jih je treba izvajati v ločenih vsebnikih.
  • Izolacija virov – Različni koraki cevovoda imajo različne zahteve glede porabe virov in jih je zato treba izvajati v ločenih vsebnikih za večjo prilagodljivost in nadzor.

Poleg tega je za nekoliko bolj zapletene serijske sklepne cevovode lahko vključenih več korakov za obdelavo zahteve in ustvarjanje sklepanja. Zato je z operativnega vidika morda koristno gostiti te korake v ločenih vsebnikih za boljšo funkcionalno izolacijo ter omogočiti lažje nadgradnje in izboljšave (spremenite en korak brez vpliva na druge modele ali korake obdelave).

Če se vaš primer uporabe ujema z nekaterimi od teh premislekov, a Sklepni cevovod SageMaker ponuja enostavno in prilagodljivo možnost za izgradnjo serijskega sklepnega cevovoda. Naslednji diagram prikazuje referenčni vzorec, kako implementirati cevovod serijskega sklepanja z uporabo več korakov, ki gostujejo v namenskih vsebnikih z uporabo cevovoda sklepanja SageMaker.

ml9154-sklepni-cevovod

Sklepni cevovod SageMaker je sestavljen iz linearnega zaporedja 2–15 vsebnikov, ki obdelujejo zahteve za sklepanje podatkov. Cevovod sklepanja ponuja možnost uporabe vnaprej usposobljenih vgrajenih algoritmov SageMaker ali algoritmov po meri, zapakiranih v vsebnike Docker. Vsebniki gostujejo na isti osnovni instanci, kar pomaga zmanjšati skupno zakasnitev in zmanjšati stroške.

Naslednji delček kode prikazuje, kako je mogoče združiti več korakov obdelave in modelov, da se ustvari serijski cevovod sklepanja.

Začnemo z izdelavo in specifikacijo modelov, ki temeljijo na Spark ML in XGBoost, ki jih nameravamo uporabiti kot del cevovoda:

from sagemaker.model import Model
from sagemaker.pipeline_model import PipelineModel
from sagemaker.sparkml.model import SparkMLModel
sparkml_data = 's3://{}/{}/{}'.format(s3_model_bucket, s3_model_key_prefix, 'model.tar.gz')
sparkml_model = SparkMLModel(model_data=sparkml_data)
xgb_model = Model(model_data=xgb_model.model_data, image=training_image)

Modeli so nato razvrščeni zaporedno znotraj definicije modela cevovoda:

model_name = 'serial-inference-' + timestamp_prefix
endpoint_name = 'serial-inference-ep-' + timestamp_prefix
sm_model = PipelineModel(name=model_name, role=role, models=[sparkml_model, xgb_model])

Sklepni cevovod je nato razporejen za končno točko za sklepanje v realnem času z določitvijo vrste in števila primerkov gostiteljskega ML:

sm_model.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge', endpoint_name=endpoint_name)

Celoten sestavljeni cevovod sklepanja se lahko šteje za model SageMaker, ki ga lahko uporabite za napovedovanje v realnem času ali neposredno obdelavo paketnih transformacij, brez zunanje predprocesiranja. Znotraj modela cevovoda sklepanja SageMaker obravnava klice kot zaporedje zahtev HTTP, ki izvirajo iz zunanje aplikacije. Prvi vsebnik v cevovodu obravnava začetno zahtevo, izvede nekaj obdelave in nato odpošlje vmesni odgovor kot zahtevo drugemu vsebniku v cevovodu. To se zgodi za vsak vsebnik v cevovodu in na koncu vrne končni odgovor klicni odjemalski aplikaciji.

Sklepni cevovodi SageMaker so v celoti upravljani. Ko je cevovod nameščen, SageMaker namesti in zažene vse definirane vsebnike na vsakem od Amazonski elastični računalniški oblak (Amazon EC2) primerki, omogočeni kot del posla končne točke ali paketnega preoblikovanja. Nadalje, ker so vsebniki nameščeni in gostujejo na isti instanci EC2, se splošna zakasnitev cevovoda zmanjša.

Skupina serijskih modelov z uporabo cevovoda sklepanja SageMaker

Ansambelski model je pristop v ML, pri katerem je več modelov ML kombiniranih in uporabljenih kot del postopka sklepanja za ustvarjanje končnih sklepov. Motivacije za modele ansambla bi lahko med drugim vključevale izboljšanje natančnosti, zmanjšanje občutljivosti modela na specifične vhodne funkcije in zmanjšanje pristranskosti posameznega modela. V tej objavi se osredotočamo na primere uporabe, povezane s skupino serijskih modelov, kjer je več modelov ML zaporedno združenih kot del serijskega sklepnega cevovoda.

Oglejmo si poseben primer, povezan s skupino serijskih modelov, kjer moramo združiti naložene slike uporabnika glede na določene teme ali teme. Ta cevovod bi lahko bil sestavljen iz treh modelov ML:

  • Model 1 – Sprejme sliko kot vhod in oceni kakovost slike na podlagi ločljivosti slike, orientacije in drugega. Ta model nato poskuša povečati kakovost slike in pošlje obdelane slike, ki ustrezajo določenemu pragu kakovosti, naslednjemu modelu (model 2).
  • Model 2 – Sprejema slike, potrjene z modelom 1, in deluje prepoznavanje slike za prepoznavanje predmetov, krajev, ljudi, besedila in drugih dejanj in konceptov po meri na slikah. Izhod iz modela 2, ki vsebuje identificirane predmete, se pošlje v model 3.
  • Model 3 – Sprejme izhod iz Modela 2 in izvaja naloge obdelave naravnega jezika (NLP), kot je modeliranje teme za združevanje slik skupaj na podlagi tem. Slike bi lahko na primer združili glede na lokacijo ali identificirane osebe. Izhod (združevanja) se pošlje nazaj odjemalski aplikaciji.

Naslednji diagram ponazarja referenčni vzorec, kako implementirati več modelov ML, ki gostujejo v nizu serijskih modelov, z uporabo cevovoda sklepanja SageMaker.

ml9154-model-ansambel

Kot je bilo že omenjeno, se upravlja cevovod sklepanja SageMaker, kar vam omogoča, da se osredotočite na izbiro in razvoj modela ML, hkrati pa zmanjšate nediferencirano dviganje težkega dela, povezano z gradnjo cevovoda serijskega ansambla.

Poleg tega so nekateri premisleki, o katerih smo že razpravljali v zvezi z ločevanjem, izbiro algoritma in ogrodja za razvoj modela in uvajanje, pomembni tudi tukaj. Na primer, ker vsak model gostuje v ločenem vsebniku, imate prilagodljivost pri izbiri ogrodja ML, ki najbolje ustreza vsakemu modelu in vašemu splošnemu primeru uporabe. Poleg tega lahko z vidika ločevanja in delovanja še naprej veliko lažje nadgrajujete ali spreminjate posamezne korake, ne da bi to vplivalo na druge modele.

Sklepni cevovod SageMaker je prav tako integriran z Register modelov SageMaker za katalogizacijo modelov, ustvarjanje različic, upravljanje metapodatkov in vodeno uvajanje v produkcijska okolja za podporo doslednih najboljših praks delovanja. Integriran je tudi cevovod sklepanja SageMaker amazoncloudwatch omogočiti spremljanje modelov z več vsebniki v cevovodih sklepanja. Dobite lahko tudi vidnost meritve v realnem času za boljše razumevanje klicev in zakasnitev za vsak vsebnik v cevovodu, kar pomaga pri odpravljanju težav in optimizaciji virov.

Cevovod serijskega sklepanja (s ciljnim priklicem modela iz skupine) z uporabo cevovoda sklepanja SageMaker

Večmodelne končne točke SageMaker (MME) zagotavljajo stroškovno učinkovito rešitev za uvedbo velikega števila modelov ML za eno končno točko. Motivacije za uporabo končnih točk z več modeli lahko vključujejo priklic specifičnega prilagojenega modela na podlagi značilnosti zahteve (kot so izvor, geografska lokacija, personalizacija uporabnika itd.) ali preprosto gostovanje več modelov za isto končno točko, da se doseže optimizacija stroškov.

Ko razmestite več modelov na eno končno točko, ki podpira več modelov, si vsi modeli delijo računalniške vire in vsebnik za streženje modela. Sklepni cevovod SageMaker je mogoče razmestiti na MME, kjer lahko eden od vsebnikov v cevovodu dinamično streže zahteve na podlagi določenega modela, ki se kliče. Z vidika cevovoda imajo modeli enake zahteve za predprocesiranje in pričakujejo enak nabor funkcij, vendar so usposobljeni za uskladitev z določenim vedenjem. Naslednji diagram prikazuje referenčni vzorec delovanja tega integriranega cevovoda.

ml9154-mme

Pri MME mora zahteva za sklepanje, ki izvira iz odjemalske aplikacije, podati ciljni model, ki ga je treba priklicati. Prvi vsebnik v cevovodu obravnava začetno zahtevo, izvede nekaj obdelave in nato odpošlje vmesni odgovor kot zahtevo drugemu vsebniku v cevovodu, ki gosti več modelov. Na podlagi ciljnega modela, določenega v zahtevi za sklepanje, se model prikliče za ustvarjanje sklepanja. Ustvarjeni sklep se pošlje v naslednji vsebnik v cevovodu za nadaljnjo obdelavo. To se zgodi za vsak naslednji vsebnik v cevovodu in na koncu SageMaker vrne končni odgovor klicni odjemalski aplikaciji.

V vedru S3 je shranjenih več artefaktov modela. Ko je priklican določen model, ga SageMaker dinamično naloži v vsebnik, ki gosti končno točko. Če je model že naložen v pomnilnik vsebnika, je priklic hitrejši, ker SageMakerju ni treba prenesti modela iz Amazon S3. Če je uporaba pomnilnika primerka visoka in je priklican nov model, ki ga je zato treba naložiti, se neuporabljeni modeli odstranijo iz pomnilnika. Nenaloženi modeli pa ostanejo v prostornini pomnilnika instance in jih je mogoče pozneje znova naložiti v pomnilnik vsebnika, ne da bi jih znova prenesli iz vedra S3.

Eden od ključnih premislekov pri uporabi MME je razumevanje vedenja zakasnitve klica modela. Kot smo že omenili, se modeli ob priklicu dinamično naložijo v pomnilnik vsebnika instance, ki gosti končno točko. Zato lahko priklic modela traja dlje, ko je priklican prvič. Ko je model že v pomnilniku vsebnika primerka, so nadaljnji priklici hitrejši. Če je uporaba pomnilnika primerka visoka in je treba naložiti nov model, se neuporabljeni modeli razložijo. Če je prostor za shranjevanje instance poln, se neuporabljeni modeli izbrišejo iz nosilca za shranjevanje. SageMaker v celoti upravlja nalaganje in razkladanje modelov, ne da bi vam bilo treba izvesti kakršna koli posebna dejanja. Vendar je pomembno razumeti to vedenje, ker vpliva na zakasnitev priklica modela in s tem na celotno zakasnitev od konca do konca.

Možnosti gostovanja v cevovodu

SageMaker ponuja več vrsta primerka možnosti, med katerimi lahko izbirate za uvajanje modelov ML in gradnjo cevovodov sklepanja, ki temeljijo na vašem primeru uporabe, prepustnosti in stroškovnih zahtevah. Izberete lahko na primer primerke, optimizirane za CPE ali GPE, za izgradnjo serijskih sklepnih cevovodov v enem vsebniku ali v več vsebnikih. Vendar pa včasih obstajajo zahteve, ko je za dodatno prilagodljivost zaželena prilagodljivost in podpora za izvajanje modelov na instancah, ki temeljijo na CPE ali GPE, znotraj istega cevovoda.

Zdaj lahko uporabite NVIDIA Triton Inference Server za streženje modelov za sklepanje na SageMaker za heterogene računalniške zahteve. Preveri Namestite hiter in razširljiv AI s strežnikom NVIDIA Triton Inference Server v Amazon SageMaker za dodatne podrobnosti.

zaključek

Ko organizacije odkrijejo in zgradijo nove rešitve, ki jih poganja ML, morajo biti orodja, potrebna za orkestriranje teh cevovodov, dovolj prilagodljiva za podporo na podlagi danega primera uporabe, hkrati pa poenostaviti in zmanjšati tekoče operativne režijske stroške. SageMaker ponuja več možnosti za načrtovanje in izdelavo teh delovnih tokov serijskega sklepanja, ki temeljijo na vaših zahtevah.

Veselimo se vašega odgovora o primerih uporabe, ki jih gradite z uporabo serijskih sklepnih cevovodov. Če imate vprašanja ali povratne informacije, jih delite v komentarjih.


O avtorjih

Oblikovalski vzorci za serijsko sklepanje na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai. Rahul Sharma je višji arhitekt rešitev pri AWS Data Lab, ki strankam AWS pomaga pri oblikovanju in izdelavi rešitev AI/ML. Preden se je pridružil AWS, je Rahul nekaj let preživel v finančnem in zavarovalniškem sektorju, kjer je strankam pomagal zgraditi podatkovne in analitične platforme.

Oblikovalski vzorci za serijsko sklepanje na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai. Anand Prakash je višji arhitekt rešitev pri AWS Data Lab. Anand se osredotoča na pomoč strankam pri načrtovanju in izgradnji rešitev AI/ML, podatkovne analitike in podatkovnih baz, da pospeši njihovo pot do proizvodnje.

Oblikovalski vzorci za serijsko sklepanje na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai. Dhawal Patel je glavni arhitekt strojnega učenja pri AWS. Sodeloval je z organizacijami, od velikih podjetij do srednje velikih zagonskih podjetij, pri problemih, povezanih s porazdeljenim računalništvom in umetno inteligenco. Osredotoča se na poglobljeno učenje, vključno s področja NLP in računalniškega vida. Strankam pomaga doseči visoko zmogljivo sklepanje o modelih na SageMakerju.

Oblikovalski vzorci za serijsko sklepanje na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai. Saurabh Trikande je višji produktni vodja za Amazon SageMaker Inference. Navdušuje ga delo s strankami in omogočanje dostopnejšega strojnega učenja. V prostem času Saurabh uživa v pohodništvu, spoznavanju inovativnih tehnologij, spremlja TechCrunch in preživlja čas s svojo družino.

Časovni žig:

Več od Strojno učenje AWS