Kujundage mustrid Amazon SageMaker PlatoBlockchain Data Intelligence'i jadajärelduste tegemiseks. Vertikaalne otsing. Ai.

Kujundage mustrid Amazon SageMakeris järjestikuste järelduste tegemiseks

Kuna masinõpe (ML) läheb peavoolu ja laiemalt kasutusele võetakse, on ML-põhised rakendused muutumas üha tavalisemaks mitmesuguste keerukate äriprobleemide lahendamiseks. Nende keerukate äriprobleemide lahendus nõuab sageli mitme ML-mudeli kasutamist. Neid mudeleid saab järjestikku kombineerida erinevate ülesannete täitmiseks, nagu eeltöötlus, andmete teisendamine, mudeli valik, järelduste genereerimine, järelduste konsolideerimine ja järeltöötlus. Organisatsioonid vajavad nende keerukate ML-töövoogude korraldamiseks paindlikke valikuid. Jadajärelduskonveierid on üks selline kujundusmuster nende töövoogude järjestamiseks etappideks, kusjuures iga samm rikastab või töötleb edasi eelmiste sammude genereeritud väljundit ja edastab väljundi konveieri järgmisele etapile.

Lisaks peaksid need järjestikused järelduskonveierid pakkuma järgmist.

  • Paindlik ja kohandatud juurutamine (sõltuvused, algoritmid, äriloogika ja nii edasi)
  • Korratav ja ühtlane tootmise rakendamiseks
  • Diferentseerimata raskete tõstmine infrastruktuuri haldamise minimeerimisega

Selles postituses vaatleme mõningaid jadajärelduskonveierite levinumaid kasutusjuhtumeid ja käime läbi mõned rakendusvõimalused iga kasutusjuhtumi jaoks, kasutades Amazon SageMaker. Samuti arutame kõigi nende rakendusvõimaluste kaalutlusi.

Järgmises tabelis on kokkuvõte erinevatest jadajärelduste kasutusjuhtudest, juurutamise kaalutlustest ja valikutest. Neid arutatakse selles postituses.

Kasuta Case'it Kasutusjuhtumi kirjeldus Peamised kaalutlused Üldine rakendamise keerukus Soovitatavad rakendusvalikud Näidiskoodide esemed ja märkmikud
Jadajärelduskonveier (kaasa arvatud eel- ja järeltöötlusetapid) Järelduste konveier peab sissetulevad andmed eeltöötlema enne järelduste genereerimiseks väljaõppinud mudeli käivitamist ja seejärel genereeritud järelduste järeltöötlust, et neid saaksid allvoolurakendused hõlpsasti tarbida Rakendamise lihtsus Madal Järelduskonteiner, kasutades SageMakeri järelduste tööriistakomplekti Rakendage koolitatud PyTorchi mudel
Jadajärelduskonveier (kaasa arvatud eel- ja järeltöötlusetapid) Järelduste konveier peab sissetulevad andmed eeltöötlema enne järelduste genereerimiseks väljaõppinud mudeli käivitamist ja seejärel genereeritud järelduste järeltöötlust, et neid saaksid allvoolurakendused hõlpsasti tarbida Lahtisidumine, lihtsustatud juurutamine ja täiendused Keskmine SageMakeri järelduskonveier Kohandatud konteinerite ja xgBoostiga järelduste torujuhe
Seeriamudelite ansambel Järelduskonveier peab hostima ja järjestama mitut mudelit järjestikku, nii et iga mudel parandaks eelmisega genereeritud järeldust enne lõpliku järelduse loomist Lahtisidumine, lihtsustatud juurutamine ja täiendused, paindlikkus mudeliraamistiku valikul Keskmine SageMakeri järelduskonveier Järelduskonveier Scikit-learni ja lineaarse õppijaga
Jadajärelduskonveier (sihitud mudeli kutsumisega rühmast) Järelduskonveier peab lisaks eel- ja järeltöötlustoimingutele kutsuma välja konkreetse kohandatud mudeli juurutatud mudelite rühmast, mis põhineb päringu omadustel või kulude optimeerimiseks Kulude optimeerimine ja kohandamine Suur SageMakeri järelduskonveier mitme mudeli lõpp-punktidega (MME) Amazon SageMakeri mitme mudeli lõpp-punktid, kasutades lineaarset õppijat

Järgmistes osades käsitleme iga kasutusjuhtumit üksikasjalikumalt.

Järelduskonteinerid kasutades järelduskonteinereid

Jadajärelduskonveieri kasutusjuhtudel on nõuded sissetulevate andmete eeltöötlemiseks enne eelkoolitatud ML-mudeli käivitamist järelduste genereerimiseks. Lisaks võib mõnel juhul olla vaja genereeritud järeldusi täiendavalt töödelda, et neid saaksid allavoolurakendused hõlpsasti kasutada. See on tavaline stsenaarium kasutusjuhtudel, kus voogesituse andmeallikat tuleb reaalajas töödelda, enne kui sellele mudelit saab sobitada. Kuid see kasutusjuhtum võib ilmneda ka partii järelduste tegemiseks.

SageMaker pakub võimalust kohandada järelduskonteinereid ja kasutada neid järjestikuse järelduskonveieri loomiseks. Järelduskonteinerid kasutavad SageMakeri järelduste tööriistakomplekt ja on üles ehitatud SageMaker Multi Model Server (MMS), mis pakub paindlikku mehhanismi ML-mudelite teenindamiseks. Järgmine diagramm illustreerib viitemustrit, kuidas rakendada järelduskonteinerite abil järjestikust järelduskonveieri.

SageMaker MMS eeldab Pythoni skripti, mis rakendab mudeli laadimiseks, sisendandmete eeltöötluseks, mudelist prognooside hankimiseks ja väljundandmete järeltöötluseks järgmisi funktsioone:

  • input_fn() – vastutab sisendandmete deserialiseerimise ja eeltöötluse eest
  • model_fn() – vastutab treenitud mudeli esemetest laadimise eest Amazoni lihtne salvestusteenus (Amazon S3)
  • ennusta_fn() – vastutab mudeli põhjal järelduste tegemise eest
  • output_fn() – vastutab väljundandmete (järelduste) järjestamise ja järeltöötluse eest

Järelduste konteineri kohandamise üksikasjalikud juhised leiate jaotisest Oma järelduskonteineri kohandamine.

Järelduskonteinerid on ideaalne kujundusmuster järjestikuste järelduste torujuhtmete kasutusjuhtudel, võttes arvesse järgmisi esmaseid kaalutlusi.

  • Kõrge ühtekuuluvus – Töötlemisloogika ja vastav mudel juhivad ühtset ärifunktsionaalsust ja peavad asuma ühes kohas
  • Madal üldine latentsusaeg – Aeg, mis kulus järelduspäringu tegemise ja vastuse saamise vahel

Jadajärelduskonveieris on töötlemise loogika ja mudel kapseldatud samasse konteinerisse, nii et suur osa kutsumiskutseid jääb konteinerisse. See aitab vähendada hüpete koguarvu, mille tulemuseks on parem üldine latentsusaeg ja konveieri reageerimisvõime.

Samuti võivad kasutusjuhtudel, kus rakendamise lihtsus on oluline kriteerium, abiks olla järelduskonteinerid, kus torujuhtme erinevad töötlemisetapid on paigutatud samasse konteinerisse.

Jadajärelduskonveier, kasutades SageMakeri järelduskonveieri

Jadajärelduste konveieri kasutusjuhtumi teine ​​variatsioon nõuab selgemat lahtisidumist konveieri eri etappide vahel (nagu andmete eeltöötlus, järelduste genereerimine, andmete järeltöötlus ning vormindamine ja serialiseerimine). Selle põhjuseks võivad olla mitmed põhjused:

  • Lahtisidumine – Torujuhtme erinevatel etappidel on selgelt määratletud eesmärk ja neid tuleb nende aluseks olevate sõltuvuste tõttu juhtida eraldi konteinerites. See aitab hoida ka torujuhtme hästi struktureeritud.
  • raamistikud – Torujuhtme erinevad etapid kasutavad konkreetseid otstarbekohaseid raamistikke (nt scikit või Spark ML) ja seetõttu tuleb neid kasutada eraldi konteinerites.
  • Ressursi eraldamine – Torujuhtme erinevatel etappidel on erinevad ressursitarbimise nõuded ja seetõttu tuleb neid suurema paindlikkuse ja kontrolli tagamiseks kasutada eraldi konteinerites.

Veelgi enam, veidi keerukamate jadajärelduskonveierite puhul võib päringu töötlemiseks ja järelduse genereerimiseks olla kaasatud mitu etappi. Seetõttu võib toimimise seisukohast olla kasulik majutada need etapid eraldi konteineritesse, et tagada parem funktsionaalne isolatsioon ning hõlbustada lihtsamat versiooniuuendust ja täiustusi (muutke ühte sammu ilma teisi mudeleid või töötlemisetappe mõjutamata).

Kui teie kasutusjuhtum vastab mõnele neist kaalutlustest, a SageMakeri järelduskonveier pakub lihtsat ja paindlikku võimalust järjestikuse järelduskonveieri ehitamiseks. Järgmine diagramm illustreerib võrdlusmustrit, kuidas rakendada jadajärelduskonveieri, kasutades mitut etappi, mis on hostitud spetsiaalsetes konteinerites, kasutades SageMakeri järelduskonveieri.

ml9154-järeldustoru

SageMakeri järelduskonveier koosneb 2–15 konteinerist koosnevast lineaarsest jadast, mis töötlevad andmete järeldamistaotlusi. Järelduskonveier pakub võimalust kasutada eelkoolitatud SageMakeri sisseehitatud algoritme või kohandatud algoritme, mis on pakitud Dockeri konteineritesse. Konteinerid on hostitud samas aluseksemplaris, mis aitab vähendada üldist latentsust ja minimeerida kulusid.

Järgmine koodilõik näitab, kuidas mitut töötlemisetappi ja mudelit saab kombineerida jadajärelduskonveieri loomiseks.

Alustuseks ehitame ja täpsustame Spark ML-i ja XGBoost-põhiseid mudeleid, mida kavatseme torujuhtme osana kasutada:

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)

Seejärel paigutatakse mudelid torujuhtme mudeli määratluses järjestikku:

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])

Seejärel juurutatakse järelduskonveier reaalajas järelduste tegemiseks lõpp-punkti taha, määrates hosti ML-i eksemplaride tüübi ja arvu:

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

Kogu kokkupandud järelduskonveieri võib pidada SageMakeri mudeliks, mida saate kasutada kas reaalajas prognooside tegemiseks või partii teisenduste töötlemiseks otse ilma välise eeltöötluseta. Järelduskonveieri mudelis käsitleb SageMaker kutseid välisest rakendusest pärinevate HTTP-päringute jadana. Konveieri esimene konteiner käsitleb esialgset päringut, teostab teatud töötlust ja saadab seejärel vahevastuse taotlusena konveieri teisele konteinerile. See juhtub iga konteineri puhul ja lõpuks tagastab lõpliku vastuse helistavale kliendirakendusele.

SageMakeri järelduste torujuhtmeid hallatakse täielikult. Kui konveier on juurutatud, installib SageMaker kõik määratletud konteinerid ja käitab neid igas Amazon Elastic Compute Cloud (Amazon EC2) eksemplarid, mis on ette nähtud lõpp-punkti või pakkteisenduse töö osana. Lisaks, kuna konteinerid asuvad ühes ja samas EC2 eksemplaris, väheneb konveieri üldine latentsusaeg.

Jadamudelite ansambel, kasutades SageMakeri järelduskonveieri

Ansambli mudel on ML-i lähenemisviis, kus mitu ML-mudelit kombineeritakse ja neid kasutatakse järeldusprotsessi osana lõplike järelduste genereerimiseks. Ansamblimudelite motivatsioonid võivad muu hulgas hõlmata täpsuse parandamist, mudeli tundlikkuse vähendamist konkreetsete sisendfunktsioonide suhtes ja üksiku mudeli nihke vähendamist. Selles postituses keskendume jadamudelite ansambliga seotud kasutusjuhtudele, kus mitu ML-mudelit kombineeritakse järjestikku jadajärelduskonveieri osana.

Vaatleme konkreetset näidet, mis on seotud seeriamudelite ansambliga, kus peame rühmitama kasutaja üleslaaditud pildid teatud teemade või teemade alusel. See torujuhe võib koosneda kolmest ML-mudelist:

  • Mudel 1 – Aktsepteerib kujutise sisendiks ja hindab pildikvaliteeti pildi eraldusvõime, orientatsiooni ja muu põhjal. Seejärel proovib see mudel pildikvaliteeti tõsta ja saadab töödeldud pildid, mis vastavad teatud kvaliteedilävele, järgmisele mudelile (mudel 2).
  • Mudel 2 – Aktsepteerib Model 1 kaudu kinnitatud pilte ja teostab pildituvastus objektide, kohtade, inimeste, teksti ja muude kohandatud toimingute ja mõistete tuvastamiseks piltidel. Mudeli 2 väljund, mis sisaldab tuvastatud objekte, saadetakse mudelile 3.
  • Mudel 3 – Aktsepteerib mudeli 2 väljundit ja täidab loomuliku keele töötlemise (NLP) ülesandeid, nagu teemade modelleerimine piltide rühmitamiseks teemade alusel. Näiteks saab pilte rühmitada asukoha või tuvastatud inimeste alusel. Väljund (rühmitused) saadetakse tagasi kliendirakendusse.

Järgmine diagramm illustreerib võrdlusmustrit, kuidas rakendada mitut ML-mudelit, mis on hostitud jadamudelite ansamblis, kasutades SageMakeri järelduskonveieri.

ml9154-mudel-ansambel

Nagu varem mainitud, hallatakse SageMakeri järelduskonveieri, mis võimaldab teil keskenduda ML-mudeli valikule ja arendamisele, vähendades samal ajal jadaansambli konveieri ehitamisega seotud eristumatut rasket tõstmist.

Lisaks on siinkohal asjakohased ka mõned kaalutlused, mida arutati varem lahtisidumise, algoritmi ja mudeli väljatöötamise raamistiku valiku ning juurutamise kohta. Näiteks kuna iga mudelit majutatakse eraldi konteineris, saate paindlikult valida ML-raamistiku, mis sobib kõige paremini iga mudeli ja teie üldise kasutusjuhtumiga. Lisaks saate lahtisidumise ja töötamise seisukohast jätkata üksikute etappide uuendamist või muutmist palju lihtsamalt, ilma et see mõjutaks teisi mudeleid.

SageMakeri järelduskonveier on samuti integreeritud SageMakeri mudeliregister mudelite kataloogimiseks, versioonide loomiseks, metaandmete haldamiseks ja tootmiskeskkondadesse juhitud juurutamiseks, et toetada järjepidevaid parimaid töötavasid. SageMakeri järelduskonveier on samuti integreeritud Amazon CloudWatch võimaldada mitme konteineri mudelite jälgimist järelduskonteinerites. Saate ka nähtavuse saada reaalajas mõõdikud et paremini mõista iga konveieri väljakutsumist ja latentsust, mis aitab tõrkeotsingul ja ressursside optimeerimisel.

Jadajärelduskonveier (sihitud mudeli kutsumisega rühmast), kasutades SageMakeri järelduskonveieri

SageMakeri mitme mudeli lõpp-punktid (MME) pakuvad kulutõhusat lahendust suure hulga ML-mudelite juurutamiseks ühe lõpp-punkti taga. Mitme mudeli lõpp-punktide kasutamise motiivid võivad hõlmata konkreetse kohandatud mudeli käivitamist päringu omadustel (nt päritolu, geograafiline asukoht, kasutaja isikupärastamine jne) või lihtsalt mitme mudeli hostimist sama lõpp-punkti taga, et saavutada kulude optimeerimine.

Kui juurutate mitu mudelit ühes mitme mudeliga toega lõpp-punktis, jagavad kõik mudelid arvutusressursse ja mudeli serveerimiskonteinerit. SageMakeri järelduskonveieri saab juurutada MME-s, kus üks konveieri konteineritest saab dünaamiliselt teenindada päringuid, mis põhinevad konkreetsel välja kutsutaval mudelil. Konveieri vaatenurgast on mudelitel identsed eeltöötlusnõuded ja neil on sama funktsioonide komplekt, kuid neid on õpetatud kohanema konkreetse käitumisega. Järgmine diagramm illustreerib selle integreeritud torujuhtme toimimise võrdlusmustrit.

ml9154-mme

MME-de puhul peaks klientrakendusest pärinev järelduspäring määrama sihtmudeli, mida tuleb käivitada. Konveieri esimene konteiner käsitleb esialgset päringut, teostab teatud töötlust ja saadab seejärel vahevastuse taotlusena konveieri teisele konteinerile, mis majutab mitut mudelit. Järelduspäringus määratud sihtmudeli põhjal käivitatakse mudel järelduse genereerimiseks. Loodud järeldus saadetakse edasiseks töötlemiseks järgmisesse torujuhtme konteinerisse. See juhtub iga järgneva konteineri puhul ja lõpuks tagastab SageMaker lõpliku vastuse helistavale kliendirakendusele.

S3 ämbris on mitu mudeliartefakti. Konkreetse mudeli käivitamisel laadib SageMaker selle dünaamiliselt lõpp-punkti majutavasse konteinerisse. Kui mudel on konteineri mällu juba laaditud, on kutsumine kiirem, kuna SageMaker ei pea mudelit Amazon S3-st alla laadima. Kui eksemplari mälukasutus on kõrge ja käivitatakse uus mudel ja see tuleb seetõttu laadida, laaditakse kasutamata mudelid mälust maha. Laadimata mudelid jäävad aga eksemplari salvestusmahusse ja neid saab hiljem uuesti konteineri mällu laadida, ilma et neid S3 ämbrist uuesti alla laaditaks.

Üks peamisi kaalutlusi MME-de kasutamisel on mudeli kutsumise latentsuskäitumise mõistmine. Nagu varem mainitud, laaditakse mudelid käivitamisel dünaamiliselt lõpp-punkti hostiva eksemplari konteineri mällu. Seetõttu võib mudeli käivitamine esmakordsel käivitamisel kauem aega võtta. Kui mudel on juba eksemplari konteineri mälus, on järgnevad kutsumised kiiremad. Kui eksemplari mälukasutus on kõrge ja tuleb laadida uus mudel, laaditakse kasutamata mudelid maha. Kui eksemplari salvestusmaht on täis, kustutatakse kasutamata mudelid salvestusmahust. SageMaker haldab täielikult mudelite peale- ja mahalaadimist, ilma et peaksite mingeid konkreetseid toiminguid tegema. Siiski on oluline seda käitumist mõista, kuna see mõjutab mudeli kutsumise latentsust ja seega ka üldist lõpplatentsust.

Torujuhtme hostimise võimalused

SageMaker pakub mitmeid eksemplari tüüp valikud, mille hulgast valida ML-mudelite juurutamiseks ja järelduskonveierite loomiseks, mis põhinevad teie kasutusjuhtumil, läbilaskevõimel ja kulunõuetel. Näiteks saate valida CPU- või GPU-ga optimeeritud eksemplare, et luua jadajärelduskonveierid ühe konteineri või mitme konteineri vahel. Siiski on mõnikord nõudeid, mille puhul soovitakse paindlikkuse ja tuge mudelite käitamiseks protsessoril või GPU-l põhinevatel eksemplaridel samas torujuhtmes, et suurendada paindlikkust.

Nüüd saate kasutada NVIDIA Triton Inference Serverit, et pakkuda mudeleid SageMakeris heterogeensete arvutusnõuete jaoks järelduste tegemiseks. Kontrollige Rakendage Amazon SageMakeris kiire ja skaleeritav AI NVIDIA Triton Inference Serveriga täiendavaid üksikasju.

Järeldus

Kuna organisatsioonid avastavad ja loovad uusi ML-i toel põhinevaid lahendusi, peaksid nende torujuhtmete korraldamiseks vajalikud tööriistad olema piisavalt paindlikud, et toetada antud kasutusjuhtumit, lihtsustades ja vähendades samal ajal jooksvaid üldkulusid. SageMaker pakub mitut võimalust nende jadajärelduste töövoogude kujundamiseks ja koostamiseks vastavalt teie vajadustele.

Ootame teielt kuulda, milliseid kasutusjuhtumeid te järjestikuste järelduskonveierite abil loote. Kui teil on küsimusi või tagasisidet, jagage neid kommentaarides.


Autoritest

Kujundage mustrid Amazon SageMaker PlatoBlockchain Data Intelligence'i jadajärelduste tegemiseks. Vertikaalne otsing. Ai. Rahul Sharma on AWS Data Labi vanemlahenduste arhitekt, kes aitab AWS-i klientidel AI/ML-lahendusi kavandada ja luua. Enne AWS-iga liitumist on Rahul töötanud mitu aastat finants- ja kindlustussektoris, aidates klientidel luua andme- ja analüüsiplatvorme.

Kujundage mustrid Amazon SageMaker PlatoBlockchain Data Intelligence'i jadajärelduste tegemiseks. Vertikaalne otsing. Ai. Anand Prakash on AWS Data Labi vanemlahenduste arhitekt. Anand keskendub klientide abistamisele AI/ML-i, andmeanalüütika- ja andmebaasilahenduste kavandamisel ja ehitamisel, et kiirendada nende tootmist.

Kujundage mustrid Amazon SageMaker PlatoBlockchain Data Intelligence'i jadajärelduste tegemiseks. Vertikaalne otsing. Ai. Dhawal Patel on AWS-i peamine masinõppearhitekt. Ta on töötanud hajutatud andmetöötluse ja tehisintellektiga seotud probleemide lahendamisel organisatsioonidega alates suurettevõtetest kuni keskmise suurusega idufirmadeni. Ta keskendub süvaõppele, sealhulgas NLP ja Computer Vision domeenidele. Ta aitab klientidel teha SageMakeris suure jõudlusega mudeli järeldusi.

Kujundage mustrid Amazon SageMaker PlatoBlockchain Data Intelligence'i jadajärelduste tegemiseks. Vertikaalne otsing. Ai. Saurabh Trikande on Amazon SageMaker Inference'i vanemtootejuht. Ta on kirglik klientidega töötamise ja masinõppe kättesaadavamaks muutmise vastu. Vabal ajal naudib Saurabh matkamist, uuenduslike tehnoloogiate õppimist, TechCrunchi jälgimist ja perega aega veetmist.

Ajatempel:

Veel alates AWS-i masinõpe