„Poganjati umetno inteligenco“ zajema dve potrebi, ki ne zahtevata enake velikosti strežnika. Aplikacija, ki model kliče prek API-ja, se dimenzionira kot vsaka spletna aplikacija; model, ki teče na samem strežniku, se dimenzionira predvsem po pomnilniku. Ta vodnik oba primera loči, poda velikost pogostih modelov v pomnilniku in način, kako jo izračunate.
Večina aplikacij, ki „uporabljajo umetno inteligenco“ (asistenti, agenti, povzetki, pridobivanje podatkov, iskanje po dokumentih), prek API-ja kliče model, ki ga gosti njegov ponudnik. Računanje poteka pri njem; vaš strežnik pripravi zahtevo, počaka na odgovor in ga obdela. Dimenzionira se torej kot vsaka spletna aplikacija: po jeziku, podatkovni zbirki in številu sočasnih uporabnikov.
Drugi primer je model, ki teče na samem strežniku, z Ollamo, llama.cpp ali knjižnico v Pythonu. Razlogi so znani: podatki, ki ostanejo v vaši infrastrukturi, stalen strošek ne glede na število zahtev, obdelava velikih količin v ozadju, specializiran model. Tedaj mora biti v pomnilniku celoten model, in prav on določi velikost.
| Kaj počne strežnik | Vir, ki odloča | Izhodišče |
|---|---|---|
| Kliče model prek API-ja (asistent, agent, klepetalni bot) | Pomnilnik aplikacije | 2 vCPU, 4 GB |
| Računa tudi vložitve in poizveduje po vektorski zbirki (pgvector) | Pomnilnik vektorjev in njihovega indeksa | 2 do 4 vCPU, 6 do 8 GB |
| Poganja manjši model z 1 do 4 milijardami parametrov, za obdelavo v ozadju | Pomnilnik, nato procesor | 4 vCPU, 8 GB |
| Poganja model s 7 do 8 milijardami parametrov za nekaj uporabnikov | Pomnilnik in njegova pasovna širina | 6 do 8 vCPU, 16 GB |
| Poganja model z 12 do 14 milijardami parametrov, z dolgim kontekstom | Pomnilnik | 8 vCPU, 24 GB |
Zahteva modelu prek API-ja traja od ene do več deset sekund, zlasti kadar se odgovor pretaka sproti (streaming). Ves ta čas vaš strežnik skoraj nič ne računa: čaka. Šteje njegova zmožnost, da hkrati drži veliko zahtev na čakanju, ne da bi blokiral druge:
proxy_read_timeout).Potreben pomnilnik je pomnilnik aplikacije in njene podatkovne zbirke: 4 GB ob zagonu pokrijejo aplikacijo v Pythonu ali Node.js s PostgreSQL. Pogosta postavitev, vmesnik Next.js, API FastAPI in podatkovna zbirka PostgreSQL, ki model kličejo prek API-ja, se prilega v 6 do 8 GB, vključno s prevajanjem vmesnika.
Aplikacija, ki išče po vaših dokumentih (RAG, retrieval-augmented generation), vsak odlomek pretvori v vektor, nato pa poišče tiste, ki so vprašanju najbližji. Dimenzionirati je treba dve postavki:
Tip halfvec v pgvector vsako dimenzijo shrani v 2 bajta namesto v 4: polovica pomnilnika, pri kakovosti iskanja, ki ostane zelo blizu.
Jezikovni model je datoteka uteži, ki se za odgovarjanje v celoti naloži v pomnilnik. Njegova velikost je odvisna od števila parametrov in od kvantizacije, natančnosti, s katero je shranjena vsaka utež. Format GGUF, ki ga uporabljata llama.cpp in Ollama, ponuja kvantizacije od 2 do 16 bitov; različica Q4_K_M, okoli 4 bitov, je običajen kompromis med velikostjo in kakovostjo.
| Velikost modela | Primeri | 4 biti (Q4_K_M) | 8 bitov (Q8_0) | 16 bitov |
|---|---|---|---|---|
| 1 do 3 milijarde parametrov | Llama 3.2 3B, Qwen2.5 3B | 1 do 2 GB | 1,3 do 3,5 GB | 2,5 do 6,5 GB |
| 7 do 8 milijard | Mistral 7B, Llama 3.1 8B, Qwen2.5 7B | 4,4 do 5 GB | 7,7 do 8,5 GB | 14,5 do 16 GB |
| 12 do 14 milijard | Mistral Nemo 12B, Qwen2.5 14B | 7,5 do 9 GB | 13 do 16 GB | 25 do 30 GB |
| 32 milijard | Qwen2.5 32B | približno 20 GB | približno 35 GB | približno 65 GB |
| 70 milijard | Llama 3.3 70B | približno 43 GB | približno 75 GB | približno 140 GB |
Tej velikosti se dodata dve postavki:
Primer. Llama 3.1 8B pri 4 bitih, dva sočasna pogovora po 8000 žetonov in manjša aplikacija: 5 GB za model, 2 GB za kontekst, 2 GB za aplikacijo in sistem, skupaj 9 GB, s 25 % rezerve pa približno 12 GB.
Za vsak izdelan žeton model znova prebere vse svoje uteži v pomnilniku. Na procesorju je hitrost generiranja zato omejena bolj s pasovno širino pomnilnika kot s številom jeder: model s 5 GB na stroju, ki bere 25 GB na sekundo, doseže zgornjo mejo okoli 5 žetonov na sekundo, še preden upoštevamo računanje.
Ločimo dve fazi:
V praksi na nekaj vCPU model s 7 do 8 milijardami parametrov, kvantiziran na 4 bite, izdela nekaj žetonov na sekundo. To je udobno za obdelavo v ozadju (razvrščanje sporočil, pridobivanje polj iz dokumenta, ponočni povzetek tega, kar je prispelo čez dan) in za notranjega asistenta. Interaktivna raba v velikem obsegu in modeli z več deset milijardami parametrov tečejo na grafični kartici (GPU).
Odloči meritev: llama-bench, ki je priložen llama.cpp, poda hitrost obeh faz na vašem strežniku, za vaš model.
llama-bench -m model-Q4_K_M.gguf -p 512 -n 128
Model na disku zasede približno toliko kot v pomnilniku: 5 GB za model z 8 milijardami parametrov pri 4 bitih. Računajte s prostorom za dva ali tri modele ali različice, vektorske indekse, izvorne dokumente in podatkovno zbirko. NVMe SSD model ob zagonu storitve naloži v nekaj sekundah, kar šteje ob vsakem ponovnem zagonu.
Red velikosti: 50 GB za aplikacijo, ki model kliče prek API-ja, od 80 do 120 GB, takoj ko model in njegovi dokumenti živijo na strežniku.
Z Ollamo zagon zahteva dva ukaza:
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b
Ollama privzeto posluša na 127.0.0.1:11434, torej samo s samega strežnika. To nastavitev obdržite: njen API ne zahteva nobene overitve, in primerek, odprt v internet, streže komur koli, na vaših virih. Vaša aplikacija na istem strežniku z njo govori lokalno; če mora do nje dostopati drug strežnik, uporabite posredniški strežnik, ki overja zahteve, ali zasebno omrežje.
Nato velikost konteksta (num_ctx) nastavite na to, kar vaše zahteve potrebujejo: prav ta veča porabo pomnilnika, pogovor za pogovorom.
VPS Pro teče na procesorjih Intel Xeon, pomnilniku ECC in zrcaljenih NVMe SSD, z dostopom root za namestitev Ollame, llama.cpp, pgvector ali vašega lastnega sklada. Celovita podpora je vključena: opišite nam svoj projekt, API ali model na strežniku, svetujemo vam velikost, nato pa ob vsakem vprašanju postavimo diagnozo in vam povemo, kaj storiti, od sistema do kode vaše aplikacije.
Da. llama.cpp in Ollama kvantizirane modele poganjata na procesorju. Model s 7 do 8 milijardami parametrov pri 4 bitih potrebuje približno 5 GB pomnilnika in na nekaj vCPU izdela nekaj žetonov na sekundo, kar ustreza obdelavam v ozadju in notranjim asistentom.
Približno 5 GB za model, kvantiziran na 4 bite (Q4_K_M), plus 1 GB na pogovor z 8000 žetoni, plus aplikacija in sistem. Strežnik z 8 GB poganja sam model; 16 GB pusti prostor za aplikacijo, podatkovno zbirko in več pogovorov.
API odpre dostop do najzmogljivejših modelov, brez posebnega strežnika, s stroškom na zahtevo. Model na strežniku ohrani podatke pri vas in strošek naredi stalen, z bolj kompaktnim modelom. Veliko aplikacij združuje oboje: vložitve in razvrščanje na strežniku, pisanje prek API-ja.
Približno 50 GB za aplikacijo, ki model kliče prek API-ja. Takoj ko model živi na strežniku, predvidite od 80 do 120 GB: model z 8 milijardami parametrov pri 4 bitih tehta 5 GB, pogosto pa se hrani več njegovih različic, skupaj z dokumenti in njihovimi vektorskimi indeksi.
Simafri
Pogovorimo se o vašem projektu
Povejte nam v nekaj besedah, kaj potrebujete: hitro se vam oglasimo.
Hvala! Vaše povpraševanje je bilo poslano. Kmalu vam bomo odgovorili.
Imate raje e-pošto? Pišite nam na support@simafri.com.