Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Dosezite zmogljivost v hiperrazsežnosti za serviranje modela z uporabo NVIDIA Triton Inference Server na Amazon SageMaker

Aplikacije strojnega učenja (ML) so zapletene za uvajanje in pogosto zahtevajo več modelov ML, da služijo eni sami zahtevi za sklepanje. Tipična zahteva lahko teče čez več modelov s koraki, kot so predprocesiranje, transformacije podatkov, logika izbire modela, združevanje modelov in naknadna obdelava. To je privedlo do razvoja skupnih vzorcev načrtovanja, kot so cevovodi serijskega sklepanja, ansambli (razpršeno zbiranje) in delovni tokovi poslovne logike, kar ima za posledico realizacijo celotnega delovnega toka zahteve kot usmerjenega acikličnega grafa (DAG). Ker pa postajajo delovni tokovi bolj zapleteni, to vodi do povečanja skupnega odzivnega časa ali zakasnitve teh aplikacij, kar posledično vpliva na splošno uporabniško izkušnjo. Poleg tega, če te komponente gostujejo na različnih instancah, dodatna omrežna zakasnitev med temi instancami poveča skupno zakasnitev. Razmislite o primeru priljubljene uporabe ML za virtualnega pomočnika pri podpori strankam. Običajna zahteva bo morda morala iti skozi več korakov, ki vključujejo prepoznavanje govora, obdelavo naravnega jezika (NLP), sledenje stanju pogovornega okna, politiko dialoga, generiranje besedila in končno besedilo v govor. Poleg tega lahko uporabite najsodobnejše modele NLP, ki temeljijo na transformatorju, kot so različne različice BERTI, BARTin GPT. Končni rezultat so dolgi odzivni časi za te skupine modelov in slaba uporabniška izkušnja.

Pogost vzorec za doseganje nižjih odzivnih časov brez ogrožanja skupne prepustnosti je gostovanje teh modelov na isti instanci skupaj z lahko poslovno logiko, vdelano vanjo. Te modele je mogoče nadalje enkapsulirati znotraj enega ali več vsebnikov na istem primerku, da se zagotovi izolacija za tekoče procese in ohrani nizka zakasnitev. Poleg tega je skupna zakasnitev odvisna tudi od logike aplikacije za sklepanje, optimizacij modela, osnovne infrastrukture (vključno z računalništvom, shranjevanjem in omrežjem) in osnovnega spletnega strežnika, ki sprejema zahteve za sklepanje. NVIDIA Triton Inference Server je odprtokodna programska oprema za sklepanje s funkcijami za povečanje prepustnosti in izkoriščenosti strojne opreme z ultra nizko (enomestno milisekundno) zakasnitvijo sklepanja. Ima široko podporo za ogrodja ML (vključno s TensorFlow, PyTorch, ONNX, XGBoost in NVIDIA TensorRT) in infrastrukturna zaledja, vključno z grafičnimi procesorji, procesorji in Sklepanje AWS. Poleg tega je integriran Triton Inference Server Amazon SageMaker, popolnoma upravljana storitev ML od konca do konca, ki ponuja možnosti sklepanja v realnem času, vključno z sam in več modelov gostovanje. Te možnosti sklepanja vključujejo gostovanje več modelov znotraj istega vsebnika za a ena končna točka, in gostovanje več modelov z več posodami za eno končno točko.

Novembra 2021 smo objavili integracija Triton Inference Server na SageMaker. AWS je tesno sodeloval z NVIDIA, da bi vam omogočil, da dobite najboljše iz obeh svetov in poenostavil uvajanje modela s Tritonom na AWS.

V tej objavi si ogledamo najboljše prakse za uvajanje transformatorskih modelov v velikem obsegu na grafičnih procesorjih z uporabo Triton Inference Server na SageMaker. Najprej začnemo s povzetkom ključnih pojmov o zakasnitvi v SageMakerju in pregledom smernic za uravnavanje zmogljivosti. Nato nudimo pregled Tritona in njegovih funkcij ter primer kode za uvajanje v SageMaker. Nazadnje izvedemo obremenitvene teste z uporabo SageMaker Inference Recommender in povzeti vpoglede in zaključke iz testiranja obremenitve priljubljenega modela transformatorja, ki ga je zagotovil Hugging Face.

Lahko pregledate prenosnik včasih smo sami uvajali modele in izvajali obremenitvene teste z uporabo kode na GitHub.

Uravnavanje zmogljivosti in optimizacija za prikazovanje modelov na SageMakerju

Uravnavanje in optimizacija zmogljivosti je empirični proces, ki pogosto vključuje več ponovitev. Število parametrov za nastavitev je kombinatorno in nabor vrednosti konfiguracijskih parametrov ni neodvisen drug od drugega. Različni dejavniki vplivajo na optimalno uravnavanje parametrov, vključno z velikostjo obremenitve, vrsto in številom modelov ML v grafu toka zahteve za sklepanje, vrsto pomnilnika, vrsto primerka računanja, omrežno infrastrukturo, kodo aplikacije, izvajalnim časom in konfiguracijo programske opreme za streženje sklepanjem in drugo.

Če uporabljate SageMaker za uvajanje modelov ML, morate izbrati računalniško instanco z najboljšim razmerjem med ceno in zmogljivostjo, kar je zapleten in ponavljajoč se postopek, ki lahko traja tedne eksperimentiranja. Najprej morate izbrati pravo vrsto instance ML izmed več kot 70 možnosti, ki temeljijo na zahtevah virov vaših modelov in velikosti vhodnih podatkov. Nato morate optimizirati model za izbrano vrsto primerka. Nazadnje morate zagotoviti in upravljati infrastrukturo za izvajanje obremenitvenih testov in prilagoditev konfiguracije oblaka za optimalno zmogljivost in stroške. Vse to lahko odloži uvedbo modela in čas za trženje. Poleg tega morate oceniti kompromise med zakasnitvijo, prepustnostjo in stroški, da izberete optimalno konfiguracijo uvajanja. SageMaker Inference Recommender samodejno izbere pravo vrsto računske instance, število instanc, parametre vsebnika in optimizacije modela za sklepanje, da poveča prepustnost, zmanjša zakasnitev in zmanjša stroške.

Sklepanje in zakasnitev v realnem času v SageMakerju

Sklepanje SageMaker v realnem času je idealen za delovne obremenitve sklepanja, kjer imate zahteve glede realnega časa, interaktivnosti z nizko zakasnitvijo. Obstajajo štiri najpogosteje uporabljene metrike za spremljanje zakasnitve zahteve sklepanja za končne točke sklepanja SageMaker

  • Zakasnitev vsebnika – Čas, potreben za pošiljanje zahteve, pridobivanje odgovora iz vsebnika modela in dokončanje sklepanja v vsebniku. Ta meritev je na voljo v Amazon CloudWatch kot del Metrike priklica izdal SageMaker.
  • Zakasnitev modela – Skupni čas, ki ga porabijo vse posode SageMaker v sklepni cevovod. Ta meritev je na voljo v Amazon CloudWatch kot del Metrike priklica izdal SageMaker.
  • Zakasnitev nad glavo – Merjeno od časa, ko SageMaker prejme zahtevo, dokler ne vrne odgovora stranki, minus zakasnitev modela. Ta meritev je na voljo v Amazon CloudWatch kot del Metrike priklica izdal SageMaker.
  • Zakasnitev od konca do konca – Merjeno od trenutka, ko stranka pošlje zahtevo za sklepanje, dokler ne prejme odgovora. Stranke lahko to objavijo kot meritev po meri v Amazon CloudWatch.

Naslednji diagram prikazuje te komponente.

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Zakasnitev vsebnika je odvisna od več dejavnikov; med najpomembnejšimi so naslednji:

  • Osnovni protokol (HTTP(s)/gRPC), ki se uporablja za komunikacijo s strežnikom sklepanja
  • Stroški, povezani z ustvarjanjem novih povezav TLS
  • Čas deserializacije tovora zahteve/odziva
  • Funkcije za čakanje v čakalni vrsti in pakete, ki jih zagotavlja osnovni strežnik sklepanja
  • Zmožnosti razporejanja zahtev, ki jih zagotavlja osnovni strežnik sklepanja
  • Osnovna zmogljivost izvajalnega časa strežnika sklepanja
  • Učinkovitost knjižnic za predprocesiranje in naknadno obdelavo pred klicem funkcije napovedovanja modela
  • Osnovna zmogljivost zaledja ogrodja ML
  • Optimizacije, specifične za model in strojno opremo

V tem prispevku se osredotočamo predvsem na optimizacijo zakasnitve vsebnika skupaj s skupno pretočnostjo in stroški. Natančneje, raziskujemo uravnavanje zmogljivosti Triton Inference Server, ki deluje znotraj vsebnika SageMaker.

Pregled primera uporabe

Uvajanje in spreminjanje modelov NLP v produkcijski postavitvi je lahko precej zahtevno. NLP modeli so pogosto zelo veliki in vsebujejo na milijone parametrov modela. Za izpolnitev strogih zahtev glede zmogljivosti in razširljivosti NLP aplikacij produkcijskega razreda so potrebne optimalne konfiguracije modela.

V tej objavi primerjamo primer uporabe NLP z uporabo končne točke SageMaker v realnem času, ki temelji na vsebniku Triton Inference Server, in priporočamo optimizacije uravnavanja zmogljivosti za naš primer uporabe ML. Uporabljamo veliko, predhodno usposobljeno Hugging Face na osnovi transformatorja BERT velik brez ohišja model, ki ima približno 336 milijonov parametrov modela. Vhodni stavek, uporabljen za binarni klasifikacijski model, je podložen in okrnjen na največjo dolžino vhodnega zaporedja 512 žetonov. Obremenitveni test sklepanja simulira 500 klicev na sekundo (največ 30,000 klicev na minuto) in ModelLatency manj kot 0.5 sekunde (500 milisekund).

Naslednja tabela povzema našo primerjalno konfiguracijo.

Ime modela Objemni obraz bert-large-uncased
Velikost modela 1.25 GB
Zahteva po zakasnitvi 0.5 sekunde (500 milisekund)
Število klicev na sekundo 500 zahtev (30,000 na minuto)
Dolžina vhodnega zaporedja 512 žetone
Naloga ML Binarna klasifikacija

NVIDIA Triton Inference Server

Triton Inference Server je posebej zasnovan za omogočanje razširljive, hitre in enostavne uvedbe modelov v proizvodnji. Triton podpira vrsto večjih ogrodij AI, vključno s TensorFlow, TensorRT, PyTorch, XGBoost in ONNX. Z zaledjem po meri Python in C++ lahko implementirate svojo delovno obremenitev sklepanja za bolj prilagojene primere uporabe.

Najpomembneje je, da Triton ponuja preprosto nastavitev, ki temelji na konfiguraciji, za gostovanje vaših modelov, ki razkriva bogat nabor funkcij za optimizacijo delovanja, ki jih lahko uporabite z malo truda pri kodiranju.

Triton poveča zmogljivost sklepanja z maksimiranjem izkoriščenosti strojne opreme z različnimi tehnikami optimizacije (najpogosteje uporabljeni so sočasni zagoni modela in dinamično serijsko združevanje). Iskanje optimalnih konfiguracij modela iz različnih kombinacij dinamičnih velikosti paketov in števila sočasnih primerkov modela je ključnega pomena za doseganje sklepanja v realnem času pri nizkocenovnem streženju z uporabo Tritona.

Dinamično doziranje

Mnogi praktiki se nagibajo k izvajanju sklepanja zaporedno, ko je strežnik priklican z več neodvisnimi zahtevami. Čeprav je nastavitev enostavnejša, običajno ni najboljša praksa izkoriščanje računalniške moči GPE. Za rešitev tega problema Triton ponuja vgrajene optimizacije dinamično doziranje združiti te neodvisne zahteve za sklepanje na strani strežnika, da se dinamično oblikuje večja serija za povečanje prepustnosti. Naslednji diagram ponazarja arhitekturo izvajalnega okolja Triton.

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

V prejšnji arhitekturi vse zahteve najprej dosežejo dinamični dozator, preden vstopijo v dejanske čakalne vrste razporejevalnika modela, da počakajo na sklepanje. Nastavite lahko želene velikosti paketov za dinamično pakiranje z uporabo prednostna_velikost_serije nastavitve v konfiguraciji modela. (Upoštevajte, da mora biti velikost oblikovane serije manjša od max_batch_size model podpira.) Lahko tudi konfigurirate max_queue_delay_microseconds da določite najdaljši čas zakasnitve v dozatorju za čakanje na druge zahteve, da se pridružijo paketu glede na vaše zahteve glede zakasnitve.

Naslednji delček kode prikazuje, kako lahko dodate to funkcijo s konfiguracijskimi datotekami modela, da nastavite dinamično serijsko dodeljevanje s prednostno velikostjo paketa 16 za dejansko sklepanje. S trenutnimi nastavitvami se primerek modela prikliče takoj, ko je dosežena želena velikost paketa 16 ali ko je pretekel čas zakasnitve 100 mikrosekund, odkar je prva zahteva dosegla dinamični dozator.

dynamic_batching { preferred_batch_size: 16 max_queue_delay_microseconds: 100 }

Sočasno izvajanje modelov

Druga bistvena optimizacija, ki jo ponuja Triton za maksimiranje izkoriščenosti strojne opreme brez dodatnih stroškov zakasnitve, je sočasno izvajanje modela, ki omogoča vzporedno delovanje več modelov ali več kopij istega modela. Ta funkcija omogoča Tritonu, da obravnava več zahtev za sklepanje hkrati, kar poveča prepustnost sklepanja z uporabo drugače nedejavne računalniške moči strojne opreme.

Naslednja slika prikazuje, kako lahko preprosto konfigurirate različne politike uvajanja modela z le nekaj spremembami vrstic kode. Na primer, konfiguracija A (levo) kaže, da lahko oddajate isto konfiguracijo dveh primerkov modela bert-large-uncased na vse razpoložljive grafične procesorje. Nasprotno pa konfiguracija B (na sredini) prikazuje drugačno konfiguracijo samo za GPE 0, ne da bi spremenila pravilnike za druge GPE. Prav tako lahko uvedete primerke različnih modelov na enem GPE, kot je prikazano v konfiguraciji C (desno).

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

V konfiguraciji C lahko računska instanca obravnava dve sočasni zahtevi za model DistilGPT-2 in sedem sočasnih zahtev za bert-large-uncased model vzporedno. S temi optimizacijami je mogoče vire strojne opreme bolje uporabiti za proces strežbe, s čimer se izboljša prepustnost in zagotovi boljša stroškovna učinkovitost za vašo delovno obremenitev.

TensorRT

NVIDIA TensorRT je SDK za visoko zmogljivo sklepanje o globokem učenju, ki brezhibno deluje s Tritonom. TensorRT, ki podpira vsako večje ogrodje globokega učenja, vključuje optimizator sklepanja in izvajalno okolje, ki zagotavlja nizko zakasnitev in visoko prepustnost za izvajanje sklepanja z ogromnimi količinami podatkov prek zmogljivih optimizacij.

TensorRT optimizira graf za zmanjšanje pomnilniškega odtisa tako, da sprosti nepotreben pomnilnik in ga učinkovito ponovno uporabi. Poleg tega kompilacija TensorRT združuje redke operacije znotraj grafa modela, da tvori večje jedro, da se izogne ​​dodatnim stroškom večkratnih zagonov majhnega jedra. Samodejna nastavitev jedra vam pomaga v celoti izkoristiti strojno opremo z izbiro najboljšega algoritma na vaši ciljni grafični procesorji. Tokovi CUDA omogočajo vzporedno izvajanje modelov, da povečate izkoriščenost GPE za najboljšo zmogljivost. Nenazadnje lahko tehnika kvantizacije v celoti uporabi pospeševanje jeder Tensor z mešano natančnostjo za izvajanje modela v FP32, TF32, FP16 in INT8, da doseže najboljšo zmogljivost sklepanja.

Triton na gostovanju SageMaker

Gostovanje SageMaker storitve so nabor funkcij SageMaker, katerih cilj je lažja uvedba in strežba modela. Ponuja različne možnosti za preprosto uvajanje, samodejno prilagajanje, spremljanje in optimizacijo modelov ML, prilagojenih za različne primere uporabe. To pomeni, da lahko svoje uvedbe optimizirate za vse vrste vzorcev uporabe, od trajnih in vedno na voljo z možnostmi brez strežnika do prehodnih, dolgotrajnih ali paketnih potreb po sklepanju.

Pod okriljem gostovanja SageMaker je tudi nabor SageMaker inference Deep Learning Containers (DLC-jev), ki so predpakirani z ustrezno modelno strežniško programsko opremo za njihovo ustrezno podprto ogrodje ML. To vam omogoča, da dosežete visoko zmogljivost sklepanja brez nastavitve strežnika modela, kar je pogosto najbolj zapleten tehnični vidik uvajanja modela in na splošno ni del nabora spretnosti podatkovnega znanstvenika. Triton sklepni strežnik je zdaj Na voljo na SageMaker Deep Learning Containers (DLC).

Zaradi te širine možnosti, modularnosti in enostavne uporabe različnih strežniških okvirov se SageMaker in Triton močno ujemata.

SageMaker Inference Recommender za primerjalne rezultate testov

Za izvajanje naših poskusov uporabljamo SageMaker Inference Recommender. SageMaker Inference Recommender ponuja dve vrsti opravil: privzeto in napredno, kot je prikazano v naslednjem diagramu.

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Privzeto opravilo ponuja priporočila o vrstah primerkov samo z modelom in vzorčno koristno obremenitvijo za primerjavo. Poleg priporočil instanc storitev ponuja tudi parametre izvajalnega časa, ki izboljšajo zmogljivost. Priporočila privzetega opravila so namenjena zožitvi iskanja primerkov. V nekaterih primerih je to lahko družina primerkov, v drugih pa posebne vrste primerkov. Rezultati privzetega opravila se nato podajo v napredno opravilo.

Napredno opravilo ponuja več kontrol za nadaljnjo natančno nastavitev delovanja. Te kontrole simulirajo realno okolje in proizvodne zahteve. Med temi kontrolami je prometni vzorec, katerega namen je oblikovati vzorec zahteve za primerjalne vrednosti. Nastavite lahko rampe ali enakomeren promet z uporabo več faz vzorca prometa. Na primer, an Začetno ŠteviloUporabnikov 1, SpawnRate od 1 in Trajanje v sekundah 600 lahko povzroči 10-minutni promet z 1 sočasnim uporabnikom na začetku in 10 na koncu. Poleg tega na krmilnikih MaxInvocations in ModelLatencyThresholds nastavite prag proizvodnje, tako da se primerjalna analiza ustavi, ko je eden od pragov presežen.

Končno, priporočilne meritve vključujejo prepustnost, zakasnitev pri največji prepustnosti in ceno na sklepanje, tako da jih je enostavno primerjati.

Uporabljamo napredno vrsto opravila SageMaker Inference Recommender za izvajanje naših poskusov za pridobitev dodatnega nadzora nad prometnimi vzorci in natančno nastavitev konfiguracije servirnega vsebnika.

Postavitev eksperimenta

Za primerjavo profila NLP, opisanega v našem primeru uporabe, uporabljamo funkcijo preskusa obremenitve po meri programa SageMaker Inference Recommender. Najprej definiramo naslednje predpogoje, povezane z modelom NLP in nalogo ML. SageMaker Inference Recommender uporablja te informacije za pridobivanje sklepne slike Docker iz Registar elastičnih zabojnikov Amazon (Amazon ECR) in registrirajte model v registru modelov SageMaker.

Domena NATURAL_LANGUAGE_PROCESSING
Naloga FILL_MASK
Okvirni PYTORCH: 1.6.0
Model bert-large-uncased

Konfiguracije prometnih vzorcev v SageMaker Inference Recommender nam omogočajo, da definiramo različne faze za preizkus obremenitve po meri. Obremenitveni preizkus se začne z dvema začetnima uporabnikoma in vsako minuto ustvari dva nova uporabnika v skupnem trajanju 25 minut (1500 sekund), kot je prikazano v naslednji kodi:

"TrafficPattern": { "TrafficType": "PHASES", "Phases": [ { "InitialNumberOfUsers": 2, "SpawnRate": 2, "DurationInSeconds": 1500 }, ],
}

Eksperimentiramo z obremenitvenim testiranjem istega modela v dveh različnih stanjih. Poskusi, ki temeljijo na PyTorchu, uporabljajo standardni, nespremenjeni model PyTorch. Za poskuse, ki temeljijo na TensorRT, model PyTorch predhodno pretvorimo v motor TensorRT.

Na teh dveh modelih uporabljamo različne kombinacije funkcij za optimizacijo zmogljivosti, ki so povzete v naslednji tabeli.

Ime konfiguracije Opis konfiguracije Konfiguracija modela
pt-base Osnovna linija PyTorch Osnovni model PyTorch, brez sprememb
pt-db PyTorch z dinamičnim razporeditvijo dynamic_batching
{}
pt-ig PyTorch z več primerki modela instance_group [
    {
      count: 2
      kind: KIND_GPU
    }
  ]
pt-ig-db PyTorch z več instancami modela in dinamičnim paketom dynamic_batching
{},
instance_group [
     {
          count: 2
          kind: KIND_GPU
     }
]
trt-base Osnovna linija TensorRT Model PyTorch, preveden s TensoRT trtexec pripomoček
trt-db TensorRT z dinamičnim razporeditvijo dynamic_batching
{}
trt-ig TensorRT z več primerki modela instance_group [
     {
          count: 2
          kind: KIND_GPU
     }
]
trt-ig-db TensorRT z več instancami modela in dinamičnim paketom dynamic_batching
{},
instance_group [
     {
          count: 2
          kind: KIND_GPU
      }
]

Rezultati testov in opažanja

Izvedli smo obremenitvene teste za tri vrste primerkov znotraj iste družine g4dn: ml.g4dn.xlarge, ml.g4dn.2xlarge in ml.g4dn.12xlarge. Vse vrste primerkov g4dn imajo dostop do grafičnih procesorjev NVIDIA T4 Tensor Core in procesorjev Intel Cascade Lake 2. generacije. Logika v ozadju izbire vrst instanc je bila imeti na voljo tako instanco s samo enim GPE-jem, kot tudi instanco z dostopom do več GPU-jev – štirih v primeru ml.g4dn.12xlarge. Poleg tega smo želeli preizkusiti, ali bi povečanje zmogljivosti vCPE na instanci s samo enim razpoložljivim GPE prineslo izboljšanje razmerja med ceno in zmogljivostjo.

Najprej poglejmo pospešitev posamezne optimizacije. Naslednji graf prikazuje, da optimizacija TensorRT zagotavlja 50-odstotno zmanjšanje zakasnitve modela v primerjavi z izvornim v PyTorchu na instanci ml.g4dn.xlarge. To zmanjšanje zakasnitve se poveča na več kot trikrat na primerkih ml.g4dn.12xlarge z več grafičnimi procesorji. Medtem je 30-odstotno izboljšanje prepustnosti dosledno na obeh primerih, kar ima za posledico večjo stroškovno učinkovitost po uporabi optimizacij TensorRT.

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Z dinamičnim razporeditvijo se lahko približamo 2-kratnemu izboljšanju prepustnosti z uporabo iste arhitekture strojne opreme na vseh eksperimentalnih primerkih ml.g4dn.xlarge, ml.g4dn.2xlarge in ml.g4dn.12xlarge brez opaznega povečanja zakasnitve.

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Podobno nam sočasno izvajanje modela omogoča približno 3-4-kratno izboljšanje prepustnosti z maksimiranjem izkoriščenosti GPE na primerku ml.g4dn.xlarge in približno 2-kratno izboljšanje tako na primerku ml.g4dn.2xlarge kot na primerku ml z več GPE. g4dn.12xlarge.. To povečanje prepustnosti prihaja brez dodatnih stroškov v zakasnitvi.

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Še bolje, lahko integriramo vse te optimizacije, da zagotovimo najboljšo zmogljivost z uporabo virov strojne opreme v največji možni meri. Naslednja tabela in grafi povzemajo rezultate, ki smo jih dobili v naših poskusih.

Ime konfiguracije Optimizacija modela

Dinamična

Serijska serija

Konfiguracija skupine primerkov Vrsta primerka vCPU Grafične kartice

Pomnilnik GPU

(GB)

Začetno število primerkov[1] Priklici na minuto na primer Zakasnitev modela Cena na uro[2]
pt-osnova NA Ne NA ml.g4dn.xlarge 4 1 16 62 490 1500 45.6568
pt-db NA Da NA ml.g4dn.xlarge 4 1 16 57 529 1490 41.9748
pt-ig NA Ne 2 ml.g4dn.xlarge 4 1 16 34 906 868 25.0376
pt-ig-db NA Da 2 ml.g4dn.xlarge 4 1 16 34 892 1158 25.0376
trt-osnova TensorRT Ne NA ml.g4dn.xlarge 4 1 16 47 643 742 34.6108
trt-db TensorRT Da NA ml.g4dn.xlarge 4 1 16 28 1078 814 20.6192
trt-ig TensorRT Ne 2 ml.g4dn.xlarge 4 1 16 14 2202 1273 10.3096
trt-db-ig TensorRT Da 2 ml.g4dn.xlarge 4 1 16 10 3192 783 7.364
pt-osnova NA Ne NA ml.g4dn.2xvelik 8 1 32 56 544 1500 52.64
pt-db NA Da NA ml.g4dn.2xvelik 8 1 32 59 517 1500 55.46
pt-ig NA Ne 2 ml.g4dn.2xvelik 8 1 32 29 1054 960 27.26
pt-ig-db NA Da 2 ml.g4dn.2xvelik 8 1 32 30 1017 992 28.2
trt-osnova TensorRT Ne NA ml.g4dn.2xvelik 8 1 32 42 718 1494 39.48
trt-db TensorRT Da NA ml.g4dn.2xvelik 8 1 32 23 1335 499 21.62
trt-ig TensorRT Ne 2 ml.g4dn.2xvelik 8 1 32 23 1363 1017 21.62
trt-db-ig TensorRT Da 2 ml.g4dn.2xvelik 8 1 32 22 1369 963 20.68
pt-osnova NA Ne NA ml.g4dn.12xvelik 48 4 192 15 2138 906 73.35
pt-db NA Da NA ml.g4dn.12xvelik 48 4 192 15 2110 907 73.35
pt-ig NA Ne 2 ml.g4dn.12xvelik 48 4 192 8 3862 651 39.12
pt-ig-db NA Da 2 ml.g4dn.12xvelik 48 4 192 8 3822 642 39.12
trt-osnova TensorRT Ne NA ml.g4dn.12xvelik 48 4 192 11 2892 279 53.79
trt-db TensorRT Da NA ml.g4dn.12xvelik 48 4 192 6 5356 278 29.34
trt-ig TensorRT Ne 2 ml.g4dn.12xvelik 48 4 192 6 5210 328 29.34
trt-db-ig TensorRT Da 2 ml.g4dn.12xvelik 48 4 192 6 5235 439 29.34
[1] Začetno število primerkov v zgornji tabeli je priporočeno število primerkov za uporabo s pravilnikom o samodejnem skaliranju za vzdrževanje zahtev glede prepustnosti in zakasnitve za vašo delovno obremenitev.
[2] Cena na uro v zgornji tabeli je izračunana na podlagi začetnega števila instanc in cene za vrsto instance.

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Rezultati večinoma potrjujejo učinek, ki je bil pričakovan od različnih funkcij optimizacije delovanja:

  • Kompilacija TensorRT ima najzanesljivejši vpliv na vse vrste primerkov. Transakcije na minuto na instanco so se povečale za 30–35 % z doslednim znižanjem stroškov za približno 25 % v primerjavi z zmogljivostjo motorja TensorRT na privzeti PyTorch BERT (pt-base). Povečano zmogljivost motorja TensorRT dopolnjujejo in izkoriščajo druge preizkušene funkcije za prilagajanje zmogljivosti.
  • Nalaganje dveh modelov na vsako GPE (skupina primerkov) je skoraj strogo podvojilo vse izmerjene meritve. Število klicev na minuto na instanco se je povečalo za približno 80–90 %, kar je povzročilo znižanje stroškov v obsegu 50 %, skoraj tako, kot če bi uporabljali dva GPU-ja. Pravzaprav, amazoncloudwatch metrike za naše poskuse na g4dn.2xlarge (kot primer) potrjujejo, da se izkoriščenost procesorja in GPU podvojita, ko konfiguriramo skupino primerkov dveh modelov.

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai. Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Dodatni nasveti za učinkovitost in optimizacijo stroškov

Primerjalno merilo, predstavljeno v tej objavi, je samo opraskalo površino možnih funkcij in tehnik, ki jih lahko uporabite s Tritonom za izboljšanje zmogljivosti sklepanja. Te segajo od tehnik predhodne obdelave podatkov, kot je pošiljanje binarnih koristnih obremenitev modelnemu strežniku ali koristnih obremenitev z večjimi serijami, do izvornih funkcij Tritona, kot so naslednje:

  • Ogrevanje modela, ki preprečuje začetne, počasne zahteve po sklepanju s popolno inicializacijo modela, preden je prejeta prva zahteva za sklepanje.
  • Predpomnilnik odgovorov, ki predpomni ponavljajoče se zahteve.
  • Sestava modela, ki vam omogoča ustvarjanje cevovoda enega ali več modelov ter povezavo vhodnih in izhodnih tenzorjev med temi modeli. To odpira možnost dodajanja korakov predhodne in naknadne obdelave ali celo sklepanja z drugimi modeli v potek obdelave za vsako zahtevo.

Pričakujemo, da bomo te tehnike in funkcije preizkusili in primerjali v prihodnji objavi, zato ostanite z nami!

zaključek

V tej objavi smo raziskali nekaj parametrov, ki jih lahko uporabite za povečanje učinkovitosti vaše realnočasovne končne točke SageMaker za streženje modelov PyTorch BERT s Triton Inference Server. Uporabili smo SageMaker Inference Recommender za izvedbo primerjalnih testov za natančno nastavitev teh parametrov. Ti parametri so v bistvu povezani z optimizacijo modela, ki temelji na TensorRT, kar vodi do skoraj 50-odstotnega izboljšanja odzivnih časov v primerjavi z neoptimizirano različico. Poleg tega je sočasno izvajanje modelov in uporaba dinamičnega doziranja Tritona povzročilo skoraj 70-odstotno povečanje pretoka. Natančna nastavitev teh parametrov je vodila tudi do splošnega zmanjšanja stroškov sklepanja.

Najboljši način za pridobivanje pravilnih vrednosti je eksperimentiranje. Če pa želite začeti graditi empirično znanje o prilagajanju in optimizaciji zmogljivosti, lahko opazujete kombinacije različnih parametrov, povezanih s Tritonom, in njihov učinek na zmogljivost v modelih ML in primerkih ML SageMaker.

SageMaker ponuja orodja za odstranitev nediferenciranega težkega dela iz vsake stopnje življenjskega cikla ML, s čimer olajša hitro eksperimentiranje in raziskovanje, potrebno za popolno optimizacijo uvajanja vaših modelov.

Prenosni računalnik, uporabljen za testiranje obremenitve in uvajanje, najdete na GitHub. Posodobite lahko konfiguracije Triton in nastavitve SageMaker Inference Recommender, da bodo najbolje ustrezale vašemu primeru uporabe, da boste dosegli stroškovno učinkovite in najuspešnejše delovne obremenitve sklepanja.


O avtorjih

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Vikram Elango je specialist za rešitve AI/ML pri Amazon Web Services s sedežem v Virginiji, ZDA. Vikram pomaga strankam v finančni in zavarovalniški industriji z oblikovanjem, miselnim vodstvom za izdelavo in uvajanje aplikacij strojnega učenja v velikem obsegu. Trenutno je osredotočen na obdelavo naravnega jezika, odgovorno umetno inteligenco, optimizacijo sklepanja in skaliranje ML v podjetju. V prostem času uživa v potovanjih, pohodništvu, kuhanju in kampiranju z družino.

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.João Moura je specialist za rešitve AI/ML pri Amazon Web Services. Večinoma se osredotoča na primere uporabe NLP in pomaga strankam optimizirati usposabljanje in uvajanje modela globokega učenja. Je tudi aktiven zagovornik rešitev ML z nizko kodo in strojne opreme, specializirane za ML.

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Mohan Gandhi je višji programski inženir pri AWS. Z AWS je zaposlen zadnjih 9 let in je delal na različnih storitvah AWS, kot so EMR, EFA in RDS na Outposts. Trenutno je osredotočen na izboljšanje SageMaker Inference Experience. V prostem času se ukvarja s pohodništvom in tekom maratonov.

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server 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.

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Santosh Bhavani je višji tehnični vodja izdelkov pri skupini Amazon SageMaker Elastic Inference. Osredotoča se na pomoč strankam SageMakerja, da pospešijo sklepanje in uvajanje modelov. V prostem času rad potuje, igra tenis in pije veliko Pu'er čaja.

Dosezite zmogljivost v hiperrazsežnosti za prikazovanje modelov z uporabo NVIDIA Triton Inference Server na Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai. Jiahong Liu je arhitekt rešitve v skupini ponudnikov storitev v oblaku pri NVIDIA. Strankam pomaga pri sprejemanju rešitev strojnega učenja in umetne inteligence, ki izkoriščajo pospešeno računalništvo NVIDIA za reševanje njihovih izzivov pri usposabljanju in sklepanju. V prostem času uživa v origamiju, DIY projektih in igra košarko.

Časovni žig:

Več od Strojno učenje AWS