Hur Amazon Search uppnår T5-inferens med låg latens och hög genomströmning med NVIDIA Triton på AWS PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Hur Amazon Search uppnår T5-inferens med låg latens och hög genomströmning med NVIDIA Triton på AWS

Amazon Searchs vision är att göra det möjligt för kunder att söka utan ansträngning. Vår stavningskorrigering hjälper dig att hitta det du vill ha även om du inte vet den exakta stavningen av de avsedda orden. Tidigare använde vi klassiska maskininlärningsalgoritmer (ML) med manuell funktionsteknik för stavningskorrigering. För att göra nästa generationssprång i stavningskorrigeringsprestanda, anammar vi ett antal djupinlärningsmetoder, inklusive sekvens-till-sekvens-modeller. Modeller för djupinlärning (DL) är datorintensiva både vad gäller utbildning och slutledning, och dessa kostnader har historiskt gjort DL-modeller opraktiska i en produktionsmiljö i Amazons skala. I det här inlägget presenterar vi resultaten av ett slutledningsoptimeringsexperiment där vi övervinner dessa hinder och uppnår 534 % slutledningshastighet för den populära Hugging Face T5 Transformer.

Utmaning

Text-till-textöverföringstransformatorn (T5, Utforska gränserna för överföringsinlärning med en enhetlig text-till-text-transformator, Reffel et al) är den senaste NLP-modellarkitekturen (natural language processing). T5 är en lovande arkitektur för stavningskorrigering, som vi fann fungera bra i våra experiment. T5-modeller är lätta att undersöka, utveckla och träna, tack vare ramverk för djupinlärning med öppen källkod och pågående akademisk forskning och företagsforskning.

Det är dock svårt att uppnå slutledning med låg latens i produktionsgrad med en T5. Till exempel tar en enda slutledning med en PyTorch T5 45 millisekunder på en av de fyra NVIDIA V100 Tensor Core GPU:erna som utrustar en Amazon Elastic Compute Cloud (EC2) p3.8xlarge-instans. (Alla slutledningssiffror som rapporteras är för en ingång av 9 tokens och utmatning av 11 tokens. Latensen för T5-arkitekturer är känslig för både ingångs- och utmatningslängder.)

Låg latens, kostnadseffektiv T5-slutledning i stor skala är en känd svårighet som har rapporterats av flera AWS-kunder bortom Amazon Search, vilket ökar vår motivation att bidra med detta inlägg. För att gå från en offline, vetenskaplig prestation till en kundinriktad produktionstjänst står Amazon Search inför följande utmaningar:

  • Latens – Hur man realiserar T5-inferens på mindre än 50 millisekunders P99-latens
  • genomströmning – Hur man hanterar storskaliga samtidiga slutledningsförfrågningar
  • Kostnadseffektivitet – Hur man håller kostnaderna under kontroll

I resten av det här inlägget förklarar vi hur NVIDIAs slutledningsoptimering stack – nämligen NVIDIA TensorRT kompilatorn och öppen källkod NVIDIA Triton Inference Server– löser dessa utmaningar. Läsa NVIDIAs pressmeddelande för att lära dig mer om uppdateringarna.

NVIDIA TensorRT: Minska kostnader och latens med slutledningsoptimering

Ramverk för djupinlärning är bekväma att repetera snabbt på vetenskapen och kommer med många funktioner för vetenskaplig modellering, dataladdning och träningsoptimering. De flesta av dessa verktyg är dock suboptimala för slutledning, vilket bara kräver en minimal uppsättning operatorer för matrismultiplikation och aktiveringsfunktioner. Därför kan betydande vinster realiseras genom att använda en specialiserad applikation med endast förutsägelse istället för att dra slutsatser i utvecklingsramverket för djupinlärning.

NVIDIA TensorRT är en SDK för högpresterande djupinlärningsinferens. TensorRT levererar både en optimerad körtid, med hjälp av optimerade kärnor på låg nivå som finns tillgängliga på NVIDIA GPU:er, och en modellgraf för endast inferens, som omarrangerar slutledningsberäkningar i en optimerad ordning.

I följande avsnitt kommer vi att prata om detaljerna som händer bakom TensorRT och hur det påskyndar prestandan.

Hur Amazon Search uppnår T5-inferens med låg latens och hög genomströmning med NVIDIA Triton på AWS PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

  1. Minskad precision maximerar genomströmningen med FP16 eller INT8 genom att kvantisera modeller med bibehållen korrekthet.
  2. Layer och Tensor Fusion optimerar användningen av GPU-minne och bandbredd genom att smälta samman noder i en kärna för att undvika fördröjning av kärnans lansering.
  3. Kernel Auto-Tuning väljer de bästa datalagren och algoritmerna baserat på mål-GPU-plattformen och datakärnans former.
  4. Dynamiskt tensorminne minimerar minnesfotavtrycket genom att frigöra onödig minnesförbrukning av mellanresultat och återanvänder minnet för tensorer effektivt.
  5. Multi-Stream Execution använder en skalbar design för att behandla flera ingångsströmmar parallellt med dedikerade CUDA-strömmar.
  6. Tidsfusion optimerar återkommande neurala nätverk över tidssteg med dynamiskt genererade kärnor.

T5 använder transformatorlager som byggstenar för sina arkitekturer. Den senaste versionen av NVIDIA TensorRT 8.2 introducerar nya optimeringar för T5- och GPT-2-modellerna för realtidsinferens. I följande tabell kan vi se snabbheten med TensorRT på vissa offentliga T5-modeller som körs på Amazon EC2G4dn-instanser, drivna av NVIDIA T4 GPU:er och EC2 G5-instanser, drivna av NVIDIA A10G GPU:er.

 

Modell Exempel Baslinje Pytorch-latens (ms) TensorRT 8.2 latens (ms) Speedup vs. HF-baslinjen
FP32 FP32 FP16 FP32 FP16
kodare Avkodare Början till slut kodare Avkodare Början till slut kodare Avkodare Början till slut Början till slut Början till slut
t5-liten 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-bas 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%

För mer information om optimeringar och replikering av den bifogade prestandan, se Optimerar T5 och GPT-2 för realtidsinferens med NVIDIA TensorRT.

Det är viktigt att notera att kompilering bevarar modellens noggrannhet, eftersom den fungerar på slutledningsmiljön och beräkningsschemat, vilket lämnar modellvetenskapen oförändrad – till skillnad från viktavlägsnande komprimering som destillation eller beskärning. NVIDIA TensorRT gör det möjligt att kombinera kompilering med kvantisering för ytterligare vinster. Kvantisering har dubbla fördelar med nyare NVIDIA-hårdvara: den minskar minnesanvändningen och möjliggör användning av NVIDIA Tensor Cores, DL-specifika celler som kör en sammansmält matris-multiply-add i blandad precision.

När det gäller Amazon Search-experimentet med Hugging Face T5-modellen ökar hastigheten med 534 % genom att ersätta PyTorch med TensorRT för modellinferens.

NVIDIA Triton: Låg latens, hög genomströmning slutledningsvisning

Moderna modellbetjäningslösningar kan förvandla offlineutbildade modeller till kundinriktade ML-drivna produkter. För att upprätthålla rimliga kostnader i en sådan skala är det viktigt att hålla nere tjänstekostnader (HTTP-hantering, förbearbetning och efterbearbetning, CPU-GPU-kommunikation) och fullt ut dra fördel av den parallella bearbetningsförmågan hos GPU:er.

NVIDIA Triton är en inferensserverande programvara som erbjuder brett stöd för modellkörtider (NVIDIA TensorRT, ONNX, PyTorch, XGBoost bland annat) och infrastrukturbackends, inklusive GPU:er, CPU och AWS Inferentia.

ML-utövare älskar Triton av flera anledningar. Dess dynamiska batchförmåga gör det möjligt att ackumulera slutledningsbegäranden under en användardefinierad fördröjning och inom en maximal användardefinierad batchstorlek, så att GPU-inferensen batchas, vilket amorterar CPU-GPU-kommunikationsoverheaden. Observera att dynamisk batchning sker på serversidan och inom mycket korta tidsramar, så att den begärande klienten fortfarande har en synkron, nästan realtidsanropsupplevelse. Triton-användare kan också njuta av dess samtidiga modellexekveringskapacitet. GPU:er är kraftfulla multitaskers som utmärker sig när det gäller att utföra datorintensiva arbetsbelastningar parallellt. Triton maximerar GPU-användningen och genomströmningen genom att använda CUDA-strömmar för att köra flera modellinstanser samtidigt. Dessa modellinstanser kan vara olika modeller från olika ramverk för olika användningsfall, eller en direkt kopia av samma modell. Detta översätts till direkt genomströmningsförbättring när du har tillräckligt med ledigt GPU-minne. Eftersom Triton inte är bunden till ett specifikt DL-utvecklingsramverk, tillåter det forskare att uttrycka sig fullt ut i det verktyg de själva väljer.

Med Triton på AWS förväntar sig Amazon Search att tjäna bättre Amazon.com kunder och möta latenskrav till låg kostnad. Den täta integrationen mellan TensorRT runtime och Triton-servern underlättar utvecklingsupplevelsen. Att använda AWS molninfrastruktur gör det möjligt att skala upp eller ner på några minuter baserat på genomströmningskrav, samtidigt som ribban bibehålls hög eller tillförlitlighet och säkerhet.

Hur AWS sänker inträdesbarriären

Medan Amazon Search genomförde detta experiment på Amazon EC2-infrastruktur, finns det andra AWS-tjänster för att underlätta utveckling, utbildning och värdskap för toppmoderna lösningar för djupinlärning.

Till exempel har AWS och NVIDIA samarbetat för att släppa en hanterad implementering av Triton Inference Server i Amazon SageMaker ; för mer information, se Implementera snabb och skalbar AI med NVIDIA Triton Inference Server i Amazon SageMaker. AWS samarbetade också med Hugging Face för att utveckla en hanterad, optimerad integration mellan Amazon SageMaker och Hugging Face Transformers, ramverket med öppen källkod från vilken Amazon Search T5-modellen är härledd; läs mer på https://aws.amazon.com/machine-learning/hugging-face/.

Vi uppmuntrar kunder med latenskänsliga CPU- och GPU-applikationer för djupinlärning att överväga NVIDIA TensorRT och Triton på AWS. Låt oss veta vad du bygger!

Brinner du för djupinlärning och att bygga djupinlärningsbaserade lösningar för Amazon Search? Kolla in vår karriärsida.


Om författarna

Hur Amazon Search uppnår T5-inferens med låg latens och hög genomströmning med NVIDIA Triton på AWS PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.RJ är en ingenjör i Search M5-teamet som leder ansträngningarna för att bygga storskaliga system för djupinlärning för träning och slutledning. Utanför jobbet utforskar han olika maträtter och spelar racketsporter.

Hur Amazon Search uppnår T5-inferens med låg latens och hög genomströmning med NVIDIA Triton på AWS PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Hemant Pugaliya är en tillämpad forskare på Search M5. Han arbetar med att tillämpa den senaste bearbetningen av naturligt språk och forskning om djupinlärning för att förbättra kundupplevelsen på Amazon-shopping över hela världen. Hans forskningsintressen inkluderar naturlig språkbehandling och storskaliga maskininlärningssystem. Utanför jobbet tycker han om att vandra, laga mat och läsa.

Hur Amazon Search uppnår T5-inferens med låg latens och hög genomströmning med NVIDIA Triton på AWS PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Andy Sun är en mjukvaruingenjör och teknisk ledare för sökstavningskorrigering. Hans forskningsintressen inkluderar att optimera djupinlärningsinferenslatens och bygga snabba experimentplattformar. Utanför jobbet tycker han om filmskapande och akrobatik.

Hur Amazon Search uppnår T5-inferens med låg latens och hög genomströmning med NVIDIA Triton på AWS PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Le Cai är mjukvaruingenjör på Amazon Search. Han arbetar med att förbättra sökstavningskorrigeringen för att hjälpa kunder med deras shoppingupplevelse. Han fokuserar på högpresterande online slutledning och distribuerad träningsoptimering för djupinlärningsmodell. Utanför jobbet tycker han om att åka skidor, vandra och cykla.

Hur Amazon Search uppnår T5-inferens med låg latens och hög genomströmning med NVIDIA Triton på AWS PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Anthony Ko arbetar för närvarande som mjukvaruingenjör på Search M5 Palo Alto, CA. Han arbetar med att bygga verktyg och produkter för modelldistribution och slutledningsoptimering. Utanför jobbet tycker han om att laga mat och att spela racketsporter.

Hur Amazon Search uppnår T5-inferens med låg latens och hög genomströmning med NVIDIA Triton på AWS PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Olivier Cruchant är en maskininlärningsspecialistlösningsarkitekt på AWS, baserad i Frankrike. Olivier hjälper AWS-kunder – från små startups till stora företag – att utveckla och distribuera produktionsklassade maskininlärningsapplikationer. På fritiden tycker han om att läsa forskningsrapporter och utforska vildmarken med vänner och familj.

Hur Amazon Search uppnår T5-inferens med låg latens och hög genomströmning med NVIDIA Triton på AWS PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Anish Mohan är en maskininlärningsarkitekt på NVIDIA och den tekniska ledaren för ML- och DL-engagemang med sina kunder i Seattle-regionen.

Hur Amazon Search uppnår T5-inferens med låg latens och hög genomströmning med NVIDIA Triton på AWS PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Jiahong Liu är en lösningsarkitekt på Cloud Service Provider-teamet på NVIDIA. Han hjälper kunder att ta till sig maskininlärning och AI-lösningar som utnyttjar NVIDIAs accelererade datoranvändning för att hantera deras utbildnings- och slutledningsutmaningar. På sin fritid tycker han om origami, gör-det-själv-projekt och att spela basket.

Hur Amazon Search uppnår T5-inferens med låg latens och hög genomströmning med NVIDIA Triton på AWS PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Eliuth Triana är en Developer Relations Manager på NVIDIA. Han kopplar samman Amazon- och AWS-produktledare, utvecklare och forskare med NVIDIA-teknologer och produktledare för att påskynda Amazon ML/DL-arbetsbelastningar, EC2-produkter och AWS AI-tjänster. Dessutom är Eliuth en passionerad mountainbike-, skid- och pokerspelare.

Tidsstämpel:

Mer från AWS maskininlärning