Zephyrnet-logo

Hoe Amazon Search T5-inferentie met lage latentie en hoge doorvoer bereikt met NVIDIA Triton op AWS

Datum:

De visie van Amazon Search is om klanten in staat te stellen moeiteloos te zoeken. Onze spellingcorrectie helpt u te vinden wat u zoekt, zelfs als u de exacte spelling van de bedoelde woorden niet weet. In het verleden gebruikten we klassieke algoritmen voor machine learning (ML) met handmatige feature-engineering voor spellingcorrectie. Om de volgende generatiesprong in spellingcorrectieprestaties te maken, omarmen we een aantal diepgaande leerbenaderingen, waaronder sequentie-naar-sequentie-modellen. Deep learning (DL)-modellen zijn rekenintensief, zowel in training als inferentie, en deze kosten hebben DL-modellen in het verleden onpraktisch gemaakt in een productieomgeving op Amazon's schaal. In dit bericht presenteren we de resultaten van een experiment met inferentie-optimalisatie waarbij we die obstakels overwinnen en 534% inferentiesnelheid bereiken voor de populaire Hugging Face T5 Transformer.

Uitdaging

De tekst-naar-tekst overdrachtstransformator (T5, De grenzen van Transfer Learning verkennen met een Unified Text-to-Text Transformer, Reffel et al) is de state-of-the-art natuurlijke taalverwerking (NLP) modelarchitectuur. T5 is een veelbelovende architectuur voor spellingcorrectie, waarvan we vonden dat deze goed presteerde in onze experimenten. T5-modellen zijn gemakkelijk te onderzoeken, ontwikkelen en trainen, dankzij open-source deep learning-frameworks en doorlopend academisch en bedrijfsonderzoek.

Het is echter moeilijk om inferentie met lage latentie van productiekwaliteit te bereiken met een T5. Een enkele gevolgtrekking met een PyTorch T5 duurt bijvoorbeeld 45 milliseconden op een van de vier NVIDIA V100 Tensor Core GPU's die een Amazon Elastic Compute Cloud (EC2) p3.8xlarge-instantie uitrusten. (Alle gerapporteerde inferentiegetallen zijn voor een invoer van 9 tokens en een uitvoer van 11 tokens. De latentie van T5-architecturen is gevoelig voor zowel invoer- als uitvoerlengtes.)

Lage latentie, kostenefficiënte T5-inferentie op schaal is een bekend probleem dat is gemeld door verschillende AWS-klanten buiten Amazon Search, wat onze motivatie om dit bericht bij te dragen een boost geeft. Om van een offline, wetenschappelijke prestatie naar een klantgerichte productieservice te gaan, staat Amazon Search voor de volgende uitdagingen:

  • Wachttijd - Hoe T5-inferentie te realiseren in minder dan 50 milliseconden P99-latentie?
  • Doorvoer - Hoe om te gaan met grootschalige gelijktijdige inferentieverzoeken?
  • Kost efficiëntie – Hoe de kosten onder controle te houden

In de rest van dit bericht leggen we uit hoe de NVIDIA-inferentieoptimalisatiestack, namelijk de NVIDIA TensorRT compiler en de open source NVIDIA Triton Inference-server— lost die uitdagingen op. Lezen NVIDIA's persbericht om meer te weten te komen over de updates.

NVIDIA TensorRT: kosten en latentie verminderen met inferentieoptimalisatie

Deep learning-frameworks zijn handig om snel kennis te maken met de wetenschap en worden geleverd met tal van functionaliteiten voor wetenschappelijke modellering, het laden van gegevens en optimalisatie van trainingen. De meeste van deze tools zijn echter niet optimaal voor inferentie, waarvoor slechts een minimale set operators nodig is voor matrixvermenigvuldiging en activeringsfuncties. Daarom kunnen aanzienlijke voordelen worden behaald door een gespecialiseerde, alleen voorspellingstoepassing te gebruiken in plaats van inferentie uit te voeren in het ontwikkelingsraamwerk voor diep leren.

NVIDIA TensorRT is een SDK voor high-performance deep learning inferentie. TensorRT levert zowel een geoptimaliseerde runtime, met behulp van low-level geoptimaliseerde kernels die beschikbaar zijn op NVIDIA GPU's, en een modelgrafiek met alleen inferentie, die de berekening van de gevolgtrekkingen in een geoptimaliseerde volgorde herschikt.

In het volgende gedeelte zullen we het hebben over de details die achter TensorRT gebeuren en hoe het de prestaties versnelt.

  1. Verminderde precisie maximaliseert de doorvoer met FP16 of INT8 door modellen te kwantiseren met behoud van correctheid.
  2. Laag- en tensorfusie optimaliseert het gebruik van GPU-geheugen en bandbreedte door knooppunten in een kernel te fuseren om latentie bij het starten van de kernel te voorkomen.
  3. Kernel auto-tuning selecteert de beste gegevenslagen en algoritmen op basis van het doel-GPU-platform en de vormen van de gegevenskernel.
  4. Dynamisch tensorgeheugen minimaliseert de geheugenvoetafdruk door onnodig geheugengebruik van tussentijdse resultaten vrij te maken en efficiënt geheugen voor tensoren opnieuw te gebruiken.
  5. Multi-stream uitvoering gebruikt een schaalbaar ontwerp om meerdere invoerstromen parallel te verwerken met speciale CUDA-stromen.
  6. Tijd Fusie optimaliseert terugkerende neurale netwerken in tijdstappen met dynamisch gegenereerde kernels.

T5 gebruikt transformatorlagen als bouwstenen voor zijn architecturen. De nieuwste release van NVIDIA TensorRT 8.2 introduceert nieuwe optimalisaties voor de T5- en GPT-2-modellen voor realtime gevolgtrekking. In de volgende tabel kunnen we de versnelling zien met TensorRT op sommige openbare T5-modellen die draaien op Amazon EC2G4dn-instanties, mogelijk gemaakt door NVIDIA T4 GPU's en EC2 G5-instanties, mogelijk gemaakt door NVIDIA A10G GPU's.

 

Model Aanleg Basislijn Pytorch-latentie (ms) TensorRT 8.2 Latentie (ms) Versnelling versus de HF-basislijn
FP32 FP32 FP16 FP32 FP16
encoder Decoder Eind tot eind encoder Decoder Eind tot eind encoder Decoder Eind tot eind Eind tot eind Eind tot eind
t5-klein 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.xgroot 4.63 7.56 24.22 0.61 1.05 3.99 0.47 0.80 3.19 606.66% 760.01%
t5-basis 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.xgroot 8.59 14.23 59.98 1.55 2.47 11.32 1.54 1.65 8.46 530.05% 709.20%

Raadpleeg voor meer informatie over optimalisaties en replicatie van de bijgevoegde prestaties: T5 en GPT-2 optimaliseren voor realtime inferentie met NVIDIA TensorRT.

Het is belangrijk op te merken dat compilatie de modelnauwkeurigheid behoudt, omdat het werkt op de inferentieomgeving en de berekeningsplanning, waardoor de modelwetenschap ongewijzigd blijft - in tegenstelling tot gewichtsverwijderingscompressie zoals destillatie of snoeien. NVIDIA TensorRT maakt het mogelijk om compilatie te combineren met kwantisering voor meer winst. Kwantisering heeft dubbele voordelen op recente NVIDIA-hardware: het vermindert het geheugengebruik en maakt het gebruik van NVIDIA Tensor Cores mogelijk, DL-specifieke cellen die een gefuseerde matrix-multiply-add met gemengde precisie uitvoeren.

In het geval van de Amazon Search-experimenten met het Hugging Face T5-model, verhoogt het vervangen van PyTorch door TensorRT voor modelinferentie de snelheid met 534%.

NVIDIA Triton: inferentieweergave met lage latentie en hoge doorvoer

Moderne modelservingoplossingen kunnen offline getrainde modellen transformeren in klantgerichte ML-aangedreven producten. Om de kosten op een dergelijke schaal redelijk te houden, is het belangrijk om de overhead laag te houden (HTTP-verwerking, voor- en naverwerking, CPU-GPU-communicatie) en volledig te profiteren van de parallelle verwerkingscapaciteit van GPU's.

NVIDIA Triton is een inferentieservicesoftware die brede ondersteuning biedt van modelruntimes (onder andere NVIDIA TensorRT, ONNX, PyTorch, XGBoost) en infrastructuur-backends, inclusief GPU's, CPU en AWS Inferentie.

ML-beoefenaars houden om meerdere redenen van Triton. Zijn dynamische batchcapaciteit maakt het mogelijk om inferentieverzoeken te accumuleren tijdens een door de gebruiker gedefinieerde vertraging en binnen een maximale door de gebruiker gedefinieerde batchgrootte, zodat GPU-inferentie in batches wordt gedaan, waardoor de CPU-GPU-communicatie-overhead wordt afgeschreven. Houd er rekening mee dat dynamische batchverwerking aan de serverzijde en binnen zeer korte tijdsbestekken plaatsvindt, zodat de verzoekende client nog steeds een synchrone, bijna realtime aanroepervaring heeft. Triton-gebruikers genieten ook van de gelijktijdige uitvoeringscapaciteit van modellen. GPU's zijn krachtige multitaskers die uitblinken in het parallel uitvoeren van rekenintensieve workloads. Triton maximaliseert het GPU-gebruik en de doorvoer door CUDA-streams te gebruiken om meerdere modelinstanties tegelijk uit te voeren. Deze modelinstanties kunnen verschillende modellen zijn uit verschillende frameworks voor verschillende use-cases, of een directe kopie van hetzelfde model. Dit vertaalt zich in een directe verbetering van de doorvoer wanneer u voldoende inactief GPU-geheugen hebt. Omdat Triton niet gebonden is aan een specifiek DL-ontwikkelingskader, stelt het wetenschappers in staat zich volledig uit te drukken in de tool van hun keuze.

Met Triton op AWS verwacht Amazon Search een betere dienstverlening Amazon.com klanten en voldoen aan de latentievereisten tegen lage kosten. De nauwe integratie tussen de TensorRT-runtime en de Triton-server vergemakkelijkt de ontwikkelingservaring. Het gebruik van AWS-cloudinfrastructuur maakt het mogelijk om binnen enkele minuten omhoog of omlaag te schalen op basis van de doorvoervereisten, terwijl de lat hoog of betrouwbaarheid en veiligheid hoog blijft.

Hoe AWS de toetredingsdrempel verlaagt

Terwijl Amazon Search dit experiment uitvoerde op de Amazon EC2-infrastructuur, bestaan ​​er andere AWS-services om de ontwikkeling, training en hosting van ultramoderne deep learning-oplossingen te vergemakkelijken.

AWS en NVIDIA hebben bijvoorbeeld samengewerkt om een ​​beheerde implementatie van Triton Inference Server in Amazon Sage Maker ; voor meer informatie, zie Implementeer snelle en schaalbare AI met NVIDIA Triton Inference Server in Amazon SageMaker. AWS werkte ook samen met Hugging Face om een ​​beheerde, geoptimaliseerde integratie te ontwikkelen tussen Amazon SageMaker en Hugging Face Transformers, het open-source framework waarvan het Amazon Search T5-model is afgeleid; Lees meer bij https://aws.amazon.com/machine-learning/hugging-face/.

We moedigen klanten met latentiegevoelige CPU- en GPU-toepassingen voor deep learning aan om NVIDIA TensorRT en Triton op AWS te overwegen. Laat ons weten wat je bouwt!

Gepassioneerd door deep learning en het bouwen van op deep learning gebaseerde oplossingen voor Amazon Search? Bekijk onze carrières pagina.


Over de auteurs

RJ is een ingenieur in het Search M5-team dat de inspanningen leidt voor het bouwen van grootschalige deep learning-systemen voor training en inferentie. Buiten zijn werk verkent hij verschillende keukens en speelt hij racketsporten.

Hemant Pugaliya is een Applied Scientist bij Search M5. Hij werkt aan het toepassen van de nieuwste natuurlijke taalverwerking en deep learning-onderzoek om de klantervaring op Amazon-winkelen wereldwijd te verbeteren. Zijn onderzoeksinteresses omvatten natuurlijke taalverwerking en grootschalige machine learning-systemen. Naast zijn werk houdt hij van wandelen, koken en lezen.

Andy zon is een software-ingenieur en technisch leider voor zoekspellingcorrectie. Zijn onderzoeksinteresses omvatten het optimaliseren van de latentie van diep leren en het bouwen van platforms voor snelle experimenten. Buiten zijn werk houdt hij van filmmaken en acrobatiek.

Le Cai is een Software Engineer bij Amazon Search. Hij werkt aan het verbeteren van de prestaties van de zoekspellingcorrectie om klanten te helpen met hun winkelervaring. Hij richt zich op hoogwaardige online inferentie en gedistribueerde trainingsoptimalisatie voor het deep learning-model. Naast zijn werk houdt hij van skiën, wandelen en fietsen.

Antonius Ko werkt momenteel als software-engineer bij Search M5 Palo Alto, CA. Hij werkt aan het bouwen van tools en producten voor modelimplementatie en inferentie-optimalisatie. Naast zijn werk houdt hij van koken en racketsporten.

Olivier Cruchant is een Machine Learning Specialist Solutions Architect bij AWS, gevestigd in Frankrijk. Olivier helpt AWS-klanten - van kleine startups tot grote ondernemingen - bij het ontwikkelen en implementeren van machine learning-applicaties op productieniveau. In zijn vrije tijd leest hij graag onderzoekspapers en verkent hij de wildernis met vrienden en familie.

Anish Mohan is een Machine Learning Architect bij NVIDIA en de technische leider voor ML- en DL-opdrachten met zijn klanten in de grotere regio van Seattle.

Jiahong Liu is Solution Architect in het Cloud Service Provider-team van NVIDIA. Hij helpt klanten bij het adopteren van machine learning en AI-oplossingen die gebruikmaken van NVIDIA Accelerated Computing om hun trainings- en inferentie-uitdagingen aan te pakken. In zijn vrije tijd houdt hij van origami, doe-het-zelfprojecten en basketbal.

Eliuth Triana is een Developer Relations Manager bij NVIDIA. Hij verbindt productleiders, ontwikkelaars en wetenschappers van Amazon en AWS met NVIDIA-technologen en productleiders om Amazon ML/DL-workloads, EC2-producten en AWS AI-services te versnellen. Daarnaast is Eliuth een gepassioneerd mountainbiker, skiër en pokerspeler.

spot_img

Laatste intelligentie

spot_img