Cum Amazon Search realizează inferență T5 cu latență scăzută și debit mare cu NVIDIA Triton pe AWS

Nodul sursă: 1227376

Viziunea Amazon Search este de a permite clienților să caute fără efort. Corecția noastră de ortografie vă ajută să găsiți ceea ce doriți, chiar dacă nu cunoașteți ortografia exactă a cuvintelor dorite. În trecut, am folosit algoritmi clasici de învățare automată (ML) cu inginerie manuală a caracteristicilor pentru corectarea ortografiei. Pentru a face următorul salt generațional în performanța corectării ortografiei, adoptăm o serie de abordări de învățare profundă, inclusiv modele secvență-la-secvență. Modelele de învățare profundă (DL) necesită calcul intensiv atât în ​​​​formare, cât și în inferență, iar aceste costuri au făcut ca modelele DL să fie nepractice într-un cadru de producție la scara Amazon. În această postare, prezentăm rezultatele unei experimente de optimizare a inferenței în care depășim acele obstacole și obținem o accelerare a inferenței de 534% pentru popularul transformator Hugging Face T5.

Challenge

Transformatorul de transfer text în text (T5, Explorarea limitelor învățării transferului cu un transformator text-text unificat, Reffel et al) este arhitectura model de ultimă generație de procesare a limbajului natural (NLP). T5 este o arhitectură promițătoare pentru corectarea ortografiei, despre care am constatat că are rezultate bune în experimentele noastre. Modelele T5 sunt ușor de cercetat, dezvoltat și instruit, datorită cadrelor de învățare profundă open-source și cercetării academice și de întreprindere în curs.

Cu toate acestea, este dificil să se obțină o inferență de nivel de producție, cu latență scăzută, cu un T5. De exemplu, o singură inferență cu un PyTorch T5 durează 45 de milisecunde pe unul dintre cele patru GPU-uri NVIDIA V100 Tensor Core care echipează o instanță Amazon Elastic Compute Cloud (EC2) p3.8xlarge. (Toate numerele de inferență raportate sunt pentru o intrare de 9 jetoane și ieșire de 11 jetoane. Latența arhitecturilor T5 este sensibilă atât la lungimile de intrare, cât și de la ieșire.)

Inferența T5 la scară cu latență scăzută și cost-eficientă este o dificultate cunoscută care a fost raportată de mai mulți clienți AWS dincolo de Amazon Search, ceea ce ne stimulează motivația de a contribui la această postare. Pentru a trece de la o realizare științifică offline la un serviciu de producție orientat către clienți, Amazon Search se confruntă cu următoarele provocări:

  • Latență – Cum se realizează inferența T5 cu o latență P50 mai mică de 99 de milisecunde
  • tranzitată – Cum să gestionați cererile de inferență concurente la scară largă
  • Eficiența costurilor – Cum să țineți costurile sub control

În restul acestei postări, explicăm modul în care stiva de optimizare a inferenței NVIDIA, și anume NVIDIA TensorRT compilatorul și sursa deschisă NVIDIA Triton Inference Server- rezolvă acele provocări. Citit Comunicatul de presă al NVIDIA pentru a afla despre actualizări.

NVIDIA TensorRT: Reducerea costurilor și a latenței cu optimizarea inferenței

Cadrele de învățare profundă sunt convenabile pentru a repeta rapid în știință și vin cu numeroase funcționalități pentru modelarea științifică, încărcarea datelor și optimizarea instruirii. Cu toate acestea, cele mai multe dintre aceste instrumente sunt suboptime pentru inferență, ceea ce necesită doar un set minim de operatori pentru multiplicarea matricei și funcțiile de activare. Prin urmare, câștiguri semnificative pot fi realizate prin utilizarea unei aplicații specializate, doar de predicție, în loc de a rula inferențe în cadrul de dezvoltare a învățării profunde.

NVIDIA TensorRT este un SDK pentru inferența de învățare profundă de înaltă performanță. TensorRT oferă atât un timp de rulare optimizat, folosind nuclee optimizate la nivel scăzut, disponibile pe GPU-urile NVIDIA, cât și un model grafic de inferență, care rearanjează calculul inferenței într-o ordine optimizată.

În secțiunea următoare, vom vorbi despre detaliile care se întâmplă în spatele TensorRT și despre modul în care accelerează performanța.

  1. Precizie redusă maximizează debitul cu FP16 sau INT8 prin cuantificarea modelelor, menținând în același timp corectitudinea.
  2. Fuziunea stratului și tensorului optimizează utilizarea memoriei GPU și a lățimii de bandă prin fuzionarea nodurilor într-un nucleu pentru a evita latența lansării nucleului.
  3. Reglare automată a nucleului selectează cele mai bune straturi de date și algoritmi pe baza platformei GPU țintă și a formelor nucleului de date.
  4. Memorie dinamică a tensorilor minimizează amprenta memoriei prin eliberarea consumului de memorie inutil al rezultatelor intermediare și reutilizarea eficientă a memoriei pentru tensori.
  5. Execuție multi-flux folosește un design scalabil pentru a procesa mai multe fluxuri de intrare în paralel cu fluxuri CUDA dedicate.
  6. Fuziunea timpului optimizează rețelele neuronale recurente în pași de timp cu nuclee generate dinamic.

T5 folosește straturi de transformatoare ca blocuri de construcție pentru arhitecturile sale. Cea mai recentă versiune a NVIDIA TensorRT 8.2 introduce noi optimizări pentru modelele T5 și GPT-2 pentru inferență în timp real. În tabelul următor, putem vedea accelerarea cu TensorRT pe unele modele publice T5 care rulează pe instanțe Amazon EC2G4dn, alimentate de GPU-uri NVIDIA T4 și instanțe EC2 G5, alimentate de GPU-uri NVIDIA A10G.

 

Model instanță Latența de bază Pytorch (ms) Latența TensorRT 8.2 (ms) Accelerare față de linia de bază HF
FP32 FP32 FP16 FP32 FP16
codificator decodor Un capăt la altul codificator decodor Un capăt la altul codificator decodor Un capăt la altul Un capăt la altul Un capăt la altul
t5-mic g4dn.xlarge 5.98 9.74 30.71 1.28 2.25 7.54 0.93 1.59 5.91 407.40% 519.34%
g5.xlarge 4.63 7.56 24.22 0.61 1.05 3.99 0.47 0.80 3.19 606.66% 760.01%
t5-baza g4dn.xlarge 11.61 19.05 78.44 3.18 5.45 19.59 3.15 2.96 13.76 400.48% 569.97%
g5.xlarge 8.59 14.23 59.98 1.55 2.47 11.32 1.54 1.65 8.46 530.05% 709.20%

Pentru mai multe informații despre optimizări și replicare a performanței atașate, consultați Optimizarea T5 și GPT-2 pentru inferență în timp real cu NVIDIA TensorRT.

Este important de remarcat faptul că compilarea păstrează acuratețea modelului, deoarece funcționează pe mediul de inferență și pe programarea calculelor, lăsând nealterată știința modelului - spre deosebire de compresia de îndepărtare a greutății, cum ar fi distilarea sau tăierea. NVIDIA TensorRT permite combinarea compilației cu cuantizarea pentru câștiguri suplimentare. Cuantizarea are avantaje duble pe hardware-ul recent NVIDIA: reduce utilizarea memoriei și permite utilizarea NVIDIA Tensor Cores, celule specifice DL care rulează o matrice fuzionată-multiplicare-adăugare cu precizie mixtă.

În cazul experimentului Amazon Search cu modelul Hugging Face T5, înlocuirea PyTorch cu TensorRT pentru inferența modelului crește viteza cu 534%.

NVIDIA Triton: Servire de inferență cu latență scăzută și debit mare

Soluțiile moderne de servire a modelelor pot transforma modelele instruite offline în produse bazate pe ML orientate către clienți. Pentru a menține costuri rezonabile la o astfel de scară, este important să păstrați un volum scăzut de operațiuni generale (manevrare HTTP, preprocesare și postprocesare, comunicare CPU-GPU) și să profitați pe deplin de capacitatea de procesare paralelă a GPU-urilor.

NVIDIA Triton este un software care servește inferențe care oferă suport larg pentru modele de rulare (NVIDIA TensorRT, ONNX, PyTorch, XGBoost, printre altele) și backend-uri de infrastructură, inclusiv GPU-uri, CPU și Inferentia AWS.

Practicanții ML îl iubesc pe Triton din mai multe motive. Capacitatea sa dinamică de loturi permite acumularea cererilor de inferență în timpul unei întârzieri definite de utilizator și într-o dimensiune maximă a lotului definită de utilizator, astfel încât inferența GPU să fie grupată, amortizand suprasarcina de comunicare CPU-GPU. Rețineți că loturile dinamice au loc pe partea de server și în intervale de timp foarte scurte, astfel încât clientul solicitant are în continuare o experiență de invocare sincronă, aproape în timp real. Utilizatorii Triton se bucură, de asemenea, de capacitatea sa de execuție concomitentă a modelului. GPU-urile sunt multitasker-uri puternice care excelează în executarea în paralel a sarcinilor de lucru intensive în calcul. Triton maximizează utilizarea și debitul GPU prin utilizarea fluxurilor CUDA pentru a rula mai multe instanțe de model simultan. Aceste instanțe de model pot fi modele diferite din cadre diferite pentru cazuri de utilizare diferite sau o copie directă a aceluiași model. Acest lucru se traduce printr-o îmbunătățire directă a debitului atunci când aveți suficientă memorie GPU inactivă. De asemenea, deoarece Triton nu este legat de un cadru specific de dezvoltare DL, acesta permite oamenilor de știință să se exprime pe deplin, în instrumentul ales de ei.

Cu Triton pe AWS, Amazon Search se așteaptă să servească mai bine Amazon.com clienții și să îndeplinească cerințele de latență la costuri reduse. Integrarea strânsă dintre runtime-ul TensorRT și serverul Triton facilitează experiența de dezvoltare. Utilizarea infrastructurii cloud AWS permite creșterea sau descreșterea în câteva minute în funcție de cerințele de debit, menținând în același timp standardul ridicat sau fiabilitatea și securitatea.

Cum AWS reduce bariera de intrare

În timp ce Amazon Search a efectuat acest experiment pe infrastructura Amazon EC2, există alte servicii AWS pentru a facilita dezvoltarea, instruirea și găzduirea de soluții de învățare profundă de ultimă generație.

De exemplu, AWS și NVIDIA au colaborat pentru a lansa o implementare gestionată a Triton Inference Server în Amazon SageMaker ; pentru mai multe informații, vezi Implementați AI rapid și scalabil cu NVIDIA Triton Inference Server în Amazon SageMaker. AWS a colaborat, de asemenea, cu Hugging Face pentru a dezvolta o integrare gestionată și optimizată între Amazon SageMaker și Hugging Face Transformers, cadrul open-source din care este derivat modelul Amazon Search T5; citeste mai multe la https://aws.amazon.com/machine-learning/hugging-face/.

Încurajăm clienții cu aplicații care deservesc CPU și GPU deep learning sensibile la latență să ia în considerare NVIDIA TensorRT și Triton pe AWS. Spune-ne ce construiești!

Pasionat de deep learning și de crearea de soluții bazate pe deep learning pentru Amazon Search? Consultați-ne pagina cariere.


Despre Autori

RJ este un inginer în echipa Search M5, care conduce eforturile pentru construirea de sisteme de învățare profundă la scară largă pentru instruire și inferență. În afara serviciului, el explorează diferite bucătării și joacă sporturi cu rachetă.

Hemant Pugaliya este om de știință aplicat la Search M5. El lucrează la aplicarea celor mai recente procesări ale limbajului natural și a cercetării de deep learning pentru a îmbunătăți experiența clienților la cumpărăturile Amazon din întreaga lume. Interesele sale de cercetare includ procesarea limbajului natural și sistemele de învățare automată la scară largă. În afara serviciului, îi place să facă drumeții, să gătească și să citească.

Andy Sun este inginer software și lider tehnic pentru corectarea ortografiei de căutare. Interesele sale de cercetare includ optimizarea latenței de inferență a învățării profunde și construirea de platforme de experimentare rapidă. În afara serviciului, îi place să filmeze și acrobațiile.

Le Cai este inginer software la Amazon Search. El lucrează la îmbunătățirea performanței Corecției ortografice de căutare pentru a ajuta clienții cu experiența lor de cumpărături. El se concentrează pe inferența online de înaltă performanță și pe optimizarea instruirii distribuite pentru modelul de învățare profundă. În afara serviciului, îi place să schieze, drumeții și ciclism.

Anthony Ko lucrează în prezent ca inginer software la Search M5 Palo Alto, CA. Lucrează la construirea de instrumente și produse pentru implementarea modelelor și optimizarea inferenței. În afara serviciului, îi place să gătească și să facă sporturi cu racheta.

Olivier Cruchant este arhitect de soluții specializat în învățare automată la AWS, cu sediul în Franța. Olivier îi ajută pe clienții AWS – de la startup-uri mici până la întreprinderi mari – să dezvolte și să implementeze aplicații de învățare automată la nivel de producție. În timpul liber, îi place să citească lucrări de cercetare și să exploreze sălbăticia cu prietenii și familia.

Anish Mohan este arhitect de învățare automată la NVIDIA și lider tehnic pentru angajamentele ML și DL cu clienții săi din regiunea Seattle.

Jiahong Liu este arhitect de soluții în echipa de furnizori de servicii cloud de la NVIDIA. El ajută clienții să adopte soluții de învățare automată și inteligență artificială care folosesc calcularea accelerată NVIDIA pentru a-și aborda provocările de formare și inferență. În timpul liber, îi place origami, proiecte de bricolaj și joacă baschet.

Eliuth Triana este manager de relații cu dezvoltatorii la NVIDIA. El pune în legătură liderii de produse Amazon și AWS, dezvoltatorii și oamenii de știință cu tehnologii și liderii de produse NVIDIA pentru a accelera încărcările de lucru Amazon ML/DL, produsele EC2 și serviciile AWS AI. În plus, Eliuth este un pasionat de ciclism montan, schior și jucător de poker.

Timestamp-ul:

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