Máte potíže s umělou inteligencí nebo s vývojem celého balíku? Naši odborníci jsou tu pro vás: poradenství na míru, technická integrace a další. Obraťte se na [email protected].

Inferenční motory GenAI: TensorRT-LLM vs vLLM vs Hugging Face TGI vs LMDeploy

Rozvoj generativní umělé inteligence (GenAI) změnil různá odvětví, od zpracování přirozeného jazyka až po generování kreativního obsahu. Efektivní nasazení těchto výkonných modelů ve velkém měřítku však zůstává výzvou.

TensorRT-LLM, vLLM, Hugging Face TGI a LMDeploy

Odvozovací mechanismy hrají klíčovou roli při optimalizaci výkonu, snižování latence a maximalizaci využití zdrojů. V tomto článku se věnujeme čtyřem předním řešením: TensorRT-LLM, vLLM, Hugging Face TGI a LMDeploy.

Každá z nich přináší jedinečné přednosti, ať už jde o hardwarově akcelerovanou přesnost NVIDIA, inovativní správu paměti vLLM, ekosystém TGI připravený k výrobě nebo zaměření na rychlost a jednoduchost LMDeploy. Připojte se k nám a porovnejte tyto enginy, abychom vám pomohli najít ideální řešení pro vaše pracovní zátěže GenAI.

TensorRT-LLM: výkonný nástroj společnosti NVIDIA pro optimalizované odvozování závěrů

TensorRT-LLM je řešení společnosti NVIDIA pro rychlý a plynulý běh velkých jazykových modelů. Je postaven na jejich frameworku TensorRT a je navržen tak, aby z grafických procesorů NVIDIA vytěžil každou kapku výkonu. Využívá k tomu triky, jako je slučování vrstev, úprava přesnosti (FP16, INT8, FP8...) a optimalizace jádra, která zkracuje výpočetní čas, aniž by narušila přesnost modelu.

TensorRT-LLM

Nejde jen o rychlost. TensorRT-LLM efektivně zpracovává velké modely díky chytré správě paměti, takže nedojde k pádu uprostřed běhu. Podporuje také dynamické dávkování, které umožňuje zpracovávat více požadavků najednou, aniž by došlo k vyčerpání paměti. Pokud již používáte hardware NVIDIA, není co řešit, protože je pevně spjat s jejich ekosystémem, stejně jako CUDA a cuDNN, a dokonce se integruje s NVIDIA Triton Inference Server a NVIDIA Dynamo.

Přesto není ideální pro každého. Nastavení může být nepříjemné, pokud si nevíte rady s nástroji NVIDIA, a je méně flexibilní, pokud používáte jiný hardware než NVIDIA. Přesto je pro hrubý výkon a optimalizaci na grafických procesorech NVIDIA těžké ji překonat.

vLLM: Vysoce průchodné odvozování s PagedAttention

Systém vLLM velmi dobře a rychle zpracovává velké objemy inferenčních úloh. Jedná se o projekt s otevřeným zdrojovým kódem, který zazáří, když potřebujete vysokou propustnost bez zpomalení. Tajnou omáčkou je PagedAttention, trik, který spravuje paměť mnohem lépe než většina ostatních. Místo aby načítal vše najednou a spotřebovával paměť RAM, rozdělí mezipaměť klíč-hodnota na kousky a bere jen to, co je potřeba. Méně plýtvání, více rychlosti.

vLLM

Je také velmi flexibilní. Pracuje s populárními modely, jako je LLaMA nebo Mistral, hned po vybalení z krabice a podporuje mnoho hardwaru, včetně grafických procesorů NVIDIA nebo AMD. Získáte také dynamické dávkování, které umožňuje efektivně seskupovat požadavky a udržovat plynulý chod pipeline. Nastavení je poměrně jednoduché, pokud jste zvyklí na Python a PyTorch.

Hlavním omezením vLLM je jeho relativní nevyzrálost na trhu, což znamená, že zatím nemusí nabízet tak komplexní sadu funkcí, jaká je k dispozici u zavedenějších řešení. Nicméně pro organizace, které hledají efektivní řešení poskytující vysoce výkonné odvozování, představuje vLLM vynikající volbu.

Objímající tvář TGI: Řešení pro generování textu připravené k výrobě

Hugging Face TGI (Text Generation Inference) je určen pro ty, kteří chtějí zprovoznit modely bez bolesti hlavy. Jedná se o nástroj vytvořený týmem Hugging Face, takže si rozumí s jejich rozsáhlou knihovnou předtrénovaných modelů, jako jsou BERT, GPT a další. Je navržen pro reálné použití, například pro pohon chatbotů nebo aplikací, kde musí generování textu fungovat rychle a nespadnout.

Objímající tvář TGI

TGI zvládá těžkou práci díky funkcím, jako je nepřetržité dávkování, které udržuje systém zaneprázdněný tím, že vyměňuje nové požadavky, jakmile staré skončí. Podporuje akceleraci grafickým procesorem a může se rozšiřovat, pokud máte dostatečný hardware. Navíc má vestavěnou bezpečnost - například filtrování špatných výstupů - což se hodí při výrobě. Můžete jej nasadit pomocí Dockeru v několika krocích, takže jeho nastavení je relativně snadné.

Háček? Je vázána na ekosystém Hugging Face, takže pokud v tomto světě ještě nejste, může vás omezovat. Přesto je TGI skvělou volbou pro možnost plug-and-play, která je připravena k použití.

LMDeploy: Efektivní nasazení s nejvyšší rychlostí dekódování

LMDeploy je sada nástrojů od týmů MMRazor a MMDeploy, která byla vytvořena pro komprimaci, nasazení a spuštění velkých jazykových modelů bez zbytečných starostí. Čím vyniká? Má vynikající rychlost dekódování - až 1,8x více požadavků za sekundu než vLLM na GPU A100. Je to díky trikům, jako je perzistentní dávkování, blokované KV cache a šikovná jádra CUDA, která GPU zaměstnávají.

LMDeploy

Má dva motory: TurboMind pro maximální výkon a PyTorch pro snadnější práci. TurboMind je zde hvězdou - 4bitové odvozování je 2,4x rychlejší než FP16 a snadno zvládá velké modely, jako je Llama-2 70B. Můžete také kvantizovat váhy a KV cache, abyste ušetřili paměť, aniž by to bylo na úkor přesnosti. Nasazení je také hračka - jedním příkazem nastavíte server na více počítačích, pokud to potřebujete. Navíc si pamatuje historii chatu při vícekolových rozhovorech, takže neztrácí čas opakováním staré práce.

Nevýhoda? TurboMind je vybíravý - zatím si nerozumí s modely s posuvným oknem, jako je Mistral. A pokud nepoužíváte grafické procesory NVIDIA, jste odkázáni na pomalejší engine PyTorch. Přesto je LMDeploy pro rychlost a jednoduchost na správném hardwaru skvělou volbou.

Srovnání výkonu: Latence, propustnost a škálovatelnost

Podívejme se, jak si tyto motory vedou v oblasti latence (jak rychle se dokončí jeden požadavek), propustnosti (kolik požadavků dokážou přijmout) a škálovatelnosti (jak dobře zvládají větší zátěž nebo více hardwaru).

Pokud máte grafické procesory NVIDIA, TensorRT-LLM vyniká latencí. Je vysoce optimalizován pro hardware NVIDIA, takže jednotlivé požadavky jsou dokončeny rychle: pod 50 ms u většiny modelů na A100. Také propustnost je vynikající, zejména s dynamickým dávkováním. Benchmarky od BentoML ukazují, že tento engine dosahuje 700 tokenů za sekundu při 100 souběžných uživatelích pro Llama 3 70B Q4 na 80GB GPU A100. TensorRT-LLM si vede velmi dobře ve scénářích s dlouhými vstupy a vysokými počty požadavků a nabízí dobrou propustnost. Škálovatelnost na více GPU je podporována hned po vybalení z krabice s vynikajícím výkonem.

Systém vLLM má také dobrou propustnost, zejména v zátěžích náročných na dekódování, s vysokou propustností a nízkou latencí po nedávných aktualizacích. Benchmarky BentoML ukazují, že tento engine dosahuje 600-650 tokenů za sekundu při 100 souběžných uživatelích pro Llama 3 70B Q4 na A100 80GB GPU. Latence je dobrá, ale ne tak dobrá jako u TensorRT-LLM: kolem 60-80 ms pro sólo běhy. Dobře se škáluje napříč GPU, dokonce i mícháním značek, ale pro obrovské sestavy je méně vyladěný.

TGI Hugging Face funguje podobně jako vLLM a poskytuje rovnováhu mezi výkonem a snadným používáním. Latence je slušná: 50-70 ms na dobrém GPU. Benchmarky BentoML ukazují, že tento engine dosahuje 600-650 tokenů za sekundu při 100 souběžných uživatelích pro Llama 3 70B Q4 na GPU A100 80GB. Je postaven na škálování pro produkci, takže hladce zvládá více uživatelů nebo strojů, zejména s Dockerem.

LMDeploy vítězí v rychlosti dekódování. Vyniká rychlostí generování tokenů, zejména u menších modelů, a má nízký čas do prvního tokenu (TTFT) u kvantizovaných velkých modelů. Latence je nízká: 40-60 ms. A propustnost je vynikající. Benchmarky BentoML ukazují, že tento engine dosahuje 700 tokenů za sekundu při 100 souběžných uživatelích pro Llama 3 70B Q4 na A100 80GB GPU. Škálování je díky jeho serverovému nastavení snadné, ale pro dosažení nejlepších výsledků se silně opírá o grafické procesory NVIDIA; režim PyTorch zaostává.

Podtrženo a sečteno: TensorRT-LLM a LMDeploy vedou v hrubé rychlosti. Váš výběr závisí na vašem hardwaru a na tom, kolik požadavků zpracováváte.

Schopnosti kvantizace

Kvantizace snižuje přesnost modelu, aby se snížila spotřeba paměti a zrychlila inference, což je důležité pro prostředí s omezenými zdroji. Zde se podívejte, jak si jednotlivé motory vedou:

TensorRT-LLM podporuje FP8, FP4, INT4 s kvantizací vah s ohledem na aktivaci (AWQ) a INT8 s funkcí SmoothQuant, což nabízí robustní možnosti optimalizace výkonu grafického procesoru NVIDIA.

vLLM poskytuje flexibilitu s GPTQ, AWQ, INT4, INT8 a FP8 a přizpůsobuje se různým hardwarovým a přesným potřebám.

Objímající tvář TGI integruje bitsandbytes pro 8bitovou a 4bitovou kvantizaci a GPT-Q pro kvantizaci pouze váhovou, což je vhodné pro produkční nasazení.

LMDeploy nabízí 4bitové AWQ, 8bitovou kvantizaci a online kvantizaci cache INT8/INT4 KV, což zvyšuje efektivitu pro velké modely na omezeném hardwaru.

Kompatibilita hardwaru

Hardwarová podpora určuje, kde můžete tyto motory nasadit, což má vliv na škálovatelnost a výkon:

TensorRT-LLM je exkluzivní pro NVIDIA CUDA a využívá akcelerátory GPU pro vysoký výkon.

vLLM podporuje NVIDIA CUDA, AMD ROCm, AWS Neuron a CPU a nabízí tak širokou kompatibilitu pro různá nastavení.

Hugging Face TGI spolupracuje s NVIDIA CUDA, AMD ROCm, Intel Gaudi a AWS Inferentia, čímž poskytuje flexibilitu pro různá hardwarová prostředí.

LMDeploy je optimalizován pro NVIDIA CUDA, což zajišťuje špičkový výkon na grafických procesorech NVIDIA, ale s omezenou podporou pro ostatní platformy.

Snadné používání

Proces nastavení a integrace může ovlivnit časový harmonogram vývoje. Zde se dozvíte, jak si jednotlivé enginy vedou:

TensorRT-LLM vyžaduje konverzi kontrolních bodů, sestavení enginu TensorRT a konfiguraci parametrů, což je pro inženýry náročné a časově náročné.

vLLM je uživatelsky přívětivý, má obsáhlou dokumentaci, snadnou instalaci a bezproblémovou integraci knihovny Python.

Hugging Face TGI těží z ekosystému Hugging Face, který nabízí předpřipravené obrazy Docker a důkladnou dokumentaci pro rychlé nasazení.

LMDeploy nabízí jednoduché nastavení pomocí jediného příkazu ke spuštění serveru a rozhraní API Pythonu pro přizpůsobení, které vyvažuje jednoduchost a flexibilitu.

Závěr

Výběr správného motoru závisí na vašem případu použití, hardwaru a dovednostech.

TensorRT-LLM je váš inferenční engine, pokud spouštíte velké modely na grafických procesorech NVIDIA a potřebujete každou unci rychlosti (myslete na aplikace s nízkou latencí, jako jsou chatboti v reálném čase nebo asistenti AI, kde je třeba generovat odpovědi v milisekundách). Je ideální pro společnosti, které již hluboko pronikly do světa NVIDIA, ale pokud hledáte jednoduchost, může to být přehnané.

Systém vLLM je skvělým kompromisem mezi rychlostí a jednoduchostí. Velmi dobře se hodí pro začínající firmy nebo výzkumné pracovníky, kteří chtějí něco flexibilního a rychle nastavitelného.

Objímání obličeje TGI je z hlediska rychlosti a jednoduchosti rovnocenné vLLM. Snadno se nasazuje, plynule se škáluje a je propojen s modelovým centrem Hugging Face, takže je ideální pro týmy, které chtějí řešení bez zbytečných starostí.

LMDeploy září výkonem, stejně jako TensorRT-LLM. Hodí se pro uživatele s grafickými procesory NVIDIA, kteří chtějí jednoduché nastavení a špičkový výkon, ale je méně praktický, pokud si vaše modely nerozumí s TurboMindem.

Pokud nemůžete nebo nechcete sami nasadit vlastní model GenAI, můžete využít službu NLP Cloud a využívat rychlé generativní modely AI v produkčním měřítku. Vyzkoušejte si rychlé odvozování v NLP Cloud!

Pokud máte dotazy týkající se inferenčních motorů obecně, neváhejte se nás zeptat, vždy vám rádi poradíme!

Julien
Technický ředitel společnosti NLP Cloud