Актуально на 22 сентября 2026 года.

Своя LLM на сервере нужна не всем. Если задача - чат-бот, суммаризация документов или агент в n8n с небольшим объёмом запросов, чаще дешевле подключить готовый API или российский агрегатор нейросетей. Сервер имеет смысл, когда важны приватность данных, предсказуемая стоимость на больших объёмах, эксперименты с открытыми моделями или полный контроль над окружением.

Ниже - практический маршрут: какое железо выбрать, чем отличаются Ollama, vLLM и llama.cpp, как поднять первый endpoint и что обязательно закрыть по безопасности, чтобы модель не оказалась публичной для всего интернета.

Сначала определите сценарий

Не начинайте с выбора видеокарты. Сначала зафиксируйте, что именно должен делать сервер:

  • Личный чат или тестовая среда. Нужны простая установка, веб-интерфейс и возможность быстро менять модели. Обычно хватает Ollama и Open WebUI.
  • API для внутреннего сервиса. Нужен OpenAI-совместимый endpoint, лимиты, логи и нормальная авторизация на уровне прокси. Для этого лучше смотреть на vLLM или llama.cpp server.
  • Продакшн-инференс с параллельными запросами. Нужны batching, мониторинг, повторяемые деплои и GPU с запасом VRAM. Основной кандидат - vLLM.
  • Экономный запуск GGUF-моделей. Нужна работа на CPU, Mac, слабой GPU или гибридной схеме с частичной выгрузкой слоёв. Здесь обычно выбирают llama.cpp.
  • RAG по своим документам. Помимо LLM понадобятся хранилище файлов, эмбеддинги, векторная база и права доступа. Саму модель лучше держать за внутренним API.

Если сценарий ещё неясен, начните с Ollama на обычном VPS или домашней машине. Когда станет понятно, какая модель, контекст и нагрузка нужны, переносите inference на GPU-сервер.

Какое железо нужно

Главный ограничитель - видеопамять. Модель должна поместиться в VRAM вместе с KV-кэшем контекста и служебными накладными расходами. В четырёхбитном квантовании ориентиры такие:

Класс моделиМинимальный ориентирКомментарий
3-4BCPU или 6-8 ГБ VRAMПодходит для быстрых тестов, классификации, коротких ответов.
7-8B8-12 ГБ VRAM или 16-32 ГБ RAMХороший старт для личного чата и внутренних утилит.
14B16 ГБ VRAMБолее устойчивые ответы, но скорость уже заметно зависит от GPU.
30-32B24-48 ГБ VRAMПрактический класс для рабочих открытых LLM; на 24 ГБ часто нужен аккуратный контекст или частичная выгрузка.
70B48-80 ГБ VRAMДороже и сложнее; обычно оправдано для командной нагрузки или качества.
100B+80 ГБ VRAM и мульти-GPUЭто уже отдельный инфраструктурный проект, а не «один VPS».

Для CPU-запуска важны RAM и скорость памяти: 32 ГБ хватит для 7-14B в квантовании, 64 ГБ комфортнее для 30B-класса, но скорость будет ниже, чем на GPU. Диск тоже не забывайте: несколько моделей, Docker-образы и логи легко занимают 100-200 ГБ.

По выбору провайдера и ценам смотрите отдельный разбор про аренду GPU-сервера для нейросетей. Если агент только вызывает внешнюю модель по API, GPU не нужен: достаточно обычного VPS, как в статье про сервер для AI-агентов.

Выбор стека: Ollama, vLLM или llama.cpp

СтекКогда выбиратьСильные стороныОграничения
Ollamaбыстрый старт, личный чат, прототиппростая установка, библиотека моделей, удобный локальный APIне заменяет полноценную продакшн-платформу для высокой параллельности
Open WebUIнужен браузерный интерфейс поверх Ollama или OpenAI-compatible APIаккаунты, история чатов, подключение разных провайдеровтребует отдельной защиты и резервного копирования volume
vLLMAPI-сервер для команды или сервисаOpenAI-compatible API, высокая пропускная способность, batchingнужна аккуратная настройка безопасности и GPU-окружения
llama.cppGGUF, CPU/Mac/небольшие GPU, гибкий локальный inferenceквантованные модели, лёгкий сервер, много аппаратных backendменьше «коробочной» инфраструктуры вокруг эксплуатации

Практическая схема для большинства команд: Ollama + Open WebUI для редакторов и экспериментов, vLLM для стабильного API, llama.cpp для отдельных GGUF-моделей и экономных инсталляций.

Базовая подготовка сервера

Ниже пример для Ubuntu 24.04 LTS. Команды адаптируйте под свой образ и права доступа.

  1. Создайте отдельного пользователя для inference и запретите вход по паролю для root.
  2. Откройте наружу только 22, 80 и 443; внутренние порты моделей держите на 127.0.0.1.
  3. Поставьте Docker, обновления безопасности и базовый мониторинг диска.
  4. Для NVIDIA GPU проверьте драйвер командой nvidia-smi.
  5. Если модель работает в контейнере, установите NVIDIA Container Toolkit и проверьте, что Docker видит GPU.
docker run --rm --gpus all nvidia/cuda:12.6.3-base-ubuntu24.04 nvidia-smi

Если эта команда не видит видеокарту, Ollama, vLLM и Open WebUI в контейнере тоже не увидят GPU. Сначала чините драйвер и runtime, потом запускайте модель.

Вариант 1. Быстрый старт с Ollama

Ollama удобна, когда нужно за 10 минут проверить модель и получить локальный HTTP API.

curl -fsSL https://ollama.com/install.sh | sh
sudo systemctl status ollama
ollama pull qwen3:8b
ollama run qwen3:8b

Проверка API:

curl http://127.0.0.1:11434/api/generate \
  -d '{"model":"qwen3:8b","prompt":"Коротко объясни, что такое RAG","stream":false}'

Для Docker-варианта лучше сразу биндинговать порт на localhost, а не на весь интернет:

docker run -d --gpus=all \
  -v ollama:/root/.ollama \
  -p 127.0.0.1:11434:11434 \
  --name ollama \
  --restart unless-stopped \
  ollama/ollama

Если нужен интерфейс в браузере, добавьте Open WebUI. Секрет сгенерируйте отдельно и храните вне репозитория.

docker run -d \
  -p 127.0.0.1:3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  -e WEBUI_SECRET_KEY="замените-на-длинный-секрет" \
  --name open-webui \
  --restart unless-stopped \
  ghcr.io/open-webui/open-webui:main

Дальше поставьте Caddy, Nginx или другой reverse proxy с HTTPS и авторизацией. Не публикуйте Open WebUI без логина, если там есть рабочие документы или история чатов.

Вариант 2. API-сервер на vLLM

vLLM подходит, когда модель должна обслуживать приложение через OpenAI-совместимый API. Минимальный запуск выглядит так:

python3 -m venv /opt/vllm
source /opt/vllm/bin/activate
pip install -U pip vllm
export VLLM_API_KEY="замените-на-секрет"
vllm serve Qwen/Qwen3-8B \
  --host 127.0.0.1 \
  --port 8000 \
  --api-key "$VLLM_API_KEY"

Проверка:

curl http://127.0.0.1:8000/v1/chat/completions \
  -H "Authorization: Bearer $VLLM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"Qwen/Qwen3-8B","messages":[{"role":"user","content":"Ответь одним предложением: зачем нужен vLLM?"}]}'

Важный нюанс безопасности: встроенный --api-key у vLLM защищает не все endpoint-ы сервера. Поэтому production-схема должна быть такой: vLLM слушает только 127.0.0.1 или приватную сеть, наружу смотрит reverse proxy с HTTPS, rate limit, логами и отдельной авторизацией.

Вариант 3. llama.cpp server для GGUF

llama.cpp полезен, когда вы используете GGUF-модели, хотите запуск на CPU или комбинируете CPU/GPU. После сборки или установки сервера запуск обычно сводится к одной команде:

llama-server \
  -m /models/model.Q4_K_M.gguf \
  --host 127.0.0.1 \
  --port 8080 \
  -c 4096

У llama.cpp server есть REST API, OpenAI-compatible chat completions, web UI, embeddings и режимы для параллельной работы. Для небольших внутренних инструментов этого часто достаточно, особенно если модель уже доступна в GGUF и не хочется поднимать тяжёлый Python-стек.

Безопасность: что закрыть до первого пользователя

  • Не слушайте 0.0.0.0 без причины. Ollama, vLLM и llama.cpp держите на localhost или в приватной сети.
  • Не полагайтесь только на ключ модели. Ставьте reverse proxy, HTTPS, basic auth/OIDC, IP allowlist или VPN.
  • Не храните секреты в репозитории. API-ключи, пароли WebUI и токены прокси - только в env-файлах с ограниченными правами.
  • Ограничьте размер запросов. Длинный контекст быстро съедает VRAM и может положить сервис.
  • Разделяйте пользователей. Для команды нужен интерфейс с аккаунтами и правами, а не общий пароль на всех.
  • Делайте бэкапы volume. У Open WebUI история чатов и настройки живут в Docker volume; без бэкапа они исчезнут при ошибочном удалении.
  • Обновляйте образы контролируемо. Сначала тестовый контейнер и отдельный volume, потом production.

Минимальная внешняя схема: model-server:127.0.0.1 → Caddy/Nginx → HTTPS-домен → авторизация → пользователи. Для API добавьте rate limit и отдельные ключи на клиента.

Мониторинг и эксплуатация

Для одиночного сервера достаточно простого набора:

  • nvidia-smi или DCGM exporter - загрузка GPU, VRAM, температура;
  • docker logs / journalctl - ошибки загрузки модели и падения процесса;
  • мониторинг диска - модели и кэш Hugging Face быстро растут;
  • лог времени ответа и числа токенов - иначе невозможно понять себестоимость;
  • алерт на OOM и перезапуски контейнера.

Отдельно следите за контекстом. Увеличение окна с 4K до 32K токенов может сильнее ударить по памяти, чем смена модели на соседний размер. Для чата это приятно, для бюджета - не всегда.

Когда всё-таки не разворачивать свою LLM

Собственный сервер выглядит привлекательно, но часто проигрывает API по суммарной стоимости. Не разворачивайте модель, если:

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

В таких случаях разумнее начать с агрегатора или API-шлюза. Сравнение доступных из России вариантов есть в статье про агрегаторы нейросетей без VPN и в гайде про доступ к API OpenAI, Anthropic и Google из России.

Итоговый чеклист

  1. Сформулируйте сценарий: личный чат, внутренний API, RAG или production inference.
  2. Выберите модель и проверьте требования по VRAM с запасом под контекст.
  3. Для старта поставьте Ollama; для API-нагрузки - vLLM; для GGUF и CPU - llama.cpp.
  4. Держите модель на localhost, наружу выпускайте только reverse proxy с HTTPS и авторизацией.
  5. Сразу настройте логи, мониторинг VRAM, бэкапы volume и лимиты запросов.
  6. Через неделю эксплуатации сравните фактическую стоимость с API: сервер должен окупать свою сложность.

Хороший первый шаг - поднять 7-8B модель в Ollama и подключить Open WebUI только для себя. Если пользователи действительно приходят, запросы повторяются, а данные нельзя отправлять наружу, тогда уже имеет смысл переходить к GPU-серверу, vLLM и полноценной эксплуатации.

Источники

Сергей Васильев
Сергей Васильев

Редактор каталога нейросетей ailist.ru. Пишет про AI-инструменты: генерацию текста, изображений и видео, автоматизацию, чат-ботов и доступ к зарубежным сервисам из России. Тестирует новые сервисы и помогает выбирать рабочие инструменты под конкретные задачи. В AI с 2023 года — помнит времена, когда на сгенерированных нейросетью фотографиях у людей было по шесть пальцев.