Gondban vagy az AI vagy a full-stack fejlesztéssel? Szakértőink segítik Önt: személyre szabott tanácsadás, technikai integráció és még sok más. Lépjen kapcsolatba a [email protected].

GenAI következtetési motorok: TensorRT-LLM vs vLLM vs Hugging Face TGI vs LMDeploy

A generatív mesterséges intelligencia (GenAI) térhódítása átalakította az iparágakat, a természetes nyelvfeldolgozástól a kreatív tartalomgenerálásig. Ugyanakkor továbbra is kihívást jelent ezeknek a nagy teljesítményű modelleknek a hatékony, méretarányos alkalmazása.

TensorRT-LLM, vLLM, Hugging Face TGI és LMDeploy

A következtetési motorok kritikus szerepet játszanak a teljesítmény optimalizálásában, a késleltetés csökkentésében és az erőforrás-kihasználás maximalizálásában. Ebben a cikkben négy vezető megoldásba merülünk bele: TensorRT-LLM, vLLM, Hugging Face TGI és LMDeploy.

Mindegyikük egyedi erősségekkel rendelkezik, legyen szó az NVIDIA hardveresen gyorsított precizitásáról, a vLLM innovatív memóriakezeléséről, a TGI gyártásra kész ökoszisztémájáról vagy az LMDeploy sebességre és egyszerűségre való összpontosításáról. Csatlakozzon hozzánk, amikor összehasonlítjuk ezeket a motorokat, hogy segítsünk megtalálni a GenAI-munkaterhelésekhez tökéletesen megfelelőt.

TensorRT-LLM: Az NVIDIA erőműve az optimalizált következtetéshez

A TensorRT-LLM az NVIDIA válasza a nagy nyelvi modellek gyors és zökkenőmentes futtatására. A TensorRT keretrendszerre épül, és úgy tervezték, hogy minden csepp teljesítményt ki tudjon préselni az NVIDIA GPU-kból. Ezt olyan trükkökkel éri el, mint a rétegfúzió, a pontosság finomhangolása (FP16, INT8, FP8...) és a kerneloptimalizálás, amely csökkenti a számítási időt anélkül, hogy a modell pontossága sérülne.

TensorRT-LLM

Ez nem csak a sebességről szól. A TensorRT-LLM hatékonyan kezeli a nagy modelleket a memória intelligens kezelésével, így nem omlik össze a futás közepén. Támogatja a dinamikus kötegelést is, így egyszerre több kérést is feldolgozhat anélkül, hogy kifogyna a memória. Ha már használ NVIDIA hardvert, akkor nem kell aggódnia, mivel szorosan illeszkedik az ökoszisztémájukhoz, mint például a CUDA és a cuDNN, és még az NVIDIA Triton Inference Serverrel és az NVIDIA Dynamóval is integrálható.

Ez azt jelenti, hogy nem mindenki számára tökéletes. A telepítés fájdalmas lehet, ha nem ismeri az NVIDIA eszközeit, és kevésbé rugalmas, ha nem NVIDIA hardverrel dolgozik. Mégis, a nyers teljesítmény és az NVIDIA GPU-kon történő optimalizálás tekintetében nehéz felülmúlni.

vLLM: Nagy áteresztőképességű következtetés PagedAttention segítségével

A vLLM nagyon jól és gyorsan kezeli a nagy mennyiségű következtetési feladatot. Ez egy nyílt forráskódú projekt, amely akkor ragyog, ha nagy áteresztőképességre van szükség, anélkül, hogy lassulna. A titkos szósz a PagedAttention, egy olyan trükk, amely a legtöbbnél sokkal jobban kezeli a memóriát. Ahelyett, hogy mindent egyszerre töltene be és emésztené a RAM-ot, a kulcs-érték gyorsítótárakat darabokra bontja, és csak a szükségeseket veszi fel. Kevesebb pazarlás, nagyobb sebesség.

vLLM

Nagyon rugalmas is. A dobozból kivéve olyan népszerű modellekkel működik, mint a LLaMA vagy a Mistral, és számos hardvert támogat, beleértve az NVIDIA vagy az AMD GPU-kat is. Dinamikus kötegelést is kap a kérések hatékony csoportosításához, így a csővezeték zökkenőmentesen működik. A telepítés meglehetősen egyszerű, ha már ismeri a Pythont és a PyTorchot.

A vLLM elsődleges korlátja, hogy a piacon még viszonylag fejletlen, ami azt jelenti, hogy még nem biztos, hogy olyan átfogó funkciókészletet kínál, mint a bevált megoldások. A nagy teljesítményű következtetést biztosító, hatékony megoldást kereső szervezetek számára azonban a vLLM kiváló választás.

Ölelő arc TGI: A termelésre kész megoldás a szöveggeneráláshoz

Az Hugging Face TGI (Text Generation Inference) azoknak készült, akik fejfájás nélkül szeretnének modelleket készíteni és használni. Ez egy olyan eszköz, amelyet a Hugging Face csapata készített, így jól játszik az előre betanított modellek hatalmas könyvtárával - gondoljunk csak a BERT-re, a GPT-re és más modellekre. Valós használatra tervezték, például chatbotok vagy olyan alkalmazások működtetésére, ahol a szöveggenerálásnak gyorsan kell működnie, és nem szabad összeomlania.

Ölelő arc TGI

A TGI a nehéz munkát olyan funkciókkal oldja meg, mint a folyamatos kötegelés, amely a rendszert az új kérések cseréjével lefoglalja, amint a régiek befejeződnek. Támogatja a GPU-gyorsítást, és ha megvan hozzá a hardver, képes a bővítésre. Ráadásul beépített biztonsággal rendelkezik - például a rossz kimenetek kiszűrésével -, ami hasznos a termelésben. Dockerrel néhány lépésben telepíthető, így viszonylag könnyen beállítható.

A csapda? A Hugging Face ökoszisztémájához van kötve, így ha még nem vagy benne abban a világban, korlátozónak érezheted. Mégis, ha egy plug-and-play opcióról van szó, amely készen áll a használatra, a TGI nagyszerű választás.

LMDeploy: Hatékony telepítés kiváló dekódolási sebességgel

Az LMDeploy az MMRazor és az MMDeploy csapatok eszköztára, amely nagyméretű nyelvi modellek tömörítésére, telepítésére és futtatására készült. Mitől emelkedik ki? Kiváló dekódolási sebességgel rendelkezik - másodpercenként akár 1,8-szor több kérést kap, mint a vLLM egy A100 GPU-n. Ez olyan trükköknek köszönhető, mint a tartós kötegelés, a blokkolt KV cache-elés és az ügyes CUDA kernelek, amelyek lefoglalják a GPU-t.

LMDeploy

Két motorral rendelkezik: TurboMind a maximális teljesítményhez és egy PyTorch a könnyebb barkácsoláshoz. A TurboMind itt a sztár - a 4-bites következtetést 2,4x gyorsabban hajtja végre, mint az FP16, és könnyedén kezeli az olyan nagy modelleket, mint a Llama-2 70B. A súlyok és a KV cache-ek kvantálását is elvégezheted, hogy memóriát takaríts meg anélkül, hogy ez a pontosság rovására menne. A telepítés is gyerekjáték - egyetlen parancs segítségével több gépen is beállíthat egy szervert, ha szüksége van rá. Ráadásul a többfordulós beszélgetéseknél megjegyzi a csevegés előzményeit, így nem pazarolja az időt a régi munka újbóli elvégzésére.

A hátránya? A TurboMind válogatós - még nem játszik jól a Mistralhoz hasonló csúszó ablakos figyelemmodellekkel. És ha nem NVIDIA GPU-val dolgozol, akkor a lassabb PyTorch motorral kell dolgoznod. Mégis, a megfelelő hardveren a sebesség és az egyszerűség érdekében az LMDeploy nagyszerű választás.

Teljesítmény-összehasonlítás: Késleltetés, áteresztőképesség és skálázhatóság

Nézzük meg, hogyan viszonyulnak ezek a motorok a késleltetéshez (milyen gyorsan ér véget egy kérés), az átviteli teljesítményhez (hány kérést tudnak befogadni) és a skálázhatósághoz (mennyire jól kezelik a nagyobb terhelést vagy a több hardvert).

A TensorRT-LLM a késleltetés terén kiemelkedik, ha NVIDIA GPU-val rendelkezik. Az NVIDIA hardverére van optimalizálva, így az egyes kérések gyorsan befejeződnek: a legtöbb modell esetében 50 ms alatt van az A100-as modellnél. Az átviteli teljesítmény is kiváló, különösen a dinamikus kötegeléssel. A BentoML által végzett összehasonlító tesztek azt mutatják, hogy ez a motor 100 egyidejű felhasználó esetén 100 egyidejű felhasználó esetén a Llama 3 70B Q4 esetében egy A100 80 GB-os GPU-n eléri a 700 tokent másodpercenként. A TensorRT-LLM erősen teljesít a hosszú bemenetekkel és nagy kérésszámmal rendelkező forgatókönyvekben, és jó átviteli teljesítményt nyújt. A több GPU-n való skálázhatóságot kiváló teljesítménnyel támogatja.

A vLLM is jó átviteli teljesítményt nyújt, különösen a dekódolással terhelt munkaterhelésekben, a legutóbbi frissítések után magas átviteli teljesítményt és alacsony késleltetést biztosít. A BentoML által végzett benchmarkok azt mutatják, hogy ez a motor 100 egyidejű felhasználó esetén 100 egyidejű felhasználó esetén 600-650 tokent ér el másodpercenként a Llama 3 70B Q4 esetében egy A100 80 GB-os GPU-n. A késleltetés jó, de nem olyan jó, mint a TensorRT-LLM: 60-80ms körüli érték a szóló futásoknál. Jól skálázódik a GPU-k között, még a márkák keveredésével is, de kevésbé csiszolt a hatalmas beállításoknál.

Az Hugging Face TGI a vLLM-hez hasonlóan teljesít, egyensúlyt teremtve a teljesítmény és a könnyű használat között. A késleltetés tisztességes: 50-70 ms egy jó GPU-n. A BentoML által végzett benchmarkok azt mutatják, hogy ez a motor 100 egyidejű felhasználó esetén 600-650 tokent ér el másodpercenként Llama 3 70B Q4 esetén egy A100 80 GB-os GPU-n. Termelési célú skálázásra készült, így több felhasználót vagy gépet simán kezel, különösen Dockerrel.

Az LMDeploy a dekódolási sebességet tekintve nyer. Kiválóan teljesít a tokengenerálási sebességben, különösen a kisebb modellek esetében, és alacsony az első tokenig eltelt idő (TTFT) a kvantált nagy modellek esetében. A késleltetés alacsony: 40-60 ms. Az áteresztőképesség pedig kiváló. A BentoML által végzett összehasonlító tesztek azt mutatják, hogy ez a motor 100 egyidejű felhasználó esetén 100 egyidejű felhasználóval a Llama 3 70B Q4 esetében egy A100 80 GB-os GPU-n eléri a 700 token/másodpercet. A skálázás könnyű a szerver beállításával, de a legjobb eredmények eléréséhez erősen támaszkodik az NVIDIA GPU-kra; a PyTorch mód lemarad.

A lényeg: A TensorRT-LLM és az LMDeploy vezet a nyers sebesség tekintetében. A választás a hardveredtől és a kezelt kérések számától függ.

Kvantálási képességek

A kvantálás csökkenti a modell pontosságát a memóriahasználat csökkentése és a következtetés felgyorsítása érdekében, ami fontos az erőforrás-korlátozott környezetekben. Az egyes motorok teljesítménye a következő:

A TensorRT-LLM támogatja az FP8, az FP4, az INT4 az Activation-aware Weight Quantization (AWQ) és az INT8 a SmoothQuant segítségével, így megbízható lehetőségeket kínál az NVIDIA GPU teljesítményének optimalizálásához.

A vLLM rugalmasságot biztosít a GPTQ, AWQ, INT4, INT8 és FP8 funkciókkal, alkalmazkodva a különböző hardver- és pontossági igényekhez.

Az Hugging Face TGI integrálja a bitsandbytes-ot a 8 bites és 4 bites kvantáláshoz, valamint a GPT-Q-t a csak súlyozással történő kvantáláshoz, amely alkalmas a gyártáshoz.

Az LMDeploy 4 bites AWQ-t, 8 bites kvantálást és online INT8/INT4 KV cache kvantálást kínál, ami növeli a hatékonyságot a nagy modellek esetében korlátozott hardveren.

Hardver kompatibilitás

A hardvertámogatás határozza meg, hogy hol lehet ezeket a motorokat telepíteni, ami hatással van a skálázhatóságra és a teljesítményre:

A TensorRT-LLM kizárólag az NVIDIA CUDA-t használja, és a GPU-gyorsítókat használja ki a nagy teljesítmény érdekében.

A vLLM támogatja az NVIDIA CUDA, az AMD ROCm, az AWS Neuron és a CPU-t, így széles körű kompatibilitást biztosít a különböző konfigurációk számára.

Az Hugging Face TGI együttműködik az NVIDIA CUDA, az AMD ROCm, az Intel Gaudi és az AWS Inferentia rendszerekkel, így rugalmasan alkalmazkodik a különböző hardverkörnyezetekhez.

Az LMDeploy az NVIDIA CUDA-ra van optimalizálva, így a legjobb teljesítményt biztosítja az NVIDIA GPU-kon, de korlátozottan támogatja a többi platformot.

Könnyű használat

A beállítási és integrációs folyamat befolyásolhatja a fejlesztési határidőket. Az egyes motorok hogyan teljesítenek:

A TensorRT-LLM ellenőrzőpontok konvertálását, a TensorRT motor felépítését és a paraméterek konfigurálását igényli, ami kihívást jelent és időigényes a mérnökök számára.

A vLLM felhasználóbarát, átfogó dokumentációval, egyszerű telepítéssel és a Python könyvtár zökkenőmentes integrációjával.

A Hugging Face TGI a Hugging Face ökoszisztémájából profitál, amely előre elkészített Docker-képeket és alapos dokumentációt kínál a gyors telepítéshez.

Az LMDeploy egyszerű telepítéssel rendelkezik, egyetlen paranccsal indítja el a kiszolgálót, és Python API-kkal testreszabható, így az egyszerűség és a rugalmasság egyensúlyban van.

Következtetés

A megfelelő motor kiválasztása a felhasználási esettől, a hardvertől és a készségektől függ.

A TensorRT-LLM a legjobb következtetési motor, ha nagy modelleket futtatsz NVIDIA GPU-kon, és minden egyes unciányi sebességre szükséged van (gondolj olyan alacsony késleltetésű alkalmazásokra, mint a valós idejű chatbotok vagy AI asszisztensek, ahol a válaszokat ezredmásodpercek alatt kell generálni). Tökéletes a már mélyen az NVIDIA világában lévő vállalatok számára, de túlzás lehet, ha az egyszerűségre törekszik.

A vLLM nagyszerű kompromisszum a sebesség és az egyszerűség között. Nagyon jól működik olyan induló vállalkozások vagy kutatók számára, akik valami rugalmas és gyorsan beállíthatót szeretnének.

A Hugging Face TGI a sebesség és az egyszerűség szempontjából egyenértékű a vLLM-mel. Könnyen telepíthető, simán skálázódik, és a Hugging Face modell hubjához kapcsolódik, így ideális a csapatok számára, akik egy egyszerű megoldást keresnek.

Az LMDeploy a TensorRT-LLM-hez hasonlóan a teljesítmény tekintetében is ragyog. Ez megfelel az NVIDIA GPU-val rendelkező felhasználóknak, akik egyszerű telepítést és csúcsteljesítményt szeretnének, de kevésbé praktikus, ha a modelljei nem játszanak jól a TurboMinddal.

Ha nem tudja vagy nem akarja saját maga telepíteni a saját GenAI-modelljét, akkor használhatja az NLP Cloudot, és kihasználhatja a gyors generatív AI-modelleket a termelésben. Próbáld ki a gyors következtetést az NLP Cloudon most!

Ha kérdései vannak a következtetési motorokkal kapcsolatban, kérjük, ne habozzon, kérdezzen minket, mindig örömmel adunk tanácsot!

Julien
CTO az NLP Cloudnál