«At køre AI» dækker over to behov, der ikke kræver samme serverstørrelse. En applikation, der kalder en model via API, dimensioneres som enhver anden webapplikation; en model, der kører på selve serveren, dimensioneres først og fremmest efter sin hukommelse. Denne guide skiller de to tilfælde ad og giver dig fodaftrykket for de gængse modeller og måden at beregne det på.
De fleste applikationer, der «bruger AI» (assistenter, agenter, resuméer, dataudtræk, søgning i dokumenter), kalder en model, der hostes af udbyderen, via et API. Beregningen sker hos udbyderen; din server forbereder forespørgslen, venter på svaret og behandler det. Den dimensioneres da som enhver anden webapplikation: efter sit sprog, sin database og antallet af samtidige brugere.
Det andet tilfælde er modellen, der kører på selve serveren, med Ollama, llama.cpp eller et Python-bibliotek. Grundene er velkendte: data, der bliver på din infrastruktur, en fast omkostning uanset antallet af forespørgsler, baggrundsbehandling af store mængder, en specialiseret model. Her skal hele modellen kunne ligge i hukommelsen, og det er den, der bestemmer størrelsen.
| Det, serveren gør | Den ressource, der afgør det | Udgangspunkt |
|---|---|---|
| Kalder en model via API (assistent, agent, chatbot) | Applikationens hukommelse | 2 vCPU, 4 GB |
| Beregner også embeddings og forespørger en vektordatabase (pgvector) | Hukommelsen til vektorerne og deres indeks | 2 til 4 vCPU, 6 til 8 GB |
| Kører en lille model med 1 til 4 milliarder parametre til baggrundsbehandling | Hukommelsen, dernæst processoren | 4 vCPU, 8 GB |
| Kører en model med 7 til 8 milliarder parametre for nogle få brugere | Hukommelsen og dens båndbredde | 6 til 8 vCPU, 16 GB |
| Kører en model med 12 til 14 milliarder parametre og lang kontekst | Hukommelsen | 8 vCPU, 24 GB |
En forespørgsel til en model via API varer fra et til flere titals sekunder, især når svaret sendes løbende (streaming). I mellemtiden regner din server næsten ikke: den venter. Det, der tæller, er dens evne til at holde mange forespørgsler i venteposition uden at blokere de andre:
proxy_read_timeout).Den hukommelse, du skal regne med, er applikationens og databasens: 4 GB dækker en Python- eller Node.js-applikation med PostgreSQL ved lanceringen. En almindelig opsætning, en Next.js-brugerflade, et FastAPI-API og en PostgreSQL-database, der kalder en model via API, kan være i 6 til 8 GB, kompilering af brugerfladen medregnet.
En applikation, der søger i dine dokumenter (RAG, retrieval-augmented generation), omdanner hvert tekststykke til en vektor og finder derefter dem, der ligger tættest på et spørgsmål. To poster skal dimensioneres:
Typen halfvec i pgvector gemmer hver dimension på 2 byte i stedet for 4: halvdelen af hukommelsen, med en søgekvalitet, der forbliver meget tæt på.
En sprogmodel er en fil med vægte, som indlæses i sin helhed i hukommelsen for at kunne svare. Dens størrelse afhænger af antallet af parametre og af kvantiseringen, den præcision, hver vægt gemmes med. GGUF-formatet, som llama.cpp og Ollama bruger, tilbyder kvantiseringer fra 2 til 16 bit; varianten Q4_K_M, omkring 4 bit, er det gængse kompromis mellem størrelse og kvalitet.
| Modellens størrelse | Eksempler | 4 bit (Q4_K_M) | 8 bit (Q8_0) | 16 bit |
|---|---|---|---|---|
| 1 til 3 milliarder parametre | Llama 3.2 3B, Qwen2.5 3B | 1 til 2 GB | 1,3 til 3,5 GB | 2,5 til 6,5 GB |
| 7 til 8 milliarder | Mistral 7B, Llama 3.1 8B, Qwen2.5 7B | 4,4 til 5 GB | 7,7 til 8,5 GB | 14,5 til 16 GB |
| 12 til 14 milliarder | Mistral Nemo 12B, Qwen2.5 14B | 7,5 til 9 GB | 13 til 16 GB | 25 til 30 GB |
| 32 milliarder | Qwen2.5 32B | omkring 20 GB | omkring 35 GB | omkring 65 GB |
| 70 milliarder | Llama 3.3 70B | omkring 43 GB | omkring 75 GB | omkring 140 GB |
Oven i vægtene kommer to poster:
Eksempel. Llama 3.1 8B i 4 bit, to samtidige samtaler på 8.000 tokens og en lille applikation: 5 GB model, 2 GB kontekst, 2 GB til applikationen og systemet, altså 9 GB, og omkring 12 GB med 25 % margin.
For at producere hvert token læser modellen alle sine vægte i hukommelsen igen. På processor er genereringshastigheden derfor begrænset af hukommelsesbåndbredden mere end af antallet af kerner: en model på 5 GB, på en maskine, der læser 25 GB i sekundet, når et loft på omkring 5 tokens i sekundet, før selve beregningen overhovedet er talt med.
To faser skiller sig ud:
I praksis producerer en model med 7 til 8 milliarder parametre, kvantiseret i 4 bit, nogle få tokens i sekundet på nogle få vCPU. Det er rigeligt til baggrundsbehandling (sortere beskeder, trække felter ud af et dokument, om natten opsummere det, der kom ind i løbet af dagen) og til en intern assistent. Interaktiv brug i stor skala og modeller med flere titals milliarder parametre kører på grafikkort (GPU).
Målingen afgør det: llama-bench, der følger med llama.cpp, giver hastigheden for de to faser på din server, for din model.
llama-bench -m model-Q4_K_M.gguf -p 512 -n 128
En model fylder omtrent det samme på disken som i hukommelsen: 5 GB for en model med 8 milliarder parametre i 4 bit. Regn med plads til to eller tre modeller eller versioner, vektorindeksene, kildedokumenterne og databasen. En NVMe-SSD indlæser en model på få sekunder, når tjenesten starter, hvilket tæller ved hver genstart.
Størrelsesorden: 50 GB til en applikation, der kalder en model via API, og 80 til 120 GB, så snart en model og dens dokumenter ligger på serveren.
Med Ollama klares opstarten med to kommandoer:
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b
Ollama lytter som standard på 127.0.0.1:11434, det vil sige kun fra selve serveren. Behold den indstilling: dens API kræver ingen autentificering, og en instans, der er åben mod internettet, betjener hvem som helst på dine ressourcer. Din applikation på samme server taler med den lokalt; skal en anden server forespørge den, så gå gennem en proxy, der autentificerer forespørgslerne, eller gennem et privat netværk.
Indstil derefter kontekststørrelsen (num_ctx) til det, dine forespørgsler har brug for: det er den, der får den optagne hukommelse til at vokse, samtale for samtale.
VPS Pro kører på Intel Xeon-processorer, ECC-hukommelse og spejlede NVMe-SSD'er, med root-adgang, så du kan installere Ollama, llama.cpp, pgvector eller din egen stak. Totalsupport er inkluderet: beskriv dit projekt for os, API eller model på serveren, så anbefaler vi størrelsen, og ved hvert spørgsmål stiller vi diagnosen og fortæller dig, hvad du skal gøre, fra systemet til din applikations kode.
Ja. llama.cpp og Ollama kører kvantiserede modeller på processor. En model med 7 til 8 milliarder parametre i 4 bit kræver omkring 5 GB hukommelse og producerer nogle få tokens i sekundet på nogle få vCPU, hvilket passer til baggrundsbehandling og interne assistenter.
Omkring 5 GB til modellen kvantiseret i 4 bit (Q4_K_M), plus 1 GB pr. samtale på 8.000 tokens, plus applikationen og systemet. En server med 8 GB kører modellen alene; 16 GB giver plads til applikationen, databasen og flere samtaler.
API'et giver adgang til de mest kraftfulde modeller uden en særlig server, med en omkostning pr. forespørgsel. Modellen på serveren holder dataene hos dig og giver en fast omkostning, med en mere kompakt model. Mange applikationer kombinerer de to: embeddings og sortering på serveren, tekstskrivning via API.
Omkring 50 GB til en applikation, der kalder en model via API. Så snart en model ligger på serveren, skal du regne med 80 til 120 GB: en model med 8 milliarder parametre i 4 bit vejer 5 GB, og man beholder ofte flere versioner sammen med dokumenterne og deres vektorindeks.
Simafri
Lad os tale om din hjemmeside
Fortæl os om dit projekt med få ord: vi vender hurtigt tilbage til dig.
Tak! Din forespørgsel er sendt. Vi vender tilbage til dig hurtigst muligt.
Foretrækker du e-mail? Skriv til os på support@simafri.com.