„Spustiť AI“ zahŕňa dve potreby, ktoré si nežiadajú rovnakú veľkosť servera. Aplikácia, ktorá volá model cez API, sa dimenzuje ako ktorákoľvek webová aplikácia; model spustený priamo na serveri sa dimenzuje predovšetkým podľa svojej pamäte. Tento sprievodca oba prípady oddeľuje, uvádza pamäťové nároky bežných modelov a spôsob, ako ich vypočítať.
Väčšina aplikácií, ktoré „používajú AI“ (asistenti, agenti, zhrnutia, extrakcia údajov, vyhľadávanie v dokumentoch), volá model hostovaný jeho vydavateľom, cez API. Výpočet prebieha u neho; váš server pripraví požiadavku, čaká na odpoveď a spracuje ju. Dimenzuje sa teda ako ktorákoľvek webová aplikácia: podľa jazyka, databázy a počtu súčasných používateľov.
Druhým prípadom je model spustený priamo na serveri, s Ollamou, llama.cpp alebo knižnicou v Pythone. Dôvody sú známe: údaje, ktoré zostávajú na vašej infraštruktúre, pevné náklady bez ohľadu na počet požiadaviek, spracovanie veľkých objemov na pozadí, špecializovaný model. Tu sa celý model musí zmestiť do pamäte a veľkosť určuje práve on.
| Čo server robí | Rozhodujúci zdroj | Východiskový bod |
|---|---|---|
| Volá model cez API (asistent, agent, chatbot) | Pamäť aplikácie | 2 vCPU, 4 GB |
| Navyše počíta embeddingy a dopytuje vektorovú databázu (pgvector) | Pamäť pre vektory a ich index | 2 až 4 vCPU, 6 až 8 GB |
| Spúšťa malý model s 1 až 4 miliardami parametrov na spracovanie na pozadí | Pamäť, potom procesor | 4 vCPU, 8 GB |
| Spúšťa model so 7 až 8 miliardami parametrov pre niekoľko používateľov | Pamäť a jej priepustnosť | 6 až 8 vCPU, 16 GB |
| Spúšťa model s 12 až 14 miliardami parametrov, s dlhým kontextom | Pamäť | 8 vCPU, 24 GB |
Požiadavka na model cez API trvá od jednej do niekoľkých desiatok sekúnd, najmä keď sa odpoveď posiela priebežne (streaming). Počas tejto doby váš server takmer nič nepočíta: čaká. Rozhoduje jeho schopnosť držať mnoho čakajúcich požiadaviek bez toho, aby blokoval ostatné:
proxy_read_timeout).Pamäť treba naplánovať pre aplikáciu a jej databázu: 4 GB pokryjú aplikáciu v Pythone alebo Node.js s PostgreSQL pri spustení. Bežná zostava, rozhranie v Next.js, API vo FastAPI a databáza PostgreSQL, ktoré volajú model cez API, sa zmestí do 6 až 8 GB, vrátane kompilácie rozhrania.
Aplikácia, ktorá vyhľadáva vo vašich dokumentoch (RAG, retrieval-augmented generation), premení každú pasáž na vektor a potom nájde tie, ktoré sú otázke najbližšie. Dimenzovať treba dve položky:
Typ halfvec v pgvector ukladá každú dimenziu na 2 bajty namiesto 4: polovica pamäte pri kvalite vyhľadávania, ktorá zostáva veľmi blízka.
Jazykový model je súbor váh, ktorý sa pri odpovedaní celý načíta do pamäte. Jeho veľkosť závisí od počtu parametrov a od kvantizácie, teda presnosti, s akou je uložená každá váha. Formát GGUF, ktorý používajú llama.cpp a Ollama, ponúka kvantizácie od 2 do 16 bitov; variant Q4_K_M, približne 4 bity, je bežným kompromisom medzi veľkosťou a kvalitou.
| Veľkosť modelu | Príklady | 4 bity (Q4_K_M) | 8 bitov (Q8_0) | 16 bitov |
|---|---|---|---|---|
| 1 až 3 miliardy parametrov | Llama 3.2 3B, Qwen2.5 3B | 1 až 2 GB | 1,3 až 3,5 GB | 2,5 až 6,5 GB |
| 7 až 8 miliárd | Mistral 7B, Llama 3.1 8B, Qwen2.5 7B | 4,4 až 5 GB | 7,7 až 8,5 GB | 14,5 až 16 GB |
| 12 až 14 miliárd | Mistral Nemo 12B, Qwen2.5 14B | 7,5 až 9 GB | 13 až 16 GB | 25 až 30 GB |
| 32 miliárd | Qwen2.5 32B | približne 20 GB | približne 35 GB | približne 65 GB |
| 70 miliárd | Llama 3.3 70B | približne 43 GB | približne 75 GB | približne 140 GB |
K veľkosti modelu sa pridávajú ďalšie dve položky:
Príklad. Llama 3.1 8B v 4 bitoch, dve súčasné konverzácie s 8 000 tokenmi a malá aplikácia: 5 GB model, 2 GB kontext, 2 GB aplikácia a systém, spolu 9 GB, a s 25 % rezervou približne 12 GB.
Pri tvorbe každého tokenu model znova prečíta všetky svoje váhy z pamäte. Na procesore je preto rýchlosť generovania obmedzená skôr priepustnosťou pamäte než počtom jadier: model s veľkosťou 5 GB na stroji, ktorý číta 25 GB za sekundu, dosiahne strop okolo 5 tokenov za sekundu, a to ešte pred započítaním samotného výpočtu.
Rozlišujú sa dve fázy:
V praxi model so 7 až 8 miliardami parametrov kvantizovaný na 4 bity vytvorí na niekoľkých vCPU niekoľko tokenov za sekundu. To pohodlne stačí na spracovanie na pozadí (triedenie správ, extrakcia polí z dokumentu, nočné zhrnutie toho, čo prišlo cez deň) a na interného asistenta. Interaktívne použitie vo veľkom rozsahu a modely s niekoľkými desiatkami miliárd parametrov bežia na grafických kartách (GPU).
Rozhodne meranie: llama-bench, ktorý je súčasťou llama.cpp, udáva rýchlosť oboch fáz na vašom serveri a pre váš model.
llama-bench -m model-Q4_K_M.gguf -p 512 -n 128
Model zaberá na disku približne toľko ako v pamäti: 5 GB pre model s 8 miliardami parametrov v 4 bitoch. Počítajte s miestom pre dva alebo tri modely či verzie, vektorové indexy, zdrojové dokumenty a databázu. SSD NVMe načíta model za niekoľko sekúnd pri štarte služby, čo sa prejaví pri každom reštarte.
Rádovo: 50 GB pre aplikáciu, ktorá volá model cez API, 80 až 120 GB, len čo na serveri žije model a jeho dokumenty.
S Ollamou zvládnete spustenie dvoma príkazmi:
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b
Ollama predvolene počúva na 127.0.0.1:11434, teda len zo samotného servera. Toto nastavenie si ponechajte: jej API nevyžaduje žiadnu autentifikáciu a inštancia otvorená do internetu obslúži kohokoľvek, na vaše prostriedky. Vaša aplikácia na tom istom serveri s ňou komunikuje lokálne; ak ju má dopytovať iný server, použite proxy, ktorá požiadavky overuje, alebo privátnu sieť.
Potom nastavte veľkosť kontextu (num_ctx) podľa toho, čo vaše požiadavky potrebujú: práve ona zväčšuje obsadenú pamäť, konverzáciu po konverzácii.
VPS Pro beží na procesoroch Intel Xeon, pamäti ECC a zrkadlených SSD NVMe, s prístupom root na inštaláciu Ollamy, llama.cpp, pgvector alebo vlastného stacku. Komplexná podpora je v cene: opíšte nám svoj projekt, API alebo model na serveri, a odporučíme vám veľkosť; potom pri každej otázke stanovíme diagnózu a povieme vám, čo urobiť, od systému až po kód vašej aplikácie.
Áno. llama.cpp a Ollama spúšťajú kvantizované modely na procesore. Model so 7 až 8 miliardami parametrov v 4 bitoch potrebuje približne 5 GB pamäte a na niekoľkých vCPU vytvorí niekoľko tokenov za sekundu, čo vyhovuje spracovaniu na pozadí a interným asistentom.
Približne 5 GB pre model kvantizovaný na 4 bity (Q4_K_M), plus 1 GB na každú konverzáciu s 8 000 tokenmi, plus aplikácia a systém. Server s 8 GB spustí samotný model; 16 GB nechá priestor pre aplikáciu, databázu a viacero konverzácií.
API dáva prístup k najvýkonnejším modelom bez osobitného servera, s nákladmi za každú požiadavku. Model na serveri drží údaje u vás a náklady má pevné, s kompaktnejším modelom. Mnohé aplikácie kombinujú oboje: embeddingy a triedenie na serveri, písanie textov cez API.
Približne 50 GB pre aplikáciu, ktorá volá model cez API. Len čo na serveri žije model, počítajte s 80 až 120 GB: model s 8 miliardami parametrov v 4 bitoch má 5 GB a často sa uchováva viacero verzií spolu s dokumentmi a ich vektorovými indexmi.
Simafri
Porozprávajme sa o vašom zámere
Povedzte nám v pár slovách, čo potrebujete: rýchlo sa vám ozveme.
Ďakujeme! Vaša žiadosť bola odoslaná. Čoskoro sa vám ozveme.
Máte radšej e-mail? Napíšte nám na support@simafri.com.