Власний ШІ з Ollama: чого чекати на CPU
Ollama — інструмент, що запускає відкриті моделі ШІ на вашому сервері. На серверах Seturack немає відеокарти (GPU), тому моделі працюють на CPU. Це означає, що малі моделі (1-4 мільярди параметрів) придатні для чату й коротких завдань, моделі на 7-8 мільярдів параметрів працюють, але повільно, а більші непрактичні. Розмір файлу моделі — нижня межа обсягу RAM, який варто для неї залишити.
Зауваження про швидкість у цій статті ґрунтуються на загальному досвіді, а не на вимірюваннях на серверах Seturack. Розміри моделей узято з власної бібліотеки Ollama.
Модель має поміститися в RAM
| Модель | Параметри | Розмір файлу |
|---|---|---|
llama3.2:1b | 1 мільярд | 1,3 ГБ |
llama3.2:3b | 3 мільярди | 2,0 ГБ |
gemma3:4b | 4 мільярди | 3,4 ГБ |
qwen2.5:7b | 7 мільярдів | 4,7 ГБ |
llama3.1:8b | 8 мільярдів | 4,9 ГБ |
gemma3:12b | 12 мільярдів | 8,2 ГБ |
qwen2.5:14b | 14 мільярдів | 9,0 ГБ |
qwen2.5:32b | 32 мільярди | 20 ГБ |
Розмір файлу близький до тієї частини моделі, що завантажується в пам’ять. Зверху додаються пам’ять контексту, яка залежить від довжини розмови, власні витрати Ollama та операційна система. Тож RAM, рівної розміру файлу, замало, і слід залишити запас. Точного множника немає, але виміряти легко: виконайте free -h після завантаження моделі. Бібліотека постійно оновлюється, тож актуальний перелік дивіться в бібліотеці моделей Ollama.
Який розмір сервера потрібен?
| Група моделей | Розумна початкова кількість RAM |
|---|---|
| 1-3 мільярди параметрів | 4 ГБ |
| 7-8 мільярдів параметрів | 8 ГБ |
| 12-14 мільярдів параметрів | 16 ГБ |
| 32 мільярди параметрів | 24-32 ГБ, на CPU все одно дуже повільно |
Ця таблиця — емпіричне правило, складене додаванням запасу до наведених вище розмірів файлів. Це не офіційна рекомендація. Якщо RAM закінчиться, система почне використовувати диск як пам’ять (swap) і швидкість різко впаде, або процес буде завершено. Перш ніж пробувати велику модель, безпечніше спершу збільшити сервер.
Чого чекати на CPU
- Генерація тексту значною мірою обмежена пропускною здатністю пам’яті. Що більша модель, то повільніше надходить відповідь.
- Порівняно з відеокартою CPU помітно повільніший. Відповідь може надходити повільніше, ніж ви читаєте.
- Обробка довгого тексту збільшує очікування першої відповіді. Під час першого запиту модель завантажується з диска в пам’ять, тож відповідь надходить ще пізніше.
- Кілька користувачів одночасно ділять швидкість між собою.
Що працює добре: короткі резюме, класифікація, чернетки листів, персональний асистент, експерименти й розробка, невеликі автоматизації. З чим буде важко: жива служба для багатьох користувачів, великі моделі, відповіді в реальному часі, інтенсивна генерація коду.
Налаштування (Ubuntu)
- Виконайте офіційний однорядковий скрипт встановлення:
curl -fsSL https://ollama.com/install.sh | shДобра практика — спершу завантажити скрипт і прочитати його. - Почніть із невеликої моделі:
ollama run llama3.2:3b - Подивіться, де працює модель:
ollama psЯкщо в стовпці Processor написано лише CPU, модель повністю міститься в системній пам’яті. - Стежте за місцем на диску. У Linux моделі лежать у
/usr/share/ollama/.ollama/models, і кожна займає гігабайти. Перелічити їх можна командоюollama list, а видалити одну —ollama rm.
Якщо віддаєте перевагу Docker, офіційна команда — docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama. Радимо прив’язати порт лише до локальної адреси: -p 127.0.0.1:11434:11434.
Яку модель обрати?
Почніть із моделі на 3 мільярди параметрів і випробуйте її на власних завданнях. Малі моделі зазвичай слабші турецькою, ніж англійською, тож перевіряйте їх на власних текстах. Якщо відповіді не влаштовують, перейдіть на один розмір вище та перевірте командою free -h, чи вистачає RAM.
Розміри в таблиці стосуються типових тегів бібліотеки. Моделі зазвичай поставляються стисненими (квантованими) приблизно до 4 біт. За 16-бітної точності 8 мільярдів параметрів займають близько 16 ГБ, а стиснення зменшує це до приблизно 5 ГБ, як у таблиці. Натомість трохи втрачається якість.
Використання із застосунків
Ollama відкриває локальний API. Зсередини сервера його можна спробувати так:
curl http://127.0.0.1:11434/api/generate -d '{"model":"llama3.2:3b","prompt":"Hello, introduce yourself.","stream":false}'
Відповідь надходить у форматі JSON. До того самого API можуть підключатися засоби автоматизації та ваші власні застосунки.
Керування пам’яттю
- За замовчуванням Ollama тримає модель у пам’яті 5 хвилин після останнього запиту. Нормально, що весь цей час RAM здається заповненою.
ollama stop MODEL_NAMEодразу вивантажує модель. OLLAMA_MAX_LOADED_MODELSобмежує, скільки моделей може одночасно лишатися завантаженими. На CPU за замовчуванням їх 3. Якщо RAM бракує, задайте 1, інакше послідовні звернення до різних моделей залишать їх усі в пам’яті.OLLAMA_NUM_PARALLEL— кількість паралельних запитів на модель, за замовчуванням 1. Що більше ви його збільшите, то більше потрібно RAM.
Безпека
- За замовчуванням Ollama слухає лише порт 11434 на
127.0.0.1. Якщо відкрити його черезOLLAMA_HOST, ваша модель буде доступна кожному, хто знає адресу, бо в API за замовчуванням немає кроку автентифікації. Не відкривайте його. - Для віддаленого використання достатньо тунелю SSH:
ssh -L 11434:127.0.0.1:11434 user@SERVER_IP - Docker оминає правила ufw для портів, які публікує. Саме тому порт прив’язують лише до локальної адреси, як вище.
- Щоб спілкуватися з браузера, можна встановити інтерфейс на кшталт Open WebUI. Запускайте його за HTTPS і захистіть облікові записи користувачів.
Дані та ліцензії
Коли ви запускаєте модель на власному сервері, ваші розмови залишаються на вашому сервері. Ollama також пропонує моделі, що працюють у хмарі. Вони не працюють на вашому сервері й виходять за межі цієї статті. Кожна модель має власну ліцензію, тож перед комерційним використанням прочитайте ліцензію на сторінці моделі.
Збільшення та зменшення сервера
Потреби в RAM змінюються разом із моделями. Якщо ви починаєте з моделі на 3 мільярди параметрів і переходите на модель на 8 мільярдів, ви збільшуєте сервер у панелі. Збільшення не видаляє сервер, а ваша IP-адреса й дані залишаються тими самими. Коли ви зменшуєте сервер, диск не стискається, а оскільки моделі можуть заповнити диск, враховуйте й диск.
Свою ціну можна розрахувати на сторінці цін.
Готове до роботи в Seturack: Ollama, AnythingLLM, Qdrant.
Коментарі0
Коментарів поки немає
Поділіться своєю думкою першим.
Будь ласка, увійдіть або зареєструйтеся, щоб залишити коментар.