Opnå fire gange højere ML-inferensgennemløb til tre gange lavere pris pr. inferens med Amazon EC2 G5-instanser til NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Opnå fire gange højere ML-inferensgennemløb til tre gange lavere pris pr. slutning med Amazon EC2 G5-instanser til NLP- og CV PyTorch-modeller

Amazon Elastic Compute Cloud (Amazon EC2) G5-forekomster er de første og eneste forekomster i skyen, der har NVIDIA A10G Tensor Core GPU'er, som du kan bruge til en bred vifte af grafikintensive og maskinlæring (ML)-brug. Med G5-forekomster får ML-kunder høj ydeevne og en omkostningseffektiv infrastruktur til at træne og implementere større og mere sofistikerede modeller til naturlig sprogbehandling (NLP), computervision (CV) og anbefalingsmotorer.

Formålet med dette indlæg er at vise ydelsesfordelene ved G5-instanser til storskala ML-inferens-arbejdsbelastninger. Vi gør dette ved at sammenligne pris-ydelsen (målt som $ per million slutninger) for NLP- og CV-modeller med G4dn-instanser. Vi starter med at beskrive vores benchmarking-tilgang og præsenterer derefter gennemstrømnings- vs. latency-kurver på tværs af batchstørrelser og datatypepræcision. I sammenligning med G4dn-forekomster finder vi, at G5-forekomster leverer konsekvent lavere omkostninger pr. million inferenser for både fuld præcision og blandet præcisionstilstande for NLP- og CV-modellerne, samtidig med at de opnår højere gennemløb og lavere latenstid.

Benchmarking tilgang

For at udvikle en pris-ydelsesundersøgelse mellem G5 og G4dn skal vi måle gennemløb, latens og pris pr. million slutninger som en funktion af batchstørrelse. Vi studerer også virkningen af ​​fuld præcision vs. blandet præcision. Både modelgrafen og inputs indlæses i CUDA før inferencing.

Som vist i det følgende arkitekturdiagram opretter vi først respektive basisbeholderbilleder med CUDA for den underliggende EC2-instans (G4dn, G5). For at bygge basisbeholderbillederne starter vi med AWS Deep Learning-containere, som bruger færdigpakkede Docker-billeder til at implementere dybe læringsmiljøer på få minutter. Billederne indeholder de nødvendige deep learning PyTorch-biblioteker og værktøjer. Du kan tilføje dine egne biblioteker og værktøjer oven på disse billeder for en højere grad af kontrol over overvågning, overholdelse og databehandling.

Derefter bygger vi et modelspecifikt containerbillede, der indkapsler modelkonfigurationen, modelsporingen og tilhørende kode til at køre fremadgående gennemløb. Alle containerbilleder indlæses i Amazon ECR for at give mulighed for horisontal skalering af disse modeller til forskellige modelkonfigurationer. Vi bruger Amazon Simple Storage Service (Amazon S3) som et fælles datalager til at downloade konfiguration og uploade benchmarkresultater til opsummering. Du kan bruge denne arkitektur til at genskabe og reproducere benchmark-resultaterne og genbruge til at benchmarke forskellige modeltyper (såsom Hugging Face-modeller, PyTorch-modeller, andre brugerdefinerede modeller) på tværs af EC2-instanstyper (CPU, GPU, Inf1).

Med dette eksperiment sat op, er vores mål at studere latens som funktion af gennemløb. Denne kurve er vigtig for applikationsdesign for at nå frem til en omkostningsoptimal infrastruktur for målapplikationen. For at opnå dette simulerer vi forskellige belastninger ved at stille forespørgsler fra flere tråde i kø og derefter måle rundturstiden for hver afsluttet anmodning. Gennemløbet måles baseret på antallet af afsluttede anmodninger pr. tidsenhed. Desuden kan du variere batchstørrelserne og andre variabler som f.eks. sekvenslængde og fuld præcision vs. halv præcision for omfattende at feje designrummet for at nå frem til vejledende præstationsmålinger. I vores undersøgelse, gennem et parametrisk sweep af batchstørrelse og forespørgsler fra multi-threaded-klienter, bestemmes gennemløbs- vs. latency-kurven. Hver anmodning kan batches for at sikre fuld udnyttelse af acceleratoren, især for små anmodninger, der muligvis ikke fuldt ud udnytter beregningsknuden. Du kan også anvende denne opsætning for at identificere batchstørrelsen på klientsiden for optimal ydeevne.

Sammenfattende kan vi repræsentere dette problem matematisk som: (Throughput, Latency) = funktion af (Batchstørrelse, Antal tråde, Præcision).

Det betyder, givet den udtømmende plads, at antallet af eksperimenter kan være stort. Heldigvis kan hvert eksperiment køres uafhængigt. Vi anbefaler at bruge AWS batch at udføre denne horisontalt skalerede benchmarking i komprimeret tid uden en stigning i benchmarking-omkostninger sammenlignet med en lineær tilgang til test. Koden til at replikere resultaterne er til stede i GitHub repository forberedt til AWS Re:Invent 2021. Depotet er omfattende til at udføre benchmarking på forskellige acceleratorer. Du kan henvise til GPU-aspektet af kode for at bygge containeren (Dockerfile-gpu) og derefter henvise til koden indeni Container-Root for specifikke eksempler for BERT og ResNet50.

Vi brugte den foregående tilgang til at udvikle præstationsundersøgelser på tværs af to modeltyper: Bert-base-uncased (110 millioner parametre, NLP) og ResNet50 (25.6 millioner parametre, CV). Følgende tabel opsummerer modeldetaljerne.

Model Type Model Detaljer
NLP twmkn9/bert-base-uncased-squad2 110 millioner parametre Sekvenslængde = 128
CV ResNet50 25.6 millioner parametre

Derudover bruger vi til at benchmarke på tværs af datatyper (fuld, halv præcision). torch.cuda.amp, som giver praktiske metoder til at håndtere blandet præcision, hvor nogle operationer bruger torch.float32 (flydende) datatype og anden brug af operationer torch.float16 (halvt). For eksempel er operatører som lineære lag og foldninger meget hurtigere med float16, mens andre som reduktioner ofte kræver det dynamiske område af float32. Automatisk blandet præcision forsøger at matche hver operatør til dens passende datatype for at optimere netværkets køretid og hukommelsesfodaftryk.

Benchmarking resultater

For en rimelig sammenligning valgte vi G4dn.4xlarge , G5.4xlarge instanser med lignende attributter, som angivet i følgende tabel.

Instans GPU'er GPU-hukommelse (GiB) vCPU'er Hukommelse (GiB) Forekomstlager (GB) Netværksydelse (Gbps) EBS-båndbredde (Gbps) Linux On-Demand-priser (us-east-1)
G5.4xlarge 1 24 16 64 1x 600 NVMe SSD op til 25 8 $ 1.204 / timen
G4dn.4xlarge 1 16 16 64 1x 225 NVMe SSD op til 25 4.75 $ 1.624 / timen

I de følgende afsnit sammenligner vi ML-inferens ydeevne for BERT- og RESNET50-modeller med en grid sweep-tilgang for specifikke batchstørrelser (32, 16, 8, 4, 1) og datatypepræcision (fuld og halv præcision) for at nå frem til gennemløbet vs. latenskurve. Derudover undersøger vi effekten af ​​gennemløb vs. batchstørrelse for både fuld og halv præcision. Til sidst måler vi omkostninger pr. million slutninger som en funktion af batchstørrelse. De konsoliderede resultater på tværs af disse eksperimenter er opsummeret senere i dette indlæg.

Gennemløb vs. latency

Følgende figurer sammenligner G4dn- og G5-instanser for NLP- og CV-arbejdsbelastninger med både fuld og halv præcision. Sammenlignet med G4dn-instanser leverer G5-instansen en gennemstrømning på omkring fem gange højere (fuld præcision) og omkring 2.5 gange højere (halv præcision) for en BERT-basismodel og omkring 2-2.5 gange højere for en ResNet50-model. Samlet set er G5 et foretrukket valg med stigende batchstørrelser for begge modeller for både fuld og blandet præcision set fra et ydeevneperspektiv.

Følgende grafer sammenligner gennemløb og P95-latens ved fuld og halv præcision for BERT.

Opnå fire gange højere ML-inferensgennemløb til tre gange lavere pris pr. inferens med Amazon EC2 G5-instanser til NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Lodret søgning. Ai. Opnå fire gange højere ML-inferensgennemløb til tre gange lavere pris pr. inferens med Amazon EC2 G5-instanser til NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Følgende grafer sammenligner gennemløb og P95-latens ved fuld og halv præcision for ResNet50.

Opnå fire gange højere ML-inferensgennemløb til tre gange lavere pris pr. inferens med Amazon EC2 G5-instanser til NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Lodret søgning. Ai. Opnå fire gange højere ML-inferensgennemløb til tre gange lavere pris pr. inferens med Amazon EC2 G5-instanser til NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Gennemløb og latenstid vs. batchstørrelse

De følgende grafer viser gennemløbet som funktion af batchstørrelsen. Ved lave batchstørrelser fungerer acceleratoren ikke til sin fulde kapacitet, og efterhånden som batchstørrelsen øges, øges gennemløbet på bekostning af latens. Gennemløbskurven asymptomerer til en maksimal værdi, der er en funktion af acceleratorens ydeevne. Kurven har to distinkte træk: en stigende sektion og en flad asymptotisk sektion. For en given model er en performant accelerator (G5) i stand til at strække den stigende sektion til højere batchstørrelser end G4dn og asymptote ved en højere gennemstrømning. Der er også en lineær afvejning mellem latens og batchstørrelse. Derfor, hvis applikationen er latenstidsbundet, kan vi bruge P95 latency vs batchstørrelse til at bestemme den optimale batchstørrelse. Men hvis målet er at maksimere gennemløbet ved den laveste latenstid, er det bedre at vælge batchstørrelsen svarende til "knæet" mellem de stigende og asymptotiske sektioner, fordi enhver yderligere stigning i batchstørrelsen ville resultere i den samme gennemstrømning ved en værre latenstid. For at opnå det bedste forhold mellem pris og ydeevne, målrettet mod højere gennemløb ved laveste latenstid, er du bedre tjent med at skalere dette optimale vandret gennem flere inferensservere i stedet for blot at øge batchstørrelsen.

Opnå fire gange højere ML-inferensgennemløb til tre gange lavere pris pr. inferens med Amazon EC2 G5-instanser til NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Omkostninger vs. batchstørrelse

I dette afsnit præsenterer vi de sammenlignende resultater af slutningsomkostninger ($ pr. million slutninger) versus batchstørrelsen. Fra den følgende figur kan vi tydeligt observere, at omkostningerne (målt som $ pr. million slutninger) konsekvent er lavere med både G5 vs. G4dn (fuld og halv præcision).

Opnå fire gange højere ML-inferensgennemløb til tre gange lavere pris pr. inferens med Amazon EC2 G5-instanser til NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Lodret søgning. Ai. Opnå fire gange højere ML-inferensgennemløb til tre gange lavere pris pr. inferens med Amazon EC2 G5-instanser til NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Følgende tabel opsummerer gennemløb, latens og omkostninger ($ pr. million slutninger) sammenligninger for BERT- og RESNET50-modeller på tværs af begge præcisionstilstande for specifikke batchstørrelser. På trods af en højere omkostning pr. instans, overgår G5 konsekvent G4dn på tværs af alle aspekter af slutningsforsinkelse, gennemløb og omkostninger ($ pr. million slutning) for alle batchstørrelser. Ved at kombinere de forskellige målinger til en pris ($ pr. million slutninger), er BERT-modellen (32 batchstørrelse, fuld præcision) med G5 3.7 gange mere fordelagtig end G4dn, og med ResNet50-modellen (32 batchstørrelse, fuld præcision) er den 1.6 gange mere gunstig end G4dn.

Model Batch størrelse Precision

gennemløb

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

Latency (ms)

$/million

Konklusioner (on-demand)

Omkostningsfordel

(G5 over G4dn)

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

Yderligere slutningsbenchmarks

Ud over BERT-basen og ResNet50-resultaterne i de foregående afsnit præsenterer vi yderligere benchmarking-resultater for andre almindeligt anvendte store NLP- og CV-modeller i PyTorch. Ydeevnefordelene ved G5 i forhold til G4dn er blevet præsenteret for BERT Large-modeller med forskellig præcision og Yolo-v5-modeller for forskellige størrelser. For koden til replikering af benchmark henvises til NVIDIA Deep Learning-eksempler for tensorkerner. Disse resultater viser fordelen ved at bruge G5 over G4dn til en bred vifte af inferensopgaver, der spænder over forskellige modeltyper.

Model Precision Batch størrelse Sekvenslængde Gennemløb (sendt/sek.) Gennemløb: 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
Model GFLOPS Antal parametre Forbehandling (ms) Inferens (ms) Inferens (Ikke-maks-undertrykkelse) (NMS/billede)
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

Konklusion

I dette indlæg viste vi, at for at udlede med store NLP- og CV PyTorch-modeller er EC2 G5-instanser et bedre valg sammenlignet med G4dn-instanser. Selvom on-demand timeomkostninger for G5-instanser er højere end G4dn-instanser, kan dens højere ydeevne opnå 2-5 gange gennemløbet ved enhver præcision for NLP- og CV-modeller, hvilket gør omkostningerne pr. million slutninger 1.5-3.5 gange mere fordelagtige end G4dn-forekomster. Selv for latensbundne applikationer er G5 2.5-5 gange bedre end G4dn for NLP- og CV-modeller.

Sammenfattende er AWS G5-forekomster et glimrende valg til dine slutningsbehov ud fra et ydelses- og pris pr. slutningsperspektiv. Universaliteten af ​​CUDA-rammen og skalaen og dybden af ​​G5-instanspuljen på AWS giver dig en unik evne til at udføre slutninger i skala.


Om forfatterne

Opnå fire gange højere ML-inferensgennemløb til tre gange lavere pris pr. inferens med Amazon EC2 G5-instanser til NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Ankur Srivastava er Sr. Solutions Architect i ML Frameworks Team. Han fokuserer på at hjælpe kunder med selvstyret distribueret træning og konklusioner i stor skala om AWS. Hans erfaring omfatter industriel prædiktiv vedligeholdelse, digitale tvillinger, probabilistisk designoptimering og har afsluttet sine doktorgradsstudier fra Mechanical Engineering ved Rice University og post-doc forskning fra Massachusetts Institute of Technology.

Opnå fire gange højere ML-inferensgennemløb til tre gange lavere pris pr. inferens med Amazon EC2 G5-instanser til NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Sundar Ranganathan er chef for forretningsudvikling, ML Frameworks på Amazon EC2-teamet. Han fokuserer på store ML-arbejdsbelastninger på tværs af AWS-tjenester som Amazon EKS, Amazon ECS, Elastic Fabric Adapter, AWS Batch og Amazon SageMaker. Hans erfaring omfatter lederroller inden for produktledelse og produktudvikling hos NetApp, Micron Technology, Qualcomm og Mentor Graphics.

Opnå fire gange højere ML-inferensgennemløb til tre gange lavere pris pr. inferens med Amazon EC2 G5-instanser til NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Mahadevan Balasubramaniam er en Principal Solutions Architect for Autonomous Computing med næsten 20 års erfaring inden for fysik-infunderet dyb læring, opbygning og implementering af digitale tvillinger til industrielle systemer i stor skala. Mahadevan opnåede sin ph.d. i Mechanical Engineering fra Massachusetts Institute of Technology og har over 25 patenter og publikationer til gode.

Opnå fire gange højere ML-inferensgennemløb til tre gange lavere pris pr. inferens med Amazon EC2 G5-instanser til NLP- og CV PyTorch-modeller PlatoBlockchain Data Intelligence. Lodret søgning. Ai. Amr Ragab er en Principal Solutions Architect for EC2 Accelerated Platforms for AWS, dedikeret til at hjælpe kunder med at køre beregningsmæssige arbejdsbelastninger i stor skala. I sin fritid kan han godt lide at rejse og finde nye måder at integrere teknologi i dagligdagen.

Tidsstempel:

Mere fra AWS maskinindlæring