Suorita ja optimoi usean mallin johtopäätös Amazon SageMakerin usean mallin päätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Suorita ja optimoi usean mallin päättely Amazon SageMakerin usean mallin päätepisteillä

Amazon Sage Maker Multi-model Endpoint (MME) mahdollistaa useiden mallien kustannustehokkaan käyttöönoton ja isännöinnin yhdessä päätepisteessä ja sitten skaalaamalla päätepistettä vaakasuunnassa mittakaavan saavuttamiseksi. Kuten seuraavasta kuvasta ilmenee, tämä on tehokas tekniikka mallien usean vuokrauksen toteuttamiseen koneoppimisinfrastruktuurissasi. Olemme nähneet, että ohjelmistot palveluna (SaaS) -yritykset käyttävät tätä ominaisuutta soveltaakseen hyperpersonointia ML-malleissaan samalla, kun kustannukset ovat alhaisemmat.

Katso korkeatasoinen yleiskatsaus MME:n toiminnasta AWS Summit -videosta ML:n skaalaaminen seuraavalle tasolle: Tuhansien mallien isännöinti SageMakerissa. Lisätietoja MME:n mahdollistamista hyperpersonoiduista useiden vuokralaisten käyttötapauksista on osoitteessa Koneoppimispäätelmän skaalaaminen usean vuokralaisen SaaS-käyttötapauksissa.

Tämän viestin loppuosassa sukeltamme syvemmälle SageMaker MME:n tekniseen arkkitehtuuriin ja jaamme parhaita käytäntöjä usean mallin päätepisteiden optimoimiseksi.

Käytä MME:lle parhaiten sopivia tapauksia

SageMakerin usean mallin päätepisteet sopivat hyvin useiden mallien isännöimiseen, joita voit palvella jaetun tarjoilusäiliön kautta, eikä sinun tarvitse käyttää kaikkia malleja samanaikaisesti. Päätepisteen ilmentymän muistin koosta riippuen mallia saatetaan toisinaan purkaa muistista uuden mallin lataamisen vuoksi muistin tehokkaan käytön maksimoimiseksi, joten sovelluksesi on siedettävä lataamattomien mallien satunnaisia ​​latenssipiikkejä.

MME on myös suunniteltu yhteiskäyttöön malleihin, jotka käyttävät samaa ML-kehystä, koska ne käyttävät jaettua säilöä useiden mallien lataamiseen. Siksi, jos mallikannassasi on sekoitus ML-kehyksiä (kuten PyTorch ja TensorFlow), SageMakerille omistetut päätepisteet tai usean kontin isännöinti on parempi valinta.

Lopuksi MME sopii sovelluksiin, jotka sietävät satunnaista kylmäkäynnistysviivettä, koska mallit ladataan ensimmäisellä kutsulla ja harvoin käytetyt mallit voidaan ladata muistista uusien mallien lataamisen hyväksi. Siksi, jos sinulla on sekoitus usein ja harvoin käytettyjä malleja, usean mallin päätepiste voi palvella tätä liikennettä tehokkaasti pienemmillä resursseilla ja suuremmilla kustannussäästöillä.

Olemme myös nähneet joitain skenaarioita, joissa asiakkaat ottavat käyttöön MME-klusterin, jossa on riittävästi yhteenlaskettua muistikapasiteettia, jotta ne sopivat kaikkiin malleihinsa. Näin vältytään kokonaan mallien purkamiselta, mutta saavutetaan silti kustannussäästöjä jaetun päättelyinfrastruktuurin ansiosta.

Mallin tarjoiluastiat

Kun käytät SageMaker Inference Toolkit -työkalupakettia tai valmiiksi rakennettua MME:n kanssa yhteensopivaa SageMaker-mallin tarjoilusäiliötä, säiliössäsi on Monimallipalvelin (JVM-prosessi) käynnissä. Helpoin tapa sisällyttää Multi Model Server (MMS) mallin käyttösäilöön on käyttää sitä SageMaker mallin tarjoiluastiat yhteensopiva MME:n kanssa (etsi niitä, joissa on Job Type=inference ja CPU/GPU=CPU). MMS on avoimen lähdekoodin helppokäyttöinen työkalu syväoppimismallien palvelemiseen. Se tarjoaa REST API:n verkkopalvelimella palvelemaan ja hallitsemaan useita malleja yhdellä isännällä. MMS-viestien käyttö ei kuitenkaan ole pakollista. voit toteuttaa oman mallipalvelimesi niin kauan kuin se toteuttaa MME:n vaatimat sovellusliittymät.

Kun sitä käytetään osana MME-alustaa, kaikki ennustavat, lataavat ja purkavat API-kutsut MMS:lle tai omalle mallipalvelimellesi kanavoidaan MME-datatason ohjaimen kautta. API-kutsut datatason ohjaimesta tehdään vain paikallisen isännän kautta, jotta estetään luvaton pääsy ilmentymän ulkopuolelta. Yksi MMS:n tärkeimmistä eduista on, että se mahdollistaa standardoidun käyttöliittymän mallien lataamista, purkamista ja käynnistämistä varten.

MMS:n lisäasetukset

Jos päätät käyttää MMS:ää mallien hallintaan, harkitse seuraavia lisäasetuksia optimoidaksesi MME-esiintymiesi skaalattavuuden ja suorituskyvyn.

Lisää päätelmien rinnakkaisuutta mallia kohti

MMS luo yhden tai useamman Python-työntekijäprosessin mallia kohden arvon perusteella oletus_työntekijät_mallia kohti konfigurointiparametri. Nämä Python-työntekijät käsittelevät jokaisen yksittäisen päättelypyynnön suorittamalla tarjoamasi esikäsittely-, ennustus- ja jälkikäsittelytoiminnot. Lisätietoja on kohdassa mukautetun palvelun käsittelijä GitHub-repo.

Useamman kuin yhden mallityöntekijän käyttö lisää ennusteiden rinnakkaisuutta, joita tietty malli voi palvella. Kuitenkin, kun suuri määrä malleja isännöi ilmentymässä, jossa on suuri määrä suorittimia, sinun tulee suorittaa MME:n kuormitustesti löytääksesi optimaalisen arvon default_workers_per_model estääksesi muistin tai suorittimen resurssien kulumisen.

Suunnittelu liikennepiikkejä varten

Jokaisella päätepisteinstanssin MMS-prosessilla on pyyntöjono, joka voidaan määrittää komennolla job_queue_size parametri (oletus on 100). Tämä määrittää, kuinka monta pyyntöä MMS asettaa jonoon, kun kaikki työntekijäprosessit ovat varattuja. Tämän parametrin avulla voit hienosäätää päätepisteesi ilmentymien vastetta sen jälkeen, kun olet päättänyt optimaalisen työntekijöiden lukumäärän mallia kohti.

Optimaalisessa työntekijä/malli-suhteessa oletusarvon 100 pitäisi riittää useimmissa tapauksissa. Kuitenkin niissä tapauksissa, joissa pyyntöliikenne päätepisteeseen kasvaa epätavallisesti, voit pienentää jonon kokoa, jos haluat, että päätepiste epäonnistuu nopeasti siirtämään hallintaa sovellukselle, tai suurentaa jonon kokoa, jos haluat päätepisteen absorboivan piikin. .

Maksimoi muistiresurssit esiintymää kohden

Kun mallia kohden käytetään useita työntekijöiden prosesseja, oletusarvoisesti jokainen työntekijäprosessi lataa oman mallinsa kopion. Tämä voi vähentää muiden mallien käytettävissä olevaa ilmentymämuistia. Voit optimoida muistin käytön jakamalla yhden mallin työntekijöiden prosessien välillä asettamalla konfigurointiparametrin preload_model=true. Tässä teet kaupan pienennetyn päättelyn rinnakkaisuuden (yhdestä malliinstanssista) paremmalla muistitehokkuudella. Tämä asetus yhdessä useiden työntekijöiden prosessien kanssa voi olla hyvä valinta käyttötapauksiin, joissa mallin viive on alhainen, mutta sinulla on raskaampaa esi- ja jälkikäsittelyä (työntekijäprosessien suorittama) päättelypyyntöä kohden.

Aseta arvot MMS-lisämäärityksille

MMS käyttää config.properties-tiedostoa asetusten tallentamiseen. MMS käyttää seuraavaa järjestystä tämän config.properties-tiedoston paikantamiseen:

  1. Jos MMS_CONFIG_FILE ympäristömuuttuja on asetettu, MMS lataa asetukset ympäristömuuttujasta.
  2. Jos --mms-config parametri välitetään MMS:ään, se lataa konfiguraation parametrista.
  3. Jos on config.properties Nykyisessä kansiossa, jossa käyttäjä aloittaa MMS-viestin, se lataa config.properties tiedosto nykyisestä työhakemistosta.

Jos mitään yllä olevista ei ole määritetty, MMS lataa sisäänrakennetun kokoonpanon oletusarvoilla.

Seuraavassa on esimerkki komentoriviltä MMS-viestin käynnistämisestä nimenomaisella määritystiedostolla:

multi-model-server --start --mms-config /home/mms/config.properties

Tärkeimmät mittarit, joilla voit seurata päätepisteesi suorituskykyä

Tärkeimmät mittarit, jotka voivat auttaa sinua optimoimaan MME:n, liittyvät yleensä suorittimen ja muistin käyttöön ja päättelyviiveeseen. MMS lähettää ilmentymätason mittareita, kun taas viivemittarit tulevat MME:stä. Tässä osiossa käsittelemme tyypillisiä mittareita, joita voit käyttää MME:n ymmärtämiseen ja optimointiin.

Päätepisteinstanssitason mittarit (MMS-mittarit)

Vuodesta luettelo MMS-mittareista, CPUUtilization ja MemoryUtilization voivat auttaa sinua arvioimaan, onko ilmentymäsi tai MME-klusterisi oikean kokoinen. Jos molempien mittareiden prosenttiosuudet ovat 50–80 %, MME on oikean kokoinen.

Tyypillisesti alhainen CPUU-käyttö ja korkea muistin käyttöaste ovat osoitus ylimääräisestä MME-klusterista, koska se osoittaa, että harvoin käytettyjä malleja ei pureta. Tämä voi johtua siitä, että MME:lle on varattu optimaalista suurempi määrä päätepisteesiintymiä, ja siksi harvoin käytettyjen mallien muistissa on käytettävissä optimaalista suurempi kokonaismuisti. Toisaalta näiden mittareiden lähes 100-prosenttinen käyttö tarkoittaa, että klusterisi on alivaroitettu, joten sinun on säädettävä klusterin automaattista skaalauskäytäntöä.

Alustatason mittarit (MME-mittarit)

Vuodesta täydellinen luettelo MME-mittareista, avainmittari, joka voi auttaa sinua ymmärtämään päättelypyyntösi viivettä, on ModelCacheHit. Tämä mittari näyttää niiden kutsupyyntöjen keskimääräisen suhteen, joille malli oli jo ladattu muistiin. Jos tämä suhde on alhainen, se osoittaa, että MME-klusterisi on alivarennettu, koska MME-klusterin kokonaismuistikapasiteetti ei todennäköisesti riitä yksilöllisten mallikutsujen määrään, mikä aiheuttaa sen, että malleja puretaan usein muistista.

Oppitunteja kentältä ja strategioita MME:n optimoimiseksi

Olemme nähneet seuraavat suositukset joistakin MME:n laajamittaisista käyttötavoista useiden asiakkaiden keskuudessa.

Vaakasuuntainen skaalaus pienemmillä instansseilla on parempi kuin pystysuora skaalaus suurempien esiintymien kanssa

Saatat kokea mallikutsujen kuristusta, kun suoritat suuria pyyntöjä sekunnissa (RPS) harvemmissa päätepisteinstanssissa. Kutsujen määrälle sekunnissa on sisäiset rajoitukset (lataukset ja purkaukset, jotka voivat tapahtua samanaikaisesti ilmentymässä), ja siksi on aina parempi käyttää enemmän pienempiä ilmentymiä. Suuremman määrän pienempiä esiintymiä suorittaminen tarkoittaa näiden rajojen suurempaa kokonaiskapasiteettia päätepisteelle.

Toinen pienempien esiintymien vaakasuuntaisen skaalauksen etu on, että pienennät riskiä, ​​että ilmentymän CPU- ja muistiresurssit kuluvat loppuun, kun MMS-viestiä käytetään korkeammalla rinnakkaisuustasolla sekä suuremmalla määrällä malleja muistissa (kuten on kuvattu aiemmin tässä viestissä).

Pukemisen välttäminen on yhteinen vastuu

Selkäsauna MME:ssä on silloin, kun malleja puretaan usein muistista ja ladataan uudelleen riittämättömän muistin vuoksi joko yksittäistapauksessa tai klusterin aggregaatissa.

Käytön näkökulmasta yksittäisten päätepisteinstanssien ja MME-klusterin kokonaiskoon tulee olla oikean kokoisia, jotta varmistetaan, että ilmentymää kohden on käytettävissä riittävästi muistikapasiteettia ja myös klusterin kokoa käyttötapauksessasi. MME-alustan reititinkalusto maksimoi myös välimuistin osuman.

Älä ole aggressiivinen pakkaamalla liian monta mallia harvempiin, suurempiin muistiinstanssiin

Muisti ei ole ainoa tietoinen resurssi ilmentymässä. Muut resurssit, kuten CPU, voivat olla rajoittava tekijä, kuten seuraavissa kuormitustestituloksissa näkyy. Joissakin muissa tapauksissa olemme myös havainneet muiden ydinresurssien, kuten prosessitunnusten, loppuvan ilmentymässä, koska liian monta mallia ladataan ja taustalla oleva ML-kehys (kuten TensorFlow) synnytti mallia kohti, jotka olivat käytettävissä olevien moninkertaisia. vCPU:t.

Seuraava suorituskykytesti näyttää esimerkin suorittimen rajoituksesta, joka vaikuttaa mallin latenssiin. Tässä testissä yksi ilmentymän päätepiste suurella ilmentymällä, vaikka sillä oli enemmän kuin tarpeeksi muistia kaikkien neljän mallin pitämiseen muistissa, tuotti verrattain huonompia mallin viiveitä kuormitettuna verrattuna päätepisteeseen, jossa oli neljä pienempää esiintymää.

Suorita ja optimoi usean mallin johtopäätös Amazon SageMakerin usean mallin päätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

yhden esiintymän päätepistemallin latenssi

Suorita ja optimoi usean mallin johtopäätös Amazon SageMakerin usean mallin päätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

yhden esiintymän päätepisteen suorittimen ja muistin käyttö

Suorita ja optimoi usean mallin johtopäätös Amazon SageMakerin usean mallin päätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

neljän esiintymän päätepistemallin latenssi

Suorita ja optimoi usean mallin johtopäätös Amazon SageMakerin usean mallin päätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

neljän esiintymän päätepisteen suorittimen ja muistin käyttö

Saavuttaaksesi sekä suorituskyvyn että kustannustehokkuuden, kokoa MME-klusterisi suuremmalla määrällä pienempiä esiintymiä, jotka yhdessä antavat sinulle optimaalisen muistin ja prosessorikapasiteetin samalla, kun kustannukset ovat suhteellisen samat, kun muistiinstanssien määrä on pienempi mutta suurempi.

Mentaalinen malli MME:n optimointiin

On neljä keskeistä mittaria, jotka sinun tulee aina ottaa huomioon, kun määrität oikean kokoisen MME:n:

  • Mallien lukumäärä ja koko
  • Tiettynä ajankohtana käytettävien yksilöllisten mallien määrä
  • Esineen tyyppi ja koko
  • Instanssien määrä päätepisteen takana

Aloita kahdesta ensimmäisestä kohdasta, koska ne kertovat kolmannelle ja neljännelle. Jos esimerkiksi yksittäisten mallien lukumäärän tai koon päätepisteen jäljessä ei ole tarpeeksi ilmentymiä, päätepisteen kokonaismuisti on alhainen ja näet pienemmän välimuistin osumasuhteen ja päätepistetasolla huijauksen, koska MME lataa ja purkaa malleja muistiin ja siitä pois usein.

Vastaavasti, jos yksilöllisten mallien kutsut ovat korkeammat kuin kaikkien päätepisteen takana olevien esiintymien kokonaismuisti, näet pienemmän välimuistin osuman. Tämä voi tapahtua myös, jos esiintymien koko (erityisesti muistikapasiteetti) on liian pieni.

Pystysuora skaalaus todella suurilla muistiinstansseilla voi myös johtaa ongelmiin, koska vaikka mallit voivat mahtua muistiin, muut resurssit, kuten suoritin- ja ydinprosessit ja säikeen rajoitukset, voivat olla lopussa. Lataa testi vaakasuora skaalaus esituotannossa saadaksesi optimaalisen määrän ja koon esiintymiä MME:lle.

Yhteenveto

Tässä viestissä sait syvemmän käsityksen MME-alustasta. Opit mihin teknisiin käyttötapauksiin MME sopii ja kävit läpi MME-alustan arkkitehtuurin. Sait syvemmän ymmärryksen kunkin komponentin roolista MME-arkkitehtuurissa ja siitä, minkä komponenttien toimintaan voit suoraan vaikuttaa. Lopuksi tarkastelit tarkemmin konfigurointiparametreja, joita voit säätää optimoidaksesi MME:n käyttötilanteeseesi, ja mittareita, joita sinun tulee seurata optimaalisen suorituskyvyn ylläpitämiseksi.

Aloita MME:n käyttö tarkistamalla Amazon SageMaker Multi-Model -päätepisteet käyttämällä XGBoostia ja Isännöi useita malleja yhdessä säilössä yhden päätepisteen takana.


kirjailijasta

Suorita ja optimoi usean mallin johtopäätös Amazon SageMakerin usean mallin päätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Syed Jaffry on AWS:n pääratkaisuarkkitehti. Hän työskentelee useiden yritysten kanssa keskikokoisista organisaatioista, suurista yrityksistä, rahoituspalveluista ja ISV:istä auttaakseen niitä rakentamaan ja käyttämään kustannustehokkaita ja skaalautuvia AI/ML-sovelluksia pilvessä.

Suorita ja optimoi usean mallin johtopäätös Amazon SageMakerin usean mallin päätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Saurabh Trikande on Amazon SageMaker Inferencen -tuotepäällikkö. Hän on intohimoinen asiakkaiden kanssa työskentelyyn, ja häntä motivoi tavoite demokratisoida koneoppimista. Hän keskittyy ydinhaasteisiin, jotka liittyvät monimutkaisten ML-sovellusten käyttöönottoon, usean vuokralaisen ML-malleihin, kustannusten optimointiin ja syvän oppimismallien käyttöönoton helpottamiseen. Vapaa-ajallaan Saurabh nauttii vaeltamisesta, innovatiivisten teknologioiden oppimisesta, TechCrunchien seuraamisesta ja perheensä kanssa viettämisestä.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen