Amazon Sage Maker usean mallin päätepisteet (MME) tarjoavat skaalautuvan ja kustannustehokkaan tavan ottaa käyttöön suuri määrä koneoppimismalleja (ML). Se antaa sinulle mahdollisuuden ottaa käyttöön useita ML-malleja yhdessä käyttösäiliössä yhden päätepisteen takana. Sieltä SageMaker hallinnoi mallien lataamista ja purkamista sekä skaalausresursseja puolestasi liikennemalliesi perusteella. Hyödyt isännöintiresurssien jakamisesta ja uudelleenkäytöstä sekä suuren mallimäärän hallinnan pienentyneestä käyttötaakasta.
Marraskuussa 2022, MME:t lisäsivät tukea GPU:lles, jonka avulla voit ajaa useita malleja yhdessä GPU-laitteessa ja skaalata GPU-esiintymiä yhden päätepisteen taakse. Tämä tyydyttää MME:n voimakkaan kysynnän syvähermoverkkomalleille (DNN), jotka hyötyvät kiihdytetystä laskennasta GPU:illa. Näitä ovat tietokonenäkö (CV), luonnollisen kielen käsittely (NLP) ja generatiiviset tekoälymallit. Syitä vaatimukseen ovat mm.
- DNN-mallit ovat tyypillisesti suuria ja monimutkaisia ja kasvavat edelleen nopeasti. Esimerkkinä NLP-malleista monet niistä ylittävät miljardeja parametreja, mikä edellyttää, että GPU:t täyttävät alhaisen latenssin ja korkean suorituskyvyn vaatimukset.
- Olemme havainneet lisääntyneen tarpeen mukauttaa näitä malleja tarjoamaan yksittäisille käyttäjille hyperpersonoituja kokemuksia. Kun näiden mallien määrä kasvaa, tarvitaan helpompaa ratkaisua useiden mallien käyttöönottamiseksi ja käyttöönottamiseksi mittakaavassa.
- GPU-esiintymät ovat kalliita, ja haluat käyttää näitä ilmentymiä mahdollisimman paljon uudelleen GPU-käytön maksimoimiseksi ja käyttökustannusten vähentämiseksi.
Vaikka kaikki nämä syyt viittaavat siihen, että GPU:lla varustetut MME:t ovat ihanteellinen vaihtoehto DNN-malleille, on suositeltavaa suorittaa kuormitustestaus oikean päätepistekokoonpanon löytämiseksi, joka täyttää käyttötapausvaatimukset. Monet tekijät voivat vaikuttaa kuormitustestauksen tuloksiin, kuten ilmentymän tyyppi, esiintymien lukumäärä, mallin koko ja mallin arkkitehtuuri. Lisäksi kuormitustestaus voi auttaa ohjaamaan automaattisia skaalausstrategioita käyttämällä oikeita mittareita iteratiivisten yritys- ja virhemenetelmien sijaan.
Näistä syistä kokosimme tämän postauksen auttaaksemme sinua suorittamaan kunnollisen kuormitustestauksen GPU:lla varustetuissa MME:issä ja löytämään parhaan kokoonpanon ML-käyttötapaukseesi. Jaamme kuormitustestaustulokset joistakin suosituimmista DNN-malleista NLP:ssä ja CV:ssä, joita isännöidään MME:illä eri ilmentymätyypeissä. Teemme yhteenvedon testituloksistamme saaduista näkemyksistä ja johtopäätöksistä, jotta voit tehdä tietoisen päätöksen omien käyttöönottojesi määrittämisestä. Matkan varrella jaamme myös suosittelemamme lähestymistapamme MME:iden kuormitustestaukseen GPU:lla. Suositellut työkalut ja tekniikka määrittävät ladattavien mallien optimaalisen määrän esiintymätyyppiä kohden ja auttavat sinua saavuttamaan parhaan hinta-suorituskyvyn.
Ratkaisun yleiskatsaus
Johdatus MME:ihin ja GPU:lla varustettuihin MME:ihin on kohdassa Luo monimallipäätepiste ja Suorita useita syväoppimismalleja GPU:ssa Amazon SageMaker -monimallipäätepisteiden avulla. Tämän viestin kuormitustestausta varten voit ladata esimerkkikoodimme osoitteesta GitHub repo toistaaksesi tulokset tai käyttääksesi sitä mallina omien malliesi vertailuun. Repossa on kaksi muistikirjaa: yksi CV-mallien kuormitustestaukseen ja toinen NLP-malliin. Useita erikokoisia ja -arkkitehtuurisia malleja vertailtiin erityyppisille GPU-esiintymille: ml.g4dn.2xlarge, ml.g5.2xlarge ja ml.p3.2xlarge. Tämän pitäisi tarjota kohtuullinen poikkileikkaus kunkin esiintymän ja mallityypin suorituskyvystä seuraavien mittareiden perusteella:
- GPU-muistiin ladattavissa olevien mallien enimmäismäärä
- Päästä päähän -vastauksen latenssi havaittiin asiakaspuolella jokaisessa päättelykyselyssä
- Kyselyjen suurin suoritusnopeus sekunnissa, jonka päätepiste voi käsitellä ilman virhettä
- Nykyisten käyttäjien enimmäismäärä esiintymää kohden ennen epäonnistuneen pyynnön havaitsemista
Seuraavassa taulukossa on lueteltu testatut mallit.
Käytä asiaa | Mallin nimi | Koko levyllä | Parametrien määrä |
CV | resnet50 |
100Mb | 25M |
CV | convnext_base |
352Mb | 88M |
CV | vit_large_patch16_224 |
1.2Gb | 304M |
NLP | bert-base-uncased |
436Mb | 109M |
NLP | roberta-large |
1.3Gb | 335M |
Seuraavassa taulukossa luetellaan testatut GPU-esiintymät.
Esimerkkilaji | GPU-tyyppi | GPU:iden määrä | GPU-muisti (GiB) |
ml.g4dn.2xlarge | NVIDIA T4 -näytönohjaimet | 1 | 16 |
ml.g5.2xsuuri | NVIDIA A10G Tensor Core GPU | 1 | 24 |
ml .p3.2xlarge | NVIDIA® V100 Tensor Core GPU | 1 | 16 |
Kuten aiemmin mainittiin, koodiesimerkki voidaan ottaa käyttöön muihin malleihin ja ilmentymätyyppeihin.
Huomaa, että MME:t tukevat tällä hetkellä vain yksittäisiä GPU-esiintymiä. Katso luettelo tuetuista ilmentymätyypeistä kohdasta Tuetut algoritmit, puitteet ja ilmentymät.
Vertailumenettely koostuu seuraavista vaiheista:
- Hae esikoulutettu malli mallikeskuksesta.
- Valmistele malliartefaktti näytettäväksi SageMaker MME:issä (katso Suorita useita syväoppimismalleja GPU:ssa Amazon SageMaker -monimallipäätepisteiden avulla Lisätietoja).
- Ota SageMaker MME käyttöön GPU-esiintymässä.
- Määritä mallien enimmäismäärä, jotka voidaan ladata GPU-muistiin tietyn kynnyksen sisällä.
- Käytä Locust Load Testing Frameworkia simuloidaksesi liikennettä, joka käynnistää satunnaisesti ilmentymään ladattuja malleja.
- Kerää tietoa ja analysoi tulokset.
- Vaihtoehtoisesti toista vaiheet 2–6 sen jälkeen, kun olet kääntänyt mallin TensorRT:hen.
Vaiheet 4 ja 5 antavat syvemmän tarkastelun. SageMaker GPU MME:n mallit ladataan muistiin dynaamisesti. Siksi vaiheessa 4 lataamme alkuperäisen malliartefaktin kohteeseen Amazonin yksinkertainen tallennuspalvelu (Amazon S3) ja käynnistä malli ladataksesi sen muistiin. Ensimmäisen kutsun jälkeen mittaamme kulutetun GPU-muistin määrän, teemme kopion alkuperäisestä mallista, kutsumme mallin kopion ladataksesi sen muistiin ja mittaamme uudelleen kulutetun GPU-muistin kokonaismäärän. Tätä prosessia toistetaan, kunnes GPU-muistin käyttöaste on saavutettu. Vertailuarvoa varten asetimme kynnysarvoksi 90 % tarjotaksemme kohtuullisen muistipuskurin suurempien erien päättelemiseen tai jättää tilaa muiden harvemmin käytettyjen mallien lataamiseen.
Simuloi käyttäjäliikennettä
Kun olemme määrittäneet mallien lukumäärän, voimme suorittaa kuormitustestin käyttämällä Locust Load Testing Framework. Kuormitustesti simuloi käyttäjien pyyntöjä satunnaisiin malleihin ja mittaa automaattisesti mittareita, kuten vastausviiveen ja suorituskyvyn.
Locust tukee mukautettuja kuormitustestimuotoja, joiden avulla voit määrittää mukautettuja liikennemalleja. Tässä vertailussa käytetty muoto on esitetty seuraavassa kaaviossa. Ensimmäisen 30 sekunnin aikana päätepiste lämmitetään 10 samanaikaisen käyttäjän kanssa. 30 sekunnin kuluttua uusia käyttäjiä syntyy kaksi sekunnissa ja saavuttaa 20 samanaikaista käyttäjää 40 sekunnin kohdalla. Päätepistettä verrataan sitten tasaisesti 20 samanaikaisen käyttäjän kanssa 60 sekunnin merkkiin asti, jolloin Locust alkaa jälleen lisätä käyttäjiä kahdella sekunnissa 40 samanaikaisen käyttäjän kanssa. Tätä nousevan ja jatkuvan testauksen mallia toistetaan, kunnes päätepiste nostetaan 200 samanaikaiseen käyttäjään. Käyttötapauksestasi riippuen saatat haluta säätää kuormitustestimuotoa tiedostossa locust_benchmark_sm.py, jotta se kuvastaisi tarkemmin odotettuja liikennemalleja. Jos esimerkiksi aiot isännöidä suurempia kielimalleja, kuormitustesti 200 samanaikaisen käyttäjän kanssa ei ehkä ole mahdollista mallille, jota isännöidään yhdessä ilmentymässä, ja siksi saatat haluta vähentää käyttäjien määrää tai lisätä esiintymien määrää. Voit myös haluta pidentää kuormitustestin kestoa, jotta voit mitata tarkemmin päätepisteen vakauden pidemmällä aikavälillä.
stages = [
{"duration": 30, "users": 10, "spawn_rate": 5},
{"duration": 60, "users": 20, "spawn_rate": 1},
{"duration": 90, "users": 40, "spawn_rate": 2},
…
]
Huomaa, että olemme tehneet päätepisteen vertailuarvoja vain homogeenisilla malleilla, jotka kaikki toimivat johdonmukaisella palvelupohjalla joko PyTorchin tai TensorRT:n avulla. Tämä johtuu siitä, että MME:t soveltuvat parhaiten isännöimään monia malleja, joilla on samanlaiset ominaisuudet, kuten muistin kulutus ja vasteaika. benchmarking-mallit GitHub repo voidaan silti käyttää määrittämään, tuottaisiko heterogeenisten mallien palveleminen MME:issä halutun suorituskyvyn ja vakauden.
CV-mallien vertailutulokset
Käytä cv-benchmark.ipynb-muistikirjaa suorittaaksesi kuormitustestauksen tietokonenäkömalleille. Voit säätää valmiiksi koulutetun mallin nimen ja ilmentymän tyypin parametreja suorituskyvyn kuormitustestaukseen eri malli- ja ilmentymätyyppiyhdistelmillä. Testasimme tarkoituksella kolmea CV-mallia eri kokoluokissa pienimmästä suurimpaan: resnet50
(25 milj.), convnext_base
(88M) ja vit_large_patch16_224
(304 milj.). Sinun on ehkä mukauduttava koodiin, jos valitset mallin tämän luettelon ulkopuolelta. Lisäksi muistikirja asettaa syötetyn kuvan muodon oletuksena 224x224x3-kuvatensoriksi. Muista säätää syötteen muotoa vastaavasti, jos haluat vertailla malleja, jotka ottavat erikokoisen kuvan.
Kun olet käynyt läpi koko muistikirjan, saat useita suorituskykyanalyysin visualisointeja. Kaksi ensimmäistä kuvaa mallin suorituskykyä samanaikaisten käyttäjien lisääntymisen suhteen. Seuraavat kuvat ovat mallille luotuja esimerkkivisualisointeja ResNet50
malli, joka toimii palvelimella ml.g4dn.2xlarge, vertaamalla PyTorchia (vasemmalla) ja TensorRT:tä (oikealla). Yläviivakaaviot näyttävät mallin latenssin ja suorituskyvyn y-akselilla, kun samaan aikaan työskentelevien asiakastyöntekijöiden määrä kasvaa x-akselilla. Alapalkkikaaviot näyttävät onnistuneiden ja epäonnistuneiden pyyntöjen määrän.
Tarkastelemalla kaikkia testaamiamme tietokonenäkömalleja havaitsimme seuraavan:
- Latenssi (millisekunteina) on suurempi ja suorituskyky (pyyntöjä sekunnissa) pienempi isommissa malleissa (
resnet50 > convnext_base > vit_large_patch16_224
). - Latenssin kasvu on verrannollinen käyttäjien määrään, kun enemmän pyyntöjä on jonossa päättelypalvelimelle.
- Suuret mallit kuluttavat enemmän laskentaresursseja ja voivat saavuttaa suurimman suorituskyvyn vähemmällä käyttäjämäärällä kuin pienemmät mallit. Tämä havaitaan kanssa
vit_large_patch16_224
malli, joka tallensi ensimmäisen epäonnistuneen pyynnön 140 samanaikaiselle käyttäjälle. Koska se on huomattavasti suurempi kuin kaksi muuta testattua mallia, sillä oli myös eniten epäonnistuneita pyyntöjä korkeammalla samanaikaisuudella. Tämä on selvä signaali siitä, että päätepisteen on skaalattava yhden esiintymän pidemmälle, jos tarkoituksena on tukea yli 140:tä samanaikaista käyttäjää.
Muistikirjan ajon lopussa saat myös yhteenvedon PyTorch vs. TensorRT -malleista kullekin neljälle keskeiselle mittarille. Vertailutesteissämme kaikki CV-mallit paransivat mallien suorituskykyä TensorRT-kokoelman jälkeen. Ottamalla meidän ResNet50
mallia jälleen esimerkkinä, latenssi väheni 32 %, kun taas suorituskyky kasvoi 18 %. Vaikka samanaikaisten käyttäjien enimmäismäärä pysyi samana ResNet50
, molemmissa kahdessa mallissa tuettujen samanaikaisten käyttäjien määrä kasvoi 14 %. TensorRT-suorituskyvyn parannus tuli kuitenkin suuremman muistin käytön kustannuksella, mikä johti vähemmän MME:iden lataamiin malleihin. Vaikutus koskee enemmän malleja, jotka käyttävät konvoluutiohermoverkkoa (CNN). Itse asiassa ResNet50-mallimme kulutti noin kaksi kertaa enemmän GPU-muistia PyTorchista TensorRT:hen, mikä johti 50 % vähemmän ladattuja malleja (46 vs. 23). Diagnosoimme tämän käyttäytymisen tarkemmin seuraavassa osiossa.
NLP-mallien vertailutulokset
Suorita NLP-mallien kuormitustesti muistikirjalla nlp-benchmark.ipynb. Muistikirjan asennuksen pitäisi näyttää hyvin samanlaiselta. Testasimme kahta NLP-mallia: bert-base-uncased (109M) ja roberta-large (335M). Valmiiksi koulutettu malli ja tokenisaattori ladataan molemmat Hugging Face -keskittimestä, ja testihyötykuorma luodaan tokenisaattorista näytemerkkijonon avulla. Sekvenssin enimmäispituus on oletusarvoisesti 128. Jos haluat testata pidempiä merkkijonoja, muista säätää tämä parametri. NLP-muistikirjan läpi ajaminen luo samat visualisoinnit: Pytorch (vasemmalla) vs TensorRT (oikealla).
Näistä havaitsimme vielä enemmän TensorRT:n suorituskykyetuja NLP-malleille. Ottamalla roberta-large
mallissa esim. ml.g4dn.2xlarge tapauksessa päättelyviive pieneni dramaattisesti 180 millisekunnista 56 millisekuntiin (70 % parannus), kun taas suorituskyky parani 406 % 33 pyynnöstä 167:ään. käyttäjät kasvoivat 50 %; epäonnistuneita pyyntöjä havaittiin vasta, kun saavutimme 180 samanaikaista käyttäjää, kun alkuperäisen PyTorch-mallin vastaava luku oli 120. Muistin käytön suhteen näimme TensorRT:lle ladatun yhden mallin vähemmän (yhdeksästä mallista kahdeksaan). Negatiivinen vaikutus on kuitenkin paljon pienempi verrattuna siihen, mitä havaitsimme CNN-pohjaisilla malleilla.
Analyysi muistin käytöstä
Seuraava taulukko näyttää täydellisen analyysin muistin käytön vaikutuksista PyTorchista TensorRT:hen. Mainitsimme aiemmin, että CNN-pohjaiset mallit vaikuttavat negatiivisemmin. The ResNet50
mallilla oli yli 50 % vähemmän ladattujen mallien määrä kaikissa kolmessa GPU-instanssityypissä. Convnext_base
oli vieläkin suurempi, noin 70 %. Toisaalta vaikutus muuntajamalleihin on pieni tai sekalainen. vit_large_patch16_224
ja roberta-large
keskimäärin noin 20 % ja 3 % bert-base-uncased
parannus oli noin 40 %.
Tarkasteltaessa kaikkia datapisteitä kokonaisuutena ylivertaisen suorituskyvyn latenssin, suorituskyvyn ja luotettavuuden suhteen sekä vähäisen vaikutuksen osalta ladattujen mallien enimmäismäärään, suosittelemme TensorRT-mallia muuntajapohjaisiin malliarkkitehtuureihin. Uskomme, että CNN-verkkojen kustannustehokkuusanalyysiä tarvitaan lisää sen varmistamiseksi, että suorituskyvyn hyöty on suurempi kuin lisäisännöintiinfrastruktuurin kustannukset.
ML-käyttötapaus | arkkitehtuuri | Mallin nimi | Esimerkkilaji | Puitteet | Max mallit ladattu | ero (%) | Keskim. ero (%) |
CV | CNN | Resnet50 |
ml.g4dn.2xlarge | PyTorch | 46 | -50% | -50% |
TensorRT | 23 | ||||||
ml.g5.2xsuuri | PyTorch | 70 | -51% | ||||
TensorRT | 34 | ||||||
ml .p3.2xlarge | PyTorch | 49 | -51% | ||||
TensorRT | 24 | ||||||
Convnext_base |
ml.g4dn.2xlarge | PyTorch | 33 | -50% | -70% | ||
TensorRT | 10 | ||||||
ml.g5.2xsuuri | PyTorch | 50 | -70% | ||||
TensorRT | 16 | ||||||
ml .p3.2xlarge | PyTorch | 35 | -69% | ||||
TensorRT | 11 | ||||||
Muuntaja | vit_large_patch16_224 |
ml.g4dn.2xlarge | PyTorch | 10 | -30% | -20% | |
TensorRT | 7 | ||||||
ml.g5.2xsuuri | PyTorch | 15 | -13% | ||||
TensorRT | 13 | ||||||
ml .p3.2xlarge | PyTorch | 11 | -18% | ||||
TensorRT | 9 | ||||||
NLP | Roberta-large |
ml.g4dn.2xlarge | PyTorch | 9 | -11% | -3% | |
TensorRT | 8 | ||||||
ml.g5.2xsuuri | PyTorch | 13 | 0% | ||||
TensorRT | 13 | ||||||
ml .p3.2xlarge | PyTorch | 9 | 0% | ||||
TensorRT | 9 | ||||||
Bert-base-uncased |
ml.g4dn.2xlarge | PyTorch | 26 | 62% | 40% | ||
TensorRT | 42 | ||||||
ml.g5.2xsuuri | PyTorch | 39 | 28% | ||||
TensorRT | 50 | ||||||
ml .p3.2xlarge | PyTorch | 28 | 29% | ||||
TensorRT | 36 |
Seuraavissa taulukoissa luetellaan täydelliset vertailutuloksemme kaikille mittareille kaikissa kolmessa GPU-instanssityypissä.
ml.g4dn.2xlarge |
||||||||||||
Käytä asiaa | arkkitehtuuri | Mallin nimi | Parametrien määrä | Puitteet | Max mallit ladattu | ero (%) | Latenssi (ms) | ero (%) | Suorituskyky (qps) | ero (%) | Max samanaikaisia käyttäjiä | ero (%) |
CV | CNN | resnet50 |
25M | PyTorch | 46 | -50% | 164 | -32% | 120 | 18% | 180 | NA |
TensorRT | 23 | . | 111 | . | 142 | . | 180 | . | ||||
convnext_base |
88M | PyTorch | 33 | -70% | 154 | -22% | 64 | 102% | 140 | 14% | ||
TensorRT | 10 | . | 120 | . | 129 | . | 160 | . | ||||
Muuntaja | vit_large_patch16_224 |
304M | PyTorch | 10 | -30% | 425 | -69% | 26 | 304% | 140 | 14% | |
TensorRT | 7 | . | 131 | . | 105 | . | 160 | . | ||||
NLP | bert-base-uncased |
109M | PyTorch | 26 | 62% | 70 | -39% | 105 | 142% | 140 | 29% | |
TensorRT | 42 | . | 43 | . | 254 | . | 180 | . | ||||
roberta-large |
335M | PyTorch | 9 | -11% | 187 | -70% | 33 | 406% | 120 | 50% | ||
TensorRT | 8 | . | 56 | . | 167 | . | 180 | . |
ml.g5.2xsuuri |
||||||||||||
Käytä asiaa | arkkitehtuuri | Mallin nimi | Parametrien määrä | Puitteet | Max mallit ladattu | ero (%) | Latenssi (ms) | ero (%) | Suorituskyky (qps) | ero (%) | Max samanaikaisia käyttäjiä | ero (%) |
CV | CNN | resnet50 |
25M | PyTorch | 70 | -51% | 159 | -31% | 146 | 14% | 180 | 11% |
TensorRT | 34 | . | 110 | . | 166 | . | 200 | . | ||||
convnext_base |
88M | PyTorch | 50 | -68% | 149 | -23% | 134 | 13% | 180 | 0% | ||
TensorRT | 16 | . | 115 | . | 152 | . | 180 | . | ||||
Muuntaja | vit_large_patch16_224 |
304M | PyTorch | 15 | -13% | 149 | -22% | 105 | 35% | 160 | 25% | |
TensorRT | 13 | . | 116 | . | 142 | . | 200 | . | ||||
NLP | bert-base-uncased |
109M | PyTorch | 39 | 28% | 65 | -29% | 183 | 38% | 180 | 11% | |
TensorRT | 50 | . | 46 | . | 253 | . | 200 | . | ||||
roberta-large |
335M | PyTorch | 13 | 0% | 97 | -38% | 121 | 46% | 140 | 14% | ||
TensorRT | 13 | . | 60 | . | 177 | . | 160 | . |
ml .p3.2xlarge |
||||||||||||
Käytä asiaa | arkkitehtuuri | Mallin nimi | Parametrien määrä | Puitteet | Max mallit ladattu | ero (%) | Latenssi (ms) | ero (%) | Suorituskyky (qps) | ero (%) | Max samanaikaisia käyttäjiä | ero (%) |
CV | CNN | resnet50 |
25M | PyTorch | 49 | -51% | 197 | -41% | 94 | 18% | 160 | -12% |
TensorRT | 24 | . | 117 | . | 111 | . | 140 | . | ||||
convnext_base |
88M | PyTorch | 35 | -69% | 178 | -23% | 89 | 11% | 140 | 14% | ||
TensorRT | 11 | .137 | 137 | . | 99 | . | 160 | . | ||||
Muuntaja | vit_large_patch16_224 |
304M | PyTorch | 11 | -18% | 186 | -28% | 83 | 23% | 140 | 29% | |
TensorRT | 9 | . | 134 | . | 102 | . | 180 | . | ||||
NLP | bert-base-uncased |
109M | PyTorch | 28 | 29% | 77 | -40% | 133 | 59% | 140 | 43% | |
TensorRT | 36 | . | 46 | . | 212 | . | 200 | . | ||||
roberta-large |
335M | PyTorch | 9 | 0% | 108 | -44% | 88 | 60% | 160 | 0% | ||
TensorRT | 9 | . | 61 | . | 141 | . | 160 | . |
Seuraavassa taulukossa on yhteenveto kaikkien esiintymätyyppien tuloksista. Instanssi ml.g5.2xlarge tarjoaa parhaan suorituskyvyn, kun taas ml.p3.2xlarge ilmentymä on yleensä huonompi, vaikka se on kallein näistä kolmesta. G5- ja g4dn-esiintymät osoittavat parhaan arvon päättelytyökuormitukselle.
Käytä asiaa | arkkitehtuuri | Mallin nimi | Parametrien määrä | Puitteet | Esimerkkilaji | Max mallit ladattu | ero (%) | Latenssi (ms) | ero (%) | Suorituskyky (qps) | ero (%) | Max samanaikaisia käyttäjiä |
CV | CNN | resnet50 |
25M | PyTorch | ml.g5.2xsuuri | 70 | . | 159 | . | 146 | . | 180 |
. | . | . | . | . | ml .p3.2xlarge | 49 | . | 197 | . | 94 | . | 160 |
. | . | . | . | . | ml.g4dn.2xlarge | 46 | . | 164 | . | 120 | . | 180 |
CV | CN | resnet50 |
25M | TensorRT | ml.g5.2xsuuri | 34 | -51% | 110 | -31% | 166 | 14% | 200 |
. | . | . | . | . | ml .p3.2xlarge | 24 | -51% | 117 | -41% | 111 | 18% | 200 |
. | . | . | . | . | ml.g4dn.2xlarge | 23 | -50% | 111 | -32% | 142 | 18% | 180 |
NLP | Muuntaja | bert-base-uncased |
109M | pytorch | ml.g5.2xsuuri | 39 | . | 65 | . | 183 | . | 180 |
. | . | . | . | . | ml .p3.2xlarge | 28 | . | 77 | . | 133 | . | 140 |
. | . | . | . | . | ml.g4dn.2xlarge | 26 | . | 70 | . | 105 | . | 140 |
NLP | Muuntaja | bert-base-uncased |
109M | TensorRT | ml.g5.2xsuuri | 50 | 28% | 46 | -29% | 253 | 38% | 200 |
. | . | . | . | . | ml .p3.2xlarge | 36 | 29% | 46 | -40% | 212 | 59% | 200 |
. | . | . | . | . | ml.g4dn.2xlarge | 42 | 62% | 43 | -39% | 254 | 142% | 180 |
Puhdistaa
Kun olet suorittanut lataustestin, puhdista luodut resurssit välttääksesi lisäkuluja. Tärkeimmät resurssit ovat Amazon S3:n SageMaker-päätepisteet ja malliartefaktitiedostot. Muistikirjan tiedostoissa on seuraava puhdistuskoodi, joka auttaa sinua poistamaan ne:
Yhteenveto
Tässä viestissä jaoimme testitulokset ja analyysimme erilaisille syville hermoverkkomalleille, jotka toimivat SageMaker-monimallipäätepisteissä GPU:n kanssa. Jakamiemme tulosten ja oivallusten pitäisi tarjota kohtuullinen poikkileikkaus eri mittareiden ja esiintymätyyppien suorituskyvystä. Prosessin aikana esittelimme myös suosittelemamme lähestymistapamme vertailutestauksen suorittamiseen SageMaker MME:ille, joissa on GPU. Tarjoamamme työkalut ja esimerkkikoodi voivat auttaa sinua käynnistämään vertailutestauksen nopeasti ja tekemään tietoisempia päätöksiä siitä, kuinka kustannustehokkaasti isännöidä satoja DNN-malleja kiihdytetyssä laskentalaitteistossa. Aloita omien malliesi vertailuanalyysi GPU:n MME-tuella katsomalla Tuetut algoritmit, puitteet ja ilmentymät ja GitHub repo lisäesimerkkejä ja asiakirjoja.
Tietoja kirjoittajista
James Wu on AWS:n vanhempi AI/ML-asiantuntijaratkaisuarkkitehti. auttaa asiakkaita suunnittelemaan ja rakentamaan AI/ML-ratkaisuja. Jamesin työ kattaa laajan valikoiman ML-käyttötapauksia, ja hänen ensisijaisena kiinnostuksena ovat tietokonenäkö, syväoppiminen ja ML:n skaalaaminen koko yrityksessä. Ennen AWS:ään liittymistään James oli arkkitehti, kehittäjä ja teknologiajohtaja yli 10 vuoden ajan, joista 6 vuotta suunnittelussa ja 4 vuotta markkinointi- ja mainontateollisuudessa.
Vikram Elango on AI/ML Specialist Solutions -arkkitehti Amazon Web Servicesissä, jonka kotipaikka on Virginia USA. Vikram auttaa rahoitus- ja vakuutusalan asiakkaita suunnittelulla, ajattelujohtajuudella rakentamaan ja ottamaan käyttöön koneoppimissovelluksia mittakaavassa. Hän keskittyy tällä hetkellä luonnollisen kielen käsittelyyn, vastuulliseen tekoälyyn, päätelmien optimointiin ja ML:n skaalaukseen koko yrityksessä. Vapaa-ajallaan hän nauttii matkustamisesta, vaeltamisesta, ruoanlaitosta ja telttailusta perheensä kanssa.
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.
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ä.
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- Platoblockchain. Web3 Metaverse Intelligence. Tietoa laajennettu. Pääsy tästä.
- Lähde: https://aws.amazon.com/blogs/machine-learning/achieve-high-performance-at-scale-for-model-serving-using-amazon-sagemaker-multi-model-endpoints-with-gpu/
- 10
- 100
- 11
- 2022
- 7
- a
- kyky
- Meistä
- kiihtyi
- saatavilla
- sen mukaisesti
- tarkasti
- Saavuttaa
- poikki
- lisä-
- Lisäksi
- lisä-
- Lisäksi
- hyväksytty
- mainonta
- Jälkeen
- AI
- AI / ML
- algoritmit
- Kaikki
- mahdollistaa
- Vaikka
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- määrä
- analyysi
- analysoida
- ja
- Toinen
- sovellukset
- lähestymistapa
- suunnilleen
- arkkitehtuuri
- Varat
- auto
- automaattisesti
- keskimäärin
- AWS
- baari
- perustua
- koska
- ennen
- takana
- ovat
- Uskoa
- benchmark
- vertailuanalyysi
- benchmarking
- hyödyttää
- PARAS
- Jälkeen
- suurempi
- miljardeja
- hallitus
- edistää
- pohja
- puskuri
- rakentaa
- taakka
- tapaus
- tapauksissa
- haasteet
- ominaisuudet
- maksut
- Kaavio
- Kaaviot
- selkeä
- asiakas
- CNN
- koodi
- yhdistelmät
- verrattuna
- vertaamalla
- vertailu
- täydellinen
- monimutkainen
- monimutkaisuus
- Sisältää
- Laskea
- tietokone
- Tietokoneen visio
- johtopäätös
- samanaikainen
- Konfigurointi
- johdonmukainen
- kuluttaa
- kulutetaan
- kulutus
- Kontti
- tausta
- jatkaa
- Ydin
- Hinta
- kustannustehokas
- Covers
- Ylittää
- Nykyinen
- Tällä hetkellä
- asiakassuhde
- Asiakkaat
- tiedot
- datapisteet
- päätös
- syvä
- syvä oppiminen
- syvempää
- oletusarvot
- toimittaa
- Kysyntä
- Democratizing
- osoittaa
- Riippuen
- sijoittaa
- levityspinnalta
- käyttöönotto
- käyttöönotot
- Malli
- haluttu
- Huolimatta
- yksityiskohta
- yksityiskohdat
- Määrittää
- määritetty
- Kehittäjä
- laite
- eri
- DIY
- dokumentointi
- download
- dramaattisesti
- dynaaminen
- kukin
- Aikaisemmin
- helpompaa
- myöskään
- päätepiste
- Tekniikka
- yritys
- Koko
- virhe
- Jopa
- esimerkki
- Esimerkit
- ylittää
- odotettu
- kallis
- Elämykset
- laajentaa
- uute
- Kasvot
- tekijät
- Epäonnistui
- perhe
- Muoti
- mahdollinen
- luvut
- Asiakirjat
- taloudellinen
- Löytää
- Etunimi
- Keskittää
- keskityttiin
- keskittyy
- jälkeen
- Puitteet
- puitteet
- alkaen
- koko
- edelleen
- yleensä
- syntyy
- synnyttää
- generatiivinen
- Generatiivinen AI
- saada
- antaa
- tavoite
- menee
- GPU
- GPU
- kaaviot
- Kasvava
- ohjaavat
- käsi
- Palvelimet
- auttaa
- auttaa
- auttaa
- Korkea
- korkeampi
- isäntä
- isännöi
- hotellit
- Talo
- Miten
- Miten
- Kuitenkin
- HTML
- HTTPS
- Napa
- Sadat
- ihanteellinen
- kuva
- Vaikutus
- vaikutti
- parani
- parannus
- in
- sisältää
- Mukaan lukien
- Kasvaa
- kasvoi
- Lisäykset
- lisää
- henkilökohtainen
- teollisuuden
- teollisuus
- vaikutus
- tietoa
- Infrastruktuuri
- ensimmäinen
- innovatiivinen
- innovatiivisia tekniikoita
- panos
- oivalluksia
- esimerkki
- vakuutus
- tahallisuus
- korko
- käyttöön
- esittely
- vedotaan
- IT
- tuloaan
- avain
- Kieli
- suuri
- suurempi
- suurin
- Viive
- johtaja
- Johto
- oppiminen
- jättäen
- Pituus
- rajat
- linja
- Lista
- Listat
- kuormitus
- lastaus
- kauemmin
- katso
- Matala
- kone
- koneoppiminen
- tärkein
- tehdä
- Tekeminen
- johtaja
- hallinnoi
- toimitusjohtaja
- monet
- Merkitse
- Marketing
- Markkinointi ja mainonta
- max
- Maksimoida
- maksimi
- mitata
- toimenpiteet
- Muisti
- mainitsi
- menetelmät
- Metrics
- vähäinen
- sekoitettu
- ML
- malli
- mallit
- lisää
- eniten
- Suosituin
- motivoituneita
- MS
- moninkertainen
- nimi
- Luonnollinen
- Luonnollinen kielen käsittely
- Tarve
- negatiivinen
- negatiivisesti
- verkko
- neuroverkkomallien
- Uusi
- NLP
- muistikirja
- marraskuu
- numero
- numerot
- ONE
- toiminta
- toiminta-
- optimointi
- optimaalinen
- Vaihtoehto
- alkuperäinen
- Muut
- ulkopuolella
- yleinen
- oma
- Rauha
- parametri
- parametrit
- intohimoinen
- Kuvio
- kuviot
- prosentti
- Suorittaa
- suorituskyky
- esittävä
- aika
- poimia
- Platon
- Platonin tietotieto
- PlatonData
- Kohta
- pistettä
- Suosittu
- mahdollinen
- Kirje
- aiemmin
- ensisijainen
- Aikaisempi
- prosessi
- käsittely
- Tuotteet
- tuotepäällikkö
- hankkeet
- asianmukainen
- toimittaa
- mikäli
- tarjoaa
- laittaa
- pytorch
- määrä
- Ramppi
- riehua
- satunnainen
- alue
- nopea
- hinta
- tavoittaa
- saavutettu
- päästäisiin
- Lukeminen
- kohtuullinen
- syistä
- suositella
- suositeltu
- kirjataan
- vähentää
- Vähentynyt
- heijastaa
- heijastunut
- terveisin
- liittyvä
- luotettavuus
- muistaa
- toistaa
- toistuva
- pyyntö
- pyynnöt
- vaatimukset
- Vaatii
- Esittelymateriaalit
- vastaus
- vastuullinen
- Saatu ja
- tulokset
- ajaa
- juoksu
- sagemaker
- SageMaker-johtopäätös
- sama
- skaalautuva
- Asteikko
- skaalaus
- sci-fi
- Toinen
- sekuntia
- Osa
- vanhempi
- Järjestys
- Palvelut
- palvelevat
- setti
- setup
- useat
- Muoto
- muodot
- Jaa:
- yhteinen
- jakaminen
- shouldnt
- näyttää
- esitetty
- Näytä
- puoli
- signaali
- merkittävästi
- samankaltainen
- Simon
- Yksinkertainen
- single
- Koko
- koot
- pieni
- pienempiä
- ratkaisu
- Ratkaisumme
- jonkin verran
- Tila
- asiantuntija
- määritelty
- menot
- Pysyvyys
- alkoi
- jäi
- tasainen
- Vaihe
- Askeleet
- Yhä
- Levytila
- strategiat
- vahva
- onnistunut
- niin
- yhteenveto
- YHTEENVETO
- esimies
- tuki
- Tuetut
- Tukee
- taulukko
- ottaa
- ottaen
- TechCrunch
- Technologies
- Elektroniikka
- sapluuna
- malleja
- ehdot
- testi
- Testaus
- -
- heidän
- siksi
- ajatus
- ajatusjohtajuus
- kolmella
- kynnys
- Kautta
- suoritusteho
- aika
- että
- yhdessä
- työkalut
- ylin
- Yhteensä
- liikenne
- Matkustaminen
- oikeudenkäynti
- Kahdesti
- tyypit
- tyypillisesti
- USA
- käyttää
- käyttölaukku
- käyttäjä
- Käyttäjät
- arvo
- eri
- virginia
- visio
- oikeuttaa
- verkko
- verkkopalvelut
- Mitä
- onko
- joka
- vaikka
- koko
- leveä
- Laaja valikoima
- tulee
- sisällä
- ilman
- Referenssit
- työntekijöitä
- työskentely
- olisi
- vuotta
- tuotto
- Voit
- Sinun
- zephyrnet