Fremkomsten af generativ AI (GenAI) har transformeret industrier, fra naturlig sprogbehandling til generering af kreativt indhold. Men det er stadig en udfordring at anvende disse kraftfulde modeller effektivt i stor skala.
Inferensmotorer spiller en afgørende rolle for at optimere ydeevnen, reducere ventetiden og maksimere ressourceudnyttelsen. I denne artikel dykker vi ned i fire førende løsninger: TensorRT-LLM, vLLM, Hugging Face TGI og LMDeploy.
De har hver især unikke styrker, uanset om det er NVIDIA's hardwareaccelererede præcision, vLLM's innovative hukommelsesstyring, TGI's produktionsklare økosystem eller LMDeploys fokus på hastighed og enkelhed. Vær med, når vi sammenligner disse motorer for at hjælpe dig med at finde den perfekte løsning til dine GenAI-arbejdsbelastninger.
TensorRT-LLM er NVIDIA's svar på, hvordan man får store sprogmodeller til at køre hurtigt og smidigt. Det er bygget på deres TensorRT-framework og er designet til at presse hver eneste dråbe ydelse ud af NVIDIA GPU'er. Det sker med tricks som lagfusion, præcisionstilpasning (FP16, INT8, FP8 ...) og kerneoptimering, der reducerer beregningstiden uden at ødelægge modellens nøjagtighed.
Det handler ikke kun om hastighed. TensorRT-LLM håndterer store modeller effektivt ved at styre hukommelsen smart, så du ikke går ned midt i kørslen. Den understøtter også dynamisk batching, så du kan behandle flere anmodninger på én gang uden at løbe tør for hukommelse. Hvis du allerede bruger NVIDIA-hardware, er det en no-brainer, da den er tæt knyttet til deres økosystem, som CUDA og cuDNN, og den integreres endda med NVIDIA's Triton Inference Server og NVIDIA Dynamo.
Når det er sagt, er det ikke perfekt for alle. Opsætningen kan være besværlig, hvis du ikke er fortrolig med NVIDIA's værktøjer, og den er mindre fleksibel, hvis du bruger ikke-NVIDIA-hardware. Men når det gælder råstyrke og optimering på NVIDIA GPU'er, er det svært at slå.
vLLM er rigtig god til at håndtere store mængder inferensjobs hurtigt. Det er et open source-projekt, som brillerer, når du har brug for høj kapacitet uden at blive langsommere. Den hemmelige sauce er PagedAttention, et trick, der håndterer hukommelsen langt bedre end de fleste. I stedet for at indlæse alt på én gang og æde RAM, deler den nøgleværdi-cachen op i bidder og henter kun det, der er brug for. Mindre spild, mere hastighed.
Den er også meget fleksibel. Den fungerer med populære modeller som LLaMA eller Mistral lige ud af boksen, og den understøtter mange typer hardware, herunder NVIDIA- og AMD-GPU'er. Du får også dynamisk batching til at gruppere anmodninger effektivt og holde pipelinen kørende. Opsætningen er ret ligetil, hvis du er vant til Python og PyTorch.
Den primære begrænsning ved vLLM er dens relative umodenhed på markedet, hvilket betyder, at den måske endnu ikke tilbyder det omfattende funktionssæt, der er tilgængeligt i mere etablerede løsninger. Men for organisationer, der søger en effektiv løsning, der leverer højtydende inferens, er vLLM et fremragende valg.
Hugging Face TGI (Text Generation Inference) er lavet til folk, der ønsker at få modeller op at køre uden hovedpine. Det er et værktøj, der er bygget af Hugging Face-teamet, så det spiller godt sammen med deres enorme bibliotek af prætrænede modeller - tænk på BERT, GPT og meget mere. Det er designet til brug i den virkelige verden, f.eks. til at drive chatbots eller apps, hvor tekstgenerering skal fungere hurtigt og ikke gå ned.
TGI håndterer det tunge arbejde med funktioner som kontinuerlig batching, som holder systemet beskæftiget ved at indsætte nye anmodninger, når de gamle er færdige. Det understøtter GPU-acceleration og kan skaleres op, hvis du har hardwaren. Desuden har den indbygget sikkerhed - som filtrering af dårlige outputs - hvilket er praktisk til produktion. Du kan implementere det med Docker i et par trin, så det er relativt nemt at sætte op.
Der er en hage ved det. Det er bundet til Hugging Faces økosystem, så hvis du ikke allerede er i den verden, kan det føles restriktivt. Men hvis du vil have en plug-and-play-mulighed, der er klar til brug, er TGI et godt valg.
LMDeploy er et værktøjssæt fra MMRazor- og MMDeploy-teamene, der er bygget til at komprimere, distribuere og køre store sprogmodeller uden besvær. Hvad får det til at skille sig ud? Det har en fremragende afkodningshastighed - op til 1,8 gange flere anmodninger pr. sekund end vLLM på en A100 GPU. Det er takket være tricks som vedvarende batching, blokeret KV-caching og smarte CUDA-kerner, der holder GPU'en beskæftiget.
Den har to motorer: TurboMind til maksimal ydeevne og en PyTorch til lettere at pille ved. TurboMind er stjernen her - den skubber 4-bit inferens 2,4 gange hurtigere end FP16, og den håndterer store modeller som Llama-2 70B med lethed. Du kan også kvantificere vægte og KV-cacher for at spare hukommelse uden at skade nøjagtigheden. Implementering er også en leg - en kommando sætter en server op på tværs af flere maskiner, hvis du har brug for det. Desuden husker den chathistorikken i samtaler med flere runder, så den ikke spilder tid på at gøre gammelt arbejde om.
Hvad er ulempen? TurboMind er kræsen - den spiller endnu ikke godt sammen med glidende vinduesopmærksomhedsmodeller som Mistral. Og hvis du ikke bruger NVIDIA GPU'er, må du nøjes med den langsommere PyTorch-motor. Men når det gælder hastighed og enkelhed på den rigtige hardware, er LMDeploy et godt valg.
Lad os se på, hvordan disse motorer klarer sig i forhold til latenstid (hvor hurtigt en anmodning er færdig), gennemstrømning (hvor mange anmodninger de kan indlæse) og skalerbarhed (hvor godt de håndterer større belastninger eller mere hardware).
TensorRT-LLM brillerer på latenstid, hvis du har NVIDIA GPU'er. Den er stærkt optimeret til NVIDIA-hardware, så enkeltanmodninger afsluttes hurtigt: under 50 ms for de fleste modeller på en A100. Gennemstrømningen er også fremragende, især med dynamisk batching. Benchmarks fra BentoML viser, at denne motor når op på 700 tokens i sekundet ved 100 samtidige brugere for Llama 3 70B Q4 på en A100 80GB GPU. TensorRT-LLM klarer sig godt i scenarier med lange input og høje forespørgselshastigheder og giver god gennemstrømning. Skalerbarhed på flere GPU'er understøttes ud af boksen med fremragende ydeevne.
vLLM har også god gennemstrømning, især i afkodningstunge arbejdsbelastninger, med høj gennemstrømning og lav latenstid efter de seneste opdateringer. Benchmarks fra BentoML viser, at denne motor når op på 600-650 tokens pr. sekund ved 100 samtidige brugere for Llama 3 70B Q4 på en A100 80GB GPU. Latenstiden er god, men ikke så god som TensorRT-LLM: omkring 60-80 ms for solokørsler. Den skalerer godt på tværs af GPU'er, selv når man blander mærker, men den er mindre poleret til store opsætninger.
Hugging Face TGI fungerer på samme måde som vLLM og giver en balance mellem ydeevne og brugervenlighed. Latenstiden er anstændig: 50-70 ms på en god GPU. Benchmarks fra BentoML viser, at denne motor når 600-650 tokens pr. sekund ved 100 samtidige brugere for Llama 3 70B Q4 på en A100 80GB GPU. Den er bygget til at skalere til produktion, så den håndterer flere brugere eller maskiner uden problemer, især med Docker.
LMDeploy vinder på afkodningshastighed. Den udmærker sig i token-genereringshastighed, især for mindre modeller, og har lav tid til første token (TTFT) for kvantiserede store modeller. Latenstiden er lav: 40-60 ms. Og gennemstrømningen er fremragende. Benchmarks fra BentoML viser, at denne motor når op på 700 tokens i sekundet ved 100 samtidige brugere for Llama 3 70B Q4 på en A100 80GB GPU. Det er nemt at skalere med serveropsætningen, men den læner sig hårdt op ad NVIDIA GPU'er for at opnå de bedste resultater; PyTorch-tilstanden halter bagefter.
På bundlinjen: TensorRT-LLM og LMDeploy fører på rå hastighed. Dit valg afhænger af din hardware, og hvor mange anmodninger du håndterer.
Kvantisering reducerer modellens præcision for at mindske hukommelsesforbruget og fremskynde udledningen, hvilket er vigtigt for ressourcebegrænsede miljøer. Her er, hvordan hver motor klarer sig:
TensorRT-LLM understøtter FP8, FP4, INT4 med Activation-aware Weight Quantization (AWQ) og INT8 med SmoothQuant, hvilket giver robuste muligheder for at optimere NVIDIA GPU-ydelsen.
vLLM giver fleksibilitet med GPTQ, AWQ, INT4, INT8 og FP8 og tilpasser sig forskellige hardware- og præcisionsbehov.
Hugging Face TGI integrerer bitsandbytes til 8-bit og 4-bit kvantisering og GPT-Q til vægtbaseret kvantisering, der er velegnet til produktionsinstallationer.
LMDeploy tilbyder 4-bit AWQ, 8-bit kvantisering og online INT8/INT4 KV-cache-kvantisering, hvilket forbedrer effektiviteten for store modeller på begrænset hardware.
Hardwaresupport bestemmer, hvor du kan installere disse motorer, hvilket påvirker skalerbarhed og ydeevne:
TensorRT-LLM er eksklusiv for NVIDIA CUDA og udnytter GPU-acceleratorer til høj ydeevne.
vLLM understøtter NVIDIA CUDA, AMD ROCm, AWS Neuron og CPU, hvilket giver bred kompatibilitet til forskellige opsætninger.
Hugging Face TGI fungerer med NVIDIA CUDA, AMD ROCm, Intel Gaudi og AWS Inferentia, hvilket giver fleksibilitet til forskellige hardwaremiljøer.
LMDeploy er optimeret til NVIDIA CUDA, hvilket sikrer topydelse på NVIDIA GPU'er, men med begrænset understøttelse af andre platforme.
Opsætnings- og integrationsprocessen kan påvirke udviklingens tidslinjer. Her er, hvordan hver motor klarer sig:
TensorRT-LLM kræver konvertering af kontrolpunkter, opbygning af TensorRT-motoren og konfiguration af parametre, hvilket gør det udfordrende og tidskrævende for ingeniører.
vLLM er brugervenlig med omfattende dokumentation, nem installation og problemfri integration af Python-biblioteket.
Hugging Face TGI drager fordel af Hugging Faces økosystem, der tilbyder forudbyggede Docker-billeder og grundig dokumentation til hurtig udrulning.
LMDeploy har en enkel opsætning med en enkelt kommando til at starte serveren og Python-API'er til tilpasning, så der er balance mellem lethed og fleksibilitet.
At vælge den rigtige motor afhænger af din brugssituation, hardware og færdigheder.
TensorRT-LLM er din go-to inferensmotor, hvis du kører store modeller på NVIDIA GPU'er og har brug for al den hastighed, du kan få (tænk på applikationer med lav latenstid som chatbots i realtid eller AI-assistenter, hvor svarene skal genereres på millisekunder). Det er perfekt til virksomheder, der allerede er dybt inde i NVIDIA's verden, men det kan være for meget, hvis du leder efter enkelhed.
vLLM er et godt kompromis mellem hastighed og enkelhed. Det fungerer rigtig godt for nystartede virksomheder eller forskere, der vil have noget fleksibelt og hurtigt at sætte op.
Hugging Face TGI svarer til vLLM med hensyn til hastighed og enkelhed. Den er nem at implementere, skalerer problemfrit og er knyttet til Hugging Faces modelhub, så den er ideel til teams, der ønsker en løsning uden problemer.
LMDeploy brillerer med sin ydeevne, ligesom TensorRT-LLM. Det passer til brugere med NVIDIA GPU'er, som ønsker enkel opsætning og topydelse, men det er mindre praktisk, hvis dine modeller ikke spiller godt sammen med TurboMind.
Hvis du ikke selv kan eller vil implementere din egen GenAI-model, kan du bruge NLP Cloud og udnytte hurtige generative AI-modeller i stor skala i produktionen. Prøv hurtig inferens på NLP Cloud nu!
Hvis du har spørgsmål om inferensmotorer generelt, så tøv ikke med at spørge os, det er altid en fornøjelse at rådgive!
Julien
CTO hos NLP Cloud