Grūtības ar mākslīgā intelekta vai pilnas paketes izstrādi? Mūsu eksperti ir gatavi jums palīdzēt: individuāli pielāgoti padomi, tehniskā integrācija un daudz kas cits. Sazinieties ar [email protected].

GenAI secinājumu dzinēji: TensorRT-LLM vs vLLM vs Hugging Face TGI vs LMDeploy

Ģeneratīvā mākslīgā intelekta (GenAI) uzplaukums ir pārveidojis nozares, sākot no dabiskās valodas apstrādes līdz radoša satura ģenerēšanai. Tomēr šo jaudīgo modeļu efektīva izmantošana mērogā joprojām ir izaicinājums.

TensorRT-LLM, vLLM, Hugging Face TGI un LMDeploy

Secinājumu dzinējiem ir būtiska nozīme veiktspējas optimizēšanā, latentuma samazināšanā un resursu maksimālā izmantošanā. Šajā rakstā mēs aplūkojam četrus vadošos risinājumus: TensorRT-LLM, vLLM, Hugging Face TGI un LMDeploy.

Katram no tiem ir unikālas priekšrocības - NVIDIA aparatūras paātrinātā precizitāte, vLLM inovatīvā atmiņas pārvaldība, TGI ražotspējīgā ekosistēma vai LMDeploy koncentrēšanās uz ātrumu un vienkāršību. Pievienojieties mums, kad mēs salīdzināsim šos dzinējus, lai palīdzētu jums atrast ideāli piemērotu jūsu GenAI darba slodzēm.

TensorRT-LLM: NVIDIA jaudīgākais optimizētas secināšanas rīks

TensorRT-LLM ir NVIDIA risinājums, lai nodrošinātu ātru un vienmērīgu lielu valodu modeļu darbību. Tā ir balstīta uz TensorRT ietvarstruktūru un ir izstrādāta tā, lai no NVIDIA GPU izspiestu katru veiktspējas pilienu. Tas tiek panākts, izmantojot tādus trikus kā slāņu saplūšana, precizitātes pielāgošana (FP16, INT8, FP8...) un kodola optimizācija, kas samazina aprēķinu laiku, nesamazinot modeļa precizitāti.

TensorRT-LLM

Runa nav tikai par ātrumu. TensorRT-LLM efektīvi apstrādā lielus modeļus, gudri pārvaldot atmiņu, lai nepieļautu darbības vidusceļā radušos kļūmi. Tā atbalsta arī dinamisku pakešu apstrādi, kas ļauj apstrādāt vairākus pieprasījumus vienlaicīgi, neizsīkstot atmiņai. Ja jau izmantojat NVIDIA aparatūru, tas nav nekāds izaicinājums, jo ir cieši saistīts ar to ekosistēmu, piemēram, CUDA un cuDNN, un pat integrējas ar NVIDIA Triton Inference Server un NVIDIA Dynamo.

Tomēr tas nav ideāli piemērots ikvienam. Iestatīšana var būt apgrūtinoša, ja jums nav ērtas NVIDIA rīku lietošana, un tā ir mazāk elastīga, ja izmantojat citu nekā NVIDIA aparatūru. Tomēr NVIDIA GPU veiktspējas un optimizācijas ziņā to ir grūti pārspēt.

vLLM: augstas caurlaidības secinājumi ar PagedAttention

vLLM ļoti labi spēj ātri apstrādāt lielu daudzumu secinājumu uzdevumu. Tas ir atvērtā koda projekts, kas spīd, ja nepieciešama liela caurlaidspēja bez palēnināšanās. Slepenā mērce ir PagedAttention - triks, kas pārvalda atmiņu daudz labāk nekā citi. Tā vietā, lai ielādētu visu uzreiz un patērētu operatīvo atmiņu, tas sadala atslēgas-vērtības kešatmiņas fragmentos, paņemot tikai to, kas nepieciešams. Mazāk atkritumu, vairāk ātruma.

vLLM

Tas ir arī ļoti elastīgs. Tā darbojas ar populārākajiem modeļiem, piemēram, LLaMA vai Mistral, un atbalsta daudzas iekārtas, tostarp NVIDIA vai AMD GPU. Jūs varat izmantot arī dinamisko grupēšanu, lai efektīvi grupētu pieprasījumus un nodrošinātu vienmērīgu konveijera darbību. Iestatīšana ir diezgan vienkārša, ja esat lietots Python un PyTorch.

Galvenais vLLM ierobežojums ir tā relatīvā nenobriešana tirgū, kas nozīmē, ka tas vēl nevar piedāvāt tādu visaptverošu funkciju kopumu, kāds ir pieejams vairāk pazīstamos risinājumos. Tomēr organizācijām, kas meklē efektīvu risinājumu, kas nodrošina augstas veiktspējas secinājumus, vLLM ir lieliska izvēle.

Sejas apskāviens TGI: Ražošanai gatavs risinājums teksta ģenerēšanai

TGI (Text Generation Inference - teksta ģenerēšanas secinājums) ir izstrādāts cilvēkiem, kuri vēlas izveidot un izmantot modeļus bez galvassāpēm. Šo rīku ir izstrādājusi Hugging Face komanda, tāpēc tas darbojas kopā ar viņu milzīgo iepriekš apmācīto modeļu bibliotēku, piemēram, BERT, GPT un citiem. Tas ir paredzēts reālai lietošanai, piemēram, tērzēšanas robotu vai lietotņu darbināšanai, kur teksta ģenerēšanai jāstrādā ātri un bez sabrukumiem.

Sejas apskāviens TGI

TGI veic smago darbu, izmantojot tādas funkcijas kā nepārtraukta apstrāde partijās, kas uztur sistēmu aizņemtu, mainot jaunus pieprasījumus, kad vecie tiek pabeigti. Tā atbalsta GPU paātrinājumu un var palielināties, ja ir atbilstoša aparatūra. Turklāt tai ir iebūvēta drošība, piemēram, sliktu rezultātu filtrēšana, kas ir noderīga ražošanā. To var izvietot ar Docker, veicot dažus soļus, tāpēc to ir salīdzinoši viegli iestatīt.

Kļūda? Tas ir saistīts ar Hugging Face ekosistēmu, tāpēc, ja jūs vēl neesat šajā pasaulē, tā var šķist ierobežojoša. Tomēr, ja TGI ir plug-and-play variants, kas ir gatavs lietošanai, tā ir lieliska izvēle.

LMDeploy: Efektīva izvietošana ar izcilu dekodēšanas ātrumu

LMDeploy ir MMRazor un MMDeploy komandu izstrādāts rīku komplekts, kas paredzēts lielu valodas modeļu saspiešanai, izvietošanai un darbināšanai bez raizēm. Ar ko tas izceļas? Tam ir lielisks dekodēšanas ātrums - līdz pat 1,8 reizes vairāk pieprasījumu sekundē nekā vLLM uz A100 GPU. Tas ir, pateicoties tādiem trikiem kā pastāvīga pakešu veidošana, bloķēta KV kešēšana un veikli CUDA kodoli, kas nodrošina GPU aizņemtību.

LMDeploy

Tam ir divi dzinēji: TurboMind maksimālai veiktspējai un PyTorch dzinējs vieglākai darbībai. TurboMind ir šī dzinēja zvaigzne - tas 4 bitu secinājumus veic 2,4 reizes ātrāk nekā FP16, un tas viegli apstrādā tādus lielus modeļus kā Llama-2 70B. Jūs varat arī kvantizēt svaru un KV kešatmiņas, lai ietaupītu atmiņu, nekaitējot precizitātei. Arī izvietošana ir vienkārša - viena komanda izveido serveri vairākās mašīnās, ja nepieciešams. Turklāt tas atceras tērzēšanas vēsturi daudzkārtējās sarunās, tāpēc nav jātērē laiks vecā darba atkārtotai veikšanai.

Negatīvie aspekti? TurboMind ir izvēlīgs - tas vēl nespēlē jauki ar tādiem bīdāmo logu uzmanības modeļiem kā Mistral. Un, ja neizmantojat NVIDIA GPU, jums būs jāizmanto lēnākais PyTorch dzinējs. Tomēr ātruma un vienkāršības ziņā uz pareizās aparatūras LMDeploy ir lieliska izvēle.

Veiktspējas salīdzinājums: Kavēšanās, caurlaides spēja un mērogojamība

Apkoposim, kā šie dzinēji darbojas ar latentuma (cik ātri tiek pabeigts viens pieprasījums), caurlaidspējas (cik daudz pieprasījumu tie var uzņemt) un mērogojamības (cik labi tie spēj apstrādāt lielākas slodzes vai vairāk aparatūras) rādītājiem.

TensorRT-LLM izceļas ar latentumu, ja jums ir NVIDIA GPU. Tā ir ļoti optimizēta NVIDIA aparatūrai, tāpēc atsevišķi pieprasījumi tiek izpildīti ātri: mazāk nekā 50 ms lielākajai daļai A100 modeļu. Arī caurlaides spēja ir lieliska, īpaši ar dinamisko pakešu veidošanu. BentoML veiktie Benchmarks testi rāda, ka šis dzinējs sasniedz 700 žetonu sekundē pie 100 vienlaicīgiem lietotājiem Llama 3 70B Q4 uz A100 80GB GPU. TensorRT-LLM labi darbojas scenārijos ar gariem ievades datiem un lielu pieprasījumu skaitu, piedāvājot labu caurlaides spēju. Mērogojamība uz vairākiem GPU tiek atbalstīta jau no komplektācijas ar izcilu veiktspēju.

Arī vLLM ir laba caurlaidspēja, īpaši dekodēšanas slodzēs, un pēc nesenajiem atjauninājumiem tā ir ar augstu caurlaidspēju un zemu latentumu. BentoML veiktie Benchmarks rāda, ka šis dzinējs sasniedz 600-650 žetonu sekundē pie 100 vienlaicīgiem lietotājiem Llama 3 70B Q4 uz A100 80GB GPU. Aizkavēšanās ir laba, bet ne tik laba kā TensorRT-LLM: aptuveni 60-80 ms atsevišķiem darbiem. To labi mērogo dažādos GPU, pat jaucot zīmolus, bet tas ir mazāk noslīpēts milzīgām konfigurācijām.

Apskāviena sejas TGI darbojas līdzīgi kā vLLM, nodrošinot līdzsvaru starp veiktspēju un lietošanas ērtumu. Aizkavēšanās ir pienācīga: 50-70 ms ar labu GPU. BentoML veiktie Benchmarks rāda, ka šis dzinējs sasniedz 600-650 žetonu sekundē pie 100 vienlaicīgiem lietotājiem Llama 3 70B Q4 uz A100 80GB GPU. Tas ir veidots tā, lai to varētu mērogot ražošanai, tāpēc tas bez problēmām apstrādā vairāk lietotāju vai mašīnu, īpaši ar Docker.

LMDeploy uzvar dekodēšanas ātruma ziņā. Tā ir pārāka pēc žetonu ģenerēšanas ātruma, jo īpaši mazāku modeļu gadījumā, un tai ir zems laiks līdz pirmajam žetonam (TTFT) lielu kvantizētu modeļu gadījumā. Kavēšanās ilgums ir neliels: 40-60 ms. Un caurlaides spēja ir lieliska. BentoML veiktie salīdzinošie testi liecina, ka šis dzinējs sasniedz 700 žetonu sekundē pie 100 vienlaicīgiem lietotājiem Llama 3 70B Q4 uz A100 80GB GPU. Servera konfigurācija ir viegli mērogojama, taču, lai sasniegtu labākos rezultātus, tā ir ļoti atkarīga no NVIDIA GPU; PyTorch režīms atpaliek.

Apakšējā līnija: TensorRT-LLM un LMDeploy ir vadībā pēc neapstrādāta ātruma. Jūsu izvēle ir atkarīga no jūsu aparatūras un apstrādājamo pieprasījumu skaita.

Kvantizācijas iespējas

Kvantizācija samazina modeļa precizitāti, lai samazinātu atmiņas patēriņu un paātrinātu secinājumu izdarīšanu, kas ir svarīgi ierobežotu resursu vidēs. Lūk, kā darbojas katrs dzinējs:

TensorRT-LLM atbalsta FP8, FP4, INT4 ar Activation-aware Weight Quantization (AWQ) un INT8 ar SmoothQuant, piedāvājot stabilas iespējas NVIDIA GPU veiktspējas optimizēšanai.

vLLM nodrošina elastību ar GPTQ, AWQ, INT4, INT8 un FP8, pielāgojoties dažādām aparatūras un precizitātes vajadzībām.

Hugging Face TGI integrē bitsandbytes 8 bitu un 4 bitu kvantizācijai un GPT-Q tikai svara kvantizācijai, kas ir piemērots ražošanas izvietošanai.

LMDeploy piedāvā 4 bitu AWQ, 8 bitu kvantizāciju un tiešsaistes INT8/INT4 KV kešatmiņas kvantizāciju, tādējādi uzlabojot efektivitāti lieliem modeļiem ar ierobežotu aparatūru.

Aparatūras savietojamība

Aparatūras atbalsts nosaka, kur var izvietot šos dzinējus, ietekmējot mērogojamību un veiktspēju:

TensorRT-LLM ir ekskluzīvs NVIDIA CUDA lietojums, kas nodrošina augstu veiktspēju, izmantojot GPU paātrinātājus.

vLLM atbalsta NVIDIA CUDA, AMD ROCm, AWS Neuron un CPU, nodrošinot plašu savietojamību dažādām konfigurācijām.

TGI darbojas ar NVIDIA CUDA, AMD ROCm, Intel Gaudi un AWS Inferentia, nodrošinot elastību dažādām aparatūras vidēm.

LMDeploy ir optimizēts NVIDIA CUDA, nodrošinot augstāko veiktspēju NVIDIA GPU, taču ar ierobežotu atbalstu citām platformām.

Lietošanas ērtums

Uzstādīšanas un integrācijas process var ietekmēt izstrādes termiņus. Lūk, kā katram dzinējam veicas:

TensorRT-LLM ir jākonvertē kontrolpunkti, jāveido TensorRT dzinējs un jākonfigurē parametri, tāpēc inženieriem tas ir sarežģīti un laikietilpīgi.

vLLM ir lietotājam draudzīgs, ar visaptverošu dokumentāciju, vieglu instalēšanu un nevainojamu Python bibliotēkas integrāciju.

Hugging Face TGI gūst labumu no Hugging Face ekosistēmas, kas piedāvā iepriekš sagatavotus Docker attēlus un rūpīgu dokumentāciju ātrai izvietošanai.

LMDeploy piedāvā vienkāršu iestatīšanu ar vienu komandu, lai palaistu serveri, un Python API pielāgošanai, līdzsvarojot vienkāršību un elastību.

Secinājums

Pareizā dzinēja izvēle ir atkarīga no lietojuma veida, aparatūras un prasmēm.

TensorRT-LLM ir jūsu ievada dzinējs, ja lietojat lielus modeļus NVIDIA GPU un jums ir nepieciešams katrs ātrums (domājiet par zemas latentās darbības lietojumprogrammām, piemēram, reāllaika tērzēšanas robotiem vai mākslīgā intelekta asistentiem, kur atbildes jāģenerē milisekundēs). Tas ir lieliski piemērots uzņēmumiem, kas jau ir dziļi iesakņojušies NVIDIA pasaulē, taču tas var būt pārāk liels risinājums, ja meklējat vienkāršību.

vLLM ir lielisks kompromiss starp ātrumu un vienkāršību. Tas ļoti labi noderēs jaunuzņēmumiem vai pētniekiem, kuri vēlas kaut ko elastīgu un ātri konfigurējamu.

TGI ir līdzvērtīgs vLLM ātruma un vienkāršības ziņā. To ir viegli izvietot, tas ir viegli mērogojams un savienots ar Hugging Face modeļu centru, tāpēc tas ir ideāli piemērots komandām, kas vēlas vienkāršu risinājumu.

LMDeploy izceļas ar veiktspēju, tāpat kā TensorRT-LLM. Tas ir piemērots lietotājiem ar NVIDIA GPU, kuri vēlas vienkāršu iestatīšanu un augstāko veiktspēju, taču tas nav tik ērts, ja jūsu modeļi nesadarbojas ar TurboMind.

Ja nevarat vai nevēlaties pats izvietot savu GenAI modeli, varat izmantot NLP Cloud un izmantot ātrus ģeneratīvā mākslīgā intelekta modeļus ražošanā. Izmēģiniet ātru secinājumu izdarīšanu NLP mākonī jau tagad!

Ja jums ir jautājumi par atvasināšanas dzinējiem kopumā, lūdzu, nekautrējieties mums jautāt, mums vienmēr ir prieks sniegt konsultācijas!

Julien
NLP Cloud tehniskais direktors