Esittelyssä Amazon SageMaker Serverless Inference Benchmarking Toolkit PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Esittelyssä Amazon SageMaker Serverless Inference Benchmarking Toolkit

Amazon SageMaker -palvelimeton johtopäätös on tarkoitukseen rakennettu päättelyvaihtoehto, jonka avulla voit helposti ottaa käyttöön ja skaalata koneoppimismalleja (ML). Se tarjoaa pay-per-use -mallin, joka on ihanteellinen palveluille, joissa päätepistekutsut ovat harvinaisia ​​ja arvaamattomia. Toisin kuin reaaliaikainen isännöintipäätepiste, jota tukee pitkäkestoinen ilmentymä, palvelimettomien päätepisteiden laskentaresurssit tarjotaan pyynnöstä, mikä eliminoi tarpeen valita ilmentymätyyppejä tai hallita skaalauskäytäntöjä.

Seuraava korkean tason arkkitehtuuri havainnollistaa, kuinka palvelimeton päätepiste toimii. Asiakas kutsuu päätepisteen, jota tukee AWS-hallittu infrastruktuuri.

Palvelimettomat päätepisteet ovat kuitenkin alttiita kylmäkäynnistyksille muutamassa sekunnissa, joten ne sopivat paremmin ajoittaiseen tai arvaamattomaan työtaakkaan.

Auttaaksemme määrittämään, onko palvelimeton päätepiste oikea käyttöönottovaihtoehto kustannusten ja suorituskyvyn näkökulmasta, olemme kehittäneet SageMaker Serverless Inference Benchmarking Toolkit, joka testaa erilaisia ​​päätepistekokoonpanoja ja vertaa optimaalisinta vastaavaan reaaliaikaiseen isännöintiinstanssiin.

Tässä viestissä esittelemme työkalupakin ja annamme yleiskatsauksen sen kokoonpanosta ja tuloksista.

Ratkaisun yleiskatsaus

Voit ladata työkalupakin ja asentaa sen osoitteesta GitHub repo. Aloittaminen on helppoa: asenna vain kirjasto, luo a SageMaker malli, ja anna mallisi nimi sekä JSON-riveillä muotoiltu tiedosto, joka sisältää esimerkkijoukon kutsuparametreja, mukaan lukien hyötykuorman runko ja sisältötyyppi. Mukavuustoiminto on muunnettu esimerkkikutsuargumenttien luettelo JSON-linjatiedostoksi tai binääritiedostoiksi, kuten kuville, videoille tai äänelle.

Asenna työkalusarja

Asenna ensin benchmarking-kirjasto Python-ympäristöösi käyttämällä pip:tä:

pip install sm-serverless-benchmarking

Voit suorittaa seuraavan koodin osoitteesta Amazon SageMaker Studio ilmentymä, SageMaker-muistikirjan ilmentymä, tai mikä tahansa tapaus ohjelmallinen pääsy AWS:ään ja sopivaan AWS-henkilöllisyyden ja käyttöoikeuksien hallinta (IAM) käyttöoikeudet. Tarvittavat IAM-oikeudet on dokumentoitu GitHub repo. Katso lisäohjeet ja esimerkkikäytännöt IAM:lle osoitteesta Kuinka Amazon SageMaker toimii IAM: n kanssa. Tämä koodi suorittaa vertailuarvon oletusparametrijoukolla mallissa, joka odottaa CSV-syötettä kahdella esimerkkitietueella. On hyvä käytäntö tarjota edustava joukko esimerkkejä, joiden avulla voidaan analysoida, kuinka päätepiste toimii eri syöttöhyötykuormilla.

from sm_serverless_benchmarking import benchmark
from sm_serverless_benchmarking.utils import convert_invoke_args_to_jsonl
model_name = ""
example_invoke_args = [
        {'Body': '1,2,3,4,5', "ContentType": "text/csv"},
        {'Body': '6,7,8,9,10', "ContentType": "text/csv"}
        ]
example_args_file = convert_invoke_args_to_jsonl(example_invoke_args,
output_path=".")
r = benchmark.run_serverless_benchmarks(model_name, example_args_file)

Lisäksi voit suorittaa benchmarkin SageMaker Processing -työnä, mikä voi olla luotettavampi vaihtoehto pidempään kestäville vertailuarvoille, joissa on suuri määrä kutsuja. Katso seuraava koodi:

from sm_serverless_benchmarking.sagemaker_runner import run_as_sagemaker_job
run_as_sagemaker_job(
                    role="",
                    model_name="",
                    invoke_args_examples_file="",
                    )

Huomaa, että tästä aiheutuu lisäkustannuksia ml.m5.large SageMaker Processing -esiintymän käyttämisestä vertailun keston ajan.

Molemmat menetelmät hyväksyvät joukon määritettäviä parametreja, kuten luettelon vertailuarvoista muistikokoonpanoista ja kunkin kokoonpanon kutsujen lukumäärän. Useimmissa tapauksissa oletusasetusten pitäisi riittää lähtökohtana, mutta viittaavat kohtaan GitHub repo saadaksesi täydellisen luettelon ja kuvaukset jokaisesta parametrista.

Vertailuanalyysin kokoonpano

Ennen kuin tutkit, mitä vertailuarvo tekee ja mitä tuloksia se tuottaa, on tärkeää ymmärtää muutama keskeinen käsite palvelimettomien päätepisteiden määrittämisessä.

On kaksi keskeistä konfigurointivaihtoehtoa: MemorySizeInMB ja MaxConcurrency. MemorySizeInMB määrittää ilmentymälle varatun muistin määrän, ja se voi olla 1024 Mt, 2048 Mt, 3072 Mt, 4096 Mt, 5120 Mt tai 6144 Mt. VCPU:iden määrä skaalautuu myös suhteessa varatun muistin määrään. The MaxConcurrency parametri säätää, kuinka monta samanaikaista pyyntöä päätepiste pystyy palvelemaan. Kanssa MaxConcurrency 1, palvelimeton päätepiste voi käsitellä vain yhden pyynnön kerrallaan.

Yhteenvetona voidaan todeta, että MemorySizeInMB parametri tarjoaa pystysuuntaisen skaalautuvuuden mekanismin, jonka avulla voit säätää muistia ja laskea resursseja palvelemaan suurempia malleja, kun taas MaxConcurrency tarjoaa mekanismin horisontaaliseen skaalautumiseen, jolloin päätepisteesi voi käsitellä useampia samanaikaisia ​​pyyntöjä.

Päätepisteen käyttökustannukset määräytyvät suurelta osin muistin koon mukaan, eikä enimmäissamanaikaisuuden lisäämiseen liity kustannuksia. Kaikkien päätepisteiden enimmäisyhtenäisyydelle on kuitenkin aluekohtainen tiliraja. Viitata SageMaker-päätepisteet ja kiintiöt uusimmat rajat.

Benchmarking-tulokset

Tämän vuoksi palvelimettoman päätepisteen vertailuanalyysin tavoitteena on määrittää kustannustehokkain ja luotettavin muistikokoasetus ja minimisamanaikaisuus, joka pystyy käsittelemään odotettuja liikennemalleja.

Oletusarvoisesti työkalu suorittaa kaksi vertailuarvoa. Ensimmäinen on vakauden vertailuarvo, joka ottaa käyttöön päätepisteen jokaiselle määritetylle muistikokoonpanolle ja kutsuu jokaisen päätepisteen toimitetuilla näytehyötykuormilla. Tämän vertailuarvon tavoitteena on määrittää tehokkain ja vakaa MemorySizeInMB-asetus. Vertailuarvo kaappaa kutsuviiveet ja laskee kunkin päätepisteen odotetun kutsukohtaisen hinnan. Sitten se vertaa kustannuksia vastaavaan reaaliaikaiseen isännöintiinstanssiin.

Kun benchmarking on valmis, työkalu luo useita tulosteita määritetyllä tavalla result_save_path hakemisto seuraavalla hakemistorakenteella:

├── benchmarking_report
├── concurrency_benchmark_raw_results
├── concurrency_benchmark_summary_results
├── cost_analysis_summary_results
├── stability_benchmark_raw_results
├── stability_benchmark_summary_results

- benchmarking_report hakemisto sisältää konsolidoidun raportin, joka sisältää kaikki tässä viestissä esittelemämme tiivistelmät. Lisähakemistot sisältävät raaka- ja välitulosteita, joita voit käyttää lisäanalyyseihin. Viittaavat GitHub repo saadaksesi tarkemman kuvauksen jokaisesta tulostusartefaktista.

Tarkastellaan muutamaa todellista benchmarking-tulosta päätepisteelle, joka palvelee tietokonenäön MobileNetV2 TensorFlow -mallia. Jos haluat toistaa tämän esimerkin, katso esimerkkimuistikirjoja hakemistosta GitHub-reposissa.

Konsolidoidun raportin ensimmäinen tulos on yhteenvetotaulukko, joka sisältää vähimmäis-, keskiarvo-, keski- ja enimmäisviivemittaukset jokaiselle. MemorySizeInMB onnistunut muistikoon määritys. Kuten seuraavassa taulukossa näkyy, keskimääräinen kutsun viive (invocation_latency_mean) jatkoi paranemistaan, kun muistimäärityksiä nostettiin 3072 megatavuun, mutta lakkasi parantumasta sen jälkeen.

Esittelyssä Amazon SageMaker Serverless Inference Benchmarking Toolkit PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Korkean tason kuvaavien tilastojen lisäksi tarjotaan kaavio, joka näyttää asiakkaan havaitseman latenssin jakautumisen kullekin muistikokoonpanolle. Jälleen voimme havaita, että 1024 Mt:n kokoonpano ei ole yhtä tehokas kuin muut vaihtoehdot, mutta suorituskyvyssä ei ole olennaista eroa 2048:n ja sitä uudemmissa kokoonpanoissa.

Esittelyssä Amazon SageMaker Serverless Inference Benchmarking Toolkit PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

amazonin pilvikello jokaiseen päätepisteen konfiguraatioon liittyvät mittarit tarjotaan myös. Yksi keskeinen mittari tässä on ModelSetupTime, joka mittaa kuinka kauan mallin lataaminen kesti, kun päätepiste kutsuttiin kylmässä tilassa. Mittari ei välttämättä aina näy raportissa, kun päätepiste käynnistetään lämpimässä tilassa. A cold_start_delay -parametri on käytettävissä määrittämään, kuinka monta sekuntia lepotilassa on ennen vertailuarvon aloittamista käyttöönotetussa päätepisteessä. Tämän parametrin asettaminen suurempaan arvoon, kuten 600 sekuntiin, lisää kylmän tilan kutsun todennäköisyyttä ja parantaa mahdollisuuksia saada tämä mittari. Lisäksi tämä mittari kerätään paljon todennäköisemmin samanaikaisen kutsun vertailuarvolla, jota käsittelemme myöhemmin tässä osiossa.

Seuraavassa taulukossa näkyvät CloudWatchin keräämät tiedot kullekin muistikokoonpanolle.

Esittelyssä Amazon SageMaker Serverless Inference Benchmarking Toolkit PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Seuraava kaavio näyttää eri muistikokoonpanojen suorituskyvyn ja kustannusten kompromissit. Yksi rivi näyttää arvioidut kustannukset päätepisteen kutsumisesta miljoona kertaa ja toisella keskimääräinen vastausviive. Nämä mittarit voivat kertoa päätöksestäsi siitä, mikä päätepistekokoonpano on kustannustehokkain. Tässä esimerkissä näemme, että keskimääräinen viive tasoittuu 1 megatavun jälkeen, kun taas kustannukset kasvavat edelleen, mikä osoittaa, että tälle mallille optimaalinen muistikoon määritys olisi 2048.

Esittelyssä Amazon SageMaker Serverless Inference Benchmarking Toolkit PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Kustannusten ja vakauden vertailuarvon lopullinen tulos on suositeltu muistikokoonpano sekä taulukko, jossa verrataan palvelimettoman päätepisteen käyttökustannuksia vastaavaan SageMaker-isännöintiinstanssiin. Kerättyjen tietojen perusteella työkalu päätti, että 2048 Mt:n kokoonpano on optimaalinen tälle mallille. Vaikka 3072-kokoonpano tarjoaa noin 10 millisekuntia paremman viiveen, se lisää kustannuksia 30 %, 4.55 dollarista 5.95 dollariin miljoonaa pyyntöä kohden. Lisäksi tulos osoittaa, että palvelimeton päätepiste toisi jopa 1 % säästöjä verrattuna vastaavaan reaaliaikaiseen isännöintiinstanssiin, kun kuukausittaisia ​​kutsupyyntöjä on alle miljoona, ja se katkaisee reaaliaikaisen päätepisteen 88.72 miljoonan pyynnön jälkeen.

Esittelyssä Amazon SageMaker Serverless Inference Benchmarking Toolkit PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Toisen tyyppinen vertailuarvo on valinnainen ja testaa erilaisia MaxConcurency asetukset eri liikennemalleissa. Tämä vertailuarvo suoritetaan yleensä käyttämällä optimaalista MemorySizeInMB kokoonpano vakauden vertailuarvosta. Tämän vertailuarvon kaksi avainparametria on luettelo MaxConcurency testattavat asetukset sekä luettelo asiakaskertoimista, jotka määrittävät simuloitujen samanaikaisten asiakkaiden määrän, joilla päätepiste testataan.

Esimerkiksi asettamalla concurrency_benchmark_max_conc parameter kohtaan [4, 8] ja concurrency_num_clients_multiplier kohtaan [1, 1.5, 2], kaksi päätepistettä käynnistetään: yksi MaxConcurency 4:stä ja toinen 8:sta. Jokainen päätepiste on sitten vertailuarvo (MaxConcurency x-kerroin) simuloitujen samanaikaisten asiakkaiden lukumäärä, mikä päätepisteelle, jonka samanaikaisuus on 4, tarkoittaa lataustestin vertailuarvoja 4, 6 ja 8 samanaikaisen asiakkaan kanssa.

Tämän vertailuarvon ensimmäinen tulos on taulukko, joka näyttää viivemittarit, kuristuspoikkeukset ja tapahtumat sekunnissa -mittarit (TPS), jotka liittyvät kuhunkin. MaxConcurrency konfigurointi eri määrällä samanaikaisia ​​asiakkaita. Nämä mittarit auttavat määrittämään sopivan MaxConcurrency asetus käsittelemään odotettua liikennekuormaa. Seuraavasta taulukosta nähdään, että päätepiste, joka on määritetty enimmäissamanaikaisuudelle 8, pystyi käsittelemään jopa 16 samanaikaista asiakasta, mutta vain kahdella kuristuspoikkeuksella 2,500 24 kutsusta, jotka tehtiin keskimäärin XNUMX tapahtumalla sekunnissa.

Esittelyssä Amazon SageMaker Serverless Inference Benchmarking Toolkit PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Seuraava tulossarja tarjoaa jokaiselle kaavion MaxConcurrency asetus, joka näyttää latenssin jakautumisen eri kuormituksissa. Tässä esimerkissä voimme nähdä, että päätepiste, jossa on a MaxConcurrency asetus 4 pystyi käsittelemään kaikki pyynnöt onnistuneesti jopa 8 samanaikaisen asiakkaan kanssa kutsumisviiveen minimaalisella lisäyksellä.

Esittelyssä Amazon SageMaker Serverless Inference Benchmarking Toolkit PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Lopullinen tulos tarjoaa taulukon CloudWatch-mittareilla jokaiselle MaxConcurrency kokoonpano. Toisin kuin edellinen taulukko, joka näyttää viiveen jakautumisen kullekin muistikokoonpanolle, joka ei välttämättä aina näytä kylmäkäynnistystä ModelSetupTime mittari, tämä mittari näkyy paljon todennäköisemmin tässä taulukossa, koska kutsupyyntöjä on enemmän ja MaxConcurrency.

Esittelyssä Amazon SageMaker Serverless Inference Benchmarking Toolkit PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Yhteenveto

Tässä viestissä esittelimme SageMaker Serverless Inference Benchmarking Toolkit -työkalupaketin ja annoimme yleiskatsauksen sen kokoonpanosta ja tuloksista. Työkalu voi auttaa sinua tekemään tietoisemman päätöksen palvelimettomasta päätelmästä testaamalla erilaisia ​​kokoonpanoja realistisilla liikennemalleilla. Kokeile benchmarking-työkalupakkia omilla malleillasi nähdäksesi itse suorituskyvyn ja kustannussäästöt, joita voit odottaa ottamalla käyttöön palvelimettoman päätepisteen. Katso GitHub repo lisädokumentaatiota ja esimerkkimuistikirjoja varten.

Lisäresurssit


Tietoja kirjoittajista

Esittelyssä Amazon SageMaker Serverless Inference Benchmarking Toolkit PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Simon Zamarin on tekoäly / ML-ratkaisuarkkitehti, jonka pääpaino on asiakkaiden auttamisessa hyödyntämään arvoa tietovaroistaan. Vapaa-ajallaan Simon nauttii viettää aikaa perheen kanssa, lukea sci-fiä ja työskennellä erilaisissa DIY-taloprojekteissa.

Esittelyssä Amazon SageMaker Serverless Inference Benchmarking Toolkit PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Dhawal Patel on AWS:n koneoppimisarkkitehti. Hän on työskennellyt organisaatioiden kanssa suurista yrityksistä keskikokoisiin startup-yrityksiin hajautettuun tietojenkäsittelyyn ja tekoälyyn liittyvissä ongelmissa. Hän keskittyy syväoppimiseen, mukaan lukien NLP- ja tietokonenäköalueet. Hän auttaa asiakkaita tekemään korkean suorituskyvyn mallipäätelmiä SageMakerissa.

Esittelyssä Amazon SageMaker Serverless Inference Benchmarking Toolkit PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Rishabh Ray Chaudhury on Amazon SageMakerin vanhempi tuotepäällikkö, joka keskittyy koneoppimispäätelmään. Hän on intohimoinen innovointiin ja uusien kokemusten rakentamiseen AWS:n koneoppimisasiakkaille, jotta he voivat skaalata heidän työtaakkaansa. Vapaa-ajallaan hän nauttii matkustamisesta ja ruoanlaitosta. Löydät hänet LinkedIn.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen