Oppnå fire ganger høyere ML-slutningsgjennomstrømning til tre ganger lavere kostnad per slutning med Amazon EC2 G5-forekomster for NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Oppnå fire ganger høyere ML-slutningsgjennomstrømning til tre ganger lavere kostnad per slutning med Amazon EC2 G5-forekomster for NLP- og CV PyTorch-modeller

Amazon Elastic Compute Cloud (Amazon EC2) G5-forekomster er de første og eneste forekomstene i skyen som har NVIDIA A10G Tensor Core GPUer, som du kan bruke til et bredt spekter av grafikkintensive og maskinlæringsbruk (ML). Med G5-forekomster får ML-kunder høy ytelse og en kostnadseffektiv infrastruktur for å trene og distribuere større og mer sofistikerte modeller for naturlig språkbehandling (NLP), datasyn (CV) og brukstilfeller for anbefalte motorer.

Hensikten med dette innlegget er å vise frem ytelsesfordelene til G5-forekomster for storskala ML-inferensarbeidsbelastninger. Vi gjør dette ved å sammenligne pris-ytelse (målt som $ per million slutninger) for NLP- og CV-modeller med G4dn-forekomster. Vi starter med å beskrive vår benchmarking-tilnærming og presenterer deretter kurver for gjennomstrømning vs. latens på tvers av batchstørrelser og datatypepresisjon. Sammenlignet med G4dn-forekomster, finner vi at G5-forekomster leverer konsekvent lavere kostnad per million slutninger for både full presisjon og blandet presisjonsmodus for NLP- og CV-modellene samtidig som de oppnår høyere gjennomstrømning og lavere ventetid.

Benchmarking tilnærming

For å utvikle en pris-ytelsesstudie mellom G5 og G4dn, må vi måle gjennomstrømning, ventetid og kostnad per million slutninger som en funksjon av batchstørrelse. Vi studerer også virkningen av full presisjon vs. blandet presisjon. Både modellgrafen og innganger lastes inn i CUDA før konklusjon.

Som vist i følgende arkitekturdiagram, lager vi først respektive basisbeholderbilder med CUDA for den underliggende EC2-forekomsten (G4dn, G5). For å bygge grunnbeholderbildene starter vi med AWS Deep Learning-beholdere, som bruker ferdigpakkede Docker-bilder for å distribuere dype læringsmiljøer på få minutter. Bildene inneholder de nødvendige PyTorch-bibliotekene og verktøyene for dyp læring. Du kan legge til dine egne biblioteker og verktøy på toppen av disse bildene for en høyere grad av kontroll over overvåking, samsvar og databehandling.

Deretter bygger vi et modellspesifikt beholderbilde som innkapsler modellkonfigurasjonen, modellsporingen og relatert kode for å kjøre foroverpasseringer. Alle containerbilder lastes inn i Amazon ECR for å tillate horisontal skalering av disse modellene for ulike modellkonfigurasjoner. Vi bruker Amazon enkel lagringstjeneste (Amazon S3) som et vanlig datalager for å laste ned konfigurasjon og laste opp referanseresultater for oppsummering. Du kan bruke denne arkitekturen til å gjenskape og reprodusere benchmark-resultatene og bruke til å benchmarke ulike modelltyper (som Hugging Face-modeller, PyTorch-modeller, andre tilpassede modeller) på tvers av EC2-forekomsttyper (CPU, GPU, Inf1).

Med dette eksperimentet satt opp, er målet vårt å studere latens som en funksjon av gjennomstrømning. Denne kurven er viktig for applikasjonsdesign for å komme frem til en kostnadsoptimal infrastruktur for målapplikasjonen. For å oppnå dette simulerer vi forskjellige belastninger ved å sette opp spørringer fra flere tråder og deretter måle tur-retur-tiden for hver fullførte forespørsel. Gjennomstrømning måles basert på antall fullførte forespørsler per tidsenhet. I tillegg kan du variere batchstørrelsene og andre variabler som sekvenslengde og full presisjon vs. halv presisjon for omfattende å sveipe designområdet for å komme frem til veiledende ytelsesmålinger. I vår studie, gjennom en parametrisk sveip av batchstørrelse og forespørsler fra flertrådede klienter, bestemmes kurven for gjennomstrømning vs. latens. Hver forespørsel kan grupperes for å sikre full utnyttelse av akseleratoren, spesielt for små forespørsler som kanskje ikke fullt ut utnytter beregningsnoden. Du kan også bruke dette oppsettet for å identifisere batchstørrelsen på klientsiden for optimal ytelse.

Oppsummert kan vi representere dette problemet matematisk som: (Throughput, Latency) = funksjon av (Batch Size, Number of threads, Precision).

Dette betyr, gitt den uttømmende plassen, kan antallet eksperimenter være stort. Heldigvis kan hvert eksperiment kjøres uavhengig. Vi anbefaler å bruke AWS-batch å utføre denne horisontalt skalerte benchmarkingen i komprimert tid uten en økning i benchmarking-kostnadene sammenlignet med en lineær tilnærming til testing. Koden for å replikere resultatene er til stede i GitHub repository forberedt for AWS Re:Invent 2021. Depotet er omfattende for å utføre benchmarking på forskjellige akseleratorer. Du kan referere til GPU-aspektet av koden for å bygge beholderen (Dockerfile-gpu) og referer deretter til koden på innsiden Container-Root for spesifikke eksempler for BERT og ResNet50.

Vi brukte den foregående tilnærmingen til å utvikle ytelsesstudier på tvers av to modelltyper: Bert-base-uncased (110 millioner parametere, NLP) og ResNet50 (25.6 millioner parametere, CV). Tabellen nedenfor oppsummerer modelldetaljene.

Modell Type Modell Detaljer
NLP twmkn9/bert-base-uncased-squad2 110 millioner parametere Sekvenslengde = 128
CV ResNet50 25.6 millioner parametere

I tillegg, for å benchmarke på tvers av datatyper (full, halv presisjon), bruker vi torch.cuda.amp, som gir praktiske metoder for å håndtere blandet presisjon der enkelte operasjoner bruker torch.float32 (flytende) datatype og annen bruk av operasjoner torch.float16 (halv). For eksempel er operatører som lineære lag og konvolusjoner mye raskere med float16, mens andre som reduksjoner ofte krever det dynamiske området til float32. Automatisk blandet presisjon prøver å tilpasse hver operatør til dens passende datatype for å optimalisere nettverkets kjøretid og minneavtrykk.

Benchmarking resultater

For en rettferdig sammenligning valgte vi G4dn.4xlarge og G5.4xlarge forekomster med lignende attributter, som oppført i tabellen nedenfor.

Forekomst GPU GPU-minne (GiB) vCPUer Minne (GiB) Forekomstlagring (GB) Nettverksytelse (Gbps) EBS-båndbredde (Gbps) Linux On-Demand-priser (us-east-1)
G5.4xlarge 1 24 16 64 1x 600 NVMe SSD opp til 25 8 $ 1.204 / time
G4dn.4xlarge 1 16 16 64 1x 225 NVMe SSD opp til 25 4.75 $ 1.624 / time

I de følgende avsnittene sammenligner vi ML-slutningsytelsen til BERT- og RESNET50-modeller med en grid sweep-tilnærming for spesifikke batchstørrelser (32, 16, 8, 4, 1) og datatypepresisjon (full og halv presisjon) for å komme frem til gjennomstrømmingen vs. latenstidskurve. I tillegg undersøker vi effekten av gjennomstrømning vs. batchstørrelse for både full og halv presisjon. Til slutt måler vi kostnad per million slutninger som en funksjon av batchstørrelse. De konsoliderte resultatene på tvers av disse eksperimentene er oppsummert senere i dette innlegget.

Gjennomstrømning kontra latens

De følgende figurene sammenligner G4dn- og G5-forekomster for NLP- og CV-arbeidsbelastninger med både full og halv presisjon. Sammenlignet med G4dn-forekomster, leverer G5-forekomsten en gjennomstrømning på omtrent fem ganger høyere (full presisjon) og omtrent 2.5 ganger høyere (halv presisjon) for en BERT-basismodell, og omtrent 2–2.5 ganger høyere for en ResNet50-modell. Totalt sett er G5 et foretrukket valg, med økende batchstørrelser for begge modellene for både full og blandet presisjon fra et ytelsesperspektiv.

Følgende grafer sammenligner gjennomstrømning og P95-latens med full og halv presisjon for BERT.

Oppnå fire ganger høyere ML-slutningsgjennomstrømning til tre ganger lavere kostnad per slutning med Amazon EC2 G5-forekomster for NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikalt søk. Ai. Oppnå fire ganger høyere ML-slutningsgjennomstrømning til tre ganger lavere kostnad per slutning med Amazon EC2 G5-forekomster for NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Følgende grafer sammenligner gjennomstrømning og P95-latens med full og halv presisjon for ResNet50.

Oppnå fire ganger høyere ML-slutningsgjennomstrømning til tre ganger lavere kostnad per slutning med Amazon EC2 G5-forekomster for NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikalt søk. Ai. Oppnå fire ganger høyere ML-slutningsgjennomstrømning til tre ganger lavere kostnad per slutning med Amazon EC2 G5-forekomster for NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Gjennomstrømning og ventetid vs. batchstørrelse

Følgende grafer viser gjennomstrømningen som en funksjon av batchstørrelsen. Ved lave batchstørrelser fungerer ikke akseleratoren til full kapasitet, og etter hvert som batchstørrelsen øker, økes gjennomstrømningen på bekostning av latens. Gjennomstrømningskurven asymptoterer til en maksimal verdi som er en funksjon av akseleratorytelsen. Kurven har to distinkte trekk: en stigende seksjon og en flat asymptotisk seksjon. For en gitt modell er en performant akselerator (G5) i stand til å strekke den stigende seksjonen til høyere batchstørrelser enn G4dn og asymptote ved høyere gjennomstrømning. Det er også en lineær avveining mellom ventetid og batchstørrelse. Derfor, hvis applikasjonen er latensbundet, kan vi bruke P95-latens vs. batchstørrelse for å bestemme den optimale batchstørrelsen. Men hvis målet er å maksimere gjennomstrømningen ved lavest ventetid, er det bedre å velge batchstørrelsen som tilsvarer "kneet" mellom de stigende og asymptotiske seksjonene, fordi enhver ytterligere økning i batchstørrelsen vil resultere i samme gjennomstrømning ved en dårligere ventetid. For å oppnå det beste forholdet mellom pris og ytelse, målrettet mot høyere gjennomstrømning med lavest ventetid, er det bedre å skalere dette optimale horisontalt gjennom flere inferensservere i stedet for bare å øke batchstørrelsen.

Oppnå fire ganger høyere ML-slutningsgjennomstrømning til tre ganger lavere kostnad per slutning med Amazon EC2 G5-forekomster for NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Kostnad vs. batchstørrelse

I denne delen presenterer vi de komparative resultatene av slutningskostnader ($ per million slutninger) versus batchstørrelsen. Fra følgende figur kan vi tydelig observere at kostnaden (målt som $ per million slutninger) er konsekvent lavere med G5 vs. G4dn begge (hel og halv presisjon).

Oppnå fire ganger høyere ML-slutningsgjennomstrømning til tre ganger lavere kostnad per slutning med Amazon EC2 G5-forekomster for NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikalt søk. Ai. Oppnå fire ganger høyere ML-slutningsgjennomstrømning til tre ganger lavere kostnad per slutning med Amazon EC2 G5-forekomster for NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Følgende tabell oppsummerer gjennomstrømning, ventetid og kostnad ($ per million slutninger) sammenligninger for BERT- og RESNET50-modeller på tvers av begge presisjonsmodusene for spesifikke batchstørrelser. Til tross for en høyere kostnad per forekomst, overgår G5 konsekvent G4dn på tvers av alle aspekter av slutningsforsinkelse, gjennomstrømning og kostnad ($ per million slutninger), for alle batchstørrelser. Ved å kombinere de forskjellige beregningene til en kostnad ($ per million slutninger), er BERT-modellen (32 batchstørrelse, full presisjon) med G5 3.7 ganger gunstigere enn G4dn, og med ResNet50-modellen (32 batchstørrelse, full presisjon) er den 1.6 ganger gunstigere enn G4dn.

Modell Partistørrelse, Gruppestørrelse Precision

gjennomstrømming

(Batchstørrelse X Forespørsler/sek.)

Latency (ms)

$/million

Konklusjoner (på forespørsel)

Kostnadsfordeler

(G5 over G4dn)

. . . G5 G4dn G5 G4dn G5 G4dn
Bert-base-udekslet 32 Full 723 154 44 208 $0.6 $2.2 3.7X
Blandet 870 410 37 79 $0.5 $0.8 1.6X
16 Full 651 158 25 102 $0.7 $2.1 3.0X
Blandet 762 376 21 43 $0.6 $0.9 1.5X
8 Full 642 142 13 57 $0.7 $2.3 3.3X
Blandet 681 350 12 23 $0.7 $1.0 1.4X
. 1 Full 160 116 6 9 $2.8 $2.9 1.0X
Blandet 137 102 7 10 $3.3 $3.3 1.0X
ResNet50 32 Full 941 397 34 82 $0.5 $0.8 1.6X
Blandet 1533 851 21 38 $0.3 $0.4 1.3X
16 Full 888 384 18 42 $0.5 $0.9 1.8X
Blandet 1474 819 11 20 $0.3 $0.4 1.3X
8 Full 805 340 10 24 $0.6 $1.0 1.7X
Blandet 1419 772 6 10 $0.3 $0.4 1.3X
. 1 Full 202 164 5 6 $2.2 $2 0.9X
Blandet 196 180 5 6 $2.3 $1.9 0.8X

Ytterligere inferensreferanser

I tillegg til BERT-basen og ResNet50-resultatene i de foregående delene, presenterer vi ytterligere benchmarking-resultater for andre ofte brukte store NLP- og CV-modeller i PyTorch. Ytelsesfordelen til G5 fremfor G4dn har blitt presentert for BERT Large-modeller med ulik presisjon, og Yolo-v5-modeller for forskjellige størrelser. For koden for replikering av benchmark, se NVIDIA Deep Learning-eksempler for tensorkjerner. Disse resultatene viser fordelen med å bruke G5 over G4dn for et bredt spekter av slutningsoppgaver som spenner over forskjellige modelltyper.

Modell Precision Partistørrelse, Gruppestørrelse Sekvenslengde Gjennomstrømning (sendt/sek.) Gjennomstrømning: G4dn Speedup over G4dn
BERT-stor FP16 1 128 93.5 40.31 2.3
BERT-stor FP16 4 128 264.2 87.4 3.0
BERT-stor FP16 8 128 392.1 107.5 3.6
BERT-stor FP32 1 128 68.4 22.67 3.0
BERT-stor 4 128 118.5 32.21 3.7
BERT-stor 8 128 132.4 34.67 3.8
Modell GFLOPS Antall parametere Forbehandling (ms) Inferens (ms) Inferens (ikke-maks-undertrykkelse) (NMS/bilde)
YOLOv5s 16.5 7.2M 0.2 3.6 4.5
YOLOv5m 49.1 21M 0.2 6.5 4.5
YOLOv5l 109.3 46M 0.2 9.1 3.5
YOLOv5x 205.9 86M 0.2 14.4 1.3

konklusjonen

I dette innlegget viste vi at for slutninger med store NLP- og CV PyTorch-modeller, er EC2 G5-forekomster et bedre valg sammenlignet med G4dn-forekomster. Selv om timekostnaden på forespørsel for G5-forekomster er høyere enn G4dn-forekomster, kan dens høyere ytelse oppnå 2–5 ganger gjennomstrømmingen til enhver presisjon for NLP- og CV-modeller, noe som gjør kostnaden per million slutninger 1.5–3.5 ganger gunstigere enn G4dn-forekomster. Selv for latensbundne applikasjoner er G5 2.5–5 ganger bedre enn G4dn for NLP- og CV-modeller.

Oppsummert er AWS G5-forekomster et utmerket valg for dine slutningsbehov både fra et ytelses- og kostnad per slutningsperspektiv. Universaliteten til CUDA-rammeverket og skalaen og dybden til G5-instanspoolen på AWS gir deg en unik evne til å utføre slutninger i skala.


Om forfatterne

Oppnå fire ganger høyere ML-slutningsgjennomstrømning til tre ganger lavere kostnad per slutning med Amazon EC2 G5-forekomster for NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Ankur Srivastava er senior løsningsarkitekt i ML Frameworks Team. Han fokuserer på å hjelpe kunder med selvstyrt distribuert opplæring og slutninger i stor skala på AWS. Hans erfaring inkluderer industrielt prediktivt vedlikehold, digitale tvillinger, probabilistisk designoptimalisering og har fullført sine doktorgradsstudier fra Mechanical Engineering ved Rice University og post-doktor forskning fra Massachusetts Institute of Technology.

Oppnå fire ganger høyere ML-slutningsgjennomstrømning til tre ganger lavere kostnad per slutning med Amazon EC2 G5-forekomster for NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Sundar Ranganathan er leder for forretningsutvikling, ML Frameworks på Amazon EC2-teamet. Han fokuserer på storskala ML-arbeidsbelastninger på tvers av AWS-tjenester som Amazon EKS, Amazon ECS, Elastic Fabric Adapter, AWS Batch og Amazon SageMaker. Hans erfaring inkluderer lederroller innen produktledelse og produktutvikling hos NetApp, Micron Technology, Qualcomm og Mentor Graphics.

Oppnå fire ganger høyere ML-slutningsgjennomstrømning til tre ganger lavere kostnad per slutning med Amazon EC2 G5-forekomster for NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Mahadevan Balasubramaniam er en hovedløsningsarkitekt for autonom databehandling med nesten 20 års erfaring innen fysikk-infundert dyp læring, bygging og distribusjon av digitale tvillinger for industrielle systemer i stor skala. Mahadevan oppnådde sin doktorgrad i maskinteknikk fra Massachusetts Institute of Technology og har over 25 patenter og publikasjoner på kreditt.

Oppnå fire ganger høyere ML-slutningsgjennomstrømning til tre ganger lavere kostnad per slutning med Amazon EC2 G5-forekomster for NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikalt søk. Ai. Amr Ragab er en hovedløsningsarkitekt for EC2 Accelerated Platforms for AWS, dedikert til å hjelpe kunder med å kjøre beregningsmessige arbeidsbelastninger i stor skala. På fritiden liker han å reise og finne nye måter å integrere teknologi i dagliglivet.

Tidstempel:

Mer fra AWS maskinlæring