Kuidas Amazon Search saavutab madala latentsusaja ja suure läbilaskevõimega T5 järelduse NVIDIA Tritoniga AWS-is

Allikasõlm: 1227376

Amazon Searchi visioon on võimaldada klientidel hõlpsalt otsida. Meie õigekirjaparandus aitab teil leida, mida soovite, isegi kui te ei tea mõeldud sõnade täpset kirjapilti. Varem kasutasime õigekirja parandamiseks klassikalisi masinõppe (ML) algoritme käsitsi funktsioonide kujundamisega. Et teha õigekirjaparanduses järgmise põlvkonna hüpe, võtame kasutusele mitmed süvaõppe meetodid, sealhulgas järjestusest järjestusse mudelid. Süvaõppe (DL) mudelid on arvutusmahukad nii koolituse kui ka järelduste tegemisel ning need kulud on ajalooliselt muutnud DL-mudelid Amazoni mastaabis tootmiskeskkonnas ebapraktiliseks. Selles postituses tutvustame järelduste optimeerimise katse tulemusi, mille käigus ületame need takistused ja saavutame populaarse Hugging Face T534 Transformeri järelduste tegemise kiiruse 5%.

väljakutse

Tekstist tekstiks edastusmuundur (T5, Ülemineku õppimise piiride uurimine ühtse tekst-tekst-trafo abil, Reffel et al) on moodsaim loomuliku keele töötlemise (NLP) mudeliarhitektuur. T5 on paljutõotav õigekirja parandamise arhitektuur, mis meie katsetes toimis hästi. T5 mudeleid on lihtne uurida, arendada ja koolitada tänu avatud lähtekoodiga süvaõppe raamistikele ning käimasolevale akadeemilisele ja ettevõtteuuringule.

Siiski on T5-ga raske teha tootmiskvaliteediga madala latentsusajaga järeldusi. Näiteks PyTorch T5 puhul kulub ühe järelduse tegemiseks 45 millisekundit ühel neljast NVIDIA V100 Tensor Core GPU-st, mis varustavad Amazon Elastic Compute Cloud (EC2) p3.8xlarge eksemplari. (Kõik esitatud järeldusnumbrid kehtivad 9 märgi sisendi ja 11 märgi väljundi kohta. T5 arhitektuuri latentsusaeg on tundlik nii sisendi kui ka väljundi pikkuste suhtes.)

Madala latentsusega ja kulutõhus T5 järeldus mastaabis on teadaolev probleem, millest on teatanud mitmed AWS-i kliendid peale Amazon Searchi, mis suurendab meie motivatsiooni sellesse postitusse panustada. Et jõuda võrguühenduseta teadussaavutusest klientidele suunatud tootmisteenusele, seisab Amazon Search silmitsi järgmiste väljakutsetega.

  • Hilinemine – Kuidas teostada T5 järeldust vähem kui 50-millisekundilise P99 latentsusajaga
  • Läbilaskevõime – Kuidas käsitleda suuremahulisi samaaegseid järeldustaotlusi
  • Kulutasuvus – Kuidas kulusid kontrolli all hoida

Selle postituse ülejäänud osas selgitame, kuidas NVIDIA järelduste optimeerimise virn – nimelt NVIDIA TensorRT kompilaator ja avatud lähtekoodiga NVIDIA Tritoni järeldusserver— lahendab need väljakutsed. Lugege NVIDIA pressiteade värskenduste kohta lisateabe saamiseks.

NVIDIA TensorRT: kulude ja latentsuse vähendamine järelduste optimeerimisega

Süvaõppe raamistikke on mugav teaduses kiiresti korrata ning need sisaldavad mitmeid funktsioone teaduslikuks modelleerimiseks, andmete laadimiseks ja koolituse optimeerimiseks. Enamik neist tööriistadest ei ole aga järelduste tegemiseks optimaalsed, mis nõuab maatriksi korrutamise ja aktiveerimise funktsioonide jaoks vaid minimaalset operaatorite komplekti. Seetõttu saab sügava õppe arendamise raamistikus järelduste tegemise asemel saavutada märkimisväärset kasu, kui kasutada spetsiaalset, ainult prognoositavat rakendust.

NVIDIA TensorRT on SDK suure jõudlusega sügava õppimise järelduste tegemiseks. TensorRT pakub nii optimeeritud käitusaega, kasutades madalal tasemel optimeeritud tuumasid, mis on saadaval NVIDIA GPU-del, kui ka ainult järeldustega mudeligraafikut, mis korraldab järelduste arvutamise optimeeritud järjekorras.

Järgmises osas räägime TensorRT taga toimuvatest üksikasjadest ja sellest, kuidas see jõudlust kiirendab.

  1. Vähendatud täpsus maksimeerib läbilaskevõimet FP16 või INT8 abil, kvantiseerides mudeleid, säilitades samal ajal korrektsuse.
  2. Kihtide ja tensorite liitmine optimeerib GPU-mälu ja ribalaiuse kasutamist, ühendades tuumas olevad sõlmed, et vältida kerneli käivitamise latentsust.
  3. Kerneli automaatne häälestamine valib parimad andmekihid ja algoritmid siht-GPU platvormi ja andmetuuma kuju põhjal.
  4. Dünaamiline tensori mälu minimeerib mälumahtu, vabastades vahetulemuste tarbetu mälutarbimise ja taaskasutab mälu tensorite jaoks tõhusalt.
  5. Mitme voo täitmine kasutab skaleeritavat disaini mitme sisendvoo töötlemiseks paralleelselt spetsiaalsete CUDA voogudega.
  6. Time Fusion optimeerib korduvaid närvivõrke ajasammude kaupa dünaamiliselt genereeritud tuumadega.

T5 kasutab oma arhitektuuride ehitusplokkidena trafokihte. NVIDIA TensorRT 8.2 uusim väljalase tutvustab T5 ja GPT-2 mudelite jaoks uusi optimeerimisi reaalajas järelduste tegemiseks. Järgmises tabelis näeme TensorRT-i kiirendamist mõnedel avalikel T5 mudelitel, mis töötavad Amazon EC2G4dn eksemplaridel, mida toidavad NVIDIA T4 GPU-d ja EC2 G5 eksemplarid, mida toidavad NVIDIA A10G GPU-d.

 

MUDEL Juhtum Pytorchi algtaseme latentsus (ms) TensorRT 8.2 latentsus (ms) Kiirendus vs HF baasjoon
FP32 FP32 FP16 FP32 FP16
Encoder dekooder Otsast lõpuni Encoder dekooder Otsast lõpuni Encoder dekooder Otsast lõpuni Otsast lõpuni Otsast lõpuni
t5-väike 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-alus 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%

Lisateabe saamiseks manustatud jõudluse optimeerimise ja replikatsiooni kohta vt T5 ja GPT-2 optimeerimine reaalajas järelduste tegemiseks NVIDIA TensorRT-ga.

Oluline on märkida, et kompileerimine säilitab mudeli täpsuse, kuna see töötab järelduskeskkonnas ja arvutuste ajakavas, jättes mudeliteaduse muutmata – erinevalt kaalu eemaldamise tihendamisest, nagu destilleerimine või pügamine. NVIDIA TensorRT võimaldab täiendava kasu saamiseks kombineerida kompileerimist kvantiseerimisega. Kvantimisel on viimase NVIDIA riistvara puhul kahekordne eelis: see vähendab mälukasutust ja võimaldab kasutada NVIDIA Tensor Cores, DL-spetsiifilisi rakke, mis käitavad segatud täpsusega liitmaatriksi korrutamise-lisamist.

Amazon Searchi katsetamise puhul Hugging Face T5 mudeliga suurendab PyTorchi asendamine TensorRT-ga mudeli järeldamiseks kiirust 534%.

NVIDIA Triton: madala latentsusajaga ja suure läbilaskevõimega järelduste teenus

Kaasaegsed mudelite teenindamise lahendused võivad muuta võrguühenduseta koolitatud mudelid klientidele suunatud ML-toega toodeteks. Mõistlike kulude säilitamiseks sellisel skaalal on oluline hoida teenindamiskulud madalad (HTTP-käitlus, eel- ja järeltöötlus, protsessori ja graafikaprotsessori vaheline side) ning kasutada täielikult ära GPU-de paralleeltöötluse võime.

NVIDIA Triton on järeldusi teenindav tarkvara, mis pakub laialdast tuge mudeli käitusaegadele (muu hulgas NVIDIA TensorRT, ONNX, PyTorch, XGBoost) ja infrastruktuuri taustaprogrammidele, sealhulgas GPU-dele, CPU-le ja AWS Inferentia.

ML-praktikud armastavad Tritonit mitmel põhjusel. Selle dünaamiline komplekteerimisvõime võimaldab koguda järelduspäringuid kasutaja määratud viivituse ajal ja maksimaalse kasutaja määratud partii suuruse piires, nii et GPU järeldused on komplekteeritud, amortiseerides CPU-GPU side üldkulusid. Pange tähele, et dünaamiline komplekteerimine toimub serveri poolel ja väga lühikeste ajavahemike jooksul, nii et taotleval kliendil on endiselt sünkroonne, peaaegu reaalajas väljakutsumise kogemus. Tritoni kasutajad naudivad ka selle samaaegset mudeli täitmise võimet. GPU-d on võimsad multitegumtöötlusseadmed, mis on suurepärased arvutusmahukate töökoormuste paralleelse täitmisega. Triton maksimeerib GPU kasutust ja läbilaskevõimet, kasutades CUDA vooge mitme mudeli eksemplari samaaegseks käitamiseks. Need mudelieksemplarid võivad olla erinevatest raamistikest pärit erinevad mudelid erinevate kasutusjuhtude jaoks või sama mudeli otsene koopia. See tähendab otsest läbilaskevõime paranemist, kui teil on piisavalt jõude GPU mälu. Kuna Triton ei ole seotud konkreetse DL-i arendusraamistikuga, võimaldab see teadlastel end täielikult väljendada enda valitud tööriistas.

AWS-i Tritoniga loodab Amazon Search paremini teenindada Amazon.com klientidele ja vastavad latentsusnõuetele madalate kuludega. Tihe integratsioon TensorRT käitusaja ja Tritoni serveri vahel hõlbustab arenduskogemust. AWS-i pilveinfrastruktuuri kasutamine võimaldab läbilaskevõime nõuetest lähtuvalt minutitega skaleerida üles või alla, säilitades samal ajal lati kõrgel või töökindluse ja turvalisuse.

Kuidas AWS alandab sisenemisbarjääri

Samal ajal kui Amazon Search viis selle katse läbi Amazon EC2 infrastruktuuriga, on ka muid AWS-teenuseid, mis hõlbustavad tipptasemel süvaõppelahenduste väljatöötamist, koolitust ja hostimist.

Näiteks on AWS ja NVIDIA teinud koostööd Triton Inference Serveri hallatud juurutuse väljalaskmiseks Amazon SageMaker ; lisateabe saamiseks vt Rakendage Amazon SageMakeris kiire ja skaleeritav AI NVIDIA Triton Inference Serveriga. AWS tegi koostööd ka Hugging Face'iga, et arendada välja hallatud ja optimeeritud integratsioon Amazon SageMakeri ja Hugging Face Transformersi vahel – avatud lähtekoodiga raamistik, millest Amazon Search T5 mudel tuleneb. loe lähemalt aadressilt https://aws.amazon.com/machine-learning/hugging-face/.

Soovitame latentsustundlike CPU- ja GPU-de süvaõpperakendustega kliente kaaluda AWS-is NVIDIA TensorRT ja Triton. Andke meile teada, mida ehitate!

Kas olete kirglik sügava õppimise ja sügava õppepõhiste lahenduste loomise vastu Amazon Searchi jaoks? Vaadake meie karjääride leht.


Autoritest

RJ on Search M5 meeskonna insener, kes juhib suuremahuliste süvaõppesüsteemide loomist koolituse ja järelduste tegemiseks. Töövälisel ajal uurib ta erinevaid toidukööke ja tegeleb reketispordiga.

Hemant Pugaliya on Search M5 rakendusteadlane. Ta töötab uusimate loomuliku keele töötlemise ja süvaõppe uurimise rakendamise kallal, et parandada klientide kogemusi Amazoni ostmisel kogu maailmas. Tema uurimisvaldkonnad hõlmavad loomuliku keele töötlemist ja suuremahulisi masinõppesüsteeme. Töövälisel ajal meeldib talle matkata, süüa teha ja lugeda.

Andy Sun on tarkvarainsener ja otsingu õigekirja parandamise tehniline juht. Tema uurimisvaldkonnad hõlmavad sügava õppimise järelduste latentsuse optimeerimist ja kiirete katseplatvormide loomist. Väljaspool tööd naudib ta filmitegemist ja akrobaatikat.

Le Cai on Amazon Searchi tarkvarainsener. Ta töötab selle nimel, et parandada otsingu õigekirja parandamise toimivust, et aidata klientidel ostukogemust parandada. Ta keskendub suure jõudlusega veebipõhistele järeldustele ja hajutatud koolituse optimeerimisele sügava õppimismudeli jaoks. Töövälisel ajal meeldib talle suusatada, matkata ja jalgrattaga sõita.

Anthony Ko töötab praegu tarkvarainsenerina ettevõttes Search M5 Palo Alto, CA. Ta töötab mudelite juurutamiseks ja järelduste optimeerimiseks vajalike tööriistade ja toodete loomisega. Töövälisel ajal meeldib talle süüa teha ja reketispordiga tegeleda.

Olivier Cruchant on Prantsusmaal asuva AWS-i masinõppe spetsialisti lahenduste arhitekt. Olivier aitab AWS-i klientidel – alates väikestest alustavatest ettevõtetest kuni suurte ettevõteteni – arendada ja juurutada tootmistasemel masinõpperakendusi. Vabal ajal naudib ta uurimistööde lugemist ning sõprade ja perega metsiku loodusega tutvumist.

Anish Mohan on NVIDIA masinõppearhitekt ja tehniline juht ML- ja DL-suhetes oma klientidega suuremas Seattle'i piirkonnas.

Jiahong Liu on lahenduse arhitekt NVIDIA pilveteenuse pakkuja meeskonnas. Ta abistab kliente masinõppe ja AI-lahenduste kasutuselevõtul, mis võimendavad NVIDIA kiirendatud andmetöötlust, et lahendada nende koolitus- ja järeldusprobleemid. Vabal ajal naudib ta origamit, isetegemisprojekte ja korvpalli mängimist.

Eliuth Triana on NVIDIA arendajasuhete juht. Ta ühendab Amazoni ja AWS-i tootejuhid, arendajad ja teadlased NVIDIA tehnoloogide ja tootejuhtidega, et kiirendada Amazoni ML/DL-i töökoormust, EC2 tooteid ja AWS-i AI teenuseid. Lisaks on Eliuth kirglik maastikurattur, suusataja ja pokkerimängija.

Ajatempel:

Veel alates AWS-i masinõpe