„Да пуснете AI“ обхваща две нужди, които не изискват един и същ размер сървър. Приложение, което извиква модел през API, се оразмерява като всяко уеб приложение; модел, изпълняван на самия сървър, се оразмерява преди всичко по паметта си. Това ръководство разделя двата случая, дава колко памет заемат популярните модели и как да го изчислите.
Повечето приложения, които „използват AI“ (асистенти, агенти, резюмета, извличане на данни, търсене в документи), извикват модел, хостван от неговия създател, през API. Изчислението се извършва при него; вашият сървър подготвя заявката, чака отговора и го обработва. Тогава той се оразмерява като всяко уеб приложение: според езика, базата данни и броя на едновременните потребители.
Другият случай е модел, изпълняван на самия сървър, с Ollama, llama.cpp или Python библиотека. Причините са известни: данни, които остават във вашата инфраструктура, фиксиран разход независимо от броя на заявките, фонова обработка на големи обеми, специализиран модел. Тук целият модел трябва да се побере в паметта и именно той определя размера.
| Какво прави сървърът | Решаващият ресурс | Отправна точка |
|---|---|---|
| Извиква модел през API (асистент, агент, чатбот) | Паметта на приложението | 2 vCPU, 4 GB |
| Освен това изчислява embeddings и търси във векторна база (pgvector) | Паметта за векторите и техния индекс | 2 до 4 vCPU, 6 до 8 GB |
| Изпълнява малък модел с 1 до 4 милиарда параметъра, за фонова обработка | Паметта, след това процесорът | 4 vCPU, 8 GB |
| Изпълнява модел със 7 до 8 милиарда параметъра за няколко потребители | Паметта и нейната пропускателна способност | 6 до 8 vCPU, 16 GB |
| Изпълнява модел с 12 до 14 милиарда параметъра, с дълъг контекст | Паметта | 8 vCPU, 24 GB |
Заявка към модел през API трае от една до няколко десетки секунди, особено когато отговорът се изпраща поточно (streaming). През това време вашият сървър почти не изчислява: той чака. Важна е способността му да държи много заявки в изчакване, без да блокира останалите:
proxy_read_timeout).Паметта, която да предвидите, е тази на приложението и на базата му: 4 GB покриват приложение на Python или Node.js с PostgreSQL при старта. Една често срещана конфигурация, интерфейс на Next.js, API на FastAPI и база PostgreSQL, които извикват модел през API, се побира в 6 до 8 GB, включително компилирането на интерфейса.
Приложение, което търси във вашите документи (RAG, retrieval-augmented generation), превръща всеки откъс във вектор, след това намира най-близките до даден въпрос. Две неща за оразмеряване:
Типът halfvec на pgvector съхранява всяко измерение в 2 байта вместо в 4: половината памет, при качество на търсенето, което остава много близко.
Езиковият модел е файл с тегла, който се зарежда изцяло в паметта, за да отговаря. Размерът му зависи от броя на параметрите и от квантизацията, точността, с която се съхранява всяко тегло. Форматът GGUF, този на llama.cpp и Ollama, предлага квантизации от 2 до 16 бита; вариантът Q4_K_M, около 4 бита, е обичайният компромис между размер и качество.
| Размер на модела | Примери | 4 бита (Q4_K_M) | 8 бита (Q8_0) | 16 бита |
|---|---|---|---|---|
| 1 до 3 милиарда параметъра | Llama 3.2 3B, Qwen2.5 3B | 1 до 2 GB | 1,3 до 3,5 GB | 2,5 до 6,5 GB |
| 7 до 8 милиарда | Mistral 7B, Llama 3.1 8B, Qwen2.5 7B | 4,4 до 5 GB | 7,7 до 8,5 GB | 14,5 до 16 GB |
| 12 до 14 милиарда | Mistral Nemo 12B, Qwen2.5 14B | 7,5 до 9 GB | 13 до 16 GB | 25 до 30 GB |
| 32 милиарда | Qwen2.5 32B | около 20 GB | около 35 GB | около 65 GB |
| 70 милиарда | Llama 3.3 70B | около 43 GB | около 75 GB | около 140 GB |
Към теглата се добавят още две неща:
Пример. Llama 3.1 8B на 4 бита, два едновременни разговора от 8 000 токена и малко приложение: 5 GB за модела, 2 GB за контекста, 2 GB за приложението и системата, общо 9 GB, и около 12 GB с 25 % резерв.
За да генерира всеки токен, моделът прочита отново всичките си тегла в паметта. На процесор скоростта на генериране е ограничена повече от пропускателната способност на паметта, отколкото от броя на ядрата: модел от 5 GB на машина, която чете 25 GB в секунда, достига таван от около 5 токена в секунда, още преди да се отчете изчислението.
Различават се две фази:
На практика, с няколко vCPU, модел със 7 до 8 милиарда параметъра, квантизиран на 4 бита, генерира няколко токена в секунда. Това е удобно за фонова обработка (класифициране на съобщения, извличане на полета от документ, нощно резюме на постъпилото през деня) и за вътрешен асистент. Интерактивната употреба в голям мащаб и моделите с няколко десетки милиарда параметъра се изпълняват на видеокарта (GPU).
Измерването решава: llama-bench, включен в llama.cpp, дава скоростта на двете фази на вашия сървър, за вашия модел.
llama-bench -m model-Q4_K_M.gguf -p 512 -n 128
Моделът заема на диска приблизително толкова, колкото и в паметта: 5 GB за модел с 8 милиарда параметъра на 4 бита. Предвидете място за два или три модела или версии, векторните индекси, изходните документи и базата данни. NVMe SSD зарежда модел за няколко секунди при стартиране на услугата, което има значение при всяко рестартиране.
Порядък на величините: 50 GB за приложение, което извиква модел през API, 80 до 120 GB, щом модел и неговите документи се намират на сървъра.
С Ollama пускането в действие се свежда до две команди:
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b
По подразбиране Ollama слуша на 127.0.0.1:11434, тоест само от самия сървър. Запазете тази настройка: неговото API не изисква удостоверяване, а инстанция, отворена към интернет, обслужва всеки, с вашите ресурси. Вашето приложение, на същия сървър, разговаря с него локално; ако друг сървър трябва да изпраща заявки към него, минете през прокси, което удостоверява заявките, или през частна мрежа.
След това настройте размера на контекста (num_ctx) според това, от което наистина се нуждаят вашите заявки: именно той увеличава заетата памет, разговор по разговор.
VPS Pro работи на процесори Intel Xeon, ECC памет и NVMe SSD в огледален режим, с root достъп, за да инсталирате Ollama, llama.cpp, pgvector или собствения си стек. Цялостната поддръжка е включена: опишете ни проекта си, API или модел на сървъра, и ще ви препоръчаме размера, а след това при всеки въпрос поставяме диагноза и ви казваме какво да направите, от системата до кода на вашето приложение.
Да. llama.cpp и Ollama изпълняват квантизирани модели на процесор. Модел със 7 до 8 милиарда параметъра на 4 бита изисква около 5 GB памет и генерира няколко токена в секунда с няколко vCPU, което е подходящо за фонова обработка и за вътрешни асистенти.
Около 5 GB за модела, квантизиран на 4 бита (Q4_K_M), плюс 1 GB на разговор от 8 000 токена, плюс приложението и системата. Сървър с 8 GB изпълнява само модела; 16 GB оставят място за приложението, базата данни и няколко разговора.
API дава достъп до най-мощните модели, без специален сървър, с разход за всяка заявка. Моделът на сървъра пази данните при вас и фиксира разхода, с по-компактен модел. Много приложения съчетават двете: embeddings и класифициране на сървъра, писане на текстове през API.
Около 50 GB за приложение, което извиква модел през API. Щом модел се намира на сървъра, предвидете 80 до 120 GB: модел с 8 милиарда параметъра на 4 бита заема 5 GB, а често се пазят няколко негови версии, заедно с документите и техните векторни индекси.
Simafri
Да поговорим за Вашия проект
Кажете ни с няколко думи от какво имате нужда: отговаряме Ви бързо.
Благодарим! Вашето запитване е изпратено. Ще се свържем с вас скоро.
Предпочитате имейл? Пишете ни на support@simafri.com.