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].

LLM secinājumu optimizācijas metodes

Secinājumu optimizācija ir ļoti svarīga ražošanā izmantoto ģeneratīvā mākslīgā intelekta lietojumprogrammu daļa. LLM efektīva izmantošana mērogā ir izaicinājums, un pēdējos gados ir izstrādātas daudzas metodes, lai padarītu secinājumus ātrākus un lētākus. Apskatīsim šīs metodes šajā rakstā.

LLM secinājumu optimizācijas metodes

Koncentrējieties uz LLMs arhitektūru

Visi lielie valodas modeļi (LLM) ir balstīti uz transformatora arhitektūru, ko 2017. gadā izgudroja Vaswani et al. Transformatora arhitektūra nodrošina izcilu precizitāti, mācīšanos ar nelielu skaitu kadru un gandrīz cilvēka spējas dažādos valodas uzdevumos. Tomēr šo pamatu modeļu, kas bieži vien sastāv no desmitiem līdz simtiem miljardu parametru, apmācība ir dārga, un to izveide ir resursietilpīga. Iedošanas izmaksas pieaug, ja ir gari ievades konteksti, kas prasa ievērojamu apstrādes jaudu lielu ievades datu dēļ. Tas padara efektīvu secinājumu izdarīšanu par būtisku problēmu, jo īpaši attiecībā uz atmiņas un skaitļošanas resursu pārvaldību.

Transformatora arhitektūra
Transformatora arhitektūra

Precīzāk, lielākā daļa labi zināmo LLM ir tikai dekoderi, piemēram, GPT-3, GPT-4, LLaMA, Mistral, DeepSeek u.c. Šie modeļi ir iepriekš apmācīti cēloņsakarību modelēšanas uzdevumā, kas darbojas kā nākamā vārda prognozētāji. Tie apstrādā žetonu secību kā ieejas datus un autoregresijas režīmā rada nākamos žetonus, līdz tiek sasniegts apstāšanās nosacījums.

LLM secinājums tikai dekodera modeļos ietver divus galvenos posmus: priekšaizpildīšanas posmu un dekodēšanas posmu. Priekšaizpildīšanas fāzē modelis apstrādā ievades žetonus, lai aprēķinātu starpstāvokļus (atslēgas un vērtības) pirmā jaunā žetona ģenerēšanai. Šī fāze, kas atgādina matricas-matricas operāciju, ir ļoti paralēlizēta un efektīvi izmanto GPU iespējas. Savukārt dekodēšanas fāzē tiek ģenerēti žetoni pa vienam, balstoties uz iepriekšējo žetonu stāvokļiem. Šī matricas-vektora operācija ir saistīta ar atmiņu, jo datu pārsūtīšana uz GPU, nevis aprēķinu ātrums, galvenokārt nosaka latentumu, kā rezultātā netiek pietiekami izmantota GPU skaitļošanas jauda.

Dekodēšanas fāzes optimizācija ir galvenais punkts, lai risinātu secinājumu problēmas. Risinājumi ietver efektīvu uzmanības mehānismu izstrādi un labāku atslēgu un vērtību pārvaldību, lai samazinātu atmiņas sastrēgumus. Šajā rakstā ir izceltas praktiskas pieejas, lai uzlabotu atvasināšanas veiktspēju, pieņemot, ka lasītājiem ir pamatzināšanas par transformatora arhitektūru un uzmanības mehānismiem. Šie optimizācijas pasākumi ir būtiski, lai uzlabotu caurlaides spēju un samazinātu latentumu reālās LLM izvietojumos.

Papildu sarežģījumus rada dažādu marķieru izmantošana dažādos LLM, kas ietekmē marķieru salīdzināmību. Žetoniem, kas aptuveni atbilst četrām angļu valodas rakstzīmēm, ir atšķirīga atveidošana atkarībā no tokenizatora, tāpēc tiešie secinājumu caurlaidspējas salīdzinājumi (piemēram, žetonu skaits sekundē) ir maldinoši. Šī mainība uzsver nepieciešamību pēc standartizētām novērtēšanas metrikām, lai precīzi novērtētu un salīdzinātu LLM veiktspēju atvasināšanas laikā.

Dozēšana

Dozēšana ir galvenā stratēģija, lai uzlabotu GPU izmantošanu un caurlaidspēju lielos valodas modeļos (LLM). Apstrādājot vairākus pieprasījumus vienlaicīgi, izmantojot vienu un to pašu modeli, partiju veidošana sadala modeļa svaru atmiņas izmaksas starp pieprasījumiem, ļaujot lielākām partijām izmantot lielāku GPU skaitļošanas jaudu. Tomēr partijas lielums ir ierobežots, jo pārāk lielas partijas var izraisīt atmiņas pārslodzi LLM atmiņas prasību dēļ, jo īpaši saistībā ar atslēgas-vērtības (KV) kešēšanu (par to sīkāk vēlāk).

Dozēšanas paņēmieni
Dozēšanas paņēmieni

Tradicionālajai jeb statiskajai grupēšanai ir ierobežojumi, jo pieprasījumi vienā partijā bieži vien ģenerē atšķirīgu izpildes žetonu skaitu, kā rezultātā izpildes laiks ir atšķirīgs. Tas liek visiem pieprasījumiem gaidīt, kamēr tiks izpildīts lēnākais pieprasījums, kas var radīt problēmas, ja ģenerēšanas ilgums ievērojami atšķiras. Lai risinātu šo problēmu, ir izstrādātas uzlabotas metodes, piemēram, pakešu veidošana lidojuma laikā, lai optimizētu veiktspēju.

Dozēšana lidojuma laikā, ko dēvē arī par nepārtrauktu dozēšanu, risina problēmas, ko rada LLM darba slodžu dinamiskais raksturs, kas var būt dažādas - no vienkāršām tērzēšanas robotu atbildēm līdz sarežģītai dokumentu apkopošanai vai kodu ģenerēšanai. Šie uzdevumi rada ļoti dažāda lieluma rezultātus, tāpēc ir grūti efektīvi grupēt un izpildīt pieprasījumus paralēli. Atšķirībā no statiskās grupēšanas, grupēšana lidojuma laikā ļauj serverim nekavējoties izņemt pabeigtās sekvences no partijas un sākt apstrādāt jaunus pieprasījumus, kamēr citi vēl tiek apstrādāti. Šī pieeja ievērojami palielina GPU izmantošanu, pielāgojoties mainīgajam pieprasījumu izpildes laikam reālās pasaules scenārijos.

Vairāku GPU izvietošana ar modeļa paralelizāciju

Modeļu paralelizācija ir būtiska stratēģija, lai pārvaldītu liela mēroga mašīnmācīšanās modeļu atmiņas un skaitļošanas prasības, sadalot tos starp vairākiem GPU. Šī pieeja ļauj apstrādāt lielākus modeļus vai ievades partijas, kas pārsniedz vienas ierīces atmiņas ietilpību, padarot to būtisku gan apmācībai, gan secinājumiem, ja atmiņas ierobežojumi ir stingri. Pastāv dažādas metodes modeļu svaru sadalīšanai, tostarp cauruļvadu paralēlisms, tenzoru paralēlisms un sekvenču paralēlisms, un katra no tām risina dažādus modeļu sadalīšanas aspektus. Atšķirībā no datu paralēlisma, kas koncentrējas uz modeļa svaru replikāciju dažādās ierīcēs, lai apmācības laikā apstrādātu lielākas ievades partijas, šīs metodes ir svarīgākas, lai samazinātu atmiņas nospiedumus gan apmācības, gan secinājumu izdarīšanas laikā.

Vairāki NVIDIA GPU
Vairāki NVIDIA GPU

Cauruļvadu paralēlisms vertikāli sadala modeli secīgos gabalos, un katrs gabals satur atsevišķai ierīcei piešķirtu slāņu apakškopu. Piemēram, četrvirzienu cauruļvada konfigurācijā katra ierīce apstrādā ceturtdaļu modeļa slāņu, secīgi nododot izejas nākamajai ierīcei. Lai gan tas ievērojami samazina atmiņas prasības katrai ierīcei, tas rada neefektivitāti, kas pazīstama kā "cauruļvada burbuļi", kad ierīces var dīkstāves laikā gaidīt iepriekšējo slāņu rezultātus. Mikrosadalīšana, kas sadala ievades partijas mazākās apakšpartijās secīgai apstrādei, var samazināt šos "burbuļus", bet ne pilnībā tos novērst, jo dīkstāves laiki saglabājas gan priekšējās, gan aizmugurējās caurlaides laikā.

Turpretī tenzoru paralēlisms horizontāli sadala atsevišķus slāņus mazākos skaitļošanas blokos, kurus var izpildīt neatkarīgi dažādās ierīcēs. Tas ir īpaši efektīvi transformatoru komponentiem, piemēram, uzmanības blokiem un daudzslāņu perceptroniem (MLP), kur, piemēram, dažādas uzmanības galvas var piešķirt atsevišķām ierīcēm paralēliem aprēķiniem. Tomēr tenzoru paralēlisms ir mazāk efektīvs tādām operācijām kā LayerNorm un Dropout, kuras nevar viegli sadalīt un kuras ir jāreplicē visās ierīcēs, tādējādi radot lieku atmiņas izmantošanu aktivāciju glabāšanai. Šis ierobežojums uzsver nepieciešamību pēc papildu pieejām, lai optimizētu atmiņas efektivitāti.

Sekvences paralēlisms risina tādu operāciju kā LayerNorm un Dropout atmiņas neefektivitātes problēmu, sadalot tās pa ieejas sekvences dimensiju un izmantojot to neatkarību starp sekvences elementiem. Šī metode samazina lieko aktivāciju atmiņas nospiedumu, padarot to par vērtīgu papildinājumu tenzoru paralēlismam. Šīs paralēlizācijas metodes nav savstarpēji izslēdzošas, un tās var kombinēt, lai turpmāk optimizētu lielus valodas modeļus (LLM). Turklāt īpašas optimizācijas stratēģijas uzmanības modulim var uzlabot mērogojamību un samazināt atmiņas prasības katram GPU, ļaujot efektīvāk apmācīt un izdarīt secinājumus lieliem modeļiem.

Uzmanības optimizācija

2017. gadā Vaswani et al. rakstā *Attention Is All You Need* tika ieviests Transformatora modelis, kura stūrakmens ir pašatdeve. Pašpievērstība ļauj modelim novērtēt dažādu vārdu nozīmi teikumā attiecībā vienam pret otru, uzlabojot kontekstuālo izpratni tādos uzdevumos kā dabiskās valodas apstrāde. Darbā tika formalizēta pašpievērstība, jo īpaši izmantojot skalu punktu-produktu uzmanības (SDPA) mehānismu, kas attēlo vaicājuma un atslēgas-vērtības pārus izvadā, padarot to par centrālo komponentu modernajos neironu tīklos. Šeit ir daži no svarīgākajiem paņēmieniem, lai optimizētu uzmanības aprēķinus:

Uzmanības papīrs
Uzmanības papīrs

Daudzgalviņu uzmanība (MHA) balstās uz SDPA, paralēli izpildot vairākas uzmanības operācijas, katru ar atšķirīgām pieprasījuma, atslēgas un vērtību matricu projekcijām. Šīs paralēlās operācijas jeb "galvas" koncentrējas uz dažādām reprezentācijas apakštelpām, bagātinot modeļa izpratni par ievaddatiem. Šo galvu rezultāti tiek apvienoti un lineāri projicēti, saglabājot skaitļošanas efektivitāti, kas ir salīdzināma ar vienas galvas uzmanību, samazinot katras galvas dimensiju (piemēram, dalot modeļa dimensiju ar galvu skaitu, piemēram, 8).

Vairāku vaicājumu uzmanība (MQA) optimizē MHA secinājumiem, sadalot atslēgas un vērtības projekcijas vairākās uzmanības galvās, vienlaikus saglabājot vairākas vaicājumu projekcijas. Tas samazina atmiņas joslas platuma prasības un atslēgas-vērtības (KV) kešatmiņas lielumu, nodrošinot lielākas partijas un labāku skaitļošanas jaudu izmantošanu. Tomēr MQA var nedaudz samazināt precizitāti, un modeļiem, kas to izmanto, ir nepieciešama apmācība vai precīza regulēšana ar iespējotu MQA, lai saglabātu veiktspēju.

Grupēta vaicājuma uzmanība (GQA) līdzsvaro MHA un MQA, sagrupējot vaicājuma galvas un dalot atslēgas-vērtības projekcijas katrā grupā, panākot MHA tuvu MHA kvalitāti ar skaitļošanas efektivitāti, kas ir tuvāka MQA. Tādi modeļi kā Llama 2 70B izmanto GQA, un modeļus, kas apmācīti ar MHA, var pielāgot GQA ar minimālu papildu apmācību. Gan MQA, gan GQA samazina KV kešatmiņas atmiņas pieprasījumu, lai gan joprojām ir nepieciešami turpmāki optimizācijas pasākumi kešatmiņas pārvaldībā.

FlashAttention uzlabo uzmanības mehānismus, mainot aprēķinu secību, lai efektīvāk izmantotu GPU atmiņas hierarhijas. Atšķirībā no tradicionālās apstrādes pa slāņiem FlashAttention apvieno operācijas un izmanto "flīzēšanu", lai aprēķinātu nelielas izejas matricas daļas uzreiz, samazinot atmiņas lasīšanas/rakstīšanas operācijas. Šis I/O apzinātais, precīzs uzmanības algoritms bez problēmām integrējas esošajos modeļos bez modifikācijām, piedāvājot ievērojamu paātrinājumu, optimizējot datu kustību.

Atslēgas-vērtības kešēšana

KV kešēšana ir svarīga optimizācijas metode, ko izmanto lielo valodas modeļu (LLM) dekodēšanas fāzē, lai uzlabotu pašatpazīšanas aprēķinu efektivitāti. Šajā fāzē katrs ģenerētais žetons ir atkarīgs no visu iepriekšējo žetonu atslēgas (K) un vērtības (V) tenzoriem, tostarp tiem, kas aprēķināti priekšaizpildes posmā un turpmākajos dekodēšanas posmos. Tā vietā, lai katrā laika posmā atkārtoti aprēķinātu šos tenzorus katram žetonam, KV kešēšana saglabā tos GPU atmiņā, pievienojot jaunus tenzorus kešatmiņā, kad tie tiek aprēķināti. Parasti katram modeļa slānim tiek uzturēta atsevišķa KV kešatmiņa, tādējādi ievērojami samazinot lieko aprēķinu skaitu un paātrinot dekodēšanas procesu.

Atslēgas-vērtības kešēšana
Atslēgas-vērtības kešēšana

Atmiņas prasības LLM uz GPU galvenokārt nosaka divi komponenti: modeļa svaru un KV kešatmiņa. Modeļa svariem, kas sastāv no modeļa parametriem, atvēlēta ievērojama atmiņas daļa; piemēram, 7 miljardu parametru modelim, piemēram, Llama 2 7B ar 16 bitu precizitāti, nepieciešami aptuveni 14 GB. Savukārt KV kešatmiņā tiek glabāti pašu uzmanības tenzori, lai izvairītos no pārrēķināšanas, un tās lielumu nosaka tādi faktori kā slāņu skaits, uzmanības galvas, galvu izmēri un precizitāte. Katram žetonam kešatmiņas lielumu aprēķina kā 2 * num_layers * (num_heads * dim_head) * precision_in_bytes, kur koeficients 2 ņem vērā gan K, gan V matricas. Ieejas datu partijai kopējais KV kešatmiņas lielums mainās atkarībā no partijas lieluma un sekvences garuma, potenciāli sasniedzot ievērojamus lielumus, piemēram, ~ 2 GB Llama 2 7B modelim ar sekvences garumu 4096 un partijas lielumu 1.

KV kešatmiņas efektīva pārvaldība rada problēmas, jo tā lineāri pieaug līdz ar partijas lielumu un sekvences garumu, kas var ierobežot caurlaides spēju un apgrūtināt garas konteksta ievades apstrādi. Bieži sastopama neefektivitāte, ko rada statiska pārmērīga rezervēšana, kad atmiņa tiek rezervēta maksimālajam atbalstāmajam sekvences garumam (piemēram, 2048 žetoniem) neatkarīgi no faktiskā ievades lieluma. Tas rada ievērojamu atmiņas izšķērdēšanu vai fragmentāciju, jo liela daļa rezervētās vietas bieži paliek neizmantota visā pieprasījuma darbības laikā, aizņemot vērtīgos GPU atmiņas resursus.

Lai risinātu šo neefektivitātes problēmu, algoritmā PagedAttention ir ieviesta jauna pieeja, kuras pamatā ir operētājsistēmas lapu pārlūkošana. Tā sadala KV kešatmiņu fiksēta lieluma blokos, no kuriem katrs pārstāv noteiktu skaitu žetonu, kurus atmiņā var glabāt nesaistīti. Bloku tabula seko šiem blokiem, pēc vajadzības tos ielādējot uzmanības aprēķinu laikā. Kad tiek ģenerēti jauni žetoni, papildu bloki tiek piešķirti dinamiski. Šī metode samazina atmiņas izšķērdēšanu, novēršot nepieciešamību pēc saistītās piešķiršanas un pārmērīgas rezervēšanas, ļaujot izmantot lielākas partijas un uzlabojot caurlaides spēju, tādējādi padarot to par nozīmīgu progresu KV kešatmiņas atmiņas pārvaldībā LLM.

Modeļa optimizācija

Šajā sadaļā mēs aplūkojam dažādas metodes lielu valodas modeļu (LLM) optimizēšanai, lai samazinātu to atmiņas patēriņu un uzlabotu veiktspēju uz GPU. Galvenās metodes ir kvantizācija, retums un destilācija, un katra no tām ir vērsta uz dažādiem modeļa efektivitātes aspektiem. Šīs metodes maina modeļa svaru, izmanto GPU aparatūras paātrinājumu un pārnes zināšanas uz mazākiem modeļiem, ļaujot lielākiem modeļiem darboties ar ierobežotu aparatūru, vienlaikus saglabājot veiktspēju. Šīs metodes var pasliktināt modeļa precizitāti, tāpēc tās jāizmanto piesardzīgi.

Kvantizācija samazina modeļa svaru un aktivāciju precizitāti, parasti no 32 vai 16 bitiem līdz 8 vai mazāk bitiem, ļaujot modeļiem aizņemt mazāk atmiņas un efektīvāk pārsūtīt datus. Ja svaru kvantizēšana ir vienkārša, jo tie pēc apmācības ir nemainīgi, tad aktivāciju kvantizēšana ir sarežģītāka, jo to dinamisko diapazonu paplašina izkliedes. Tādi paņēmieni kā LLM.int8() risina šo problēmu, selektīvi piemērojot augstāku precizitāti noteiktām aktivācijām vai atkārtoti izmantojot kvantizēto svaru dinamisko diapazonu aktivācijām, lai gan GPU var būt nepieciešams konvertēt svarus atpakaļ uz augstāku precizitāti operācijām.

Retinātība ietver modeļa vērtību atdalīšanu tuvu nullei, radot retinātas matricas, kurām nepieciešams mazāk atmiņas. GPU atbalsta strukturētu retumu, piemēram, divas no katrām četrām vērtībām attēlo kā nulles, kas paātrina aprēķinus. Kombinējot retumu ar kvantizāciju, var vēl vairāk palielināt izpildes ātrumu. Turpinās pētījumi, kuros tiek pētītas optimālās retās reprezentācijas LLM, norādot uz daudzsološu ceļu, kā uzlabot secinājumu izdarīšanas ātrumu.

Destilācija pārnes zināšanas no lielāka "skolotāja" modeļa uz mazāku "skolēna" modeli, tādējādi samazinot izmēru un vienlaikus saglabājot veiktspēju. Piemēram, DistilBERT, salīdzinot ar BERT, samazina izmēru par 40 % un palielina ātrumu par 60 %, saglabājot 97 % no tā iespējām. Distilēšana var ietvert skolotāja rezultātu atdarināšanu vai skolotāja radīto datu izmantošanu apmācībai, izmantojot tādas metodes kā "Distilling Step by Step!", kas ietver racionālus pamatojumus efektīvai mācīšanai. Tomēr ierobežojošās licences daudziem progresīviem LLM ierobežo destilācijai piemērotu skolotāju modeļu pieejamību.

Spekulatīvs secinājums

Spekulatīvā secināšana, kas pazīstama arī kā spekulatīvā izlase vai asistētā ģenerēšana, ir metode autoregresīvo lielo valodas modeļu (LLM), piemēram, GPT stila modeļu, kas parasti ģenerē tekstu pēc tokeniem, izpildes paralelizēšanai. Standarta izpildījumā katrs token ir atkarīgs no visiem iepriekšējiem tokeniem, tādējādi paralēlā ģenerēšana nav iespējama, jo n-tais token ir jāģenerē pirms (n+1)-ā. Spekulatīvā secināšana risina šo problēmu, izmantojot "lētāku" melnraksta modeli, lai prognozētu vairākus nākotnes žetonus vienlaicīgi, kurus pēc tam paralēli pārbauda vai noraida galvenais modelis, kas ļauj ātrāk ģenerēt tekstu.

Process ietver vairāku žetonu turpinājuma projekta ģenerēšanu, izmantojot mazāk resursu ietilpīgu metodi, kam seko paralēla verifikācija ar galveno modeli, izmantojot projektu kā spekulatīvu kontekstu. Ja verifikācijas modelis atbilst melnajiem žetoniem, tie tiek pieņemti; pretējā gadījumā neatbilstošie žetoni un turpmākie žetoni tiek noraidīti, un process tiek atkārtots ar jaunu melno žetonu projektu. Žetonu projektus var ģenerēt, izmantojot dažādas pieejas, piemēram, apmācot vairākus modeļus, precīzi pielāgojot vairākas galvas iepriekš apmācītam modelim, lai prognozētu turpmākos žetonus, vai izmantojot mazāku projekta modeli līdztekus lielākam, spējīgākam verifikācijas modelim, un katram no tiem ir savi kompromisi.

Dezagregēti secinājumi

Sadalīta secināšana ir metode, kurā skaitļošanas uzdevumi tiek sadalīti dažādās aparatūras daļās, lai optimizētu veiktspēju, izmaksas un resursu izmantošanu. Konkrēti, tā nodala priekšaizpildīšanas un dekodēšanas fāzes. Sadalot šīs fāzes, katru no tām var piešķirt aparatūrai, kas vislabāk atbilst tās skaitļošanas prasībām, tādējādi uzlabojot efektivitāti un mērogojamību.

Dezagregēti secinājumi
Dezagregēti secinājumi

Iepriekšēja aizpildīšana ir skaitļošanas ietilpīga, jo, lai apstrādātu visu ievades izsaukumu un izveidotu KV kešatmiņas, ir nepieciešami ievērojami matricu reizinājumi. Šajā fāzē var izmantot augstas veiktspējas aparatūru, piemēram, GPU vai TPU, kas lieliski veic paralēlus aprēķinus. Tā kā iepriekšēja aizpildīšana ir vienreizējs uzdevums katram secinājumu pieprasījumam, to var novirzīt centralizētam, jaudīgam skaitļošanas mezglam, kas optimizēts šādām darba slodzēm. Šāda konfigurācija ļauj ātrāk apstrādāt lielus uzvedumus un mazina slogu mazāk jaudīgām ierīcēm, tāpēc tā ir ideāli piemērota mākoņa vai datu centra vidēm, kur ir pieejama augstas veiktspējas aparatūra.

Turpretī dekodēšana ir saistīta ar atmiņu un iteratīvu žetonu ģenerēšanu, kas lielā mērā balstās uz piekļuvi KV kešatmiņām. Tā prasa mazāku skaitļošanas jaudu, bet tai nepieciešama ātra piekļuve atmiņai, tāpēc tā ir piemērota mazāk jaudīgai, atmiņai optimizētai aparatūrai, piemēram, CPU vai malas ierīcēm. Pārceļot dekodēšanu uz atsevišķu aparatūru - potenciāli tuvāk galalietotājam, piemēram, vietējiem serveriem vai malas ierīcēm -, dezagregētā secināšana samazina latentuma un tīkla joslas platuma prasības. Šāda nodalīšana ļauj elastīgi izvērst lietojumprogrammas, kur priekšaizpilde notiek augstas klases mākoņserveros, bet dekodēšana notiek lokālās vai malas ierīcēs, optimizējot resursu sadalījumu un nodrošinot efektīvu mērogošanu tādām lietojumprogrammām kā reāllaika tērzēšanas roboti vai interaktīvas mākslīgā intelekta sistēmas.

Secinājums

Lai uzlabotu LLM veiktspēju, pēdējā laikā ir izgudroti daudzi secinājumu optimizācijas paņēmieni.

Šo metožu ieviešanai ir nepieciešama padziļināta LLM arhitektūras un izmantotās aparatūras izpratne, tāpēc parasti ir vieglāk izmantot kādu jau esošu secināšanas dzinēju, kurā šīs metodes jau ir ieviestas, piemēram, vLLM, TensorRT-LLM, LMDeploy utt. Patiesībā mēs esam īstenojuši šīs metodes savā NLP Cloud inferences dzinējā, un mēs esam uzrakstījuši bloga ierakstu par inferences dzinējiem, ja vēlaties izvietot savus modeļus: to var izlasīt šeit.

Ja nevarat vai nevēlaties pats izvietot savus LLM, varat izmantot NLP Cloud un izmantot ātrus ģeneratīvos mākslīgā intelekta modeļus ražošanas apjomā. 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