Obțineți un proces de inferență ML de patru ori mai mare la un cost pe inferență de trei ori mai mic cu instanțele Amazon EC2 G5 pentru modelele NLP și CV PyTorch PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Obțineți un randament de inferență ML de patru ori mai mare la un cost pe inferență de trei ori mai mic cu instanțele Amazon EC2 G5 pentru modelele NLP și CV PyTorch

Cloud Elastic de calcul Amazon (Amazon EC2) Instanțele G5 sunt primele și singurele instanțe din cloud care prezintă GPU-uri NVIDIA A10G Tensor Core, pe care le puteți utiliza pentru o gamă largă de cazuri de utilizare intensive în grafică și învățare automată (ML). Cu instanțele G5, clienții ML obțin performanță ridicată și o infrastructură eficientă din punct de vedere al costurilor pentru a instrui și a implementa modele mai mari și mai sofisticate pentru procesarea limbajului natural (NLP), viziunea computerizată (CV) și cazurile de utilizare ale motorului de recomandare.

Scopul acestei postări este de a arăta beneficiile de performanță ale instanțelor G5 pentru sarcinile de lucru de inferență ML la scară largă. Facem acest lucru comparând prețul-performanță (măsurat ca inferențe pe milion de dolari) pentru modelele NLP și CV cu instanțe G4dn. Începem prin a descrie abordarea noastră de analiză comparativă și apoi prezentăm curbele de tranziție în raport cu latența pentru dimensiunile loturilor și precizia tipului de date. În comparație cu instanțele G4dn, constatăm că instanțele G5 oferă costuri pe milion mai mici în mod constant atât pentru modurile de precizie completă, cât și pentru modurile de precizie mixtă pentru modelele NLP și CV, obținând în același timp un debit mai mare și o latență mai mică.

Abordarea de benchmarking

Pentru a dezvolta un studiu preț-performanță între G5 și G4dn, trebuie să măsurăm debitul, latența și costul pe milion de inferențe în funcție de dimensiunea lotului. De asemenea, studiem impactul preciziei complete în comparație cu precizia mixtă. Atât graficul modelului, cât și intrările sunt încărcate în CUDA înainte de deducere.

După cum se arată în următoarea diagramă de arhitectură, mai întâi creăm imaginile containerului de bază respective cu CUDA pentru instanța de bază EC2 (G4dn, G5). Pentru a construi imaginile containerului de bază, începem cu Containere de învățare profundă AWS, care utilizează imagini Docker pre-ambalate pentru a implementa medii de învățare profundă în câteva minute. Imaginile conțin bibliotecile și instrumentele necesare pentru învățare profundă PyTorch. Puteți adăuga propriile biblioteci și instrumente peste aceste imagini pentru un grad mai mare de control asupra monitorizării, conformității și procesării datelor.

Apoi construim o imagine de container specifică modelului care încapsulează configurația modelului, urmărirea modelului și codul aferent pentru a rula trecerile înainte. Toate imaginile containerului sunt încărcate în Amazon ECR pentru a permite scalarea orizontală a acestor modele pentru diferite configurații de model. Folosim Serviciul Amazon de stocare simplă (Amazon S3) ca un magazin de date obișnuit pentru a descărca configurația și a încărca rezultate de referință pentru rezumare. Puteți utiliza această arhitectură pentru a recrea și a reproduce rezultatele benchmark-ului și a reutiliza diverse tipuri de modele (cum ar fi modelele Hugging Face, modelele PyTorch, alte modele personalizate) pe tipurile de instanțe EC2 (CPU, GPU, Inf1).

Cu acest experiment configurat, scopul nostru este să studiem latența în funcție de debit. Această curbă este importantă pentru proiectarea aplicației pentru a ajunge la o infrastructură optimă din punct de vedere al costurilor pentru aplicația țintă. Pentru a realiza acest lucru, simulăm diferite încărcări prin plasarea în coadă a interogărilor din mai multe fire și apoi măsurarea timpului de călătorie dus-întors pentru fiecare cerere finalizată. Debitul este măsurat pe baza numărului de solicitări finalizate pe unitatea de timp. În plus, puteți varia dimensiunile lotului și alte variabile, cum ar fi lungimea secvenței și precizia completă față de jumătatea preciziei, pentru a mătura în mod cuprinzător spațiul de proiectare pentru a ajunge la valori indicative de performanță. În studiul nostru, printr-o analiză parametrică a dimensiunii lotului și a interogărilor de la clienții cu mai multe fire, este determinată curba de tranzit vs. latență. Fiecare cerere poate fi grupată pentru a asigura utilizarea deplină a acceleratorului, în special pentru cererile mici care ar putea să nu utilizeze pe deplin nodul de calcul. De asemenea, puteți adopta această configurație pentru a identifica dimensiunea lotului de client pentru performanțe optime.

În rezumat, putem reprezenta matematic această problemă ca: (Throughput, Latency) = funcția (Batch Size, Number of threads, Precision).

Aceasta înseamnă că, având în vedere spațiul exhaustiv, numărul de experimente poate fi mare. Din fericire, fiecare experiment poate fi rulat independent. Vă recomandăm să utilizați Lot AWS pentru a efectua acest benchmarking la scară orizontală într-un timp comprimat fără o creștere a costului de benchmarking în comparație cu o abordare liniară a testării. Codul pentru replicarea rezultatelor este prezent în GitHub depozit pregătit pentru AWS Re:Invent 2021. Depozitul este complet pentru a efectua benchmarking pe diferite acceleratoare. Vă puteți referi la aspectul GPU al codului pentru a construi containerul (Dockerfile-gpu) și apoi consultați codul din interior Container-Root pentru exemple specifice pentru BERT și ResNet50.

Am folosit abordarea anterioară pentru a dezvolta studii de performanță pe două tipuri de modele: Bert-base-uncased (110 milioane de parametri, NLP) și ResNet50 (25.6 milioane de parametri, CV). Următorul tabel rezumă detaliile modelului.

Tipul modelului Model Detalii
PNL twmkn9/bert-base-uncased-squad2 110 milioane de parametri Lungimea secvenței = 128
CV ResNet50 25.6 de milioane de parametri

În plus, folosim pentru compararea între tipurile de date (complet, jumătate de precizie). torch.cuda.amp, care oferă metode convenabile de a gestiona precizia mixtă în cazul în care unele operațiuni folosesc torch.float32 (float) tip de date și alte operațiuni utilizate torch.float16 (jumătate). De exemplu, operatorii precum straturile liniare și convoluțiile sunt mult mai rapidi cu float16, în timp ce alții precum reducerile necesită adesea intervalul dinamic al float32. Precizia mixtă automată încearcă să potrivească fiecare operator cu tipul de date corespunzător pentru a optimiza durata de funcționare a rețelei și amprenta memoriei.

Rezultatele benchmarking-ului

Pentru o comparație corectă, am selectat G4dn.4xlarge și G5.4xlarg instanțe cu atribute similare, așa cum este listat în tabelul următor.

instanță unități de procesare grafică Memorie GPU (GiB) vCPU-uri Memorie (GiB) Stocare de instanță (GB) Performanța rețelei (Gbps) Lățime de bandă EBS (Gbps) Prețuri la cerere Linux (us-east-1)
G5.4xlarg 1 24 16 64 1x 600 NVMe SSD până la 25 8 $ 1.204 / oră
G4dn.4xlarge 1 16 16 64 1x 225 NVMe SSD până la 25 4.75 $ 1.624 / oră

În secțiunile următoare, comparăm performanța de inferență ML a modelelor BERT și RESNET50 cu o abordare de măturare a grilei pentru dimensiuni specifice loturilor (32, 16, 8, 4, 1) și precizia tipului de date (precizie completă și jumătate) pentru a ajunge la debit vs curba de latență. În plus, investigăm efectul debitului față de dimensiunea lotului atât pentru precizie completă, cât și pe jumătate. În cele din urmă, măsurăm costul pe milion de inferențe în funcție de dimensiunea lotului. Rezultatele consolidate ale acestor experimente sunt rezumate mai târziu în această postare.

Debit vs latență

Următoarele cifre compară instanțele G4dn și G5 pentru sarcinile de lucru NLP și CV atât la precizie completă, cât și la jumătate. În comparație cu instanțele G4dn, instanța G5 oferă un debit de aproximativ cinci ori mai mare (precizie completă) și de aproximativ 2.5 ori mai mare (precizie pe jumătate) pentru un model de bază BERT și de aproximativ 2-2.5 ori mai mare pentru un model ResNet50. În general, G5 este o alegere preferată, cu dimensiuni în creștere ale loturilor pentru ambele modele, atât pentru precizie completă, cât și mixtă din perspectiva performanței.

Următoarele grafice compară debitul și latența P95 la precizie completă și jumătate pentru BERT.

Obțineți un proces de inferență ML de patru ori mai mare la un cost pe inferență de trei ori mai mic cu instanțele Amazon EC2 G5 pentru modelele NLP și CV PyTorch PlatoBlockchain Data Intelligence. Căutare verticală. Ai. Obțineți un proces de inferență ML de patru ori mai mare la un cost pe inferență de trei ori mai mic cu instanțele Amazon EC2 G5 pentru modelele NLP și CV PyTorch PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Următoarele grafice compară debitul și latența P95 la precizie completă și jumătate pentru ResNet50.

Obțineți un proces de inferență ML de patru ori mai mare la un cost pe inferență de trei ori mai mic cu instanțele Amazon EC2 G5 pentru modelele NLP și CV PyTorch PlatoBlockchain Data Intelligence. Căutare verticală. Ai. Obțineți un proces de inferență ML de patru ori mai mare la un cost pe inferență de trei ori mai mic cu instanțele Amazon EC2 G5 pentru modelele NLP și CV PyTorch PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Debit și latență față de dimensiunea lotului

Următoarele grafice arată debitul în funcție de dimensiunea lotului. La dimensiuni reduse ale lotului, acceleratorul nu funcționează la capacitatea maximă și pe măsură ce dimensiunea lotului crește, debitul crește cu prețul latenței. Curba de debit asimptotă la o valoare maximă care este o funcție de performanța acceleratorului. Curba are două caracteristici distincte: o secțiune ascendentă și o secțiune asimptotică plată. Pentru un model dat, un accelerator performant (G5) este capabil să întindă secțiunea ascendentă la dimensiuni de lot mai mari decât G4dn și să asimptote la un debit mai mare. De asemenea, există un compromis liniar între latență și dimensiunea lotului. Prin urmare, dacă aplicația este legată de latență, putem folosi latența P95 față de dimensiunea lotului pentru a determina dimensiunea optimă a lotului. Cu toate acestea, dacă obiectivul este de a maximiza debitul la cea mai mică latență, este mai bine să selectați dimensiunea lotului corespunzătoare „genunchiului” dintre secțiunile în creștere și asimptotice, deoarece orice creștere suplimentară a dimensiunii lotului ar duce la același debit la un latență mai proastă. Pentru a obține cel mai bun raport preț-performanță, țintind un randament mai mare la cea mai mică latență, este mai bine să scalați pe orizontală acest optim prin mai multe servere de inferență, decât să creșteți doar dimensiunea lotului.

Obțineți un proces de inferență ML de patru ori mai mare la un cost pe inferență de trei ori mai mic cu instanțele Amazon EC2 G5 pentru modelele NLP și CV PyTorch PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Cost față de dimensiunea lotului

În această secțiune, prezentăm rezultatele comparative ale costurilor de inferență ($ per milion de inferențe) față de dimensiunea lotului. Din următoarea figură, putem observa clar că costul (măsurat ca inferențe pe milion de dolari) este în mod constant mai mic cu G5 față de G4dn ambele (precizie completă și jumătate).

Obțineți un proces de inferență ML de patru ori mai mare la un cost pe inferență de trei ori mai mic cu instanțele Amazon EC2 G5 pentru modelele NLP și CV PyTorch PlatoBlockchain Data Intelligence. Căutare verticală. Ai. Obțineți un proces de inferență ML de patru ori mai mare la un cost pe inferență de trei ori mai mic cu instanțele Amazon EC2 G5 pentru modelele NLP și CV PyTorch PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Următorul tabel rezumă comparațiile între debitul, latența și costul (inferențe pe milion USD) pentru modelele BERT și RESNET50 în ambele moduri de precizie pentru anumite dimensiuni de lot. În ciuda unui cost mai mare pe instanță, G5 depășește în mod constant G4dn în toate aspectele legate de latența, debitul și costul inferenței (deducție pe milion de dolari), pentru toate dimensiunile de loturi. Combinând diferitele valori într-un cost ($ per milion de inferențe), modelul BERT (32 dimensiune lot, precizie completă) cu G5 este de 3.7 ori mai favorabil decât G4dn, iar cu modelul ResNet50 (32 dimensiune lot, precizie completă), este de 1.6 ori mai favorabil decât G4dn.

Model Dimensiunea lotului Precizie

tranzitată

(Dimensiunea lotului X Cereri/sec)

Latența (ms)

$/milion

Inferențe (la cerere)

Cost beneficiu

(G5 peste G4dn)

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

Criterii de referință suplimentare

Pe lângă rezultatele de bază BERT și ResNet50 din secțiunile anterioare, prezentăm rezultate suplimentare de analiză comparativă pentru alte modele NLP și CV mari utilizate în mod obișnuit în PyTorch. Avantajul de performanță al G5 față de G4dn a fost prezentat pentru modelele BERT Large la diferite precizii și modelele Yolo-v5 pentru diferite dimensiuni. Pentru codul pentru replicarea benchmark-ului, consultați Exemple de învățare profundă NVIDIA pentru nuclee tensor. Aceste rezultate arată beneficiul utilizării G5 față de G4dn pentru o gamă largă de sarcini de inferență care acoperă diferite tipuri de modele.

Model Precizie Dimensiunea lotului Lungimea secvenței Debit (trimis/sec) Debit: G4dn Accelerare peste G4dn
BERT-mare FP16 1 128 93.5 40.31 2.3
BERT-mare FP16 4 128 264.2 87.4 3.0
BERT-mare FP16 8 128 392.1 107.5 3.6
BERT-mare FP32 1 128 68.4 22.67 3.0
BERT-mare 4 128 118.5 32.21 3.7
BERT-mare 8 128 132.4 34.67 3.8
Model GFLOPS Numărul de parametri Preprocesare (ms) Inferență (ms) Inferență (supresie fără maximă) (NMS/imagine)
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

Concluzie

În această postare, am arătat că pentru deducerea modelelor NLP și CV PyTorch mari, instanțele EC2 G5 sunt o alegere mai bună în comparație cu instanțele G4dn. Deși costul orar la cerere pentru instanțele G5 este mai mare decât instanțele G4dn, performanța sa mai mare poate atinge de 2-5 ori debitul cu orice precizie pentru modelele NLP și CV, ceea ce face ca costul pe milion de inferențe să fie de 1.5-3.5 ori mai favorabil decât Instanțele G4dn. Chiar și pentru aplicațiile legate de latență, G5 este de 2.5-5 ori mai bun decât G4dn pentru modelele NLP și CV.

În rezumat, instanțele AWS G5 sunt o alegere excelentă pentru nevoile dvs. de inferență atât din perspectiva performanței, cât și a costului pe inferență. Universalitatea cadrului CUDA și amploarea și profunzimea pool-ului de instanțe G5 pe AWS vă oferă o capacitate unică de a efectua inferențe la scară.


Despre autori

Obțineți un proces de inferență ML de patru ori mai mare la un cost pe inferență de trei ori mai mic cu instanțele Amazon EC2 G5 pentru modelele NLP și CV PyTorch PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Ankur Srivastava este un arhitect senior de soluții în echipa ML Frameworks. El se concentrează pe a ajuta clienții cu instruire distribuită autogestionată și inferență la scară pe AWS. Experiența sa include întreținerea predictivă industrială, gemeni digitali, optimizarea designului probabilistic și și-a finalizat studiile doctorale de la Inginerie Mecanică la Universitatea Rice și cercetări post-doctorale de la Institutul de Tehnologie din Massachusetts.

Obțineți un proces de inferență ML de patru ori mai mare la un cost pe inferență de trei ori mai mic cu instanțele Amazon EC2 G5 pentru modelele NLP și CV PyTorch PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Sundar Ranganathan este șeful Business Development, ML Frameworks din echipa Amazon EC2. El se concentrează pe sarcinile de lucru ML la scară largă în serviciile AWS precum Amazon EKS, Amazon ECS, Elastic Fabric Adapter, AWS Batch și Amazon SageMaker. Experiența sa include roluri de conducere în managementul și dezvoltarea de produse la NetApp, Micron Technology, Qualcomm și Mentor Graphics.

Obțineți un proces de inferență ML de patru ori mai mare la un cost pe inferență de trei ori mai mic cu instanțele Amazon EC2 G5 pentru modelele NLP și CV PyTorch PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Mahadevan Balasubramaniam este arhitect principal de soluții pentru calcul autonom, cu aproape 20 de ani de experiență în domeniul învățării profunde bazate pe fizică, construirea și implementarea gemenilor digitali pentru sisteme industriale la scară. Mahadevan și-a obținut doctoratul în Inginerie Mecanică de la Institutul de Tehnologie din Massachusetts și are peste 25 de brevete și publicații la credit.

Obțineți un proces de inferență ML de patru ori mai mare la un cost pe inferență de trei ori mai mic cu instanțele Amazon EC2 G5 pentru modelele NLP și CV PyTorch PlatoBlockchain Data Intelligence. Căutare verticală. Ai. Amr Ragab este arhitect principal de soluții pentru EC2 Accelerated Platforms pentru AWS, dedicat să ajute clienții să ruleze sarcini de lucru computaționale la scară. În timpul liber îi place să călătorească și să găsească noi modalități de a integra tehnologia în viața de zi cu zi.

Timestamp-ul:

Mai mult de la Învățare automată AWS