Susiduriate su sunkumais dirbtinio intelekto arba viso paketo kūrimo srityje? Mūsų ekspertai padės jums: teiksime pritaikytus patarimus, techninę integraciją ir dar daugiau. Kreipkitės į [email protected].

GenAI išvedimo varikliai: TensorRT-LLM vs vLLM vs Hugging Face TGI vs LMDeploy

Generatyvinis dirbtinis intelektas (GenAI) pakeitė įvairias pramonės šakas - nuo natūralios kalbos apdorojimo iki kūrybinio turinio kūrimo. Tačiau efektyvus šių galingų modelių diegimas dideliu mastu tebėra iššūkis.

TensorRT-LLM, vLLM, Hugging Face TGI ir LMDeploy

Išvadų varikliai atlieka svarbų vaidmenį optimizuojant našumą, mažinant vėlavimą ir maksimaliai išnaudojant išteklius. Šiame straipsnyje apžvelgsime keturis pirmaujančius sprendimus: TensorRT-LLM, vLLM, Hugging Face TGI ir LMDeploy.

Kiekviena iš jų turi unikalių privalumų, nesvarbu, ar tai būtų NVIDIA aparatinės įrangos pagreitintas tikslumas, vLLM naujoviškas atminties valdymas, TGI gamybai paruošta ekosistema, ar LMDeploy dėmesys greičiui ir paprastumui. Prisijunkite prie mūsų ir palyginkite šiuos variklius, kad galėtumėte rasti tinkamiausią savo GenAI darbo krūviams.

"TensorRT-LLM": "NVIDIA" optimizuotos išvados jėgainė

"TensorRT-LLM" - tai NVIDIA atsakymas, kaip užtikrinti, kad dideli kalbų modeliai veiktų greitai ir sklandžiai. Sukurta pagal "TensorRT" struktūrą, ji sukurta taip, kad iš NVIDIA GPU būtų išspaustas kiekvienas našumo lašas. Tai daroma naudojant tokias gudrybes kaip sluoksnių suliejimas, tikslumo keitimas (FP16, INT8, FP8...) ir branduolio optimizavimas, kuris sutrumpina skaičiavimo laiką nesumažindamas modelio tikslumo.

TensorRT-LLM

Tai susiję ne tik su greičiu. "TensorRT-LLM" efektyviai tvarko didelius modelius, išmaniai valdydama atmintį, kad nesugestų darbo viduryje. Ji taip pat palaiko dinaminį paketavimą, todėl galite apdoroti kelias užklausas vienu metu ir nepritrūkti atminties. Jei jau naudojate "NVIDIA" aparatinę įrangą, ši programa yra neabejotina, nes ji glaudžiai susijusi su jų ekosistema, pavyzdžiui, CUDA ir cuDNN, ir netgi integruota su "NVIDIA" "Triton Inference Server" ir "NVIDIA Dynamo".

Vis dėlto jis tinka ne visiems. Nustatymas gali būti varginantis, jei nemokate naudotis NVIDIA įrankiais, ir mažiau lankstus, jei naudojate ne NVIDIA aparatinę įrangą. Vis dėlto, kalbant apie "NVIDIA" grafikos procesorių galią ir optimizavimą, ją sunku pranokti.

vLLM: didelio pralaidumo išvados su "PagedAttention

vLLM labai gerai ir greitai apdoroja didelius išvadų užduočių kiekius. Tai atvirojo kodo projektas, kuris puikiai tinka tada, kai reikia didelio našumo, bet nesulėtėja. Slaptasis padažas yra "PagedAttention" - triukas, kuriuo atmintis valdoma daug geriau nei daugeliu kitų. Užuot įkėlus viską iš karto ir sunaudojus visą operatyviąją atmintį, ji suskirsto raktų ir verčių talpyklas į dalis, paimdama tik tai, ko reikia. Mažiau švaistymo, daugiau spartos.

vLLM

Jis taip pat labai lankstus. Jis veikia su populiariais modeliais, tokiais kaip LLaMA ar Mistral, ir palaiko daugybę techninės įrangos, įskaitant NVIDIA ar AMD GPU. Be to, galite naudoti dinaminį paketavimą, kad efektyviai sugrupuotumėte užklausas ir užtikrintumėte sklandų konvejerio veikimą. Jei esate įpratę prie "Python" ir "PyTorch", sąranka gana paprasta.

Pagrindinis "vLLM" apribojimas - tai santykinis jos nebrandumas rinkoje, o tai reiškia, kad ji dar negali pasiūlyti tokio išsamaus funkcijų rinkinio, kokį turi labiau žinomi sprendimai. Tačiau organizacijoms, ieškančioms efektyvaus sprendimo, užtikrinančio didelio našumo išvadas, vLLM yra puikus pasirinkimas.

Apkabinti veidą TGI: Teksto generavimo sprendimas, paruoštas gamybai

"Hugging Face" TGI (Text Generation Inference) skirtas žmonėms, kurie nori įdiegti ir paleisti modelius be galvos skausmo. Šį įrankį sukūrė "Hugging Face" komanda, todėl jis puikiai dera su didžiule jų iš anksto parengtų modelių biblioteka, pvz., BERT, GPT ir kt. Jis skirtas naudoti realiame pasaulyje, pavyzdžiui, pokalbių robotams ar programoms, kuriose teksto generavimas turi vykti greitai ir nesutrikti.

Apkabinti veidą TGI

TGI atlieka sunkų darbą naudodama tokias funkcijas kaip nuolatinis parinkimas, dėl kurio sistema yra užimta, nes senosioms užklausoms pasibaigus, keičiamos naujos užklausos. Ji palaiko GPU spartinimą ir gali būti plečiama, jei turite reikiamos aparatinės įrangos. Be to, ji turi integruotą apsaugą, pavyzdžiui, blogų rezultatų filtravimą, o tai patogu gamybai. Ją galite įdiegti naudodami "Docker", todėl ją palyginti lengva įdiegti.

Sklandumas? Jis susietas su "Hugging Face" ekosistema, todėl jei dar nesate tame pasaulyje, gali būti, kad jis jus varžys. Vis dėlto, jei norite naudoti paruoštą "plug-and-play" parinktį, TGI yra puikus pasirinkimas.

LMDeploy: Efektyvus diegimas ir puiki dekodavimo sparta

"LMDeploy" yra "MMRazor" ir "MMDeploy" komandų įrankių rinkinys, sukurtas dideliems kalbos modeliams suspausti, diegti ir paleisti be rūpesčių. Kuo jis išsiskiria? Jis pasižymi puikia dekodavimo sparta - iki 1,8 karto daugiau užklausų per sekundę nei vLLM, naudojant A100 GPU. Taip yra dėl tokių gudrybių, kaip nuolatinis paketavimas, užblokuotas KV spartinimas ir sklandūs CUDA branduoliai, dėl kurių GPU yra užimtas.

LMDeploy

Jame yra du varikliai: "TurboMind", kad būtų pasiektas maksimalus našumas, ir "PyTorch", kad būtų paprasčiau meistrauti. "TurboMind" čia yra žvaigždė - jis 4 bitų išvadas daro 2,4 karto greičiau nei FP16 ir lengvai tvarko tokius didelius modelius kaip "Llama-2 70B". Taip pat galite kvantuoti svorius ir KV talpyklas, kad sutaupytumėte atminties nepakenkdami tikslumui. Diegimas taip pat nesudėtingas - viena komanda sukuria serverį keliuose kompiuteriuose, jei reikia. Be to, jis įsimena pokalbių istoriją kelių raundų pokalbiuose, todėl nereikia gaišti laiko iš naujo atliekant seną darbą.

Trūkumas? "TurboMind" yra išrankus - jis dar nesusiduria su slankiojo lango dėmesio modeliais, tokiais kaip "Mistral". O jei neturite NVIDIA GPU, teks naudoti lėtesnį "PyTorch" variklį. Vis dėlto LMDeploy yra puikus pasirinkimas, jei norite užtikrinti greitį ir paprastumą, naudodami tinkamą aparatinę įrangą.

Našumo palyginimas: Uždelsimas, pralaidumas ir mastelio keitimas

Panagrinėkime, kaip šie varikliai veikia vėlavimo (kaip greitai baigiama viena užklausa), pralaidumo (kiek užklausų jie gali priimti) ir mastelio keitimo (kaip gerai jie susidoroja su didesnėmis apkrovomis arba didesne aparatine įranga) atžvilgiu.

Jei turite NVIDIA GPU, "TensorRT-LLM" pasižymi geriausiu vėlavimu. Jis labai optimizuotas NVIDIA įrangai, todėl pavienės užklausos baigiamos greitai: daugumoje A100 modelių - greičiau nei per 50 ms. Našumas taip pat puikus, ypač naudojant dinaminį paketavimą. BentoML atliktos lyginamosios analizės rodo, kad šis variklis pasiekia 700 žetonų per sekundę, esant 100 vienu metu veikiančių naudotojų, Llama 3 70B Q4 su A100 80 GB GPU. TensorRT-LLM puikiai veikia scenarijuose su ilgais įvesties duomenimis ir dideliu užklausų dažniu, užtikrindamas gerą pralaidumą. Kelių GPU masteliavimas palaikomas iškart ir pasižymi puikiu našumu.

"vLLM" taip pat pasižymi geru pralaidumu, ypač dekodavimo apkrovoms, o po naujausių atnaujinimų - dideliu pralaidumu ir mažu vėlavimu. BentoML atliktos lyginamosios analizės rodo, kad šis variklis pasiekia 600-650 žetonų per sekundę, esant 100 vienu metu veikiančių naudotojų, kai naudojamas "Llama 3 70B Q4", naudojant A100 80 GB GPU. Uždelsimas yra geras, bet ne toks geras kaip TensorRT-LLM: apie 60-80 ms, kai vykdomos pavienės užduotys. Ji gerai keičia mastelius tarp GPU, net maišant prekės ženklus, tačiau ji mažiau nušlifuota didžiulėms konfigūracijoms.

"Hugging Face TGI" veikia panašiai kaip ir vLLM, užtikrinant našumo ir patogumo naudoti pusiausvyrą. Vėlavimas yra padorus: 50-70 ms naudojant gerą GPU. BentoML atliktos lyginamosios analizės rodo, kad šis variklis pasiekia 600-650 žetonų per sekundę, kai vienu metu naudojasi 100 naudotojų, Llama 3 70B Q4 su A100 80GB GPU. Jis sukurtas taip, kad būtų pritaikytas gamybai, todėl sklandžiai susitvarko su didesniu naudotojų ar mašinų skaičiumi, ypač naudojant "Docker".

LMDeploy laimi dėl dekodavimo greičio. Ji pasižymi geresniu žetonų generavimo greičiu, ypač mažesniems modeliams, ir mažesniu laiku iki pirmojo žetono (TTFT) kvantuotiems dideliems modeliams. Vėlavimas yra nedidelis: 40-60 ms. O pralaidumas yra puikus. BentoML atliktos lyginamosios analizės rodo, kad šis variklis pasiekia 700 žetonų per sekundę, kai vienu metu veikia 100 naudotojų, naudojant Llama 3 70B Q4 su A100 80 GB GPU. Naudojant serverio sąranką, mastelio keitimas yra paprastas, tačiau norint pasiekti geriausių rezultatų, reikia naudoti NVIDIA GPU; "PyTorch" režimas atsilieka.

Svarbiausia: TensorRT-LLM ir LMDeploy pirmauja pagal greitį. Jūsų pasirinkimas priklauso nuo jūsų aparatinės įrangos ir nuo to, kiek užklausų apdorojate.

Kvantavimo galimybės

Kvantavimas sumažina modelio tikslumą, kad sumažėtų atminties naudojimas ir pagreitėtų išvadų darymas, o tai svarbu ribotų išteklių aplinkoje. Štai kaip veikia kiekvienas variklis:

"TensorRT-LLM" palaiko FP8, FP4, INT4 su aktyvinimu pagrįstu svorio kvantavimu (AWQ) ir INT8 su "SmoothQuant", todėl yra patikimų galimybių optimizuoti NVIDIA GPU našumą.

"vLLM" suteikia lankstumo naudojant GPTQ, AWQ, INT4, INT8 ir FP8, todėl galima prisitaikyti prie įvairių aparatinės įrangos ir tikslumo poreikių.

"Hugging Face TGI" integruoja "bitsandbytes" 8 bitų ir 4 bitų kvantavimui ir "GPT-Q" tik svorio kvantavimui, kuris tinka gamybiniam diegimui.

"LMDeploy" siūlo 4 bitų AWQ, 8 bitų kvantavimą ir internetinį INT8/INT4 KV talpyklos kvantavimą, todėl padidėja didelių modelių efektyvumas naudojant ribotą aparatinę įrangą.

Techninės įrangos suderinamumas

Nuo aparatinės įrangos palaikymo priklauso, kur galima diegti šiuos variklius, ir tai turi įtakos mastelio keitimui ir našumui:

"TensorRT-LLM" yra išskirtinė "NVIDIA CUDA" programa, kuri naudoja GPU greitintuvus ir užtikrina didelį našumą.

"vLLM" palaiko NVIDIA CUDA, AMD ROCm, "AWS Neuron" ir CPU, todėl užtikrina platų suderinamumą su įvairiomis konfigūracijomis.

"Hugging Face TGI" veikia su NVIDIA CUDA, AMD ROCm, "Intel Gaudi" ir "AWS Inferentia", todėl galima lanksčiai pritaikyti įvairioms aparatinės įrangos aplinkoms.

"LMDeploy" optimizuotas NVIDIA CUDA, todėl užtikrinamas aukščiausias našumas NVIDIA GPU, tačiau kitų platformų palaikymas yra ribotas.

Naudojimo paprastumas

Sąrankos ir integracijos procesas gali turėti įtakos kūrimo terminams. Štai kaip sekasi kiekvienam varikliui:

"TensorRT-LLM" reikia konvertuoti kontrolines taškus, kurti "TensorRT" variklį ir konfigūruoti parametrus, todėl inžinieriams tai yra sudėtinga ir užima daug laiko.

"vLLM" yra patogus naudoti, turi išsamią dokumentaciją, jį lengva įdiegti ir sklandžiai integruota "Python" biblioteka.

"Hugging Face TGI" naudojasi "Hugging Face" ekosistemos privalumais - iš anksto paruoštais "Docker" atvaizdais ir išsamia dokumentacija, kad būtų galima greitai įdiegti.

"LMDeploy" turi paprastą sąranką su viena komanda serveriui paleisti ir "Python" API pritaikymo funkciją, kuri suderina paprastumą ir lankstumą.

Išvada

Tinkamo variklio pasirinkimas priklauso nuo jūsų naudojimo būdo, aparatinės įrangos ir įgūdžių.

"TensorRT-LLM" - tai jūsų išvadų variklis, jei NVIDIA GPU sistemoje paleidžiate didelius modelius ir jums reikia kiekvieno greičio (galvokite apie mažo vėlavimo programas, pvz., realaus laiko pokalbių robotus ar dirbtinio intelekto asistentus, kai atsakymus reikia generuoti per milisekundes). Tai puikiai tinka įmonėms, kurios jau giliai įnikusios į NVIDIA pasaulį, bet gali būti perteklinis sprendimas, jei ieškote paprastumo.

vLLM yra puikus kompromisas tarp greičio ir paprastumo. Ji puikiai tinka pradedančiosioms įmonėms arba tyrėjams, kurie nori lanksčiai ir greitai įdiegti.

Greičio ir paprastumo požiūriu "Hugging Face TGI" prilygsta vLLM. Jį lengva įdiegti, jis sklandžiai keičiamas ir susiejamas su "Hugging Face" modelių centru, todėl idealiai tinka komandoms, norinčioms nesudėtingo sprendimo.

"LMDeploy", kaip ir "TensorRT-LLM", išsiskiria našumu. Ji tinka NVIDIA GPU turintiems naudotojams, norintiems paprastos sąrankos ir aukščiausio našumo, tačiau ji ne tokia patogi, jei jūsų modeliai nesiderina su "TurboMind".

Jei negalite arba nenorite patys diegti savo GenAI modelio, galite naudotis NLP Cloud ir naudoti greitus generatyvinius AI modelius gamyboje. Išbandykite greitą išvadų darymą NLP debesyje dabar!

Jei turite klausimų apie išvedimo variklius apskritai, nedvejodami kreipkitės į mus, visada malonu patarti!

Julien
"NLP Cloud" techninis direktorius