Все статьи
Руководства

Своя LLM на VPS через Ollama без видеокарты

Коротко

Ollama запускает открытые языковые модели на VPS без видеокарты, только на процессоре. По README Ollama моделям 7B нужно 8 ГБ памяти, 13B - 16 ГБ, 33B - 32 ГБ. На CPU генерация заметно медленнее, чем на GPU, поэтому такой сервер подходит для чат-ботов, суммаризации и классификации небольших объёмов текста.

Главное
  • Ollama запускает открытые языковые модели (LLM) на VPS без видеокарты: устанавливается одной командой curl -fsSL https://ollama.com/install.sh | sh и работает как служба systemd.
  • По README Ollama для моделей 7B нужно не меньше 8 ГБ оперативной памяти, для 13B - 16 ГБ, для 33B - 32 ГБ.
  • На процессоре Ollama генерирует текст заметно медленнее, чем на видеокарте; реальную скорость в токенах в секунду показывает строка eval rate в выводе ollama run --verbose.
  • API Ollama слушает только 127.0.0.1:11434 и не имеет авторизации: порт 11434 нельзя открывать в интернет, снаружи к нему ходят через SSH-туннель или обратный прокси с паролем.
  • В тарифах Tihost видеокарт нет; под модели 13B-33B подходят конфигурации Power с 16-32 ГБ памяти.

Сколько памяти нужно для LLM в Ollama?

Память - главное ограничение для LLM на сервере без видеокарты: модель целиком загружается в оперативную память, и если её не хватает, модель не запустится. README Ollama даёт ориентиры: 8 ГБ памяти для моделей 7B, 16 ГБ для 13B и 32 ГБ для 33B. Ollama по умолчанию скачивает квантованные модели (4 бита на вес), поэтому модель 7B занимает на диске около 4-5 ГБ. Длинный контекст добавляет расход памяти сверх этого.

Размер моделиПамять по README OllamaКонфигурация Tihost
1-3BНе указано; файл модели 3B весит около 2 ГБStarter с 4 ГБ памяти
7B8 ГБAdvanced: 4 vCPU / 8 ГБ, с запасом - 12 ГБ
13B16 ГБPower: 8 vCPU / 16 ГБ
33B32 ГБPower: 16 vCPU / 32 ГБ (Польша)
Строки 7B-33B - ориентиры из README Ollama; строка 1-3B - оценка по размеру файла модели.

Насколько медленно LLM работает без видеокарты?

На процессоре генерация заметно медленнее, чем на видеокарте, и тем медленнее, чем больше модель: модель 3B отвечает быстрее модели 13B на том же сервере. Скорость зависит от процессора, частоты, памяти и самой модели, поэтому мерьте её на своём сервере (шаг 3), а не верьте чужим цифрам. LLM на CPU оправдана, когда:

  • нужен чат-бот или ассистент для небольшой команды, где ответ за несколько секунд допустим;
  • нужно суммаризировать, классифицировать или размечать небольшие объёмы текста в фоне - например, заявки или отзывы;
  • данные нельзя отправлять во внешний API, и модель должна работать на своём сервере;
  • нужен стенд для экспериментов с промптами и моделями без оплаты за каждый токен.

Шаг 1. Установите Ollama

Сначала проверьте, сколько у сервера памяти, ядер и свободного места на диске - модели занимают гигабайты. Затем установите Ollama официальным скриптом: он скачивает программу, создаёт пользователя ollama и службу systemd, которая стартует при загрузке сервера.

bash
free -h
nproc
df -h /
bash
curl -fsSL https://ollama.com/install.sh | sh
ollama --version
sudo systemctl status ollama

Скрипт выполняется с правами root, поэтому при желании сначала скачайте его и прочитайте. При установке скриптом модели хранятся в /usr/share/ollama/.ollama/models.

Шаг 2. Скачайте и запустите модель

Команда ollama run <модель> скачивает модель из библиотеки на ollama.com и открывает чат в терминале; выход - /bye. Начните с небольшой модели, например llama3.2:3b: она быстро скачивается и показывает, на что способен сервер.

bash
ollama run llama3.2:3b
ollama list
ollama ps

ollama list показывает скачанные модели, ollama ps - загруженные в память. После 5 минут простоя Ollama выгружает модель из памяти, поэтому первый ответ после паузы приходит дольше: модель загружается заново. Ненужные модели удаляет ollama rm <модель>.

Шаг 3. Замерьте скорость генерации

Флаг --verbose после каждого ответа печатает статистику. Главная строка - eval rate: сколько токенов в секунду модель генерирует на вашем сервере. prompt eval rate - скорость чтения запроса, load duration - время загрузки модели в память.

bash
ollama run llama3.2:3b --verbose

Задайте несколько типичных для вашей задачи вопросов и сравните eval rate у моделей разного размера - так вы выберете самую крупную модель, которая отвечает достаточно быстро. Как оценить процессор и диск сервера в целом - в статье о тестировании VPS.

Шаг 4. Обращайтесь к модели через API

Служба Ollama поднимает HTTP API на 127.0.0.1:11434 - к нему обращаются скрипты и боты на том же сервере. С "stream": false ответ приходит одним JSON целиком, а не по токенам:

bash
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2:3b",
  "prompt": "Объясни, что такое VPS, в двух предложениях",
  "stream": false
}'

Текст ответа лежит в поле response. Так же к Ollama подключают Telegram-бота на VPS или своё приложение: запросы идут по локальному адресу и не покидают сервер.

Шаг 5. Доступ снаружи: SSH-туннель вместо открытого порта

У API Ollama нет авторизации: любой, кто достучится до порта 11434, сможет пользоваться моделью и нагружать ваш сервер. Поэтому не меняйте адрес на 0.0.0.0 и не открывайте 11434 в UFW. Для доступа со своего компьютера пробросьте порт через SSH:

bash
# на своём компьютере, не на сервере
ssh -N -L 11434:localhost:11434 user@IP_СЕРВЕРА
# пока туннель открыт, API доступен локально
curl http://localhost:11434/api/tags

Шаг 6. Веб-интерфейс Open WebUI

Open WebUI - веб-интерфейс в стиле ChatGPT для моделей Ollama: история чатов, выбор модели, несколько пользователей. Он запускается в Docker (как поставить - в статье об установке Docker). Вариант с сетью хоста видит Ollama на 127.0.0.1 и открывает интерфейс на порту 8080:

bash
docker run -d --network=host \
  -v open-webui:/app/backend/data \
  -e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
  --name open-webui --restart always \
  ghcr.io/open-webui/open-webui:main

При включённом UFW порт 8080 закрыт снаружи - откройте интерфейс через SSH-туннель (ssh -N -L 8080:localhost:8080 user@IP_СЕРВЕРА, затем http://localhost:8080 в браузере). Сразу создайте учётную запись: первая зарегистрированная становится администратором.

Какой VPS Tihost взять под Ollama?

В тарифах Tihost видеокарт нет - модели работают на процессорах AMD Ryzen 9. Для моделей 7B подойдёт Advanced с 8-12 ГБ памяти, для 13B и 33B - Power с 16-32 ГБ. Ryzen 9 9950X на польской площадке поддерживает AVX-512 и память DDR5, которые ускоряют вычисления нейросетей на CPU, - подробнее в сравнении Ryzen 9 5950X и 9950X.

КонфигурацияГерманияФинляндияПольша
8 vCPU·16 GB RAM·300 GB NVMe$32.00$32.00$40.00
12 vCPU·24 GB RAM·350 GB NVMe$49.00$49.00$61.00
16 vCPU·32 GB RAM·450 GB NVMe--$77.50
Цена за 30 дней, USD. Прочерк - конфигурация в локации не продаётся.
Запустите сервер за 2 минуты

AMD Ryzen 9, NVMe и защита от DDoS в Германии, Финляндии и Польше. Оплата криптовалютой или картой.

Заказать сервер

Частые вопросы

Можно ли запустить нейросеть на VPS без видеокарты?

Да. Ollama запускает открытые языковые модели только на процессоре; генерация медленнее, чем на GPU, но для чат-ботов, суммаризации и классификации небольших объёмов текста этого хватает.

Сколько оперативной памяти нужно для модели 7B в Ollama?

По README Ollama модели 7B нужно не меньше 8 ГБ оперативной памяти, модели 13B - 16 ГБ, модели 33B - 32 ГБ. Длинный контекст добавляет расход памяти сверх этих цифр.

Как узнать скорость модели в токенах в секунду?

Запустите модель командой ollama run <модель> --verbose и задайте вопрос: строка eval rate в статистике после ответа показывает скорость генерации в токенах в секунду на вашем сервере.

Можно ли открыть API Ollama в интернет?

Не стоит: у API Ollama на порту 11434 нет авторизации. Для доступа снаружи используйте SSH-туннель или обратный прокси nginx с HTTPS и паролем, а порт 11434 держите закрытым.

Есть ли у Tihost VPS с видеокартой?

Нет, тарифы Tihost процессорные: AMD Ryzen 9 без GPU. Самая крупная конфигурация - 16 vCPU и 32 ГБ памяти, её хватает для моделей до 33B по ориентирам README Ollama.

Как подключить к Ollama веб-интерфейс как у ChatGPT?

Запустите Open WebUI в Docker с --network=host и OLLAMA_BASE_URL=http://127.0.0.1:11434. Интерфейс откроется на порту 8080; снаружи к нему лучше ходить через SSH-туннель.