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

LLM išvadų optimizavimo metodai

Išvadų optimizavimas yra labai svarbi generatyvinių dirbtinio intelekto programų, diegiamų gamyboje, dalis. Efektyvus LLM naudojimas masteliu yra iššūkis, todėl pastaraisiais metais buvo sukurta daug metodų, kaip padaryti išvadas greitesnes ir pigesnes. Šiame straipsnyje apžvelgsime šiuos metodus.

LLM išvadų optimizavimo metodai

Dėmesys LLM architektūrai

Visi didieji kalbos modeliai (LLM) yra pagrįsti transformatoriaus architektūra, kurią 2017 m. išrado Vaswani ir kt. Transformatoriaus architektūra užtikrina puikų tikslumą, mokymąsi keliais etapais ir beveik žmogaus gebėjimus įvairiose kalbos užduotyse. Tačiau šiuos pamatinius modelius, kuriuos dažnai sudaro dešimtys ar šimtai milijardų parametrų, brangiai kainuoja apmokyti ir išvedimo metu reikia daug išteklių. Išvadų darymo sąnaudos didėja esant ilgiems įvesties kontekstams, kuriems dėl didelio įvesties duomenų kiekio reikia didelės skaičiavimo galios. Dėl to veiksminga išvada tampa itin svarbiu uždaviniu, ypač valdant atminties ir skaičiavimo išteklius.

Transformatoriaus architektūra
Transformatoriaus architektūra

Tiksliau, dauguma gerai žinomų LLM yra tik dekoderiniai LLM, pavyzdžiui, GPT-3, GPT-4, LLaMA, Mistral, DeepSeek ir kt. Šie modeliai yra iš anksto apmokyti atlikti priežastinio modeliavimo užduotį ir veikia kaip kito žodžio prognozės. Jie apdoroja žymių seką kaip įvestį ir autoregresiniu būdu kuria sekančias žymas, kol pasiekiama sustabdymo sąlyga.

LLM išvada tik dekoderio modeliuose apima du pagrindinius etapus: išankstinio užpildymo etapą ir dekodavimo etapą. Pirminio užpildymo etape modelis apdoroja įvesties žetonus, kad apskaičiuotų tarpines būsenas (raktus ir reikšmes), skirtas pirmajam naujam žetonui generuoti. Šis etapas, primenantis matricos ir matricos operaciją, yra labai lygiagretus ir efektyviai išnaudoja GPU galimybes. Ir atvirkščiai, dekodavimo fazėje generuojami žetonai po vieną, remiantis ankstesnių žetonų būsenomis. Ši matricos ir vektoriaus operacija yra susijusi su atmintimi, nes duomenų perdavimas į GPU, o ne skaičiavimo greitis, pirmiausia lemia uždelsimą, todėl nepakankamai išnaudojama GPU skaičiavimo galia.

Dekodavimo etapo optimizavimas yra svarbiausias uždavinys sprendžiant išvadų darymo problemas. Sprendimai apima veiksmingų dėmesio mechanizmų kūrimą ir geresnį raktų bei reikšmių valdymą, siekiant sumažinti atminties kliūtis. Pranešime pabrėžiami praktiniai metodai, kaip padidinti išvedimo našumą, darant prielaidą, kad skaitytojai turi pagrindinį supratimą apie transformatoriaus architektūrą ir dėmesio mechanizmus. Šie optimizavimo būdai yra labai svarbūs siekiant padidinti pralaidumą ir sumažinti uždelsimą realiose LLM diegimo sistemose.

Dar vienas sunkumas kyla dėl to, kad skirtinguose LLM naudojami skirtingi žymenų tvarkytuvai, o tai turi įtakos žymenų palyginamumui. Žetonų, kurie apytiksliai atitinka keturis anglų kalbos simbolius, atvaizdavimas skiriasi priklausomai nuo tokenizerio, todėl tiesioginiai išvadų našumo palyginimai (pvz., žetonų per sekundę) yra klaidinantys. Šis kintamumas pabrėžia standartizuotų vertinimo rodiklių poreikį, kad būtų galima tiksliai įvertinti ir palyginti LLM našumą išvedimo metu.

Dozavimas

Didelių kalbos modelių (LLM) paketavimas yra pagrindinė strategija, leidžianti pagerinti GPU panaudojimą ir našumą. Vienu metu apdorojant kelias užklausas pagal tą patį modelį, paketavimas paskirsto modelio svorių atminties sąnaudas visoms užklausoms, todėl didesnėms partijoms galima panaudoti daugiau GPU skaičiavimo galios. Tačiau partijos dydis turi ribas, nes pernelyg didelės partijos gali sukelti atminties perpildymą dėl LLM atminties poreikių, ypač susijusių su rakto ir vertės (KV) spartinimu (daugiau apie tai vėliau).

Partijos sudarymo būdai
Partijos sudarymo būdai

Tradicinis arba statinis paketų sudarymas turi trūkumų, nes partijos užklausos dažnai generuoja skirtingą skaičių užbaigimo ženklų, todėl skiriasi vykdymo laikas. Dėl to visos užklausos turi laukti, kol bus įvykdyta lėčiausia užklausa, o tai gali būti problemiška, kai generavimo trukmė labai skiriasi. Šiai problemai spręsti buvo sukurti pažangūs metodai, pavyzdžiui, paketų sudarymas skrydžio metu, siekiant optimizuoti našumą.

Dozavimas skrydžio metu, dar vadinamas nepertraukiamu dozavimu, padeda spręsti iššūkius, kylančius dėl dinamiško LLM darbo krūvio, kuris gali būti įvairus - nuo paprastų pokalbių robotų atsakymų iki sudėtingo dokumentų apibendrinimo ar kodo generavimo. Šios užduotys sukuria labai skirtingo dydžio išvestis, todėl sunku parinkti paketus ir efektyviai lygiagrečiai vykdyti užklausas. Skirtingai nuo statinio paketavimo, paketavimas skrydžio metu leidžia serveriui iš karto pašalinti užbaigtas sekas iš paketų ir pradėti apdoroti naujas užklausas, kol kitos vis dar vykdomos. Šis metodas gerokai padidina GPU panaudojimą, nes prisitaiko prie skirtingo užklausų vykdymo laiko realiuose scenarijuose.

Kelių procesorių diegimas naudojant modelio lygiagretinimą

Modelių lygiagretinimas yra labai svarbi didelio masto mašininio mokymosi modelių atminties ir skaičiavimų poreikių valdymo strategija, kai modeliai paskirstomi keliems GPU. Šis metodas leidžia apdoroti didesnius modelius arba įvesties paketus, kurie viršija vieno įrenginio atminties talpą, todėl jis yra labai svarbus ir mokymui, ir išvadoms daryti, kai atminties apribojimai yra griežti. Egzistuoja įvairūs modelių svorių paskirstymo būdai, įskaitant vamzdynų lygiagretumą, tenzorių lygiagretumą ir sekų lygiagretumą, kurių kiekvienas skirtas skirtingiems modelių paskirstymo aspektams. Skirtingai nuo duomenų lygiagretumo, kuris orientuotas į modelio svorių replikavimą įvairiuose įrenginiuose, kad mokymo metu būtų galima apdoroti didesnes įvesties partijas, šie metodai yra svarbesni siekiant sumažinti atminties pėdsakus tiek mokymo, tiek išvadų darymo metu.

Keli NVIDIA GPU
Keli NVIDIA GPU

Vamzdynų lygiagretumas vertikaliai suskirsto modelį į nuoseklias dalis, o kiekvienoje dalyje yra atskiram įrenginiui priskirtų sluoksnių poaibis. Pavyzdžiui, esant keturių krypčių vamzdyno konfigūracijai, kiekvienas įrenginys tvarko ketvirtadalį modelio sluoksnių, išėjimus perduodamas kitam įrenginiui iš eilės. Nors taip gerokai sumažinamas vienam įrenginiui tenkantis atminties poreikis, atsiranda neveiksmingumas, vadinamas "vamzdyno burbulais", kai įrenginiai gali neveikti, laukdami ankstesnių sluoksnių išvesties. Mikriniu būdu, kai įvesties paketai padalijami į mažesnius paketus, skirtus nuosekliam apdorojimui, galima sumažinti šiuos "burbulus", bet ne visiškai juos pašalinti, nes neveikimo laikas išlieka ir per priekinį, ir per atgalinį perdavimą.

Tensorių lygiagretumas, priešingai, horizontaliai suskaido atskirus sluoksnius į mažesnius skaičiavimo blokus, kurie gali būti nepriklausomai vykdomi skirtinguose įrenginiuose. Tai ypač veiksminga transformatorių komponentams, tokiems kaip dėmesio blokai ir daugiasluoksniai perceptronai (MLP), kai, pavyzdžiui, skirtingos dėmesio galvos gali būti priskirtos atskiriems lygiagrečiam skaičiavimui skirtiems įrenginiams. Tačiau tenzorių lygiagretumas mažiau veiksmingas tokioms operacijoms kaip LayerNorm ir Dropout, kurios negali būti lengvai padalytos ir turi būti atkartojamos visuose įrenginiuose, todėl aktyvacijoms saugoti naudojama perteklinė atmintis. Šis apribojimas išryškina papildomų metodų poreikį atminties efektyvumui optimizuoti.

Sekos lygiagretumas padeda spręsti tokių operacijų kaip "LayerNorm" ir "Dropout" atminties neefektyvumo problemą, suskirstant jas pagal įvesties sekos dimensiją ir pasinaudojant jų nepriklausomumu nuo sekos elementų. Šis metodas sumažina perteklinių aktyvacijų atminties pėdsaką, todėl jis vertingai papildo tenzorių lygiagretumą. Šie lygiagretinimo būdai nėra vienas kitam prieštaraujantys ir gali būti derinami siekiant toliau optimizuoti didelius kalbos modelius (LLM). Be to, specialios dėmesio modulio optimizavimo strategijos gali padidinti mastelį ir sumažinti vienam procesoriui tenkančius atminties poreikius, todėl dideli modeliai gali būti efektyviau mokomi ir daromos išvados.

Dėmesio optimizavimas

2017 m. Vaswani ir kt. straipsnyje *Attention Is All You Need* pristatė Transformerio modelį, kurio kertinis akmuo yra savęs paties dėmesys. Savarankiškas dėmesys leidžia modeliui įvertinti skirtingų sakinio žodžių svarbą vienas kito atžvilgiu, taip pagerinant kontekstinį supratimą tokiose užduotyse kaip natūralios kalbos apdorojimas. Straipsnyje formalizuotas savaiminis dėmesingumas, ypač pasitelkiant mastelio taško-produkto dėmesio (SDPA) mechanizmą, kuris užklausos ir rakto-vertės poras atvaizduoja į išvestį, todėl jis tapo pagrindiniu šiuolaikinių neuroninių tinklų komponentu. Čia pateikiami keli svarbiausi būdai, skirti dėmesio skaičiavimams optimizuoti:

Dėmesio knyga
Dėmesio knyga

Daugiagalvis dėmesys (angl. Multi-head attention, MHA) grindžiamas SDPA, lygiagrečiai atliekant kelias dėmesio operacijas, kurių kiekviena turi skirtingas užklausos, rakto ir vertės matricų projekcijas. Šios lygiagrečios operacijos, arba "galvos", sutelkia dėmesį į skirtingas atvaizdavimo poerdves, praturtindamos modelio įvesties supratimą. Šių galvų išvestys yra sujungiamos ir tiesiškai projektuojamos, išlaikant skaičiavimo efektyvumą, panašų į vienos galvos dėmesį, sumažinant kiekvienos galvos matmenis (pvz., modelio matmenis dalijant iš galvų skaičiaus, pvz., 8).

Daugelio užklausų dėmesys (angl. Multi-query attention, MQA) optimizuoja MHA išvadoms, dalydamasis raktų ir verčių projekcijomis keliose dėmesio galvutėse, išlaikydamas kelių užklausų projekcijas. Taip sumažinamas atminties pralaidumo poreikis ir rakto-vertės (KV) talpyklos dydis, todėl galima naudoti didesnes partijas ir geriau išnaudoti skaičiavimus. Tačiau MQA gali šiek tiek sumažinti tikslumą, o norint išlaikyti našumą, modelius, kuriuose ji naudojama, reikia mokyti arba tikslinti įjungus MQA.

Grupinės užklausos dėmesys (GQA) suderina MHA ir MQA, grupuodamas užklausos galvutes ir dalydamasis rakto reikšmės projekcijomis kiekvienoje grupėje, taip pasiekiama beveik MHA kokybė, o skaičiavimo efektyvumas artimesnis MQA. Tokie modeliai kaip "Llama 2 70B" naudoja GQA, o modelius, išmokytus naudoti MHA, galima pritaikyti prie GQA minimaliai papildomai mokant. Tiek MQA, tiek GQA sumažina KV spartinančiosios atminties poreikį, nors ir toliau reikia optimizuoti spartinančiosios atminties valdymą.

"FlashAttention" patobulina dėmesio mechanizmus, pakeisdama skaičiavimų eiliškumą, kad būtų efektyviau išnaudojamos GPU atminties hierarchijos. Skirtingai nuo tradicinio apdorojimo sluoksnis po sluoksnio, "FlashAttention" sujungia operacijas ir naudoja "plytelių" metodą, kad vienu metu apskaičiuotų nedideles išvesties matricos dalis ir sumažintų atminties skaitymo ir rašymo operacijas. Šis įvesties ir išvesties operacijas suvokiantis tikslus dėmesio algoritmas sklandžiai integruojamas į esamus modelius be jokių pakeitimų, o optimizuojant duomenų judėjimą užtikrinamas žymus pagreitėjimas.

Rakto ir reikšmės spartinimas

KV spartinimas yra labai svarbus optimizavimo metodas, naudojamas didelių kalbos modelių (LLM) dekodavimo etape, siekiant pagerinti savasties skaičiavimų efektyvumą. Šiame etape kiekvienas sugeneruotas simbolis priklauso nuo visų ankstesnių simbolių, įskaitant apskaičiuotus išankstinio užpildymo etape ir vėlesniuose dekodavimo etapuose, rakto (K) ir vertės (V) tenzorių. Užuot iš naujo skaičiavus šiuos tenzorius kiekvienam žetonui kiekviename laiko žingsnyje, KV spartinančioji atmintis saugo juos GPU atmintyje, o naujus tenzorius į spartinančiąją atmintį įtraukia tada, kai jie apskaičiuojami. Paprastai kiekvienam modelio sluoksniui palaikoma atskira KV talpykla, todėl gerokai sumažėja nereikalingų skaičiavimų ir pagreitėja dekodavimo procesas.

Rakto ir reikšmės spartinimas
Rakto ir reikšmės spartinimas

LLM atminties poreikį GPU daugiausia lemia du komponentai: modelio svoriai ir KV talpykla. Modelio svoriai, kuriuos sudaro modelio parametrai, užima daug atminties; pavyzdžiui, 7 milijardų parametrų modeliui, pavyzdžiui, Llama 2 7B 16 bitų tikslumu, reikia maždaug 14 GB. Kita vertus, KV talpykloje saugomi savojo dėmesio tenzoriai, kad būtų išvengta perskaičiavimo, o jos dydį lemia tokie veiksniai kaip sluoksnių skaičius, dėmesio galvutės, galvutės matmenys ir tikslumas. Kiekvieno žetono talpyklos dydis apskaičiuojamas kaip 2 * num_layers * (num_heads * dim_head) * precision_in_bytes, kur koeficientas 2 atitinka K ir V matricas. Įėjimų partijai bendras KV talpyklos dydis priklauso nuo partijos dydžio ir sekos ilgio, todėl gali pasiekti didelį dydį, pavyzdžiui, ~2 GB Llama 2 7B modeliui, kurio sekos ilgis yra 4096, o partijos dydis - 1.

Efektyvus KV talpyklos valdymas kelia sunkumų dėl jos linijinio augimo, priklausomai nuo partijos dydžio ir sekos ilgio, o tai gali riboti našumą ir apsunkinti ilgo konteksto įvesties tvarkymą. Dažniausiai neefektyvumas atsiranda dėl statinio perteklinio rezervavimo, kai atmintis rezervuojama didžiausiam palaikomam sekos ilgiui (pvz., 2 048 ženklų), neatsižvelgiant į faktinį įvesties dydį. Tai lemia didelį atminties švaistymą arba fragmentaciją, nes didelė dalis rezervuotos vietos dažnai lieka nepanaudota per visą užklausos gyvavimo laiką, taip užimant vertingus GPU atminties išteklius.

Siekiant pašalinti šiuos trūkumus, PagedAttention algoritme įdiegtas naujas metodas, kurį įkvėpė operacinės sistemos puslapiavimas. Jis padalina KV talpyklą į fiksuoto dydžio blokus, kurių kiekvienas atitinka tam tikrą ženklų skaičių ir kurie gali būti saugomi atmintyje nesusietai. Blokų lentelė seka šiuos blokus ir prireikus juos parsisiunčia atliekant dėmesio skaičiavimus. Kai sukuriami nauji žetonai, papildomi blokai skiriami dinamiškai. Šis metodas sumažina atminties eikvojimą, nes nebereikia gretutinio paskirstymo ir perteklinio aprūpinimo, todėl galima naudoti didesnio dydžio partijas ir padidinti pralaidumą, todėl tai yra reikšminga pažanga valdant KV spartinančiąją atmintį LLM.

Modelio optimizavimas

Šiame skyriuje aptariami įvairūs didelių kalbos modelių (LLM) optimizavimo būdai, siekiant sumažinti jų atminties sąnaudas ir padidinti našumą naudojant GPU. Pagrindiniai metodai yra kvantavimas, retumas ir distiliavimas, kurių kiekvienas skirtas skirtingiems modelio efektyvumo aspektams. Šiais metodais keičiami modelio svoriai, išnaudojamas GPU aparatinės įrangos spartinimas ir žinios perkeliamos į mažesnius modelius, todėl didesni modeliai gali veikti ribotoje aparatinėje įrangoje, išlaikant našumą. Šie metodai gali sumažinti modelio tikslumą, todėl juos reikėtų naudoti atsargiai.

Kvantavimas sumažina modelio svorių ir aktyvacijų tikslumą, paprastai nuo 32 ar 16 bitų iki 8 ar mažiau bitų, todėl modeliai užima mažiau atminties ir efektyviau perduoda duomenis. Kvantavimas svorių yra paprastas dėl jų fiksuotos prigimties po mokymo, o aktyvacijų kvantavimas yra sudėtingesnis dėl išsklaidymų, kurie išplečia jų dinaminį diapazoną. Tokie metodai, kaip LLM.int8(), sprendžia šią problemą selektyviai taikydami didesnį tikslumą tam tikroms aktyvacijoms arba pakartotinai panaudodami dinaminį kvantuotų svorių diapazoną aktyvacijoms, nors GPU gali tekti konvertuoti svorius atgal į didesnį tikslumą operacijoms atlikti.

Išskirtinumas apima modelio reikšmių, artimų nuliui, atpjovimą, taip sukuriant retas matricas, kurioms reikia mažiau atminties. GPU palaiko struktūrizuotą retumą, pavyzdžiui, dvi iš keturių reikšmių atvaizduoja kaip nulius, o tai pagreitina skaičiavimus. Sujungus taupumą su kvantavimu galima dar labiau padidinti vykdymo greitį. Toliau tęsiami moksliniai tyrimai, kuriais siekiama ištirti optimalius retus LLM atvaizdavimus, o tai rodo, kad tai perspektyvi išvedimo greičio didinimo kryptis.

Distiliavimas perkelia žinias iš didesnio "mokytojo" modelio į mažesnį "mokinio" modelį, taip sumažinant dydį ir išsaugant našumą. Pavyzdžiui, "DistilBERT", palyginti su BERT, 40 % sumažina dydį ir 60 % padidina greitį, išlaikydamas 97 % savo galimybių. Distiliavimas gali apimti mokytojo rezultatų imitavimą arba mokytojo sukurtų duomenų naudojimą mokymui, o tokie metodai kaip "Distiliavimas žingsnis po žingsnio!" apima efektyvaus mokymosi racionalumą. Tačiau dėl ribojančių licencijų daugeliui pažangių mokymosi visą gyvenimą metodų ribojama galimybė naudotis distiliavimui tinkamais mokytojų modeliais.

Spekuliacinės išvados

Spekuliatyvioji išvada, dar vadinama spekuliatyviąja atranka arba asistuojamuoju generavimu, yra metodas, kuriuo galima lygiagretinti autoregresinių didelės kalbos modelių (LLM), pavyzdžiui, GPT stiliaus modelių, kurie paprastai generuoja tekstą simbolis po simbolio, vykdymą. Standartinio vykdymo metu kiekvieno simbolio kontekstas priklauso nuo visų ankstesnių simbolių, todėl lygiagretus generavimas neįmanomas, nes n-asis simbolis turi būti generuojamas prieš (n+1)-ąjį. Spekuliatyvioji išvada sprendžia šią problemą naudodama "pigesnį" juodraštinį modelį, kad vienu metu numatytų kelis būsimus tokenus, kuriuos lygiagrečiai patikrina arba atmeta pagrindinis modelis, todėl galima greičiau generuoti tekstą.

Šis procesas apima kelių ženklų tęsinio projekto generavimą naudojant mažiau išteklių reikalaujantį metodą, po kurio lygiagrečiai atliekamas pagrindinio modelio patikrinimas naudojant projektą kaip spėjamąjį kontekstą. Jei tikrinimo modelis atitinka projekto tęsinius, jie priimami; priešingu atveju nesutampantys ir vėlesni tęsiniai atmetami, o procesas kartojamas su nauju projektu. Žymenų juodraščiai gali būti generuojami taikant įvairius metodus, pavyzdžiui, mokant kelis modelius, iš anksto apmokyto modelio tikslią kelių galvų korekciją, kad būtų galima numatyti būsimus žymenis, arba naudojant mažesnį juodraštinį modelį kartu su didesniu ir pajėgesniu tikrinimo modeliu, kiekvienam iš jų esant saviems kompromisams.

Išskaidytos išvados

Išskaidytos išvados - tai metodas, kai skaičiavimo užduotys paskirstomos skirtingoms aparatinėms priemonėms, siekiant optimizuoti našumą, sąnaudas ir išteklių naudojimą. Tiksliau, atskiriami išankstinio užpildymo ir dekodavimo etapai. Išskaidžius šiuos etapus, kiekvieną iš jų galima priskirti geriausiai jo skaičiavimo poreikius atitinkančiai aparatinei įrangai, taip padidinant efektyvumą ir mastelio keitimą.

Išskaidytos išvados
Išskaidytos išvados

Išankstinis užpildymas reikalauja daug skaičiavimų, nes norint apdoroti visą įvesties užklausą ir sukurti KV talpyklas, reikia daugybės matricų daugiklių. Šiam etapui naudinga didelio našumo aparatinė įranga, pavyzdžiui, GPU arba TPU, kurie puikiai atlieka lygiagrečiuosius skaičiavimus. Kadangi išankstinis užpildymas yra vienkartinė užduotis vienai išvados užklausai, ją galima perkelti į centralizuotą, galingą skaičiavimo mazgą, optimizuotą tokiems darbo krūviams. Tokia sąranka leidžia greičiau apdoroti dideles užklausas ir sumažina naštą mažiau pajėgiems įrenginiams, todėl idealiai tinka debesų ar duomenų centrų aplinkoms, kuriose yra didelio našumo aparatinė įranga.

Dekodavimas, priešingai, yra susijęs su atmintimi ir iteraciniu simbolių generavimu, todėl daug dėmesio skiriama KV talpykloms. Jam reikia mažiau skaičiavimo galios, bet reikia greitos prieigos prie atminties, todėl jis tinka mažiau galingai, atminčiai optimizuotai aparatinei įrangai, pavyzdžiui, centriniams procesoriams arba kraštiniams įrenginiams. Perkeliant dekodavimą į atskirą aparatinę įrangą - potencialiai arčiau galutinio naudotojo, pavyzdžiui, vietinius serverius arba kraštinius įrenginius - išskaidyta išvada sumažina vėlinimą ir tinklo pralaidumo reikalavimus. Toks atskyrimas leidžia lanksčiai diegti, kai išankstinis užpildymas vykdomas aukštos klasės debesijos serveriuose, o dekodavimas - vietiniuose arba kraštiniuose įrenginiuose, optimizuojant išteklių paskirstymą ir užtikrinant veiksmingą mastelio keitimą tokioms taikomosioms programoms kaip realaus laiko pokalbių robotai arba interaktyvios dirbtinio intelekto sistemos.

Išvada

Pastaruoju metu buvo išrasta daug išvadų optimizavimo metodų, siekiant pagerinti LLM veikimą.

Norint įgyvendinti šiuos metodus, reikia gerai suprasti LLM architektūrą ir naudojamą aparatinę įrangą, todėl paprastai paprasčiau naudoti esamą išvedimo variklį, kuriame šie metodai jau įdiegti, pvz., vLLM, TensorRT-LLM, LMDeploy ir kt. Iš tikrųjų šiuos metodus įgyvendinome savo inferencijos variklyje "NLP Cloud" ir parašėme tinklaraščio įrašą apie inferencijos variklius, jei norite diegti savo modelius: galite perskaityti čia.

Jei negalite arba nenorite patys diegti savo LLM, galite naudotis "NLP Cloud" ir naudoti greitus generatyvinius dirbtinio intelekto 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