„Uruchomienie AI” obejmuje dwie potrzeby, które wymagają różnych rozmiarów serwera. Aplikację, która wywołuje model przez API, dobiera się jak każdą aplikację webową; model uruchomiony na samym serwerze dobiera się przede wszystkim według jego pamięci. Ten poradnik rozdziela oba przypadki, podaje, ile pamięci zajmują popularne modele, i pokazuje, jak to obliczyć.
Większość aplikacji, które „korzystają z AI” (asystenci, agenci, streszczenia, ekstrakcja danych, wyszukiwanie w dokumentach), wywołuje przez API model hostowany przez jego dostawcę. Obliczenia odbywają się u niego; Państwa serwer przygotowuje żądanie, czeka na odpowiedź i ją przetwarza. Dobiera się go więc jak każdą aplikację webową: według języka, bazy danych i liczby jednoczesnych użytkowników.
Drugi przypadek to model uruchomiony na samym serwerze, przez Ollamę, llama.cpp lub bibliotekę Pythona. Powody są znane: dane, które pozostają w Państwa infrastrukturze, stały koszt niezależnie od liczby żądań, przetwarzanie w tle dużych wolumenów, wyspecjalizowany model. Wtedy cały model musi zmieścić się w pamięci i to on wyznacza rozmiar.
| Co robi serwer | Zasób, który decyduje | Punkt wyjścia |
|---|---|---|
| Wywołuje model przez API (asystent, agent, chatbot) | Pamięć aplikacji | 2 vCPU, 4 GB |
| Dodatkowo oblicza embeddingi i odpytuje bazę wektorową (pgvector) | Pamięć na wektory i ich indeks | Od 2 do 4 vCPU, od 6 do 8 GB |
| Uruchamia mały model o 1 do 4 miliardach parametrów, w przetwarzaniu w tle | Pamięć, potem procesor | 4 vCPU, 8 GB |
| Uruchamia model o 7 do 8 miliardach parametrów dla kilku użytkowników | Pamięć i jej przepustowość | Od 6 do 8 vCPU, 16 GB |
| Uruchamia model o 12 do 14 miliardach parametrów, z długim kontekstem | Pamięć | 8 vCPU, 24 GB |
Żądanie do modelu przez API trwa od jednej do kilkudziesięciu sekund, zwłaszcza gdy odpowiedź jest przesyłana na bieżąco (streaming). W tym czasie Państwa serwer prawie nic nie oblicza: czeka. Liczy się jego zdolność do utrzymywania wielu oczekujących żądań bez blokowania pozostałych:
proxy_read_timeout).Potrzebna pamięć to pamięć aplikacji i jej bazy: 4 GB wystarczają na start dla aplikacji w Pythonie lub Node.js z PostgreSQL. Typowa konfiguracja, czyli interfejs Next.js, API FastAPI i baza PostgreSQL, które wywołują model przez API, mieści się w 6 do 8 GB, łącznie z kompilacją interfejsu.
Aplikacja, która przeszukuje Państwa dokumenty (RAG, retrieval-augmented generation), zamienia każdy fragment w wektor, a potem wyszukuje fragmenty najbliższe pytaniu. Do doboru są dwa elementy:
Typ halfvec w pgvector zapisuje każdy wymiar na 2 bajtach zamiast 4: połowa pamięci przy jakości wyszukiwania, która pozostaje bardzo zbliżona.
Model językowy to plik wag, w całości ładowany do pamięci, aby udzielać odpowiedzi. Jego rozmiar zależy od liczby parametrów i od kwantyzacji, czyli precyzji zapisu każdej wagi. Format GGUF, używany przez llama.cpp i Ollamę, oferuje kwantyzacje od 2 do 16 bitów; wariant Q4_K_M, około 4 bitów, to powszechny kompromis między rozmiarem a jakością.
| Rozmiar modelu | Przykłady | 4 bity (Q4_K_M) | 8 bitów (Q8_0) | 16 bitów |
|---|---|---|---|---|
| Od 1 do 3 miliardów parametrów | Llama 3.2 3B, Qwen2.5 3B | Od 1 do 2 GB | Od 1,3 do 3,5 GB | Od 2,5 do 6,5 GB |
| Od 7 do 8 miliardów | Mistral 7B, Llama 3.1 8B, Qwen2.5 7B | Od 4,4 do 5 GB | Od 7,7 do 8,5 GB | Od 14,5 do 16 GB |
| Od 12 do 14 miliardów | Mistral Nemo 12B, Qwen2.5 14B | Od 7,5 do 9 GB | Od 13 do 16 GB | Od 25 do 30 GB |
| 32 miliardy | Qwen2.5 32B | Około 20 GB | Około 35 GB | Około 65 GB |
| 70 miliardów | Llama 3.3 70B | Około 43 GB | Około 75 GB | Około 140 GB |
Do tej wagi dochodzą dwa elementy:
Przykład. Llama 3.1 8B w 4 bitach, dwie jednoczesne rozmowy po 8 000 tokenów i mała aplikacja: 5 GB na model, 2 GB na kontekst, 2 GB na aplikację i system, razem 9 GB, a z 25 % zapasu około 12 GB.
Aby wygenerować każdy token, model odczytuje z pamięci wszystkie swoje wagi. Na procesorze szybkość generowania ogranicza więc bardziej przepustowość pamięci niż liczba rdzeni: model 5 GB na maszynie, która odczytuje 25 GB na sekundę, osiąga pułap około 5 tokenów na sekundę, zanim jeszcze uwzględni się obliczenia.
Wyróżnia się dwie fazy:
W praktyce na kilku vCPU model o 7 do 8 miliardach parametrów, skwantyzowany do 4 bitów, generuje kilka tokenów na sekundę. To wygodne tempo dla przetwarzania w tle (klasyfikacja wiadomości, wyodrębnianie pól z dokumentu, nocne streszczanie tego, co wpłynęło w ciągu dnia) i dla wewnętrznego asystenta. Zastosowania interaktywne na dużą skalę oraz modele o kilkudziesięciu miliardach parametrów uruchamia się na kartach graficznych (GPU).
Rozstrzyga pomiar: llama-bench, dostarczany z llama.cpp, podaje szybkość obu faz na Państwa serwerze, dla Państwa modelu.
llama-bench -m model-Q4_K_M.gguf -p 512 -n 128
Model zajmuje na dysku mniej więcej tyle, ile w pamięci: 5 GB dla modelu o 8 miliardach parametrów w 4 bitach. Należy przewidzieć miejsce na dwa lub trzy modele lub wersje, indeksy wektorowe, dokumenty źródłowe i bazę danych. SSD NVMe ładuje model w kilka sekund przy starcie usługi, co ma znaczenie przy każdym restarcie.
Rząd wielkości: 50 GB dla aplikacji, która wywołuje model przez API, od 80 do 120 GB, gdy model i jego dokumenty znajdują się na serwerze.
Z Ollamą uruchomienie sprowadza się do dwóch poleceń:
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b
Ollama domyślnie nasłuchuje na 127.0.0.1:11434, czyli wyłącznie z samego serwera. Proszę zachować to ustawienie: jej API nie wymaga uwierzytelnienia, a instancja otwarta na internet obsługuje każdego, na Państwa zasobach. Państwa aplikacja, na tym samym serwerze, komunikuje się z nią lokalnie; jeśli ma ją odpytywać inny serwer, proszę użyć proxy, które uwierzytelnia żądania, lub sieci prywatnej.
Następnie proszę ustawić rozmiar kontekstu (num_ctx) na tyle, ile potrzebują Państwa żądania: to on powiększa zajmowaną pamięć, rozmowa po rozmowie.
VPS Pro działa na procesorach Intel Xeon, pamięci ECC i SSD NVMe w konfiguracji lustrzanej, z dostępem root, aby zainstalować Ollamę, llama.cpp, pgvector lub własny zestaw narzędzi. Kompleksowe wsparcie jest w cenie: proszę opisać swój projekt, API lub model na serwerze, a doradzimy rozmiar, potem zaś przy każdym pytaniu diagnozujemy i wskazujemy, co zrobić, od systemu po kod Państwa aplikacji.
Tak. llama.cpp i Ollama uruchamiają skwantyzowane modele na procesorze. Model o 7 do 8 miliardach parametrów w 4 bitach wymaga około 5 GB pamięci i generuje kilka tokenów na sekundę na kilku vCPU, co odpowiada przetwarzaniu w tle i wewnętrznym asystentom.
Około 5 GB na model skwantyzowany do 4 bitów (Q4_K_M), plus 1 GB na rozmowę o długości 8 000 tokenów, plus aplikacja i system. Serwer 8 GB uruchomi sam model; 16 GB zostawia miejsce na aplikację, bazę danych i kilka rozmów.
API daje dostęp do najmocniejszych modeli, bez szczególnego serwera, z kosztem za każde żądanie. Model na serwerze zatrzymuje dane u Państwa i ustala stały koszt, przy bardziej kompaktowym modelu. Wiele aplikacji łączy oba podejścia: embeddingi i klasyfikacja na serwerze, redagowanie tekstów przez API.
Około 50 GB dla aplikacji, która wywołuje model przez API. Gdy model działa na serwerze, warto przewidzieć od 80 do 120 GB: model o 8 miliardach parametrów w 4 bitach waży 5 GB, a często przechowuje się kilka jego wersji, razem z dokumentami i ich indeksami wektorowymi.
Simafri
Porozmawiajmy o Państwa projekcie
Proszę powiedzieć nam w kilku słowach, czego Państwo potrzebują: odpowiemy szybko.
Dziękujemy! Państwa zapytanie zostało wysłane. Wkrótce się odezwiemy.
Wolą Państwo e-mail? Proszę napisać do nas na support@simafri.com.