Máte problémy s AI alebo vývojom celého balíka? Naši odborníci sú tu, aby vám poradili: poradenstvo na mieru, technická integrácia a ďalšie služby. Obráťte sa na [email protected].

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

Nástup generatívnej umelej inteligencie (GenAI) zmenil priemyselné odvetvia od spracovania prirodzeného jazyka až po tvorbu kreatívneho obsahu. Efektívne nasadenie týchto výkonných modelov vo veľkom meradle však zostáva výzvou.

TensorRT-LLM, vLLM, Hugging Face TGI a LMDeploy

Inferenčné motory zohrávajú kľúčovú úlohu pri optimalizácii výkonu, znižovaní latencie a maximalizácii využitia zdrojov. V tomto článku sa venujeme štyrom popredným riešeniam: TensorRT-LLM, vLLM, Hugging Face TGI a LMDeploy.

Každá z nich prináša jedinečné prednosti, či už ide o hardvérovo akcelerovanú presnosť NVIDIA, inovatívnu správu pamäte vLLM, ekosystém TGI pripravený na produkciu alebo zameranie LMDeploy na rýchlosť a jednoduchosť. Pridajte sa k nám pri porovnávaní týchto motorov, aby sme vám pomohli nájsť ideálnu voľbu pre vaše pracovné záťaže GenAI.

TensorRT-LLM: výkonný nástroj spoločnosti NVIDIA na optimalizované odvodzovanie

TensorRT-LLM je odpoveď spoločnosti NVIDIA na rýchle a plynulé spúšťanie veľkých jazykových modelov. Je postavený na ich frameworku TensorRT a navrhnutý tak, aby z grafických procesorov NVIDIA vyžmýkal každú kvapku výkonu. Robí to pomocou trikov, ako je zlučovanie vrstiev, ladenie presnosti (FP16, INT8, FP8...) a optimalizácia jadra, ktorá skracuje výpočtový čas bez narušenia presnosti modelu.

TensorRT-LLM

Nie je to len o rýchlosti. TensorRT-LLM efektívne spracúva veľké modely vďaka inteligentnej správe pamäte, takže sa nezrútite uprostred behu. Podporuje aj dynamické dávkovanie, čo vám umožňuje spracovať viacero požiadaviek naraz bez toho, aby vám došla pamäť. Ak už používate hardvér NVIDIA, je to pre vás bezproblémová voľba, pretože je pevne spojená s ich ekosystémom, ako sú CUDA a cuDNN, a dokonca sa integruje s NVIDIA Triton Inference Server a NVIDIA Dynamo.

Napriek tomu nie je ideálny pre každého. Nastavenie môže byť nepríjemné, ak si neviete rady s nástrojmi NVIDIA, a je menej flexibilné, ak používate iný hardvér ako NVIDIA. Napriek tomu je pre hrubý výkon a optimalizáciu na grafických procesoroch NVIDIA ťažké ho prekonať.

vLLM: Vysokopriepustné odvodzovanie s PagedAttention

Systém vLLM je veľmi dobrý pri rýchlom spracovaní veľkého množstva úloh odvodzovania. Je to open-source projekt, ktorý zažiari, keď potrebujete vysokú priepustnosť bez spomalenia. Tajnou omáčkou je PagedAttention, trik, ktorý spravuje pamäť oveľa lepšie ako väčšina ostatných. Namiesto toho, aby načítal všetko naraz a spotrebovával pamäť RAM, rozdeľuje vyrovnávaciu pamäť kľúč-hodnota na časti a berie len to, čo je potrebné. Menej plytvania, viac rýchlosti.

vLLM

Je tiež veľmi flexibilný. Pracuje s populárnymi modelmi, ako sú LLaMA alebo Mistral, hneď po vybalení z krabice a podporuje mnoho hardvéru vrátane GPU NVIDIA alebo AMD. K dispozícii máte aj dynamické dávkovanie, ktoré umožňuje efektívne zoskupovať požiadavky a udržiavať plynulý chod pipeline. Nastavenie je celkom jednoduché, ak ste zvyknutí na Python a PyTorch.

Hlavným obmedzením vLLM je jeho relatívna nezrelosť na trhu, čo znamená, že ešte nemusí ponúkať komplexný súbor funkcií, ktoré sú k dispozícii v zavedených riešeniach. Pre organizácie, ktoré hľadajú efektívne riešenie poskytujúce vysoko výkonné odvodzovanie, však predstavuje vLLM vynikajúcu voľbu.

Objatie tváre TGI: Riešenie na generovanie textu pripravené na produkciu

Objatie tváre TGI (Text Generation Inference) je určené pre ľudí, ktorí chcú spustiť modely bez bolesti hlavy. Je to nástroj vytvorený tímom Hugging Face, takže sa dobre dopĺňa s ich obrovskou knižnicou predtrénovaných modelov - spomeňte si na BERT, GPT a ďalšie. Je navrhnutý na reálne použitie, napríklad na napájanie chatbotov alebo aplikácií, kde generovanie textu musí fungovať rýchlo a nesmie sa zrútiť.

Objatie tváre TGI

TGI zvláda ťažkú prácu vďaka funkciám, ako je napríklad nepretržité dávkovanie, ktoré udržiava systém v prevádzke tým, že vymieňa nové požiadavky, keď sa dokončia staré. Podporuje akceleráciu GPU a ak máte dostatok hardvéru, môže sa rozšíriť. Okrem toho má zabudovanú bezpečnosť, napríklad filtrovanie zlých výstupov, čo sa hodí pri produkcii. Môžete ho nasadiť pomocou Dockera v niekoľkých krokoch, takže sa pomerne ľahko nastavuje.

Háčik? Je prepojená s ekosystémom Hugging Face, takže ak ešte nie ste v tomto svete, môže vás obmedzovať. Napriek tomu je TGI skvelou voľbou pre možnosť plug-and-play, ktorá je pripravená na používanie.

LMDeploy: Efektívne nasadenie s vynikajúcou rýchlosťou dekódovania

LMDeploy je súbor nástrojov od tímov MMRazor a MMDeploy, ktorý bol vytvorený na komprimáciu, nasadenie a spustenie veľkých jazykových modelov bez problémov. Čím vyniká? Má vynikajúcu rýchlosť dekódovania - až 1,8x viac požiadaviek za sekundu ako vLLM na GPU A100. Je to vďaka trikom, ako je perzistentné dávkovanie, blokované ukladanie do vyrovnávacej pamäte KV a šikovné jadrá CUDA, ktoré GPU neustále zamestnávajú.

LMDeploy

Má dva motory: TurboMind pre maximálny výkon a PyTorch pre jednoduchšie majstrovanie. TurboMind je tu hviezdou - 4-bitové odvodzovanie je 2,4-násobne rýchlejšie ako FP16 a ľahko zvláda veľké modely, ako napríklad Llama-2 70B. Môžete tiež kvantizovať váhy a KV cache, aby ste ušetrili pamäť bez ujmy na presnosti. Nasadenie je tiež jednoduché - jedným príkazom nastavíte server na viacerých počítačoch, ak to potrebujete. Navyše si pamätá históriu rozhovorov vo viacerých kolách, takže nestráca čas opakovaním starej práce.

Nevýhoda? TurboMind je vyberavý - zatiaľ sa nehrá dobre s modelmi s posuvným oknom, ako je Mistral. A ak nepoužívate grafické procesory NVIDIA, ste odkázaní na pomalší engine PyTorch. Napriek tomu je pre rýchlosť a jednoduchosť na správnom hardvéri LMDeploy skvelou voľbou.

Porovnanie výkonu: Latencia, priepustnosť a škálovateľnosť

Rozoberme si, ako sú na tom tieto motory s latenciou (ako rýchlo sa dokončí jedna požiadavka), priepustnosťou (koľko požiadaviek dokážu prijať) a škálovateľnosťou (ako dobre zvládajú väčšie zaťaženie alebo viac hardvéru).

Ak máte grafické procesory NVIDIA, TensorRT-LLM vyniká latenciou. Je vysoko optimalizovaný pre hardvér NVIDIA, takže jednotlivé požiadavky končia rýchlo: pod 50 ms pre väčšinu modelov na A100. Vynikajúca je aj priepustnosť, najmä pri dynamickom dávkovaní. Benchmarky BentoML ukazujú, že tento engine dosahuje 700 tokenov za sekundu pri 100 súbežných používateľoch pre Llama 3 70B Q4 na 80GB GPU A100. TensorRT-LLM si vedie veľmi dobre v scenároch s dlhými vstupmi a vysokou rýchlosťou požiadaviek, pričom ponúka dobrú priepustnosť. Škálovateľnosť na viacerých GPU je podporovaná hneď po vybalení s vynikajúcim výkonom.

Systém vLLM má tiež dobrú priepustnosť, najmä pri zaťažení náročnom na dekódovanie, s vysokou priepustnosťou a nízkou latenciou po nedávnych aktualizáciách. Benchmarky BentoML ukazujú, že tento engine dosahuje 600 až 650 tokenov za sekundu pri 100 súbežných používateľoch pre Llama 3 70B Q4 na GPU A100 80 GB. Latencia je dobrá, ale nie taká dobrá ako v prípade TensorRT-LLM: približne 60-80 ms pri sólo behoch. Dobre sa škáluje naprieč GPU, dokonca aj miešaním značiek, ale je menej vyladený pre obrovské zostavy.

Objatie tváre TGI funguje podobne ako vLLM a poskytuje rovnováhu medzi výkonom a jednoduchosťou používania. Latencia je slušná: 50-70 ms na dobrom GPU. Benchmarky BentoML ukazujú, že tento engine dosahuje 600-650 tokenov za sekundu pri 100 súbežných používateľoch pre Llama 3 70B Q4 na GPU A100 80GB. Je vytvorený na škálovanie pre produkciu, takže hladko zvláda viac používateľov alebo strojov, najmä s Dockerom.

LMDeploy vyhráva v rýchlosti dekódovania. Vyniká rýchlosťou generovania tokenov, najmä pri menších modeloch, a má nízky čas do prvého tokenu (TTFT) pri kvantovaných veľkých modeloch. Latencia je nízka: 40 - 60 ms. A priepustnosť je vynikajúca. Benchmarky BentoML ukazujú, že tento engine dosahuje 700 tokenov za sekundu pri 100 súbežných používateľoch pre Llama 3 70B Q4 na GPU A100 80 GB. Škálovanie je vďaka jeho serverovému nastaveniu jednoduché, ale pri dosahovaní najlepších výsledkov sa výrazne opiera o grafické procesory NVIDIA; režim PyTorch zaostáva.

Záver: TensorRT-LLM a LMDeploy vedú v rýchlosti. Váš výber závisí od vášho hardvéru a od toho, koľko požiadaviek spracúvate.

Schopnosti kvantizácie

Kvantovanie znižuje presnosť modelu, aby sa znížila spotreba pamäte a urýchlilo odvodzovanie, čo je dôležité pre prostredia s obmedzenými zdrojmi. Tu sa dozviete, ako si jednotlivé motory počínajú:

TensorRT-LLM podporuje FP8, FP4, INT4 s kvantizáciou váh s podporou aktivácie (AWQ) a INT8 s funkciou SmoothQuant, čím ponúka robustné možnosti optimalizácie výkonu grafického procesora NVIDIA.

vLLM poskytuje flexibilitu s GPTQ, AWQ, INT4, INT8 a FP8, čím sa prispôsobuje rôznym hardvérovým a presným potrebám.

Objatie tváre TGI integruje bitsandbytes pre 8-bitovú a 4-bitovú kvantizáciu a GPT-Q pre kvantizáciu len s váhou, čo je vhodné pre produkčné nasadenie.

LMDeploy ponúka 4-bitové AWQ, 8-bitovú kvantizáciu a online kvantizáciu vyrovnávacej pamäte INT8/INT4 KV, čím zvyšuje efektivitu veľkých modelov na obmedzenom hardvéri.

Kompatibilita hardvéru

Hardvérová podpora určuje, kde môžete tieto motory nasadiť, čo má vplyv na škálovateľnosť a výkon:

TensorRT-LLM je exkluzívny pre NVIDIA CUDA a využíva akcelerátory GPU na dosiahnutie vysokého výkonu.

vLLM podporuje NVIDIA CUDA, AMD ROCm, AWS Neuron a CPU, čím ponúka širokú kompatibilitu pre rôzne nastavenia.

Hugging Face TGI spolupracuje s NVIDIA CUDA, AMD ROCm, Intel Gaudi a AWS Inferentia, čím poskytuje flexibilitu pre rôzne hardvérové prostredia.

LMDeploy je optimalizovaný pre NVIDIA CUDA, čo zaručuje špičkový výkon na grafických procesoroch NVIDIA, ale s obmedzenou podporou pre iné platformy.

Jednoduchosť používania

Proces nastavenia a integrácie môže ovplyvniť časový harmonogram vývoja. Tu sa dozviete, ako sú na tom jednotlivé motory:

TensorRT-LLM si vyžaduje konverziu kontrolných bodov, zostavenie motora TensorRT a konfiguráciu parametrov, čo je pre inžinierov náročné a zdĺhavé.

vLLM je užívateľsky prívetivý, má komplexnú dokumentáciu, jednoduchú inštaláciu a bezproblémovú integráciu knižnice Python.

Hugging Face TGI využíva výhody ekosystému Hugging Face, ktorý ponúka vopred pripravené obrazy Docker a dôkladnú dokumentáciu na rýchle nasadenie.

LMDeploy ponúka jednoduché nastavenie s jediným príkazom na spustenie servera a API Python na prispôsobenie, čím vyvažuje jednoduchosť a flexibilitu.

Záver

Výber správneho motora závisí od vášho prípadu použitia, hardvéru a zručností.

TensorRT-LLM je váš inferenčný engine, ak spúšťate veľké modely na grafických procesoroch NVIDIA a potrebujete každú uncu rýchlosti (myslite na aplikácie s nízkou latenciou, ako sú chatboty v reálnom čase alebo asistenti AI, kde sa odpovede musia generovať v milisekundách). Je ideálny pre spoločnosti, ktoré už hlboko prenikli do sveta NVIDIA, ale ak hľadáte jednoduchosť, môže to byť prehnané.

Systém vLLM je skvelým kompromisom medzi rýchlosťou a jednoduchosťou. Funguje naozaj dobre pre začínajúce firmy alebo výskumníkov, ktorí chcú niečo flexibilné a rýchlo nastaviteľné.

Objatie tváre TGI je z hľadiska rýchlosti a jednoduchosti rovnocenné s vLLM. Ľahko sa nasadzuje, plynule sa škáluje a je prepojený s modelovým hubom Hugging Face, takže je ideálny pre tímy, ktoré chcú riešenie bez zbytočných starostí.

LMDeploy žiari v oblasti výkonu, podobne ako TensorRT-LLM. Hodí sa používateľom s grafickými procesormi NVIDIA, ktorí chcú jednoduché nastavenie a špičkový výkon, ale je menej praktický, ak vaše modely nefungujú dobre s TurboMindom.

Ak nemôžete alebo nechcete sami nasadiť vlastný model GenAI, môžete použiť službu NLP Cloud a využívať rýchle generatívne modely AI vo veľkom meradle v produkcii. Vyskúšajte rýchle odvodzovanie v službe NLP Cloud teraz!

Ak máte otázky týkajúce sa inferenčných motorov vo všeobecnosti, neváhajte sa nás opýtať, vždy vám radi poradíme!

Julien
Technický riaditeľ spoločnosti NLP Cloud