Aveți probleme cu inteligența artificială sau cu dezvoltarea full-stack? Experții noștri sunt aici pentru a vă ghida: consiliere personalizată, integrare tehnică și multe altele. Contactați-ne la [email protected].

Motoare de inferență GenAI: TensorRT-LLM vs vLLM vs Hugging Face TGI vs LMDeploy

Apariția inteligenței artificiale generative (GenAI) a transformat industriile, de la procesarea limbajului natural la generarea de conținut creativ. Cu toate acestea, implementarea eficientă la scară largă a acestor modele puternice rămâne o provocare.

TensorRT-LLM, vLLM, Hugging Face TGI și LMDeploy

Motoarele de inferență joacă un rol esențial în optimizarea performanței, reducerea latenței și maximizarea utilizării resurselor. În acest articol, vom analiza patru soluții de vârf: TensorRT-LLM, vLLM, Hugging Face TGI și LMDeploy.

Fiecare aduce puncte forte unice, fie că este vorba de precizia accelerată de hardware de la NVIDIA, de gestionarea inovatoare a memoriei de la vLLM, de ecosistemul gata de producție de la TGI sau de accentul pus de LMDeploy pe viteză și simplitate. Fiți alături de noi în timp ce comparăm aceste motoare pentru a vă ajuta să găsiți soluția perfectă pentru sarcinile dvs. de lucru GenAI.

TensorRT-LLM: centrala NVIDIA pentru inferență optimizată

TensorRT-LLM este răspunsul NVIDIA pentru a face ca modelele mari de limbaj să ruleze rapid și fără probleme. Construit pe cadrul TensorRT, acesta este conceput pentru a stoarce fiecare picătură de performanță din GPU-urile NVIDIA. Face acest lucru cu trucuri precum fuziunea straturilor, ajustarea preciziei (FP16, INT8, FP8...) și optimizarea nucleului care reduce timpul de calcul fără a afecta precizia modelului.

TensorRT-LLM

Nu este vorba doar de viteză. TensorRT-LLM gestionează eficient modelele mari prin gestionarea inteligentă a memoriei, astfel încât să nu vă blocați în mijlocul execuției. De asemenea, suportă batching dinamic, permițându-vă să procesați mai multe cereri simultan fără a rămâne fără memorie. Dacă folosiți deja hardware NVIDIA, nu trebuie să vă grăbiți, deoarece este strâns lipit de ecosistemul lor, cum ar fi CUDA și cuDNN, și chiar se integrează cu Triton Inference Server și NVIDIA Dynamo de la NVIDIA.

Acestea fiind spuse, nu este perfect pentru toată lumea. Configurarea poate fi dificilă dacă nu vă simțiți confortabil cu instrumentele NVIDIA și este mai puțin flexibilă dacă vă aflați pe hardware non-NVIDIA. Totuși, pentru putere brută și optimizare pe GPU-urile NVIDIA, este greu de întrecut.

vLLM: Inferență de mare randament cu PagedAttention

vLLM este foarte bun la gestionarea rapidă a unor volume mari de lucrări de inferență. Este un proiect open-source care strălucește atunci când aveți nevoie de un randament ridicat fără a încetini. Sosul secret este PagedAttention, un truc care gestionează memoria mult mai bine decât majoritatea. În loc să încarce totul deodată și să consume RAM, acesta împarte memoria cache cu valori cheie în bucăți, preluând doar ceea ce este necesar. Mai puțină risipă, mai multă viteză.

vLLM

De asemenea, este foarte flexibil. Funcționează cu modele populare precum LLaMA sau Mistral imediat din cutie și suportă multe echipamente hardware, inclusiv GPU NVIDIA sau AMD. De asemenea, obțineți batching dinamic pentru a grupa eficient solicitările, menținând pipeline-ul să funcționeze fără probleme. Configurarea este destul de simplă dacă sunteți obișnuit cu Python și PyTorch.

Principala limitare a vLLM este relativa sa imaturitate pe piață, ceea ce înseamnă că este posibil să nu ofere încă setul cuprinzător de caracteristici disponibile în soluții mai bine stabilite. Cu toate acestea, vLLM reprezintă o alegere excelentă pentru organizațiile care caută o soluție eficientă care oferă o inferență de înaltă performanță.

Hugging Face TGI: O soluție gata de producție pentru generarea de text

Hugging Face TGI (Text Generation Inference) este creat pentru persoanele care doresc să pună în funcțiune modele fără bătăi de cap. Este un instrument creat de echipa Hugging Face, astfel încât se potrivește cu biblioteca lor masivă de modele pre-antrenate - BERT, GPT și altele. Este conceput pentru utilizarea în lumea reală, cum ar fi alimentarea chatbots sau a aplicațiilor în care generarea de text trebuie să funcționeze rapid și să nu se blocheze.

Îmbrățișare față TGI

TGI se ocupă de munca grea cu funcții precum batching-ul continuu, care menține sistemul ocupat prin înlocuirea cererilor noi pe măsură ce cele vechi se termină. Suportă accelerarea GPU și poate crește dacă dispuneți de hardware. În plus, are siguranță încorporată - cum ar fi filtrarea ieșirilor proaste - ceea ce este util pentru producție. Îl puteți implementa cu Docker în câțiva pași, deci este relativ ușor de configurat.

Șmecheria? Este legat de ecosistemul Hugging Face, deci dacă nu sunteți deja în acea lume, s-ar putea să vă simțiți restrictiv. Totuși, pentru o opțiune plug-and-play care este gata de utilizare, TGI este o alegere excelentă.

LMDeploy: Implementare eficientă cu viteză de decodare superioară

LMDeploy este un set de instrumente de la echipele MMRazor și MMDeploy, construit pentru a comprima, implementa și rula fără probleme modele lingvistice mari. Ce îl face să iasă în evidență? Are o viteză de decodare excelentă - până la 1,8 ori mai multe cereri pe secundă decât vLLM pe un GPU A100. Acest lucru se datorează unor trucuri precum batching persistent, caching KV blocat și kernel-uri CUDA inteligente care mențin GPU-ul ocupat.

LMDeploy

Acesta are două motoare: TurboMind pentru performanță maximă și unul PyTorch pentru o utilizare mai ușoară. TurboMind este vedeta de aici - împinge inferența pe 4 biți de 2,4 ori mai repede decât FP16 și gestionează cu ușurință modele mari precum Llama-2 70B. De asemenea, puteți cuantifica ponderile și cache-urile KV pentru a economisi memorie fără a afecta precizia. De asemenea, implementarea este floare la ureche - o singură comandă configurează un server pe mai multe mașini, dacă aveți nevoie de el. În plus, memorează istoricul chat-ului în discuțiile cu mai multe runde, astfel încât nu pierde timp refăcând munca veche.

Dezavantajul? TurboMind este pretențios - încă nu joacă bine cu modele de atenție cu ferestre glisante precum Mistral. Iar dacă nu utilizați GPU NVIDIA, sunteți blocat cu motorul mai lent PyTorch. Totuși, pentru viteză și simplitate pe hardware-ul potrivit, LMDeploy este o alegere excelentă.

Compararea performanțelor: Latență, debit și scalabilitate

Să analizăm modul în care aceste motoare se situează în ceea ce privește latența (cât de repede se termină o cerere), debitul (câte cereri pot primi) și scalabilitatea (cât de bine gestionează sarcini mai mari sau mai mult hardware).

TensorRT-LLM strălucește la latență dacă aveți GPU NVIDIA. Este foarte optimizat pentru hardware-ul NVIDIA, astfel încât cererile unice se finalizează rapid: sub 50 ms pentru majoritatea modelelor pe un A100. De asemenea, randamentul este excelent, în special cu batching-ul dinamic. Benchmark-urile realizate de BentoML arată că acest motor atinge 700 de jetoane pe secundă la 100 de utilizatori simultani pentru Llama 3 70B Q4 pe un GPU A100 de 80 GB. TensorRT-LLM se descurcă foarte bine în scenarii cu intrări lungi și rate mari de cereri, oferind un randament bun. Scalabilitatea pe mai multe GPU-uri este suportată din fabrică cu performanțe excelente.

vLLM are, de asemenea, un randament bun, în special în cazul volumelor de lucru mari de decodare, cu un randament ridicat și o latență scăzută după actualizările recente. Benchmark-urile efectuate de BentoML arată că acest motor atinge 600-650 de jetoane pe secundă la 100 de utilizatori simultani pentru Llama 3 70B Q4 pe un GPU A100 80GB. Latența este bună, dar nu la fel de bună ca TensorRT-LLM: în jur de 60-80ms pentru execuțiile solo. Se scalează bine între GPU-uri, chiar și amestecând mărcile, dar este mai puțin rafinat pentru configurații uriașe.

Hugging Face TGI funcționează similar cu vLLM, oferind un echilibru între performanță și ușurință în utilizare. Latența este decentă: 50-70ms pe un GPU bun. Benchmark-urile realizate de BentoML arată că acest motor atinge 600-650 de jetoane pe secundă la 100 de utilizatori simultani pentru Llama 3 70B Q4 pe un GPU A100 80GB. Este construit pentru a se adapta la producție, astfel încât se descurcă fără probleme cu mai mulți utilizatori sau mașini, în special cu Docker.

LMDeploy câștigă la viteza de decodare. Acesta excelează în ceea ce privește rata de generare a jetoanelor, în special pentru modelele mici, și are un timp scăzut până la primul jeton (TTFT) pentru modelele mari cuantificate. Latența este scăzută: 40-60ms. Iar randamentul este excelent. Benchmark-urile realizate de BentoML arată că acest motor atinge 700 de jetoane pe secundă la 100 de utilizatori simultani pentru Llama 3 70B Q4 pe un GPU A100 80GB. Scalarea este ușoară cu configurația sa de server, dar se bazează puternic pe GPU-urile NVIDIA pentru cele mai bune rezultate; modul PyTorch rămâne în urmă.

Concluzie: TensorRT-LLM și LMDeploy conduc în ceea ce privește viteza brută. Alegerea depinde de hardware-ul dvs. și de numărul de cereri pe care le gestionați.

Capabilități de cuantizare

Cuantizarea reduce precizia modelului pentru a reduce utilizarea memoriei și a accelera inferența, ceea ce este important pentru mediile cu resurse limitate. Iată cum funcționează fiecare motor:

TensorRT-LLM suportă FP8, FP4, INT4 cu Cuantizare ponderală conștientă de activare (AWQ) și INT8 cu SmoothQuant, oferind opțiuni robuste pentru optimizarea performanței GPU NVIDIA.

vLLM oferă flexibilitate cu GPTQ, AWQ, INT4, INT8 și FP8, adaptându-se la diferite necesități hardware și de precizie.

Hugging Face TGI integrează bitsandbytes pentru cuantificarea pe 8 și 4 biți și GPT-Q pentru cuantificarea doar a greutății, potrivită pentru implementările de producție.

LMDeploy oferă AWQ pe 4 biți, cuantificare pe 8 biți și cuantificare cache online INT8/INT4 KV, sporind eficiența pentru modele mari pe hardware limitat.

Compatibilitate hardware

Suportul hardware determină unde puteți implementa aceste motoare, afectând scalabilitatea și performanța:

TensorRT-LLM este exclusiv pentru NVIDIA CUDA, valorificând acceleratoarele GPU pentru performanțe ridicate.

vLLM acceptă NVIDIA CUDA, AMD ROCm, AWS Neuron și CPU, oferind o compatibilitate largă pentru diverse configurații.

Hugging Face TGI funcționează cu NVIDIA CUDA, AMD ROCm, Intel Gaudi și AWS Inferentia, oferind flexibilitate pentru diverse medii hardware.

LMDeploy este optimizat pentru NVIDIA CUDA, asigurând performanțe de top pe GPU-urile NVIDIA, dar cu suport limitat pentru alte platforme.

Ușurința de utilizare

Procesul de configurare și integrare poate afecta termenele de dezvoltare. Iată cum se descurcă fiecare motor:

TensorRT-LLM necesită conversia punctelor de control, construirea motorului TensorRT și configurarea parametrilor, ceea ce îl face dificil și consumator de timp pentru ingineri.

vLLM este ușor de utilizat, cu documentație cuprinzătoare, instalare ușoară și integrare perfectă a bibliotecii Python.

Hugging Face TGI beneficiază de ecosistemul Hugging Face, oferind imagini Docker pre-construite și documentație completă pentru o implementare rapidă.

LMDeploy oferă o configurare simplă cu o singură comandă pentru lansarea serverului și API-uri Python pentru personalizare, echilibrând ușurința cu flexibilitatea.

Concluzie

Alegerea motorului potrivit depinde de cazul dvs. de utilizare, hardware și competențe.

TensorRT-LLM este motorul dvs. de inferență preferat dacă rulați modele mari pe GPU NVIDIA și aveți nevoie de fiecare gram de viteză (gândiți-vă la aplicații cu latență redusă, precum chatbots în timp real sau asistenți AI, unde răspunsurile trebuie generate în milisecunde). Este perfect pentru companiile care se află deja adânc în lumea NVIDIA, dar ar putea fi exagerat dacă sunteți în căutarea simplității.

vLLM este un compromis excelent între viteză și simplitate. Funcționează foarte bine pentru startup-uri sau cercetători care doresc ceva flexibil și rapid de configurat.

Hugging Face TGI este echivalent cu vLLM în termeni de viteză și simplitate. Este ușor de implementat, se scalează fără probleme și se conectează la hub-ul modelului Hugging Face, astfel încât este ideal pentru echipele care doresc o soluție simplă.

LMDeploy strălucește în ceea ce privește performanța, la fel ca TensorRT-LLM. Se potrivește utilizatorilor cu GPU NVIDIA care doresc o configurare simplă și performanțe de top, dar este mai puțin util dacă modelele dvs. nu funcționează bine cu TurboMind.

Dacă nu puteți sau nu doriți să implementați propriul dvs. model GenAI, puteți utiliza NLP Cloud și să valorificați modele AI generative rapide la scară largă în producție. Încercați acum inferența rapidă pe NLP Cloud!

Dacă aveți întrebări despre motoarele de inferență în general, vă rugăm să nu ezitați să ne întrebați, este întotdeauna o plăcere să vă sfătuim!

Julien
CTO la NLP Cloud