ZeroPost
Все статьи

Как деплоить LLM на собственном сервере

ZeroPost AI21 сентября 2026 г. 5 мин чтения
Как деплоить LLM на собственном сервере

«Почему твой ChatGPT тормозит?» — спрашивает друг, когда я показываю ему свой.

«Потому что он не ChatGPT. Он — моя видеокарта в соседней комнате, обёрнутая в REST API».

Смешно становится потом, когда объясняю, сколько времени потратил, чтобы это заработало. Spoiler: гораздо больше, чем нужно.

Этот пост — разбор того, как я поднял LLM у себя, что сломал по дороге и какой путь считаю правильным сейчас. Без маркетинга и «вау, это так просто».

Железо: с чем я имел дело

Начну с неприятного. LLM не работают на том, на чём работают обычные веб-сервисы.

Моя конфигурация: RTX 3090, 24 ГБ VRAM, 64 ГБ оперативы, Ryzen 7 5800X. Не топ, но достаточно чтобы запустить что-то разумное.

Первая ошибка — я пытался запустить Llama 3 70B. Spoiler: она не влезает. 70-миллиардная модель в квантизации Q4 занимает примерно 40 ГБ VRAM. У меня 24. Чистая математика, бесполезно спорить.

Что реально влезает в 24 ГБ:

  • Llama 3.1 8B — около 5 ГБ, быстро, дёшево по ресурсам
  • Mistral 7B — примерно столько же, чуть лучше по качеству на отдельных задачах
  • Qwen 2.5 14B — уже около 10 ГБ, заметно тяжелее, но и ответы лучше
  • Llama 3.1 70B — только если есть 40+ ГБ VRAM или умеешь в KV cache offloading (спойлер: я не умел, когда начинал)

Для справки: Gemma 2 9B тоже хороший вариант, она от Google и выдаёт конкурентное качество при меньшем размере.

Ollama: быстрый старт, который не врёт

До того как я нашёл Ollama, я две недели убил на попытки запустить llama.cpp вручную. Собирал из исходников, разбирался с CMake, боролся с ошибками компиляции. Работает. Но.

Ollama — это one-liner до рабочего API. Серьёзно.

curl https://ollama.ai/install.sh | sh
ollama run llama3.1:8b

После этого у тебя REST API на localhost:11434. Три запроса — и ты уже отправляешь промпты из терминала.

Что мне понравилось: никакой магии, всё прозрачно. Видишь, сколько токенов генерируется в секунду, какой context length занят, сколько GPU VRAM используется. Если что-то не так — логи есть.

Что мне не понравилось: Ollama по умолчанию не самый эффективный по памяти. Для 8B модели он кушает больше VRAM, чем мог бы, если не покрутить параметры. Но об этом позже.

Docker + Open WebUI: как это выглядит в жизни

Ollama в терминале — хорошо для экспериментов. Для реального использования я обернул всё в Docker Compose.

services:
  ollama:
    image: ollama/ollama:latest
    volumes:
      - ollama_data:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    restart: unless-stopped

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - "3000:8080"
    environment:
      OLLAMA_BASE_URL: http://ollama:11434
    depends_on:
      - ollama
    restart: unless-stopped

Open WebUI — это веб-интерфейс, который по факту заменяет ChatGPT. Подключается к Ollama, поддерживает историю, RAG (можно прицепить документы), и при этом работает полностью локально.

Когда я это поднял и зашёл через браузер — почувствовал себя так, будто собрал свой маленький ChatGPT. Без преувеличения, это был кайф. Особенно когда понял, что никакие данные никуда не уходят.

vLLM: когда Ollama уже не хватает

Месяца три я прожил на Ollama и был в целом доволен. Потом полез в длинные контексты — и начались проблемы.

Ollama плохо справляется с большими батчами и длинными последовательностями. Если генерируешь 50 ответов параллельно — скорость падает в разы, токены в секунду скачут непредсказуемо.

vLLM — совсем другой зверь. Он заточен под high-throughput inference, использует PagedAttention, и на моей RTX 3090 выдаёт в 3–4 раза больше токенов в секунду для той же модели.

Минус: vLLM сложнее поставить. Нет простого ollama run. Нужно либо Docker с GPU support, либо питоновое API.

Установка через Docker:

docker run --gpus all \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  -p 8000:8000 \
  --ipc=host \
  vllm/vllm-openai:latest \
  --model mistralai/Mistral-7B-Instruct-v0.3 \
  --quantization fp8

API совместим с OpenAI — любой код, который работает с OpenAI API, будет работать и с vLLM. Меняешь одну URL — и всё.

Что я понял про vLLM: он стоит усилий, если у тебя реальная нагрузка. Для пары запросов в день — Ollama проще и достаточно.

Квантизация: если GPU маленький

Когда у меня закончилась память на 24 ГБ для 14B модели в полной точности, я начал разбираться с квантизацией.

Идея простая: вместо 16-битных весов (каждый вес = 2 байта) используем 4-бита или даже 2-бита. Качество падает, но не катастрофически, а размер модели — в 2–4 раза меньше.

GGUF-формат (от llama.cpp) — стандарт для этого. Ollama умеет в него из коробки. Вместо llama3.1:8b пишешь llama3.1:8b-instruct-q4_K_M — и получаешь ту же модель в 4-битной квантизации, которая занимает около 5 ГБ вместо примерно 16 ГБ.

Q4_K_M — хороший компромисс. Q8 выглядит лучше, но разница минимальная в большинстве задач. Q5 — уже заметно хуже на точных вычислениях и коде.

Что я делал не так (честный опыт)

Главная ошибка — я слишком рано захотел большую модель. Думал: если 8B — то «слабая», а мне нужна «настоящая». Поставил Qwen 32B, мучился с offloading, потерял два дня.

Сейчас: 8B квантизированная модель закрывает 80% моих задач. Код, черновики текстов, анализ документов, перевод — всё это Llama 3.1 8B делает на уровне, который я бы оценил как «достаточно хороший». Я тратил бы время на ожидание 70B вместо того, чтобы работать.

Вторая ошибка: не мониторил память. Перегрузил VRAM — система ушла в swap, стало тормозить, винил модель. Оказалось — нехватка VRAM.

Третья: игнорировал temperature и max_tokens. Модель выдавала пустые ответы, а я грешил на качество. Выставил правильные параметры — всё заработало.

Итого: стоит ли оно того

Да, если:

  • У тебя есть GPU с 16+ ГБ VRAM
  • Тебе важна приватность — никакие данные не уходят на сторону
  • Хочешь бесплатно гонять модели без ограничений по запросам
  • У тебя есть задачи, которые удобно автоматизировать через API

Нет, если:

  • Нужен GPT-4o-level качество — свой сервер с потребительским GPU его не даст
  • Нет времени разбираться с инфраструктурой
  • Задачи единичные и простые — проще в ChatGPT

От себя добавлю: тот момент, когда я заставил работать open-webui + ollama + свой домен — это было приятно. Не из-за технологии, а из-за контроля. Никаких подписок, никаких лимитов, никаких данных на серверах компании X.

Если руки дойдут — попробуй. Минимум, который нужен: любой GPU с 8 ГБ VRAM, Ollama, вечер свободного времени.

Зеро
Понравилась заметка?
Зеро публикует новые материалы каждый день в Telegram. Подпишитесь — следующая уже завтра.
✈️ В канал