Гайды

65

13 марта 2026

Как хостить LLM на своём GPU-сервере

Полный гайд по self-hosted LLM: выбор модели, железа, inference-движка и настройка API для команды

Запуск собственного LLM-сервера — это полный контроль над данными, отсутствие ежемесячных платежей за API и возможность кастомизации. В этом гайде разберём, как поднять production-ready LLM-сервер на GPU.

Зачем хостить LLM самому?

Аргумент Self-hosted Облачный API (OpenAI, Anthropic)
Конфиденциальность Данные не покидают сервер Данные отправляются провайдеру
Стоимость при объёме Фиксированная (аренда GPU) Растёт с каждым токеном
Latency Контролируемая Зависит от провайдера
Доступность Не зависит от API-лимитов Rate limits, outages
Кастомизация Своя модель, файнтюнинг Только то, что предлагает провайдер
Начальные затраты Выше (настройка) Ниже (API-ключ)

Когда self-hosted выгоден:
- Больше ~$500/мес на API-токены
- Есть требования по конфиденциальности (медицина, финансы, внутренняя документация)
- Нужна кастомная модель (файнтюнинг)
- Стабильный поток запросов (не спорадический)

Выбор модели

По задаче

Задача Рекомендуемая модель Параметры
Универсальный чат-бот Qwen2.5-32B-Instruct 32B
Генерация кода Qwen2.5-Coder-32B-Instruct 32B
Reasoning / логика DeepSeek-R1-Distill-Qwen-32B 32B
Лёгкий ассистент Qwen2.5-7B-Instruct 7B
Максимальное качество DeepSeek-V3 / Llama 3.1 405B 671B / 405B
Мультиязычный Qwen2.5-32B (best multilingual) 32B
Суммаризация / RAG Mistral-Small-24B-Instruct 24B

По доступному VRAM

VRAM Лучшая модель (Q4_K_M) Качество
8 ГБ Qwen2.5-7B Хорошее для простых задач
12 ГБ Qwen2.5-14B Хорошее
16 ГБ Mistral-Small-24B Очень хорошее
24 ГБ Qwen2.5-32B Отличное
48 ГБ Llama 3.1 70B Отличное
80 ГБ Llama 3.1 70B (FP16) Максимальное в классе
640 ГБ DeepSeek-V3 (FP8) Frontier-уровень

Выбор inference-движка

Ollama — для простоты

Когда использовать: личный сервер, 1–3 пользователя, быстрый старт.

# Установка
curl -fsSL https://ollama.com/install.sh | sh

# Запуск модели
ollama run qwen2.5:32b

# API-сервер (совместим с OpenAI)
ollama serve
# Доступен на http://localhost:11434/v1/chat/completions

Плюсы: простота, автоматическое скачивание моделей, GGUF-квантизации.
Минусы: нет continuous batching, медленнее при нескольких пользователях.

vLLM — для продакшена

Когда использовать: API для команды/продукта, 5+ пользователей, максимальная производительность.

pip install vllm

vllm serve Qwen/Qwen2.5-32B-Instruct \
    --tensor-parallel-size 1 \
    --max-model-len 16384 \
    --gpu-memory-utilization 0.92 \
    --dtype auto \
    --api-key your-secret-key \
    --host 0.0.0.0 --port 8000

Плюсы: continuous batching, PagedAttention, tensor parallelism, OpenAI-совместимый API.
Минусы: требует больше настройки, только HuggingFace-формат (не GGUF).

llama.cpp + llama-server — для CPU offload

Когда использовать: модель не помещается в VRAM целиком, нужен частичный CPU offload.

./llama-server \
    -m model.gguf \
    --n-gpu-layers 30 \
    -c 8192 \
    --host 0.0.0.0 --port 8080

Сравнение

Движок Throughput (tok/s, 32B, 1 user) Throughput (10 users) Формат Multi-GPU
Ollama ~25 ~10 (per user) GGUF Pipeline
vLLM ~30 ~20 (per user) HF/AWQ/GPTQ Tensor
llama-server ~25 ~8 (per user) GGUF Pipeline

Настройка OpenAI-совместимого API

Все три движка предоставляют API, совместимый с OpenAI SDK:

from openai import OpenAI

client = OpenAI(
    base_url="http://your-server:8000/v1",
    api_key="your-secret-key",  # для vLLM; для Ollama — любой
)

response = client.chat.completions.create(
    model="Qwen/Qwen2.5-32B-Instruct",  # или "qwen2.5:32b" для Ollama
    messages=[
        {"role": "system", "content": "Ты полезный ассистент."},
        {"role": "user", "content": "Объясни что такое transformer"}
    ],
    temperature=0.7,
    max_tokens=1024,
)

print(response.choices[0].message.content)

Это значит, что вы можете подставить свой сервер вместо OpenAI API в любом приложении, которое использует OpenAI SDK — LangChain, LlamaIndex, AutoGen, Continue.dev и т.д.

Веб-интерфейс: Open WebUI

Для удобного ChatGPT-подобного интерфейса:

# docker-compose.yml
services:
  ollama:
    image: ollama/ollama
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    volumes:
      - webui_data:/app/backend/data
    depends_on:
      - ollama

volumes:
  ollama_data:
  webui_data:
docker compose up -d
docker exec ollama ollama pull qwen2.5:32b

Откройте http://your-server:3000 — многопользовательский чат с историей, файлами и RAG.

Продакшен-настройки

Reverse proxy с HTTPS

server {
    listen 443 ssl http2;
    server_name llm.your-domain.com;

    ssl_certificate /etc/letsencrypt/live/llm.your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/llm.your-domain.com/privkey.pem;

    # API endpoint
    location /v1/ {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_read_timeout 300s;  # LLM генерирует долго
    }

    # WebUI
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Мониторинг

Ключевые метрики для LLM-сервера:

Метрика Как отслеживать Норма
GPU utilization nvidia-smi / Prometheus 70–95%
VRAM usage nvidia-smi <95%
Tokens/second vLLM metrics endpoint Зависит от модели
Request latency (TTFT) Логи / Prometheus <2с для 32B
Queue depth vLLM metrics <10
GPU temperature nvidia-smi <85°C

vLLM предоставляет встроенный Prometheus endpoint:

vllm serve ... --enable-metrics
# Метрики на http://localhost:8000/metrics

Автозапуск

# systemd unit для vLLM
sudo tee /etc/systemd/system/vllm.service << 'EOF'
[Unit]
Description=vLLM Server
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu
ExecStart=/home/ubuntu/.local/bin/vllm serve Qwen/Qwen2.5-32B-Instruct \
    --tensor-parallel-size 1 \
    --max-model-len 16384 \
    --gpu-memory-utilization 0.92 \
    --api-key your-secret-key
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable --now vllm

Сравнение стоимости: self-hosted vs API

Пример: 1M токенов/день

Вариант Стоимость/мес Качество
OpenAI GPT-4o ~$450 Отличное
Anthropic Claude 3.5 Sonnet ~$270 Отличное
Self-hosted Qwen2.5-32B на RTX 4090 ~$150 (аренда) Очень хорошее
Self-hosted Qwen2.5-32B на б/у RTX 3090 ~$50 (электричество) Очень хорошее

При 5M+ токенов/день self-hosted становится в 5–10× дешевле облачных API.

Пример: 10M токенов/день

Вариант Стоимость/мес
OpenAI GPT-4o ~$4 500
Self-hosted 2× RTX 3090 + Qwen-32B ~$100 (электричество)
Self-hosted A100 80GB (аренда) ~$500

Выбор GPU для LLM-сервера

Сценарий GPU VRAM Модель
Личный ассистент RTX 3090 (б/у) 24 ГБ Qwen2.5-32B Q4
Команда 5–10 человек RTX 4090 24 ГБ Qwen2.5-32B Q4
Команда 10–30 человек 2× RTX 3090 или A100 40GB 48–80 ГБ Llama 3.1 70B Q4
API для продукта A100 80GB или H100 80 ГБ Llama 3.1 70B FP16
Frontier-модели 8× H100 640 ГБ DeepSeek-V3 / Llama 405B

Частые проблемы

Модель загружается, но отвечает медленно

  1. Проверьте, что модель полностью на GPU (nvidia-smi — VRAM usage)
  2. CPU offload = в 10–50× медленнее
  3. Включите Flash Attention в llama.cpp (-fa)
  4. Используйте vLLM вместо Ollama для нескольких пользователей

OOM при нескольких пользователях

  1. Уменьшите --max-model-len (KV-кеш растёт с контекстом × кол-во пользователей)
  2. В vLLM: --max-num-seqs 4 (ограничить параллельные запросы)
  3. Используйте квантизацию (Q4_K_M вместо FP16)

Качество ответов хуже, чем у ChatGPT

  1. Используйте Instruct/Chat версию модели (не base)
  2. Проверьте system prompt
  3. Попробуйте модель побольше (7B → 32B)
  4. Настройте temperature (0.7 для чата, 0 для точных задач)

Итог

Self-hosted LLM — это практично и экономично при объёме от 1M токенов/день. Для старта:

  1. Возьмите RTX 3090 (б/у за $600) или арендуйте GPU-сервер
  2. Установите Ollama (простота) или vLLM (производительность)
  3. Поставьте Open WebUI для интерфейса
  4. Запустите Qwen2.5-32B — лучший баланс качества и размера

Хотите запустить LLM-сервер без покупки железа? Арендуйте GPU-сервер в облаке Intelion — оплата по минутам, без обязательств.

Гайды

#GPU

#LLM

#vLLM

#inference

#self-hosted

#Ollama

#API