К основному содержимому

Ollama: локальные LLM на VPS без API ключей

AI-агенты на VDS · 19.04.2026 · 5 мин чтения
Иллюстрация к статье «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 обычно точнее на сложных задачах и не занимает ресурсы сервера постоянно, зато каждый запрос стоит денег и данные покидают вашу инфраструктуру.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке