Ollama või vLLM: viie samaaegse kasutaja järel muutub võitja

|Autor: QUASA toimetus|5 min lugemist| 1
Ollama või vLLM: viie samaaegse kasutaja järel muutub võitja

Ühe arendaja kohaliku töö jaoks on Ollama tavaliselt lihtsam valik; püsiva mitme kasutajaga teenuse puhul muutub vLLMi läbilase kaalukamaks. GigaGPU koormusvõrdlus soovitab kaaluda vahetust umbes viie samaaegse kasutaja järel. Viit kasutajat katses eraldi ei mõõdetud: see on praktiline otsustuspiir, mitte täpne jõudluse murdepunkt.

Piiri taga on vahe üksiku vastuse kiiruse ja kogu teenuse suutlikkuse vahel. SitePointi RTX 4090 võrdlustabelis andis Llama 3.1 8B ühe kasutajaga Ollamas 62 ja vLLMis 71 väljundtokenit sekundis; 50 kasutajaga oli koguläbilase vastavalt 155 ja 920 tokenit sekundis ning avaldatud p99 vastuseaeg 24,7 ja 2,8 sekundit. Ligikaudu kuuekordne läbilaskevahe puudutab just neid seadistusi: Ollama kasutas Q4_K_M, vLLM FP16 mudelikaale. Avaldatud näidisskript ei väljasta tabeli koguläbilaset ning kasutab voogedastuseta päringuid, mistõttu tabeli kõiki näitajaid ei saa üksnes selle skriptiga taastada.

Üks kasutaja, väike meeskond ja koormatud teenus

Ühe aktiivse päringu puhul ei otsusta valikut tingimata väike erinevus tokenikiiruses. Arendaja võib võita rohkem ajas, mis kulub mudeli allalaadimisele, käivitamisele ja vahetamisele. Kui mudel töötab oma masinas ning päringud ei kuhju, on Ollama lihtne mudelihaldus väärtuslikum kui serveri võimalik läbilaskevaru. Kiirem üksikvastus ei tähenda automaatselt mugavamat kohalikku töövoogu.

Umbes viie samaaegse päringu juures muutub oluliseks, kas uus päring alustab kohe või ootab järjekorras. Sama kasutajate arv võib tähendada eri koormust: lühikeste küsimuste vahel jääb GPU jõude, pikkade vastuste puhul püsib see hõivatud. Seetõttu ei saa kasutajate arvu võtta serveri püsiva omadusena. Määrav on ühel ajal töös olevate päringute hulk, nende sisendi pikkus ja soovitud väljund.

Viiekümne samaaegse päringu korral näitavad avaldatud katsed juba koguläbilaske suurt erinevust. Teine, suurema mudeli ja teise GPUga tehtud katse kirjeldab sama suunda, kuid selle absoluutseid tokenikiirusi ei saa väiksema mudeli tulemustega kokku liita. Ühe kasutaja tokenid sekundis mõõdavad individuaalset kogemust; mitme kasutaja koguläbilase näitab, kui palju tööd server ajaühikus lõpetab. Teenuse jaoks tuleb vaadata mõlemat.

Miks Ollama rööpsuse suurendamine ei ole tasuta?

Ollama rööpsete päringute suurendamine nõuab samal GPU-l rohkem kontekstimälu.

Ollama ei piirdu ühe päringuga korraga. Ollama rööpsuse juhend ütleb, et ühe mudeli paralleelpäringute vaikepiir on üks, seda saab muuta seadistusega OLLAMA_NUM_PARALLEL ning suurem rööpsus kasvatab kontekstide mälutarvet; täitunud järjekorra korral võib server vastata veaga 503. See tähendab, et viie aktiivse kliendi jaoks saab valida suurema paralleelsuse või lasta osal päringutest oodata. Mõlemal valikul on kasutaja jaoks hind.

Kontekstide mälukulu loeb eriti siis, kui pikad sisendid jõuavad serverisse korraga. Kui mudel ja aktiivsete päringute kontekstid ei mahu GPU mällu, ei tee pelk paralleelsuse suurendamine vastuseid kiiremaks. Väikese sisetööriista puhul võib järjekord olla vastuvõetav; interaktiivses teenuses jõuab see kiiresti aeglaseimate vastuste latentsusse. Serveri seadistust tuleb seega hinnata koos mudeli suuruse ja tegelike vestluste pikkusega.

Ollama võimalus hoida mitu mudelit mälus on samuti piiratud vaba mäluga. Kui rakendus vahetab mudelite vahel, võib mudeli laadimine lisada viivituse isegi siis, kui korraga tegutseb vähe inimesi. See on teistsugune koormus kui paljude klientide teenindamine ühe mudeliga ning seda ei kirjelda ühe mudeli koguläbilaske tabel.

Kvantimine muudab mälupildi ja kiirusvõrdluse tähendust

Esimese katse Ollama tulemus pärines neljabitise Q4_K_M mudeliga seadistusest, vLLMi põhitulemus FP16 kaaludega seadistusest. Selline võrdlus vastab levinud kasutusviisidele, kuid ei eralda serveri mõju kaaluvormingu mõjust. Väiksemad kaalud jätavad GPU mällu rohkem ruumi kontekstidele; teistsugune täpsus võib muuta nii arvutuskoormust kui ka vastuste kvaliteeti. Seetõttu ei tähenda väiksem mälukulu üksinda, et sama server kasutaks mälu tõhusamalt.

Avaldatud võrdlus sisaldab ka vLLMi AWQ varianti. See annab neljabitisele Ollama variandile lähema lähtekoha kui FP16, ehkki AWQ ja Q4_K_M ei ole sama vorming ega pruugi anda identseid vastuseid. Kui eesmärk on valida rakendusele sobiv terviklahendus, on eri vormingute võrdlemine mõistlik. Siis tuleb tulemuseks nimetada mudeli, kvantimise, serveri ja seadistuse koosmõju, mitte ühe tarkvara universaalset võitu.

Mälupiir võib otsuse teha enne jõudlusgraafikut. Kui vajalik FP16 mudel koos soovitud kontekstidega GPU-sse ei mahu, ei saa selle läbilaset olemasoleval riistvaral kasutada. Kvanditud mudel võib anda väiksemal masinal toimiva teenuse, kuid selle vastuste sobivust tuleb hinnata sama ülesande peal. Suurema GPU puhul võib seevastu olla mõistlik kulutada mälu paralleelsete päringute teenindamisele.

API sobivus ja teenuse töökindlus

Ollama ja vLLMi avaldatud p99 vastuseajad lahknevad 50 samaaegse kasutaja korral.

Ollama kohalik API võimaldab enamat kui lihtsat tekstipäringut. Ollama API kirjeldus hõlmab voogedastust, tööriistakutseid, JSON-skeemiga väljundit ja keep_alive parameetrit mudeli mälus hoidmise määramiseks. Need võimalused katavad paljud väikese rakenduse vajadused. keep_alive võib vähendada sagedase laadimise viivitust, kuid mälus hoitav mudel jätab teistele mudelitele ja päringutele vähem ruumi.

vLLMi ametlik käivitusjuhend kirjeldab pakktöötlust ning OpenAI protokolliga ühilduvat serverit, mis teenindab korraga üht mudelit. See sobib olukorda, kus paljud kliendid küsivad vastuseid samalt mudelilt. Kui rakendus peab pakkuma mitut eraldi mudelit, tuleb nende jaoks kavandada eraldi serverieksemplarid ja päringute suunamine. API ühilduvus lihtsustab ühendamist, kuid enne vahetust loevad rakenduse kasutatavad lõpp-punktid, vastuseväljad ja mudeli vestlusmall.

Töökindluse mõõt ei ole ainult see, kas server võtab päringu vastu. Oluline on ka õnnestunud päringute osakaal, järjekorra pikkus ja aeg, mille jooksul saabub aeglaseim vastus. Voogedastusega vestluses tasub eristada esimese tokeni saabumist vastuse täielikust valmimisest; voogedastuseta päringu kogukestus ei mõõda esimest tokenit. Nii saab valida Ollama lihtsama kohaliku töövoo ja vLLMi suurema teenindusvaru vahel selle järgi, mida kasutajad tegelikult ootavad.

Loe ka:

Jaga:

Telli meie uudiskiri

Saa värskeimad Web3, AI ja krüptouudised otse oma postkasti.

0