Geneeriva tehisintellekti (GenAI) tõus on muutnud tööstusharusid, alates loomuliku keele töötlemisest kuni loomingulise sisu genereerimiseni. Siiski on nende võimsate mudelite tõhus ja mastaapne rakendamine endiselt keeruline.
Järeldusmootorid mängivad kriitilist rolli jõudluse optimeerimisel, latentsuse vähendamisel ja ressursside maksimaalsel kasutamisel. Selles artiklis tutvustame nelja juhtivat lahendust: TensorRT-LLM, vLLM, Hugging Face TGI ja LMDeploy.
Igaühel neist on unikaalsed tugevused, olgu selleks siis NVIDIA riistvara kiirendatud täpsus, vLLM-i uuenduslik mäluhaldus, TGI tootmisvalmis ökosüsteem või LMDeploy keskendumine kiirusele ja lihtsusele. Võrdleme koos meiega neid mootoreid, et aidata teil leida teie GenAI töökoormuste jaoks ideaalne lahendus.
TensorRT-LLM on NVIDIA vastus suurte keelemudelite kiireks ja sujuvaks käivitamiseks. TensorRT-raamistikul põhinev lahendus on loodud selleks, et võtta NVIDIA graafikaprotsessoritest välja iga tilk jõudlust. See teeb seda selliste trikkide abil nagu kihtide fusion, täpsuse kohandamine (FP16, INT8, FP8...) ja kerneli optimeerimine, mis vähendab arvutusaega ilma mudeli täpsust rikkumata.
Küsimus ei ole ainult kiiruses. TensorRT-LLM käitleb suuri mudeleid tõhusalt, hallates mälu arukalt, nii et te ei jookse jooksu keskel kokku. See toetab ka dünaamilist pakkimist, mis võimaldab teil töödelda korraga mitut päringut, ilma et mälu otsa saaks. Kui te juba kasutate NVIDIA riistvara, on see lihtne, sest see on tihedalt seotud nende ökosüsteemiga, nagu CUDA ja cuDNN, ning see on isegi integreeritud NVIDIA Triton Inference Server'i ja NVIDIA Dynamoga.
See tähendab, et see ei ole kõigi jaoks ideaalne. Kui te ei tunne NVIDIA tööriistu, võib seadistamine olla keeruline ja kui te kasutate mitte-NVIDIA riistvara, on see vähem paindlik. Siiski on see NVIDIA graafikaprotsessorite toorest võimsust ja optimeerimist silmas pidades raskesti ületatav.
vLLM on väga hea suure hulga järeldusülesannete kiire käsitlemisel. See on avatud lähtekoodiga projekt, mis paistab silma, kui vajate suurt läbilaskevõimet ilma aeglustumata. Salajane kaste on PagedAttention, trikk, mis haldab mälu palju paremini kui enamik. Selle asemel, et laadida kõik korraga ja süüa RAM-i, jagab see võtme- ja väärtuste vahemälu tükkideks, haarates ainult seda, mida on vaja. Vähem raiskamist, rohkem kiirust.
See on ka väga paindlik. Töötab populaarsete mudelitega nagu LLaMA või Mistral kohe karbist välja ja toetab paljusid riistvara, sealhulgas NVIDIA või AMD GPUsid. Saate ka dünaamilise pakkimise, et taotlusi tõhusalt rühmitada, hoides torujuhtme sujuvalt töös. Seadistamine on üsna lihtne, kui olete Pythoni ja PyTorchiga harjunud.
VLLMi peamine piirang on selle suhteline ebaküpsus turul, mis tähendab, et see ei pruugi veel pakkuda nii laiaulatuslikku funktsioonikomplekti, kui seda pakuvad väljakujunenud lahendused. Siiski on vLLM suurepärane valik organisatsioonidele, kes otsivad tõhusat lahendust, mis pakub suure jõudlusega järeldusi.
Hugging Face TGI (Text Generation Inference) on mõeldud inimestele, kes tahavad mudelid ilma peavaluta käima saada. See on Hugging Face'i meeskonna poolt loodud tööriist, nii et see mängib kenasti koos nende tohutu hulga eeltreenitud mudelite raamatukoguga - mõtle BERT, GPT ja muud. See on mõeldud reaalseks kasutamiseks, näiteks vestlusrobotite või rakenduste käivitamiseks, kus teksti genereerimine peab toimima kiiresti ja mitte kokku kukkuma.
TGI tegeleb raske tööga selliste funktsioonide abil nagu pidev pakkimine, mis hoiab süsteemi hõivatud, vahetades uusi taotlusi, kui vanad lõppevad. See toetab GPU-kiirendust ja võib laieneda, kui teil on selleks vajalik riistvara. Lisaks on tal sisseehitatud ohutus - näiteks halbade väljundite filtreerimine -, mis on tootmise jaoks väga mugav. Seda saab Dockeriga paari sammuga kasutusele võtta, seega on seda suhteliselt lihtne häälestada.
Saak? See on seotud Hugging Face'i ökosüsteemiga, nii et kui sa ei ole juba selles maailmas, võib see tunduda piiravana. Siiski on TGI suurepärane valik, kui tegemist on kasutamisvalmis plug-and-play-variandiga.
LMDeploy on MMRazori ja MMDeploy meeskondade tööriistakomplekt, mis on loodud suurte keelemudelite pakkimiseks, kasutuselevõtuks ja käivitamiseks ilma probleemideta. Mis teeb selle eriliseks? Sellel on suurepärane dekodeerimiskiirus - kuni 1,8 korda rohkem päringuid sekundis kui vLLM A100 GPU-l. Seda tänu sellistele trikkidele nagu püsiv batching, blokeeritud KV vahemälu ja nutikad CUDA kernelid, mis hoiavad GPU-d hõivatud.
Sellel on kaks mootorit: TurboMind maksimaalse jõudluse saavutamiseks ja PyTorch, mis lihtsustab pingutamist. TurboMind on siin staar - see teeb 4-bitise järelduse 2,4 korda kiiremini kui FP16 ja saab hõlpsasti hakkama suurte mudelitega nagu Llama-2 70B. Samuti saab kvanteerida kaalud ja KV vahemälu, et säästa mälu, ilma et see kahjustaks täpsust. Kasutuselevõtmine on samuti lihtne - üks käsk seab serveri mitmesse masinasse, kui seda vajate. Lisaks mäletab see mitme vooru vestluste ajaloost, nii et ei raiska aega vana töö uuesti tegemisele.
Miinus? TurboMind on valiv - see ei mängi veel kenasti libiseva akna tähelepanu mudelitega nagu Mistral. Ja kui te ei kasuta NVIDIA graafikaprotsessorit, siis olete kinni aeglasema PyTorchi mootoriga. Siiski on LMDeploy kiiruse ja lihtsuse tagamiseks õigel riistvaral suurepärane valik.
Jagame lahti, kuidas need mootorid saavutavad latensi (kui kiiresti üks taotlus lõpetab), läbilaskevõime (kui palju taotlusi nad suudavad sisestada) ja skaleeritavuse (kui hästi nad saavad hakkama suuremate koormuste või suurema riistvaraga).
TensorRT-LLM paistab silma latentsuse poolest, kui teil on NVIDIA GPU. See on väga hästi optimeeritud NVIDIA riistvara jaoks, nii et üksikud päringud lõpevad kiiresti: enamiku mudelite puhul A100-l alla 50 ms. Läbilaskevõime on samuti suurepärane, eriti dünaamilise pakkimise korral. BentoMLi võrdlusuuringud näitavad, et see mootor saavutab Llama 3 70B Q4 puhul A100 80 GB GPU-l 700 tokenit sekundis 100 samaaegse kasutaja puhul. TensorRT-LLM toimib tugevalt stsenaariumides, kus on pikad sisendid ja suured päringumahud, pakkudes head läbilaskevõimet. Skaleeritavus mitmel GPU-l on toetatud suurepärase jõudlusega.
Ka vLLM on hea läbilaskevõimega, eriti dekodeerimisega seotud töökoormuste puhul, ning pärast hiljutisi uuendusi on läbilaskevõime kõrge ja latentsus madal. BentoMLi võrdlusuuringud näitavad, et see mootor saavutab Llama 3 70B Q4 puhul 100 samaaegse kasutaja puhul A100 80 GB GPU-l 600-650 tokenit sekundis. Viivitus on hea, kuid mitte nii hea kui TensorRT-LLM: umbes 60-80 ms soololülidel. See skaleerub hästi erinevate GPU-de vahel, isegi segades kaubamärke, kuid see on vähem lihvitud suurte seadistuste jaoks.
Hugging Face TGI toimib sarnaselt vLLM-iga, pakkudes tasakaalustatud jõudlust ja kasutusmugavust. Viivitus on korralik: 50-70 ms heal GPU-l. BentoMLi võrdlusuuringud näitavad, et see mootor saavutab Llama 3 70B Q4 puhul 100 samaaegse kasutaja puhul A100 80 GB GPU-l 600-650 tokenit sekundis. See on loodud tootmise jaoks, nii et see saab sujuvalt hakkama rohkemate kasutajate või masinatega, eriti koos Dockeriga.
LMDeploy võidab dekodeerimise kiiruse poolest. See on parim sümbolite genereerimise kiiruse poolest, eriti väiksemate mudelite puhul, ja selle aeg esimese sümboliks (Time to First Token, TTFT) on väike kvantitud suurte mudelite puhul. Viivitus on madal: 40-60 ms. Ja läbilaskevõime on suurepärane. BentoMLi võrdlusuuringud näitavad, et see mootor saavutab Llama 3 70B Q4 puhul 700 tokenit sekundis 100 samaaegse kasutaja puhul A100 80 GB GPU-l. Skaleerimine on lihtne selle serveri seadistusega, kuid parimate tulemuste saavutamiseks toetub see kõvasti NVIDIA GPUdele; PyTorch-režiim jääb maha.
Lõpptulemus: TensorRT-LLM ja LMDeploy on esikohal kiiruse poolest. Teie valik sõltub teie riistvarast ja sellest, kui palju päringuid te töötate.
Kvantimine vähendab mudeli täpsust, et vähendada mälukasutust ja kiirendada järelduste tegemist, mis on oluline piiratud ressurssidega keskkondades. Siin on näha, kuidas iga mootor toimib:
TensorRT-LLM toetab FP8, FP4, INT4 koos Activation-aware Weight Quantization (AWQ) ja INT8 koos SmoothQuantiga, pakkudes tugevaid võimalusi NVIDIA GPU jõudluse optimeerimiseks.
vLLM pakub paindlikkust GPTQ, AWQ, INT4, INT8 ja FP8 abil, kohandudes erinevate riistvara- ja täpsusvajadustega.
Hugging Face TGI integreerib bitsandbytes 8-bitise ja 4-bitise kvantsioneerimise ja GPT-Q ainult kaaluga kvantsioneerimise jaoks, mis sobib tootmises kasutamiseks.
LMDeploy pakub 4-bitist AWQ, 8-bitist kvantimist ja online INT8/INT4 KV vahemälu kvantimist, mis suurendab tõhusust suurte mudelite puhul piiratud riistvaral.
Riistvara tugi määrab, kus neid mootoreid saab kasutada, mis mõjutab skaleeritavust ja jõudlust:
TensorRT-LLM on eksklusiivne NVIDIA CUDA, kasutades suure jõudluse saavutamiseks GPU kiirendeid.
vLLM toetab NVIDIA CUDA, AMD ROCm, AWS Neuron ja CPU, pakkudes laialdast ühilduvust erinevate seadistuste jaoks.
Hugging Face TGI töötab koos NVIDIA CUDA, AMD ROCm, Intel Gaudi ja AWS Inferentia, pakkudes paindlikkust erinevate riistvaraliste keskkondade jaoks.
LMDeploy on optimeeritud NVIDIA CUDA jaoks, tagades parima jõudluse NVIDIA GPUdel, kuid piiratud toetusega teistele platvormidele.
Seadistamise ja integreerimise protsess võib mõjutada arenduse ajakava. Siin on näha, kuidas iga mootoriga on lood:
TensorRT-LLM nõuab kontrollpunktide teisendamist, TensorRT-mootori ehitamist ja parameetrite konfigureerimist, mis muudab selle inseneridele keeruliseks ja aeganõudvaks.
vLLM on kasutajasõbralik, sisaldab põhjalikku dokumentatsiooni, lihtsat paigaldust ja sujuvat Pythoni raamatukogu integreerimist.
Hugging Face TGI saab kasu Hugging Face'i ökosüsteemist, mis pakub kiireks kasutuselevõtuks eelnevalt koostatud Dockeri kujutisi ja põhjalikku dokumentatsiooni.
LMDeploy pakub lihtsat seadistamist ühe käsuga serveri käivitamiseks ja Pythoni API-d kohandamiseks, mis tasakaalustab lihtsust ja paindlikkust.
Õige mootori valimine sõltub teie kasutusotstarbest, riistvarast ja oskustest.
TensorRT-LLM on teie järeldusmootor, kui te käivitate suuri mudeleid NVIDIA GPUdel ja vajate iga grammi kiirust (mõelge näiteks madala latentsusega rakendustele, nagu reaalajas töötavad vestlusrobotid või AI-assistendid, kus vastused tuleb genereerida millisekundite jooksul). See sobib ideaalselt ettevõtetele, kes on juba sügavalt NVIDIA maailmas, kuid see võib olla üle jõu käiv, kui otsite lihtsust.
vLLM on suurepärane kompromiss kiiruse ja lihtsuse vahel. See sobib väga hästi alustavatele ettevõtetele või teadlastele, kes soovivad midagi paindlikku ja kiiret seadistamist.
Hugging Face TGI on kiiruse ja lihtsuse poolest võrdväärne vLLMiga. Seda on lihtne kasutusele võtta, see skaleerub sujuvalt ja on seotud Hugging Face'i mudelihubiga, nii et see on ideaalne meeskondadele, kes soovivad lihtsat lahendust.
LMDeploy paistab silma jõudluse poolest, nagu TensorRT-LLM. See sobib NVIDIA GPUdega kasutajatele, kes soovivad lihtsat seadistamist ja tipptasemel jõudlust, kuid see on vähem mugav, kui teie mudelid ei mängi hästi TurboMindiga.
Kui te ei saa või ei taha oma GenAI-mudelit ise kasutusele võtta, saate kasutada NLP Cloudi ja kasutada kiireid genereerivaid tehisintellekti mudeleid tootmises. Proovi kiireid järeldusi NLP Cloudis nüüd!
Kui teil on küsimusi järeldusmootorite kohta üldiselt, küsige julgelt, meil on alati hea meel teid nõustada!
Julien
NLP Cloudi tehnoloogiajuht