До основного вмісту

Ollama: локальні LLM на VPS без API-ключів

AI-агенти на VDS · 19.04.2026 · 6 хв читання
Ілюстрація до статті «Ollama: локальні LLM на VPS без API-ключів»

AI-агенти з Ollama: локальні LLM без API-ключів

Ollama дозволяє запускати великі мовні моделі (LLaMA 3, Mistral, Gemma, Qwen) прямо на вашому VPS без зовнішніх API. Дані не залишають сервер, немає плати за токени, повний контроль над моделями.

Встановлення Ollama

curl -fsSL https://ollama.com/install.sh | sh
systemctl enable ollama
systemctl start ollama

# Завантажити і запустити модель
ollama pull llama3.2:3b       # 2 ГБ — для серверів з 4 ГБ RAM
ollama pull llama3.1:8b       # 5 ГБ — для 8 ГБ RAM
ollama pull mistral:7b        # 4 ГБ — гарна якість
ollama pull qwen2.5-coder:7b  # спеціалізація на коді

# Запустити чат
ollama run llama3.2:3b

REST API

# Chat (OpenAI-сумісний формат)
curl http://localhost:11434/v1/chat/completions   -H "Content-Type: application/json"   -d '{
    "model": "llama3.2:3b",
    "messages": [{"role": "user", "content": "Напиши bash-скрипт для бекапу MySQL"}]
  }'

# Generate (нативний API)
curl http://localhost:11434/api/generate   -d '{"model": "mistral", "prompt": "Write a haiku about servers", "stream": false}'

Інтеграція з Python

pip install ollama
import ollama

response = ollama.chat(
    model='llama3.2:3b',
    messages=[
        {'role': 'system', 'content': 'Ти експерт із адміністрування Linux.'},
        {'role': 'user', 'content': 'Як оптимізувати nginx для високого навантаження?'}
    ]
)
print(response['message']['content'])

# Streaming
for chunk in ollama.chat(model='llama3.2:3b',
    messages=[{'role': 'user', 'content': 'Розкажи про Docker'}], stream=True):
    print(chunk['message']['content'], end='', flush=True)

Відкрити Ollama для зовнішнього доступу

# /etc/systemd/system/ollama.service.d/override.conf
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
systemctl daemon-reload && systemctl restart ollama
Безпека: Ніколи не відкривайте Ollama API напряму в інтернет. Використовуйте Nginx reverse proxy з автентифікацією або обмежте доступ за IP через firewall.

Рекомендації щодо вибору моделі

Модель VRAM/RAM Якість Швидкість
llama3.2:3b 2 ГБ Добре Швидко
llama3.1:8b 5 ГБ Відмінне Середньо
mistral:7b 4 ГБ Відмінне Середньо
qwen2.5:72b 40 ГБ Топ Повільно

Часті помилки

Проблеми з Ollama на VPS зазвичай пов'язані або із зайнятим портом, або з нестачею пам'яті під конкретну модель — обидві помилки легко сплутати з "модель не працює".

Error: listen tcp 127.0.0.1:11434: bind: address already in use

Порт 11434 вже зайнятий іншим процесом Ollama — наприклад, службу запущено і через systemd, і вручну через ollama serve в окремому терміналі. Перевірте зайняті порти командою ss -tlnp | grep 11434 і залиште лише один запущений процес.

Error: model requires more system memory than is available

Модель не вміщується в доступну оперативну пам'ять сервера. Рішення: обрати компактнішу квантизацію тієї ж моделі, зменшити кількість одночасно завантажених моделей через змінну OLLAMA_MAX_LOADED_MODELS, або перейти на VPS із більшим обсягом RAM.

Рівні квантизації: що означають літери в назві моделі

Квантування Точність Розмір на диску Коли використовувати
Q8_0 Максимальна серед квантованих варіантів Найбільший із перелічених Є запас RAM, важлива точність
Q5_K_M Висока Середній Баланс якості й розміру — варіант за замовчуванням
Q4_K_M Помірна, помітна на складних завданнях Компактніший за Q5_K_M Обмежена RAM, прийнятне зниження якості
Q2_K Помітно нижча за інші Мінімальний Жорсткий дефіцит пам'яті або швидкі тести

Коли Ollama не підходить

  • Потрібна максимальна якість відповіді для складних завдань — великі пропрієтарні моделі через API зазвичай точніші за будь-яку модель, що вміщується на звичайному VPS.
  • Навантаження нестабільне і пікове — тримати сервер із постійно зайнятою RAM під модель заради рідкісних сплесків може бути дорожче за оплату за токенами у зовнішнього провайдера, див. порівняння AI API.
  • Потрібна конкретна функціональність на кшталт генерації зображень або якісного розпізнавання мовлення — для цього більше підходять спеціалізовані моделі, наприклад Whisper для транскрипції.
  • Команда не готова підбирати квантизацію під конкретне залізо — керований API повністю знімає цю роботу.

Перевірка, що модель відповідає коректно

curl -s http://localhost:11434/api/generate -d '{"model": "llama3.2:3b", "prompt": "2+2=", "stream": false}'
ollama ps

Перша команда має повернути JSON із полем response, що містить змістовний текст. Друга показує, які моделі зараз завантажені в пам'ять і скільки це займає — корисно, якщо сервер почав відповідати повільніше звичайного і потрібно зрозуміти, чи не тримає Ollama в пам'яті зайву невикористовувану модель.

Варто також враховувати конкуренцію за ресурси, якщо на тому самому сервері працюють інші сервіси. Ollama за замовчуванням використовує всі доступні ядра CPU для інференсу на процесорі, і без обмежень через cgroups або змінні оточення генерація відповіді може помітно сповільнити решту процесів на VDS, включно з вебсервером і базою даних.

Часті питання

Чи обов'язково мати відеокарту (GPU), щоб запустити Ollama на VPS?

Ні, Ollama добре працює і на звичайному процесорі — модель завантажується в оперативну пам'ять, а генерація відбувається на CPU, просто повільніше, ніж із GPU. Відеокарта пришвидшує інференс, але не є обов'язковою: за вибору моделі на VPS без GPU головний обмежувальний чинник — обсяг RAM, а не наявність відеоприскорювача.

Як зрозуміти, які моделі прямо зараз завантажені в пам'ять на сервері з Ollama?

Команда перегляду завантажених моделей показує перелік активних процесів інференсу і обсяг зайнятої ними пам'яті в реальному часі. Це корисно, коли сервер почав відповідати повільніше за звичайне: так видно, чи не тримає Ollama в пам'яті зайву невикористовувану модель, і вивантажити саме її, не перезапускаючи всю службу.

Чи обов'язково відкривати порт Ollama назовні, щоб звертатися до неї з іншого комп'ютера?

Так, за замовчуванням служба слухає лише локальну адресу сервера, і для звернення ззовні порт справді варто відкрити через змінну оточення і перезапуск служби. Робити це напряму в інтернет небезпечно: відкритий без захисту порт API — універсальний спосіб отримати доступ до моделі для будь-кого, тому перед цим ставлять reverse proxy з автентифікацією або обмежують доступ за IP через firewall.

Чим локальна модель в Ollama принципово відрізняється від використання AI API на кшталт хмарних провайдерів?

Головна різниця — де залишаються дані і за що ви платите: локальна модель не надсилає запити назовні і не тарифікується за токенами, але її якість обмежена тим, що вміщується в пам'ять вашого сервера. Хмарний API зазвичай точніший на складних завданнях і не займає ресурси сервера постійно, натомість кожен запит коштує грошей, і дані залишають вашу інфраструктуру.

Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці