„A rula un AI” acoperă două nevoi care nu cer aceeași dimensiune de server. O aplicație care apelează un model prin API se dimensionează ca orice aplicație web; un model rulat pe serverul însuși se dimensionează în primul rând după memoria sa. Acest ghid separă cele două cazuri, prezintă amprenta modelelor uzuale și modul de a o calcula.
Cele mai multe aplicații care „folosesc AI” (asistenți, agenți, rezumate, extragere de date, căutare în documente) apelează un model găzduit de furnizorul său, printr-un API. Calculul se face la furnizor; serverul dumneavoastră pregătește cererea, așteaptă răspunsul și îl prelucrează. El se dimensionează atunci ca orice aplicație web: după limbaj, baza de date și numărul de utilizatori simultani.
Celălalt caz este modelul rulat pe serverul însuși, cu Ollama, llama.cpp sau o bibliotecă Python. Motivele sunt cunoscute: date care rămân pe infrastructura dumneavoastră, un cost fix indiferent de numărul de cereri, o procesare în fundal pe volume mari, un model specializat. Aici, întregul model trebuie să încapă în memorie, iar el stabilește dimensiunea.
| Ce face serverul | Resursa care decide | Punct de plecare |
|---|---|---|
| Apelează un model prin API (asistent, agent, chatbot) | Memoria aplicației | 2 vCPU, 4 GB |
| Calculează în plus embeddingurile și interoghează o bază vectorială (pgvector) | Memoria vectorilor și a indexului lor | Între 2 și 4 vCPU, între 6 și 8 GB |
| Rulează un model mic, cu 1 până la 4 miliarde de parametri, pentru procesări în fundal | Memoria, apoi procesorul | 4 vCPU, 8 GB |
| Rulează un model cu 7 până la 8 miliarde de parametri pentru câțiva utilizatori | Memoria și lățimea ei de bandă | Între 6 și 8 vCPU, 16 GB |
| Rulează un model cu 12 până la 14 miliarde de parametri, cu un context lung | Memoria | 8 vCPU, 24 GB |
O cerere către un model prin API durează de la o secundă la câteva zeci de secunde, mai ales când răspunsul este transmis pe măsură ce se generează (streaming). În acest timp, serverul dumneavoastră aproape nu calculează nimic: așteaptă. Ceea ce contează este capacitatea lui de a ține numeroase cereri în așteptare fără să le blocheze pe celelalte:
proxy_read_timeout).Memoria necesară este cea a aplicației și a bazei ei de date: 4 GB acoperă o aplicație Python sau Node.js cu PostgreSQL la lansare. O configurație obișnuită (o interfață Next.js, un API FastAPI și o bază PostgreSQL, cu un model apelat prin API) încape în 6 până la 8 GB, inclusiv compilarea interfeței.
O aplicație care caută în documentele dumneavoastră (RAG, retrieval-augmented generation) transformă fiecare pasaj într-un vector, apoi îi regăsește pe cei mai apropiați de o întrebare. Două elemente de dimensionat:
Tipul halfvec din pgvector stochează fiecare dimensiune pe 2 octeți în loc de 4: jumătate din memorie, pentru o calitate a căutării care rămâne foarte apropiată.
Un model de limbaj este un fișier de ponderi, încărcat integral în memorie pentru a răspunde. Dimensiunea lui depinde de numărul de parametri și de cuantizare, precizia cu care este stocată fiecare pondere. Formatul GGUF, cel folosit de llama.cpp și de Ollama, propune cuantizări de la 2 la 16 biți; varianta Q4_K_M, în jur de 4 biți, este compromisul obișnuit între dimensiune și calitate.
| Dimensiunea modelului | Exemple | 4 biți (Q4_K_M) | 8 biți (Q8_0) | 16 biți |
|---|---|---|---|---|
| Între 1 și 3 miliarde de parametri | Llama 3.2 3B, Qwen2.5 3B | Între 1 și 2 GB | Între 1,3 și 3,5 GB | Între 2,5 și 6,5 GB |
| Între 7 și 8 miliarde | Mistral 7B, Llama 3.1 8B, Qwen2.5 7B | Între 4,4 și 5 GB | Între 7,7 și 8,5 GB | Între 14,5 și 16 GB |
| Între 12 și 14 miliarde | Mistral Nemo 12B, Qwen2.5 14B | Între 7,5 și 9 GB | Între 13 și 16 GB | Între 25 și 30 GB |
| 32 de miliarde | Qwen2.5 32B | Aproximativ 20 GB | Aproximativ 35 GB | Aproximativ 65 GB |
| 70 de miliarde | Llama 3.3 70B | Aproximativ 43 GB | Aproximativ 75 GB | Aproximativ 140 GB |
La această greutate se adaugă două elemente:
Exemplu. Llama 3.1 8B pe 4 biți, două conversații simultane de 8.000 de tokenuri și o aplicație mică: 5 GB pentru model, 2 GB pentru context, 2 GB pentru aplicație și sistem, adică 9 GB, și aproximativ 12 GB cu o marjă de 25%.
Pentru a produce fiecare token, modelul recitește toate ponderile din memorie. Pe procesor, viteza de generare este deci limitată de lățimea de bandă a memoriei mai mult decât de numărul de nuclee: un model de 5 GB, pe o mașină care citește 25 GB pe secundă, atinge un plafon în jur de 5 tokenuri pe secundă, înainte chiar de a socoti calculul.
Se disting două faze:
În practică, pe câteva vCPU, un model cu 7 până la 8 miliarde de parametri, cuantizat pe 4 biți, produce câteva tokenuri pe secundă. Este confortabil pentru o procesare în fundal (clasificarea mesajelor, extragerea câmpurilor dintr-un document, rezumarea peste noapte a ceea ce a sosit în timpul zilei) și pentru un asistent intern. Utilizările interactive la scară mare și modelele cu câteva zeci de miliarde de parametri rulează pe placă grafică (GPU).
Măsurarea decide: llama-bench, livrat cu llama.cpp, dă viteza celor două faze pe serverul dumneavoastră, pentru modelul dumneavoastră.
llama-bench -m model-Q4_K_M.gguf -p 512 -n 128
Un model ocupă pe disc cam cât ocupă în memorie: 5 GB pentru un model cu 8 miliarde de parametri pe 4 biți. Socotiți loc pentru două sau trei modele sau versiuni, indecșii vectoriali, documentele sursă și baza de date. Un SSD NVMe încarcă un model în câteva secunde la pornirea serviciului, ceea ce contează la fiecare repornire.
Ordin de mărime: 50 GB pentru o aplicație care apelează un model prin API, între 80 și 120 GB de îndată ce un model și documentele lui se află pe server.
Cu Ollama, pornirea încape în două comenzi:
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b
Implicit, Ollama ascultă pe 127.0.0.1:11434, adică doar de pe serverul însuși. Păstrați această setare: API-ul său nu cere nicio autentificare, iar o instanță deschisă spre Internet servește pe oricine, pe resursele dumneavoastră. Aplicația dumneavoastră, pe același server, comunică local cu el; dacă un alt server trebuie să îl interogheze, treceți printr-un proxy care autentifică cererile sau printr-o rețea privată.
Reglați apoi dimensiunea contextului (num_ctx) după nevoile cererilor dumneavoastră: ea face să crească memoria ocupată, conversație după conversație.
VPS Pro rulează pe procesoare Intel Xeon, memorie ECC și SSD NVMe în oglindă, cu acces root pentru a instala Ollama, llama.cpp, pgvector sau propria dumneavoastră stivă. Asistența integrală este inclusă: descrieți-ne proiectul, API sau model pe server, și vă recomandăm dimensiunea, apoi, la fiecare întrebare, punem diagnosticul și vă indicăm ce aveți de făcut, de la sistem până la codul aplicației dumneavoastră.
Da. llama.cpp și Ollama rulează modele cuantizate pe procesor. Un model cu 7 până la 8 miliarde de parametri pe 4 biți cere aproximativ 5 GB de memorie și produce câteva tokenuri pe secundă pe câteva vCPU, ceea ce se potrivește procesărilor în fundal și asistenților interni.
Aproximativ 5 GB pentru modelul cuantizat pe 4 biți (Q4_K_M), plus 1 GB pentru fiecare conversație de 8.000 de tokenuri, plus aplicația și sistemul. Un server de 8 GB rulează doar modelul; 16 GB lasă loc pentru aplicație, baza de date și mai multe conversații.
API-ul oferă acces la cele mai puternice modele, fără un server anume, cu un cost pe cerere. Modelul pe server păstrează datele la dumneavoastră și fixează costul, cu un model mai compact. Multe aplicații le combină: embeddinguri și clasificare pe server, redactare prin API.
Aproximativ 50 GB pentru o aplicație care apelează un model prin API. De îndată ce un model se află pe server, prevedeți între 80 și 120 GB: un model cu 8 miliarde de parametri pe 4 biți cântărește 5 GB, iar adesea se păstrează mai multe versiuni, împreună cu documentele și indecșii lor vectoriali.
Simafri
Să discutăm despre site-ul dumneavoastră
Povestiți-ne despre proiectul dumneavoastră în câteva cuvinte: vă vom răspunde rapid.
Mulțumim! Cererea dumneavoastră a fost trimisă. Vă vom răspunde în curând.
Preferați e-mailul? Scrieți-ne la support@simafri.com.