„Pokretanje AI-ja” obuhvaća dvije potrebe koje ne traže istu veličinu poslužitelja. Aplikacija koja poziva model putem API-ja dimenzionira se kao svaka web aplikacija; model koji radi na samom poslužitelju dimenzionira se prije svega prema memoriji. Ovaj vodič razdvaja ta dva slučaja, daje memorijski otisak uobičajenih modela i način na koji se izračunava.
Većina aplikacija koje „koriste AI” (asistenti, agenti, sažeci, izdvajanje podataka, pretraživanje dokumenata) poziva model koji hostira njegov izdavač, putem API-ja. Izračun se odvija kod njega; vaš poslužitelj priprema zahtjev, čeka odgovor i obrađuje ga. Tada se dimenzionira kao svaka web aplikacija: prema jeziku, bazi podataka i broju istovremenih korisnika.
Drugi je slučaj model koji radi na samom poslužitelju, uz Ollamu, llama.cpp ili neku Python biblioteku. Razlozi su poznati: podaci koji ostaju na vašoj infrastrukturi, fiksni trošak bez obzira na broj zahtjeva, pozadinska obrada velikih količina podataka, specijalizirani model. Tada cijeli model mora stati u memoriju, i on određuje veličinu.
| Što poslužitelj radi | Resurs koji odlučuje | Polazna točka |
|---|---|---|
| Poziva model putem API-ja (asistent, agent, chatbot) | Memorija aplikacije | 2 vCPU, 4 GB |
| Uz to izračunava embeddinge i pretražuje vektorsku bazu (pgvector) | Memorija za vektore i njihov indeks | 2 do 4 vCPU, 6 do 8 GB |
| Pokreće mali model od 1 do 4 milijarde parametara, za pozadinsku obradu | Memorija, zatim procesor | 4 vCPU, 8 GB |
| Pokreće model od 7 do 8 milijardi parametara za nekoliko korisnika | Memorija i njezina propusnost | 6 do 8 vCPU, 16 GB |
| Pokreće model od 12 do 14 milijardi parametara, s dugim kontekstom | Memorija | 8 vCPU, 24 GB |
Zahtjev modelu putem API-ja traje od jedne do nekoliko desetaka sekundi, osobito kada se odgovor šalje postupno (streaming). Za to vrijeme vaš poslužitelj gotovo ništa ne računa: čeka. Važna je njegova sposobnost da drži mnogo zahtjeva na čekanju, a da pritom ne blokira ostale:
proxy_read_timeout).Potrebna memorija je ona aplikacije i njezine baze: 4 GB pokrivaju Python ili Node.js aplikaciju s PostgreSQL-om pri pokretanju. Uobičajena konfiguracija, Next.js sučelje, FastAPI API i PostgreSQL baza koji pozivaju model putem API-ja, staje u 6 do 8 GB, uključujući kompilaciju sučelja.
Aplikacija koja pretražuje vaše dokumente (RAG, retrieval-augmented generation) pretvara svaki odlomak u vektor, a zatim pronalazi one najbliže pitanju. Dvije stavke treba dimenzionirati:
Tip halfvec u pgvectoru sprema svaku dimenziju u 2 bajta umjesto 4: upola manje memorije, uz kvalitetu pretraživanja koja ostaje vrlo bliska.
Jezični model je datoteka težina koja se za odgovaranje u cijelosti učitava u memoriju. Njegova veličina ovisi o broju parametara i o kvantizaciji, preciznosti s kojom je pohranjena svaka težina. Format GGUF, koji koriste llama.cpp i Ollama, nudi kvantizacije od 2 do 16 bitova; varijanta Q4_K_M, od oko 4 bita, uobičajen je kompromis između veličine i kvalitete.
| Veličina modela | Primjeri | 4 bita (Q4_K_M) | 8 bitova (Q8_0) | 16 bitova |
|---|---|---|---|---|
| 1 do 3 milijarde parametara | 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 milijardi | 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 milijardi | Mistral Nemo 12B, Qwen2.5 14B | 7,5 do 9 GB | 13 do 16 GB | 25 do 30 GB |
| 32 milijarde | Qwen2.5 32B | oko 20 GB | oko 35 GB | oko 65 GB |
| 70 milijardi | Llama 3.3 70B | oko 43 GB | oko 75 GB | oko 140 GB |
Toj se težini dodaju dvije stavke:
Primjer. Llama 3.1 8B uz 4 bita, dva istovremena razgovora od 8 000 tokena i mala aplikacija: 5 GB za model, 2 GB za kontekst, 2 GB za aplikaciju i sustav, ukupno 9 GB, a uz 25 % rezerve oko 12 GB.
Da bi proizveo svaki token, model iznova čita sve svoje težine iz memorije. Na procesoru je brzina generiranja stoga ograničena propusnošću memorije više nego brojem jezgri: model od 5 GB na stroju koji čita 25 GB u sekundi doseže najviše oko 5 tokena u sekundi, i prije nego što se uračuna sam izračun.
Razlikuju se dvije faze:
U praksi, na nekoliko vCPU-a, model od 7 do 8 milijardi parametara kvantiziran na 4 bita proizvodi nekoliko tokena u sekundi. To je ugodno za pozadinsku obradu (razvrstavanje poruka, izdvajanje polja iz dokumenta, noćno sažimanje onoga što je stiglo tijekom dana) i za internog asistenta. Interaktivna upotreba u velikom opsegu, kao i modeli od nekoliko desetaka milijardi parametara, izvode se na grafičkoj kartici (GPU).
Mjerenje presuđuje: llama-bench, koji dolazi uz llama.cpp, daje brzinu obiju faza na vašem poslužitelju, za vaš model.
llama-bench -m model-Q4_K_M.gguf -p 512 -n 128
Model na disku zauzima otprilike onoliko koliko i u memoriji: 5 GB za model od 8 milijardi parametara uz 4 bita. Predvidite prostor za dva ili tri modela ili inačice, vektorske indekse, izvorne dokumente i bazu podataka. NVMe SSD učitava model za nekoliko sekundi pri pokretanju usluge, što je važno pri svakom ponovnom pokretanju.
Red veličine: 50 GB za aplikaciju koja poziva model putem API-ja, 80 do 120 GB čim model i njegovi dokumenti žive na poslužitelju.
S Ollamom pokretanje staje u dvije naredbe:
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b
Ollama prema zadanim postavkama sluša na 127.0.0.1:11434, odnosno prihvaća veze samo sa samog poslužitelja. Zadržite tu postavku: njezin API ne traži nikakvu autentifikaciju, a instanca otvorena prema internetu služi bilo koga, na vašim resursima. Vaša aplikacija, na istom poslužitelju, s njom razgovara lokalno; ako je mora pozivati neki drugi poslužitelj, koristite proxy koji autentificira zahtjeve ili privatnu mrežu.
Zatim veličinu konteksta (num_ctx) podesite prema onome što vašim zahtjevima treba: ona povećava zauzetu memoriju, razgovor po razgovor.
VPS Pro radi na procesorima Intel Xeon, ECC memoriji i zrcaljenim NVMe SSD-ovima, s root pristupom za instalaciju Ollame, llama.cpp-a, pgvectora ili vlastitog skupa alata. Cjelovita podrška je uključena: opišite nam svoj projekt, API ili model na poslužitelju, i savjetovat ćemo vam veličinu, a zatim za svako pitanje postavljamo dijagnozu i kažemo vam što učiniti, od sustava do koda vaše aplikacije.
Da. llama.cpp i Ollama izvode kvantizirane modele na procesoru. Model od 7 do 8 milijardi parametara uz 4 bita traži oko 5 GB memorije i na nekoliko vCPU-a proizvodi nekoliko tokena u sekundi, što odgovara pozadinskim obradama i internim asistentima.
Oko 5 GB za model kvantiziran na 4 bita (Q4_K_M), plus 1 GB po razgovoru od 8 000 tokena, plus aplikacija i sustav. Poslužitelj od 8 GB pokreće sam model; 16 GB ostavlja prostora za aplikaciju, bazu podataka i više razgovora.
API daje pristup najmoćnijim modelima, bez posebnog poslužitelja, uz trošak po zahtjevu. Model na poslužitelju zadržava podatke kod vas i fiksira trošak, uz kompaktniji model. Mnoge aplikacije kombiniraju oboje: embeddinge i razvrstavanje na poslužitelju, pisanje teksta putem API-ja.
Oko 50 GB za aplikaciju koja poziva model putem API-ja. Čim model živi na poslužitelju, predvidite 80 do 120 GB: model od 8 milijardi parametara uz 4 bita teži 5 GB, a često se čuva više njegovih inačica, zajedno s dokumentima i njihovim vektorskim indeksima.
Simafri
Porazgovarajmo o Vašem projektu
Recite nam u nekoliko riječi što trebate: javljamo Vam se brzo.
Hvala! Vaš upit je poslan. Javit ćemo vam se uskoro.
Više volite e-mail? Pišite nam na support@simafri.com.