Блог

Корпоративный LLM в облаке за 50 ₽/час

2026-07-28 14:08 Блог
Представьте классический сценарий: ваш отдел разработки утопает в запросах к ChatGPT, а бюджет на API-токены уже превысил зарплату мидла, которого хотят заменить на ИИ, чтобы еще больше платить за токены.

Руководству плохо от трат за токены, безопасности и юристам плохо от рассылки личных данных всему миру, а аналитики просят ещё.

Как поднять собственный LLM-контур за один вечер?

В статье мы разберем три ключевых шага на основе реального запроса. Мы посчитаем экономику, настроим сервер за 5 минут и выберем железо, которое не разорит компанию.

Часть 1. Экономика и стратегия. Зачем компании локальный LLM?

Ключевые преимущества локального контура:
  • Экономия на масштабе. Если ваш проект потребляет от 10 миллионов токенов в месяц, локальная инфраструктура начинает окупаться. Вы платите не за каждое слово, а за время работы железа — и чем активнее используете, тем дешевле токен.
  • Конфиденциальность. Данные не покидают ваш сервер. Никаких рисков, что промпты с финансовой отчетностью или исходным кодом попадут в обучающую выборку провайдера.
  • Предсказуемость. Цена фиксирована, нет внезапных лимитов скорости.
  • Кастомизация. Вы вольны экспериментировать с оптимизацией, менять батчинг и параметры инференса под свои задачи.

Облачный GPU против Облачного API: Сравнительная таблица

Мы не рассматриваем покупку физических серверов. Вместо этого сравним два подхода к облаку:

Сколько стоят токены GPT-4? Считаем точку безубыточности

Чтобы понять, когда локальный запуск становится выгодным, возьмем цены в рублях (данные агрегатора llmoney.ru) для GPT-4.1:

  • Стоимость входа (Input): ~154 ₽ за 1M токенов.
  • Стоимость выхода (Output): ~616 ₽ за 1M токенов.

В зависимости от задачи, итоговый чек за 1M токенов будет разным:
Тип приложения
Соотношение (In/Out)
Средняя цена за 1M токенов
Чат-бот / Поддержка
50% / 50%
~193 ₽
Аналитика документов / RAG
80% / 20%
~123 ₽
Генерация контента
20% / 80%
~257 ₽
Кодинг / Assist
60% / 40%
~170 ₽
Суммаризация
70% / 30%
~146 ₽

Вывод по первой части (экономика)

Давайте приземлим цифры на реальный проект. Предположим, у вас внутренний RAG-чат для техподдержки, который обрабатывает 50 000 запросов в месяц со средним объемом 2K токенов на диалог. Это 100M токенов в месяц.

  • На GPT-4.1 API вы отдадите ~12 300 ₽ (из расчета 123 ₽ за 1M токенов).
  • На локальном GPU (например, RTX 4090 за 33 ₽/час) при круглосуточной работе получится ~23 760 ₽ в месяц.

На первый взгляд API дешевле. Но дьявол в деталях:

  • На локальном GPU вы можете поставить Qwen-3.5, которые закрывают бизнес задачи, и при этом ваши данные никогда не утекут.
  • Если нагрузка неравномерная (пик днем, спад ночью), вы можете использовать прерываемые инстансы и платить только за рабочие часы.

В нашем случае с 8-часовым рабочим днем (160 часов в месяц) стоимость составит ~5 280 ₽. Это уже в 2.3 раза дешевле API, а конфиденциальность — в подарок.

Когда точно стоит переходить? Если ваш ежемесячный счет за API превышает 5–7 тысяч рублей, а трафик равномерный — локальный GPU окупится за месяц-два.

Часть 2. Технический запуск за 5 минут на облачном GPU

Итак, вы арендовали сервер с GPU (например, в Selectel или Yandex Cloud) на Ubuntu 22.04. Задача — за минимальное время поднять эндпоинт, совместимый с OpenAI API.

У нас два инструмента: Ollama — для быстрого старта без головной боли, и llama.cpp — для тонкой настройки производительности.

В статье мы не рассматриваем UI только REST API для работы сервисов.

Вариант А: Ollama (Самый быстрый старт)

Идеален для POC (доказательства концепции) и разработки.

1. Установка и запуск сервера
# Установка
curl -fsSL https://ollama.com/install.sh | sh

# Запускаем сервер, слушая все интерфейсы
OLLAMA_HOST=0.0.0.0:11434 ollama serve

# Скачиваем легковесную модель (Qwen 3.5 на 2B параметров — отлично для тестов)
ollama pull qwen3.5:2b
2. Проверка API
Убеждаемся, что модель загружена и сервер отвечает:
curl http://localhost:11434/api/tags | jq
3. Отправка запроса (как в OpenAI)

Любой сотрудник может отправлять запросы на IP сервера:
curl http://<IP-ВАШЕГО-СЕРВЕРА>:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3.5:2b",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Объясни, что такое квантование модели, простыми словами."}
    ],
    "temperature": 0.7,
    "max_tokens": 500
  }'

Вариант Б: llama.cpp (Максимальный контроль)

Выбирайте этот путь, если нужна поддержка экзотических моделей или максимальная скорость инференса на конкретном GPU.

1. Сборка с поддержкой CUDA
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
mkdir build && cd build

# Указываем путь к CUDA компилятору
export CUDACXX=/usr/local/cuda/bin/nvcc

cmake .. \
  -DCMAKE_BUILD_TYPE=Release \
  -DGGML_CUDA=ON \
  -DLLAMA_CURL=ON \
  -DGGML_CUDA_FA=ON \       # Flash Attention для ускорения
  -DCMAKE_CUDA_ARCHITECTURES=89 # Укажите вашу архитектуру (например, 89 для RTX 40xx)

cmake --build . --config Release --target llama-server --parallel
2. Скачивание модели (формат GGUF)
mkdir -p ./models
wget -O ./models/Qwen3.5-9B_Q4_k_m.gguf \
  "https://huggingface.co/SandLogicTechnologies/qwen3.5-9b-GGUF/resolve/main/Qwen3.5-9B_Q4_k_m.gguf"
3. Запуск сервера

Запускаем с переносом слоев на GPU (-ngl 40) и увеличенным контекстом (-c 16384).
./bin/llama-server \
    -m ./models/Qwen3.5-9B_Q4_k_m.gguf \
    --host 0.0.0.0 \
    --port 8089 \
    -c 16384 \
    -ngl 40 \
    --jinja      # Включаем поддержку шаблонов токенизации
4. Отправка запроса

API полностью совместимо с OpenAI, поэтому код клиента менять не нужно:
curl http://<IP-ВАШЕГО-СЕРВЕРА>:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3.5:2b",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Объясни, что такое квантование модели, простыми словами."}
    ],
    "temperature": 0.7,
    "max_tokens": 500
  }'

Частые проблемы на облачных GPU и их решение

Проблема
Решение
Медленные ответы (High Latency)
Используйте модель с сильным квантованием (Q4_K_M или Q5). Для llama.cpp обязательно укажите -ngl с максимальным числом (чтобы все слои влезли в VRAM). В Ollama регулируйте через --num-gpu-layers.
Ошибка CUDA out of memory
Уменьшите размер контекста (-c или num_ctx) до 4096–8192. Попробуйте квантизацию Q3_K_M вместо Q4.
Модель "бредит" (Hallucinations)
Снизьте temperature до 0.1–0.3 и добавьте жесткий системный промпт. Для серьезных задач используйте модели 7B–8B вместо 2B.

Часть 3. Где это запустить? Облачный GPU за ~50 ₽/час

Теперь самый важный вопрос: где взять GPU дешево и надежно? Рассмотрим российского провайдера Selectel, у которого можно арендовать сервер с NVIDIA GPU по часам.

Сравнение тарифов (прерываемые инстансы)

Параметр
A100
RTX 4090
RTX 6000 Ada
vCPU
12
8
12
RAM
128 ГБ
64 ГБ
64 ГБ
GPU
A100 80 ГБ
RTX 4090 24 ГБ
RTX 6000 Ada 48 ГБ
Тип GPU
прерываемый
прерываемый
прерываемый
Кол-во GPU
1
1
1
Диск (SSD)
200 ГБ
200 ГБ
200 ГБ
Цена GPU
132,74 ₽
20,57 ₽
76,86 ₽
Цена (оборуд.)
170,72 ₽
32,92 ₽
90,13 ₽
Сеть (1 IP)
0,25 ₽
0,25 ₽
0,25 ₽
Итого
170,97 ₽
33,17 ₽
90,38 ₽
Это особенно удобно когда у вас:

  • Нет физического сервера
  • Нет доступа к зарубежным API по причине блокировки
  • Есть ограничения по требованиям безопасности

Итоговый вывод: Собираем пазл

Давайте соединим все три части в единый план действий.

  1. Экономика. Если ваш API-счет превышает 5–7 тысяч рублей в месяц — локальный GPU уже выгоден. При 8-часовом рабочем дне RTX 4090 обойдется в ~5300 ₽/мес, что в 2–3 раза дешевле GPT-4 для RAG-задач.
  2. Скорость запуска. С Ollama вы поднимаете сервер за 3 минуты. С llama.cpp — за 10 минут (с учетом сборки). В обоих случаях API совместимо с OpenAI, так что ваши клиенты не заметят подмены.
  3. Где хостить. RTX 4090 от Selectel — золотая середина для большинства задач: 24 ГБ VRAM хватает на модели 7B–8B с контекстом 8K–16K. Если нужны 70B-модели — берите RTX 6000 Ada (48 ГБ) или A100 (80 ГБ).

Запустив этот контур, вы получите полный контроль над данными, предсказуемый бюджет и возможность экспериментировать с любыми open-source моделями без оглядки на счета за токены.