Worstel je met AI of full-stack ontwikkeling? Onze experts staan klaar om je te begeleiden: advies op maat, technische integratie en meer. Neem contact op met [email protected].

GenAI-inferentie-engines: TensorRT-LLM vs vLLM vs Hugging Face TGI vs LMDeploy

De opkomst van generatieve AI (GenAI) heeft industrieën getransformeerd, van natuurlijke taalverwerking tot het genereren van creatieve content. Het blijft echter een uitdaging om deze krachtige modellen efficiënt op schaal in te zetten.

TensorRT-LLM, vLLM, Hugging Face TGI en LMDeploy

Inferentie-engines spelen een cruciale rol bij het optimaliseren van prestaties, het verminderen van latentie en het maximaliseren van het gebruik van bronnen. In dit artikel nemen we vier toonaangevende oplossingen onder de loep: TensorRT-LLM, vLLM, Hugging Face TGI en LMDeploy.

Elk van deze engines heeft zijn eigen sterke punten, of het nu gaat om NVIDIA's hardwareversnelde precisie, vLLM's innovatieve geheugenbeheer, TGI's productieklare ecosysteem of LMDeploy's focus op snelheid en eenvoud. Ga met ons mee terwijl we deze engines vergelijken om je te helpen de perfecte fit te vinden voor jouw GenAI workloads.

TensorRT-LLM: NVIDIA's krachtpatser voor geoptimaliseerde inferentie

TensorRT-LLM is het antwoord van NVIDIA om grote taalmodellen snel en soepel te laten werken. Het is gebouwd op hun TensorRT framework en is ontworpen om elke druppel prestatie uit NVIDIA GPU's te persen. Het doet dit met trucs zoals layer fusion, precisie tweaking (FP16, INT8, FP8...), en kernel optimalisatie die de rekentijd verkort zonder de nauwkeurigheid van het model aan te tasten.

TensorRT-LLM

Het gaat niet alleen om snelheid. TensorRT-LLM gaat efficiënt om met grote modellen door het geheugen slim te beheren, zodat je niet midden in de run crasht. Het ondersteunt ook dynamic batching, zodat je meerdere verzoeken tegelijk kunt verwerken zonder dat je geheugen leeg raakt. Als je al NVIDIA hardware gebruikt, is het een no-brainer omdat het nauw verbonden is met hun ecosysteem, zoals CUDA en cuDNN, en het integreert zelfs met NVIDIA's Triton Inference Server en NVIDIA Dynamo.

Dat gezegd hebbende, het is niet perfect voor iedereen. De installatie kan lastig zijn als je niet vertrouwd bent met de tools van NVIDIA, en het is minder flexibel als je niet-NVIDIA hardware gebruikt. Toch, voor ruwe kracht en optimalisatie op NVIDIA GPU's, is het moeilijk te verslaan.

vLLM: Inferentie met hoge verwerkingscapaciteit en PagedAttention

vLLM is erg goed in het snel verwerken van grote hoeveelheden inferentietaken. Het is een open-source project dat uitblinkt wanneer je een hoge verwerkingscapaciteit nodig hebt zonder te vertragen. De geheime truc is PagedAttention, een truc die het geheugen veel beter beheert dan de meeste andere. In plaats van alles in één keer te laden en RAM op te eten, worden de key-value caches opgedeeld in brokken en wordt alleen gepakt wat nodig is. Minder verspilling, meer snelheid.

vLLM

Het is ook erg flexibel. Het werkt direct vanuit de doos met populaire modellen zoals LLaMA of Mistral en ondersteunt veel hardware, waaronder NVIDIA of AMD GPU's. Je krijgt ook dynamische batching om aanvragen efficiënt te groeperen, zodat de pijplijn soepel blijft lopen. De installatie is vrij eenvoudig als je gewend bent aan Python en PyTorch.

De belangrijkste beperking van vLLM is de relatieve onvolwassenheid op de markt, waardoor het mogelijk nog niet de uitgebreide functieset biedt die beschikbaar is in meer gevestigde oplossingen. Voor organisaties die op zoek zijn naar een efficiënte oplossing die krachtige inferentie levert, is vLLM echter een uitstekende keuze.

Knuffelgezicht TGI: Een productieklare oplossing voor tekstgeneratie

Hugging Face TGI (Text Generation Inference) is gemaakt voor mensen die modellen zonder hoofdpijn aan de praat willen krijgen. Het is een tool die is gebouwd door het Hugging Face team, dus het speelt goed samen met hun enorme bibliotheek van voorgetrainde modellen, zoals BERT, GPT en meer. Het is ontworpen voor gebruik in de echte wereld, zoals het voeden van chatbots of apps waarbij tekstgeneratie snel moet werken en niet mag crashen.

Knuffelgezicht TGI

TGI doet het zware werk met functies zoals continue batching, wat het systeem bezig houdt door nieuwe verzoeken in te wisselen als oude klaar zijn. Het ondersteunt GPU versnelling en kan opgeschaald worden als je de hardware hebt. Bovendien heeft het ingebouwde veiligheid, zoals het uitfilteren van slechte uitvoer, wat handig is voor productie. Je kunt het in een paar stappen implementeren met Docker, dus het is relatief eenvoudig op te zetten.

Het addertje onder het gras? Het is gebonden aan het ecosysteem van Hugging Face, dus als je nog niet in die wereld zit, kan het beperkend aanvoelen. Toch, voor een plug-and-play optie die klaar is voor gebruik, is TGI een geweldige keuze.

LMDeploy: Efficiënte implementatie met superieure decoderingssnelheid

LMDeploy is een toolkit van de MMRazor en MMDeploy teams, gebouwd om grote taalmodellen te comprimeren, te implementeren en uit te voeren zonder gedoe. Wat maakt het zo bijzonder? Het heeft een uitstekende decoderingssnelheid - tot 1,8x meer aanvragen per seconde dan vLLM op een A100 GPU. Dat is te danken aan trucs zoals persistent batching, geblokkeerde KV caching en handige CUDA kernels die de GPU bezig houden.

LMDeploy

Het heeft twee engines: TurboMind voor maximale prestaties en PyTorch voor eenvoudiger sleutelen. TurboMind is de ster hier-het stuurt 4-bit inferentie 2,4x sneller dan FP16, en het verwerkt grote modellen zoals Llama-2 70B met gemak. Je kunt ook gewichten en KV caches kwantiseren om geheugen te besparen zonder de nauwkeurigheid te schaden. Het implementeren is ook een fluitje van een cent: één commando zet een server op meerdere machines als dat nodig is. Bovendien onthoudt het de chatgeschiedenis in gesprekken met meerdere rondes, zodat het geen tijd verspilt om oud werk opnieuw te doen.

Het nadeel? TurboMind is kieskeurig-het speelt nog niet goed met schuifvenster aandachtsmodellen zoals Mistral. En als je geen NVIDIA GPU's gebruikt, zit je vast aan de langzamere PyTorch engine. Toch, voor snelheid en eenvoud op de juiste hardware, is LMDeploy een geweldige keuze.

Prestatievergelijking: Latency, doorvoer en schaalbaarheid

Laten we eens kijken hoe deze engines presteren op het gebied van latentie (hoe snel een verzoek klaar is), doorvoer (hoeveel verzoeken ze kunnen verwerken) en schaalbaarheid (hoe goed ze omgaan met grotere belastingen of meer hardware).

TensorRT-LLM blinkt uit in latentie als je NVIDIA GPU's hebt. Het is sterk geoptimaliseerd voor NVIDIA-hardware, dus afzonderlijke verzoeken zijn snel klaar: minder dan 50 ms voor de meeste modellen op een A100. De doorvoer is ook uitstekend, vooral met dynamic batching. Benchmarks van BentoML laten zien dat deze engine 700 tokens per seconde haalt bij 100 gelijktijdige gebruikers voor Llama 3 70B Q4 op een A100 80GB GPU. TensorRT-LLM presteert sterk in scenario's met lange invoer en hoge aanvraagsnelheden en biedt een goede verwerkingscapaciteit. Schaalbaarheid op meerdere GPU's wordt out of the box ondersteund met uitstekende prestaties.

vLLM heeft ook een goede verwerkingscapaciteit, vooral bij zware decodeerwerkzaamheden, met een hoge verwerkingscapaciteit en lage latency na recente updates. Benchmarks van BentoML laten zien dat deze engine 600-650 tokens per seconde haalt bij 100 gelijktijdige gebruikers voor Llama 3 70B Q4 op een A100 80GB GPU. Latency is goed, maar niet zo goed als TensorRT-LLM: rond 60-80ms voor solo runs. Het schaalt goed over verschillende GPU's, zelfs bij het mixen van merken, maar het is minder gepolijst voor enorme setups.

Hugging Face TGI presteert vergelijkbaar met vLLM en biedt een balans tussen prestaties en gebruiksgemak. Latency is redelijk: 50-70ms op een goede GPU. Benchmarks van BentoML laten zien dat deze engine 600-650 tokens per seconde haalt bij 100 gelijktijdige gebruikers voor Llama 3 70B Q4 op een A100 80GB GPU. Het is gebouwd om te schalen voor productie, dus het kan probleemloos meer gebruikers of machines aan, vooral met Docker.

LMDeploy wint op decoderingssnelheid. Het blinkt uit in tokengeneratiesnelheid, vooral voor kleinere modellen, en heeft een lage Time to First Token (TTFT) voor gekwantiseerde grote modellen. Latency is laag: 40-60 ms. En de doorvoer is uitstekend. Benchmarks van BentoML laten zien dat deze engine 700 tokens per seconde haalt bij 100 gelijktijdige gebruikers voor Llama 3 70B Q4 op een A100 80GB GPU. Schalen is eenvoudig met de serveropstelling, maar het leunt zwaar op NVIDIA GPU's voor de beste resultaten; de PyTorch-modus blijft achter.

Conclusie: TensorRT-LLM en LMDeploy leiden op het gebied van ruwe snelheid. De keuze hangt af van uw hardware en hoeveel aanvragen u verwerkt.

Kwantiseringsmogelijkheden

Quantisatie verlaagt de precisie van het model om het geheugengebruik te verlagen en inferentie te versnellen, wat belangrijk is voor omgevingen met beperkte bronnen. Hier is te zien hoe elke engine presteert:

TensorRT-LLM ondersteunt FP8, FP4, INT4 met Activation-aware Weight Quantization (AWQ) en INT8 met SmoothQuant, wat robuuste opties biedt voor het optimaliseren van de prestaties van NVIDIA GPU's.

vLLM biedt flexibiliteit met GPTQ, AWQ, INT4, INT8 en FP8 en kan worden aangepast aan verschillende hardware- en precisiebehoeften.

Hugging Face TGI integreert bitsandbytes voor 8-bits en 4-bits kwantisatie en GPT-Q voor gewicht-alleen kwantisatie, geschikt voor productie-implementaties.

LMDeploy biedt 4-bits AWQ, 8-bits kwantisatie en online INT8/INT4 KV cache-kwantisatie, waardoor de efficiëntie voor grote modellen op beperkte hardware wordt verbeterd.

Compatibiliteit met hardware

Hardwareondersteuning bepaalt waar u deze engines kunt inzetten, wat de schaalbaarheid en prestaties beïnvloedt:

TensorRT-LLM is exclusief voor NVIDIA CUDA en maakt gebruik van GPU-versnellers voor hoge prestaties.

vLLM ondersteunt NVIDIA CUDA, AMD ROCm, AWS Neuron en CPU en biedt daarmee brede compatibiliteit voor verschillende setups.

Hugging Face TGI werkt met NVIDIA CUDA, AMD ROCm, Intel Gaudi en AWS Inferentia, wat flexibiliteit biedt voor verschillende hardware-omgevingen.

LMDeploy is geoptimaliseerd voor NVIDIA CUDA en garandeert topprestaties op NVIDIA GPU's, maar met beperkte ondersteuning voor andere platforms.

Gebruiksgemak

Het installatie- en integratieproces kan de ontwikkelingstijden beïnvloeden. Hier ziet u hoe elke engine het doet:

TensorRT-LLM vereist het converteren van controlepunten, het bouwen van de TensorRT engine en het configureren van parameters, waardoor het uitdagend en tijdrovend is voor ingenieurs.

vLLM is gebruiksvriendelijk met uitgebreide documentatie, eenvoudige installatie en naadloze integratie van de Python-bibliotheek.

Hugging Face TGI profiteert van het ecosysteem van Hugging Face en biedt vooraf gebouwde Docker-images en grondige documentatie voor een snelle implementatie.

LMDeploy heeft een eenvoudige setup met één commando om de server te starten en Python API's voor aanpassingen, waardoor gemak en flexibiliteit in balans zijn.

Conclusie

Het kiezen van de juiste engine hangt af van je gebruikssituatie, hardware en vaardigheden.

TensorRT-LLM is de inferentie-engine bij uitstek als je grote modellen uitvoert op NVIDIA GPU's en alle snelheid nodig hebt (denk aan toepassingen met een lage latentie, zoals realtime chatbots of AI-assistenten die antwoorden in milliseconden moeten genereren). Het is perfect voor bedrijven die al diep in de wereld van NVIDIA zitten, maar het kan overkill zijn als je op zoek bent naar eenvoud.

vLLM is een geweldige afweging tussen snelheid en eenvoud. Het werkt erg goed voor starters of onderzoekers die iets flexibel en snel willen opzetten.

Hugging Face TGI is qua snelheid en eenvoud gelijk aan vLLM. Het is eenvoudig te implementeren, schaalt soepel en sluit aan op de modelhub van Hugging Face, dus het is ideaal voor teams die een oplossing zonder poespas willen.

LMDeploy blinkt uit in prestaties, net als TensorRT-LLM. Het is geschikt voor gebruikers met NVIDIA GPU's die een eenvoudige installatie en topprestaties willen, maar het is minder handig als je modellen niet goed werken met TurboMind.

Als u uw eigen GenAI-model niet zelf kunt of wilt implementeren, kunt u NLP Cloud gebruiken en gebruikmaken van snelle generatieve AI-modellen op schaal in productie. Probeer nu snelle inferentie op NLP Cloud!

Als je vragen hebt over inferentie-engines in het algemeen, aarzel dan niet om het ons te vragen, het is altijd een genoegen om advies te geven!

Julien
CTO bij NLP Cloud