”Tekoälyn ajaminen” kattaa kaksi tarvetta, jotka vaativat eri kokoisen palvelimen. Sovellus, joka kutsuu mallia rajapinnan kautta, mitoitetaan kuten mikä tahansa verkkosovellus; itse palvelimella ajettava malli mitoitetaan ennen kaikkea muistinsa mukaan. Tämä opas erottaa nämä kaksi tapausta, kertoo yleisimpien mallien muistitarpeen ja näyttää, miten se lasketaan.
Useimmat ”tekoälyä käyttävät” sovellukset (avustajat, agentit, tiivistelmät, tietojen poiminta, haku dokumenteista) kutsuvat mallin tarjoajan isännöimää mallia rajapinnan kautta. Laskenta tapahtuu tarjoajan palvelimilla; palvelimenne valmistelee pyynnön, odottaa vastausta ja käsittelee sen. Palvelin mitoitetaan silloin kuten mikä tahansa verkkosovellus: ohjelmointikielen, tietokannan ja samanaikaisten käyttäjien määrän mukaan.
Toinen tapaus on itse palvelimella ajettava malli, Ollaman, llama.cpp:n tai Python-kirjaston avulla. Syyt ovat tuttuja: data, joka pysyy omalla infrastruktuurillanne, kiinteä kustannus pyyntöjen määrästä riippumatta, suurten tietomäärien taustakäsittely, erikoistunut malli. Silloin koko mallin on mahduttava muistiin, ja malli ratkaisee palvelimen koon.
| Mitä palvelin tekee | Ratkaiseva resurssi | Lähtökohta |
|---|---|---|
| Kutsuu mallia rajapinnan kautta (avustaja, agentti, chatbot) | Sovelluksen muisti | 2 vCPU, 4 GB |
| Laskee lisäksi upotukset ja hakee vektoritietokannasta (pgvector) | Vektorien ja niiden indeksin muisti | 2 tai 4 vCPU, 6 tai 8 GB |
| Ajaa pientä mallia (1 ja 4 miljardin parametrin välillä) taustakäsittelynä | Muisti, sitten suoritin | 4 vCPU, 8 GB |
| Ajaa 7 tai 8 miljardin parametrin mallia muutamalle käyttäjälle | Muisti ja sen kaista | 6 tai 8 vCPU, 16 GB |
| Ajaa 12 tai 14 miljardin parametrin mallia pitkällä kontekstilla | Muisti | 8 vCPU, 24 GB |
Rajapinnan kautta tehty mallipyyntö kestää sekunnista useisiin kymmeniin sekunteihin, varsinkin kun vastaus lähetetään sitä mukaa kuin se syntyy (streaming). Sillä välin palvelimenne ei juuri laske mitään: se odottaa. Ratkaisevaa on sen kyky pitää monta pyyntöä odottamassa estämättä muita:
proxy_read_timeout).Varattava muisti on sovelluksen ja sen tietokannan muisti: 4 GB kattaa Python- tai Node.js-sovelluksen PostgreSQL:llä julkaisuvaiheessa. Yleinen kokoonpano, jossa Next.js-käyttöliittymä, FastAPI-rajapinta ja PostgreSQL-tietokanta kutsuvat mallia rajapinnan kautta, mahtuu 6 tai 8 gigatavuun käyttöliittymän käännös mukaan lukien.
Sovellus, joka hakee tietoa dokumenteistanne (RAG, retrieval-augmented generation), muuntaa jokaisen tekstikatkelman vektoriksi ja etsii sitten kysymystä lähimmät. Mitoitettavia kohtia on kaksi:
pgvectorin tyyppi halfvec tallentaa jokaisen ulottuvuuden 2 tavuun 4 tavun sijaan: puolet muistista, ja hakutulosten laatu pysyy hyvin lähellä alkuperäistä.
Kielimalli on painotiedosto, joka ladataan kokonaan muistiin vastaamista varten. Sen koko riippuu parametrien määrästä ja kvantisoinnista, eli tarkkuudesta, jolla kukin paino tallennetaan. llama.cpp:n ja Ollaman käyttämä GGUF-muoto tarjoaa kvantisointeja 2 bitistä 16 bittiin; noin 4-bittinen Q4_K_M on yleinen kompromissi koon ja laadun välillä.
| Mallin koko | Esimerkkejä | 4 bittiä (Q4_K_M) | 8 bittiä (Q8_0) | 16 bittiä |
|---|---|---|---|---|
| 1 ja 3 miljardin parametrin välillä | Llama 3.2 3B, Qwen2.5 3B | 1 ja 2 GB:n välillä | 1,3 ja 3,5 GB:n välillä | 2,5 ja 6,5 GB:n välillä |
| 7 tai 8 miljardia | Mistral 7B, Llama 3.1 8B, Qwen2.5 7B | 4,4 ja 5 GB:n välillä | 7,7 ja 8,5 GB:n välillä | 14,5 ja 16 GB:n välillä |
| 12 tai 14 miljardia | Mistral Nemo 12B, Qwen2.5 14B | 7,5 ja 9 GB:n välillä | 13 ja 16 GB:n välillä | 25 ja 30 GB:n välillä |
| 32 miljardia | Qwen2.5 32B | noin 20 GB | noin 35 GB | noin 65 GB |
| 70 miljardia | Llama 3.3 70B | noin 43 GB | noin 75 GB | noin 140 GB |
Painojen lisäksi muistia kuluu kahteen asiaan:
Esimerkki. Llama 3.1 8B 4-bittisenä, kaksi samanaikaista 8 000 tokenin keskustelua ja pieni sovellus: 5 GB mallille, 2 GB kontekstille ja 2 GB sovellukselle ja järjestelmälle, eli yhteensä 9 GB, ja noin 12 GB 25 %:n marginaalin kanssa.
Jokaisen tokenin tuottamiseksi malli lukee kaikki painonsa uudelleen muistista. Suorittimella tekstin tuottamisen nopeutta rajoittaa siis muistikaista enemmän kuin ytimien määrä: 5 GB:n malli koneella, joka lukee 25 GB sekunnissa, yltää enintään noin 5 tokeniin sekunnissa jo ennen kuin itse laskentaa otetaan huomioon.
Kaksi vaihetta erotetaan toisistaan:
Käytännössä muutamalla vCPU:lla 4-bittiseksi kvantisoitu 7 tai 8 miljardin parametrin malli tuottaa muutaman tokenin sekunnissa. Se riittää hyvin taustakäsittelyyn (viestien luokittelu, kenttien poiminta dokumentista, päivän tapahtumien tiivistäminen yön aikana) ja sisäiseen avustajaan. Laajamittainen interaktiivinen käyttö ja useiden kymmenien miljardien parametrien mallit ajetaan näytönohjaimella (GPU).
Mittaus ratkaisee: llama.cpp:n mukana tuleva llama-bench kertoo molempien vaiheiden nopeuden omalla palvelimellanne ja omalla mallillanne.
llama-bench -m malli-Q4_K_M.gguf -p 512 -n 128
Malli vie levyllä suunnilleen saman verran tilaa kuin muistissa: 5 GB 4-bittiselle 8 miljardin parametrin mallille. Varatkaa tilaa kahdelle tai kolmelle mallille tai versiolle, vektori-indekseille, lähdedokumenteille ja tietokannalle. NVMe-SSD lataa mallin muutamassa sekunnissa palvelun käynnistyessä, mikä on tärkeää jokaisella uudelleenkäynnistyksellä.
Suuruusluokka: 50 GB sovellukselle, joka kutsuu mallia rajapinnan kautta, ja 80 ja 120 GB:n välillä heti, kun malli ja sen dokumentit ovat palvelimella.
Ollamalla käyttöönotto hoituu kahdella komennolla:
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b
Ollama kuuntelee oletuksena osoitteessa 127.0.0.1:11434, eli vain palvelimelta itseltään. Pitäkää tämä asetus: sen rajapinta ei vaadi tunnistautumista, ja internetiin avoin instanssi palvelee ketä tahansa teidän resursseillanne. Samalla palvelimella toimiva sovelluksenne keskustelee sen kanssa paikallisesti; jos toisen palvelimen on kutsuttava sitä, käyttäkää pyynnöt tunnistavaa välityspalvelinta tai yksityistä verkkoa.
Säätäkää sitten kontekstin koko (num_ctx) sen mukaan, mitä pyyntönne tarvitsevat: juuri se kasvattaa varattua muistia keskustelu keskustelulta.
VPS Pro toimii Intel Xeon -suorittimilla, ECC-muistilla ja peilatuilla NVMe-SSD-levyillä, ja root-oikeuksin asennatte Ollaman, llama.cpp:n, pgvectorin tai oman ohjelmistopinonne. Kokonaistuki sisältyy: kertokaa meille projektistanne, rajapinnasta tai palvelimella ajettavasta mallista, niin suosittelemme sopivan koon, ja sen jälkeen teemme jokaisessa kysymyksessä diagnoosin ja kerromme, mitä tehdä, järjestelmästä sovelluksenne koodiin asti.
Kyllä. llama.cpp ja Ollama ajavat kvantisoituja malleja suorittimella. 4-bittinen 7 tai 8 miljardin parametrin malli vaatii noin 5 GB muistia ja tuottaa muutaman tokenin sekunnissa muutamalla vCPU:lla, mikä sopii taustakäsittelyyn ja sisäisiin avustajiin.
Noin 5 GB 4-bittiseksi kvantisoidulle mallille (Q4_K_M), lisäksi 1 GB jokaista 8 000 tokenin keskustelua kohden sekä sovellus ja järjestelmä. 8 GB:n palvelin ajaa pelkän mallin; 16 GB jättää tilaa sovellukselle, tietokannalle ja useille keskusteluille.
Rajapinta antaa pääsyn tehokkaimpiin malleihin ilman erityistä palvelinta, pyyntökohtaisella kustannuksella. Palvelimella ajettava malli pitää datan teillä ja tekee kustannuksesta kiinteän, kompaktimmalla mallilla. Monet sovellukset yhdistävät molemmat: upotukset ja luokittelu palvelimella, tekstin kirjoittaminen rajapinnan kautta.
Noin 50 GB sovellukselle, joka kutsuu mallia rajapinnan kautta. Heti kun malli on palvelimella, varatkaa 80 ja 120 GB:n välillä: 4-bittinen 8 miljardin parametrin malli vie 5 GB, ja siitä pidetään usein useita versioita dokumenttien ja niiden vektori-indeksien lisäksi.
Simafri
Jutellaan hankkeestasi
Kerro meille muutamalla sanalla, mitä tarvitset: vastaamme sinulle nopeasti.
Kiitos! Pyyntösi on lähetetty. Vastaamme sinulle pian.
Suositko sähköpostia? Kirjoita meille osoitteeseen support@simafri.com.