„MI-t futtatni”: ez két olyan igényt takar, amelyekhez nem ugyanakkora szerver kell. Az az alkalmazás, amely API-n keresztül hív egy modellt, ugyanúgy méretezendő, mint bármely webalkalmazás; a magán a szerveren futtatott modellt viszont elsősorban a memóriája alapján kell méretezni. Ez az útmutató szétválasztja a két esetet, megadja a gyakori modellek memóriaigényét és kiszámításának módját.
A legtöbb „MI-t használó” alkalmazás (asszisztensek, ágensek, összefoglalók, adatkinyerés, keresés dokumentumokban) a szolgáltatója által üzemeltetett modellt hívja meg, API-n keresztül. A számítás nála történik; az Ön szervere előkészíti a kérést, megvárja a választ, és feldolgozza. Ilyenkor úgy méretezendő, mint bármely webalkalmazás: a nyelve, az adatbázisa és az egyidejű felhasználók száma szerint.
A másik eset a magán a szerveren futtatott modell, Ollamával, llama.cpp-vel vagy egy Python-könyvtárral. Az okok ismertek: az adatok az Ön infrastruktúráján maradnak, a költség a kérések számától függetlenül rögzített, nagy mennyiségek háttérfeldolgozása, egy szakosodott modell. Ilyenkor a teljes modellnek el kell férnie a memóriában, és ez határozza meg a méretet.
| Amit a szerver csinál | A döntő erőforrás | Kiindulópont |
|---|---|---|
| API-n keresztül hív egy modellt (asszisztens, ágens, chatbot) | Az alkalmazás memóriája | 2 vCPU, 4 GB |
| Embeddingeket is számol, és vektoradatbázist kérdez le (pgvector) | A vektorok és indexük memóriája | 2 és 4 vCPU között, 6 és 8 GB között |
| Egy 1 és 4 milliárd közötti paraméterszámú kis modellt futtat, háttérfeldolgozásra | A memória, majd a processzor | 4 vCPU, 8 GB |
| Egy 7 vagy 8 milliárd paraméteres modellt futtat néhány felhasználónak | A memória és a sávszélessége | 6 és 8 vCPU között, 16 GB |
| Egy 12 és 14 milliárd közötti paraméterszámú modellt futtat, hosszú kontextussal | A memória | 8 vCPU, 24 GB |
Egy API-n keresztüli modellhívás egy másodperctől több tíz másodpercig tart, különösen ha a válasz folyamatosan, darabonként érkezik (streaming). Ezalatt a szervere szinte semmit sem számol: vár. Az számít, hogy sok kérést tudjon várakoztatni anélkül, hogy a többit blokkolná:
proxy_read_timeout).A tervezendő memória az alkalmazásé és az adatbázisáé: induláskor 4 GB lefed egy PostgreSQL-t használó Python- vagy Node.js-alkalmazást. Egy gyakori felállás, egy Next.js-felület, egy FastAPI-API és egy PostgreSQL-adatbázis, amelyek API-n keresztül hívnak egy modellt, 6 és 8 GB között elfér, a felület fordításával együtt.
Az az alkalmazás, amely az Ön dokumentumaiban keres (RAG, retrieval-augmented generation), minden szövegrészt vektorrá alakít, majd megkeresi a kérdéshez legközelebb esőket. Két tételt kell méretezni:
A pgvector halfvec típusa minden dimenziót 4 helyett 2 bájton tárol: feleannyi memória, nagyon hasonló keresési minőség mellett.
Egy nyelvi modell egy súlyokat tartalmazó fájl, amelyet a válaszadáshoz teljes egészében be kell tölteni a memóriába. Mérete a paraméterek számától és a kvantálástól függ, vagyis attól a pontosságtól, amellyel minden súlyt tárolnak. A GGUF formátum, a llama.cpp és az Ollama formátuma, 2 és 16 bit közötti kvantálásokat kínál; a nagyjából 4 bites Q4_K_M változat a szokásos kompromisszum a méret és a minőség között.
| A modell mérete | Példák | 4 bit (Q4_K_M) | 8 bit (Q8_0) | 16 bit |
|---|---|---|---|---|
| 1 és 3 milliárd paraméter között | Llama 3.2 3B, Qwen2.5 3B | 1 és 2 GB között | 1,3 és 3,5 GB között | 2,5 és 6,5 GB között |
| 7 és 8 milliárd között | Mistral 7B, Llama 3.1 8B, Qwen2.5 7B | 4,4 és 5 GB között | 7,7 és 8,5 GB között | 14,5 és 16 GB között |
| 12 és 14 milliárd között | Mistral Nemo 12B, Qwen2.5 14B | 7,5 és 9 GB között | 13 és 16 GB között | 25 és 30 GB között |
| 32 milliárd | Qwen2.5 32B | nagyjából 20 GB | nagyjából 35 GB | nagyjából 65 GB |
| 70 milliárd | Llama 3.3 70B | nagyjából 43 GB | nagyjából 75 GB | nagyjából 140 GB |
Ehhez a súlyhoz két további tétel adódik:
Példa. Llama 3.1 8B 4 biten, két egyidejű, 8000 tokenes beszélgetés és egy kis alkalmazás: 5 GB a modell, 2 GB a kontextus, 2 GB az alkalmazás és a rendszer, összesen 9 GB, 25% tartalékkal pedig nagyjából 12 GB.
Minden token előállításához a modell újraolvassa a memóriából az összes súlyát. Processzoron a generálás sebességét ezért inkább a memória sávszélessége korlátozza, mint a magok száma: egy 5 GB-os modell egy másodpercenként 25 GB-ot olvasó gépen nagyjából másodpercenként 5 tokennél éri el a plafonját, még mielőtt a számítást figyelembe vennénk.
Két fázis különíthető el:
A gyakorlatban néhány vCPU-n egy 7 vagy 8 milliárd paraméteres, 4 bitre kvantált modell másodpercenként néhány tokent állít elő. Ez kényelmes háttérfeldolgozáshoz (üzenetek osztályozása, mezők kinyerése egy dokumentumból, a nap folyamán beérkezettek éjszakai összefoglalása) és belső asszisztenshez. A nagy léptékű interaktív felhasználás és a több tízmilliárd paraméteres modellek grafikus kártyán (GPU) futnak.
A mérés dönt: a llama.cpp-vel együtt szállított llama-bench megadja a két fázis sebességét az Ön szerverén, az Ön modelljével.
llama-bench -m modell-Q4_K_M.gguf -p 512 -n 128
Egy modell a lemezen nagyjából annyi helyet foglal, mint a memóriában: egy 4 bites, 8 milliárd paraméteres modell 5 GB-ot. Számoljon helyet két vagy három modellnek vagy verziónak, a vektorindexeknek, a forrásdokumentumoknak és az adatbázisnak. Egy NVMe SSD a szolgáltatás indulásakor néhány másodperc alatt betölti a modellt, ami minden újraindításkor számít.
Nagyságrendileg: 50 GB egy API-n keresztül modellt hívó alkalmazásnak, 80 és 120 GB között, amint egy modell és a dokumentumai a szerveren élnek.
Az Ollamával az indulás két parancs:
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b
Az Ollama alapértelmezés szerint a 127.0.0.1:11434 címen figyel, vagyis csak magáról a szerverről érhető el. Tartsa meg ezt a beállítást: az API-ja semmilyen hitelesítést nem kér, és egy internet felé nyitott példány bárkit kiszolgál, az Ön erőforrásain. Az Ön alkalmazása ugyanazon a szerveren helyben kommunikál vele; ha egy másik szervernek is el kell érnie, használjon olyan proxyt, amely hitelesíti a kéréseket, vagy egy privát hálózatot.
Ezután állítsa a kontextus méretét (num_ctx) arra, amire a kéréseinek szükségük van: ez növeli a foglalt memóriát, beszélgetésről beszélgetésre.
A VPS Pro Intel Xeon processzorokon, ECC memórián és tükrözött NVMe SSD-ken fut, root-hozzáféréssel az Ollama, a llama.cpp, a pgvector vagy a saját technológiai stackje telepítéséhez. A Teljes körű támogatás a csomag része: írja le a projektjét, API vagy modell a szerveren, mi javasoljuk a méretet, majd minden kérdésnél diagnosztizálunk, és megmondjuk, mit tegyen, a rendszertől egészen az alkalmazása kódjáig.
Igen. A llama.cpp és az Ollama processzoron futtatja a kvantált modelleket. Egy 7 vagy 8 milliárd paraméteres modell 4 biten nagyjából 5 GB memóriát igényel, és néhány vCPU-n másodpercenként néhány tokent állít elő, ami háttérfeldolgozáshoz és belső asszisztensekhez megfelelő.
Nagyjából 5 GB a 4 bitre kvantált (Q4_K_M) modellnek, plusz 1 GB minden 8000 tokenes beszélgetésre, plusz az alkalmazás és a rendszer. Egy 8 GB-os szerver önmagában futtatja a modellt; 16 GB helyet hagy az alkalmazásnak, az adatbázisnak és több beszélgetésnek.
Az API a legerősebb modellekhez ad hozzáférést, különleges szerver nélkül, kérésenkénti költséggel. A szerveren futó modell Önnél tartja az adatokat, és rögzíti a költséget, egy kompaktabb modellel. Sok alkalmazás kombinálja a kettőt: embeddingek és osztályozás a szerveren, szövegírás API-n keresztül.
Nagyjából 50 GB egy API-n keresztül modellt hívó alkalmazáshoz. Amint egy modell a szerveren él, tervezzen 80 és 120 GB közötti lemezzel: egy 8 milliárd paraméteres, 4 bites modell 5 GB, és gyakran több verziót is megtartanak belőle, a dokumentumokkal és a vektorindexeikkel együtt.
Simafri
Beszéljünk a weboldaláról
Meséljen néhány szóban a projektjéről: hamarosan jelentkezünk.
Köszönjük! Kérését elküldtük. Hamarosan válaszolunk.
Inkább e-mailben? Írjon nekünk ide: support@simafri.com.