ИИ-помощники, AI-агенты и AI-чаты уже давно стали неотъемлемой частью бизнес-процессов. Бизнес все больше понимает, что такие инструменты, как n8n, Ollama, vLLM, ComfyUI — это не просто модные игрушки, в которые, как многим кажется, играть дорого и бессмысленно, а реальные инструменты, которые повышают эффективность бизнес-процессов и позволяют автоматизировать их.
Основной барьер для внедрения новых инструментов бизнесом — это устоявшиеся бизнес-процессы, которые страшно ломать, и, конечно же, legacy-код и устаревшие решения, на которые все завязано, а их модернизация требует слишком много ресурсов и времени. Кажется, что лучше пока оставить все как есть, а все эти модные AI-инновации оставить на потом.
Этим циклом из трех статей мы постараемся развенчать миф о том, что AI — это сложно и дорого, а без собственного парка видеокарт так вообще не обойтись. Мы приведем конкретный бизнес-кейс создания корпоративного AI-чата на сотни пользователей, который держит 100+ одновременных запросов к моделям: Llama-3 8B, Qwen 2.5 7B-14B, Gemma-2 9B / Gemma-3 9B-12B, Mistral-Nemo 12B, DeepSeek-R1-Distill 8B-14B.
Инфраструктура AI-чата будет развернута на VPS малой мощности: 4 CPU-ядра, 8 GB RAM, 150 GB SSD. LLM будет запускаться на трех видеокартах RTX 4000 ada 24 GB, вынесенных в отдельные удаленные GPU-инстансы, количество которых будет меняться в зависимости от времени суток.
Устройство и реализация AI-чата
Инфраструктура AI-чата разделена на две части:
- VPS, где размещены все сервисы, обеспечивающие логику работы AI-чата
- Удаленные GPU-инстансы (поды), на которых запускаются модели
Конечно, стек AI-чата можно разбить на поды и растащить кубернетесом. Формат деплоя — индивидуальное дело каждого, нам удобнее держать стек на одном VPS с помощью Docker Compose.
На VPS запущены следующие микросервисы:
- Open WebUI — open‑source Web UI, принимающий запросы от пользователей через поддомен chat.domain.online
- LiteLLM — proxy‑сервер к среде запуска vLLM, который передает запросы в GPU‑инстансы на стороне GPU‑провайдера
- Redis — in‑memory СУБД, в которой мы храним кеш LiteLLM для ускорения ответов и экономии токенов
- PostgreSQL — СУБД для хранения SQL‑данных, в которой мы храним учетные записи пользователей Open WebUI
- Caddy — HTTP/HTTPS‑сервер, который обрабатывает все входящие HTTP/HTTPS‑запросы на домен и поддомены
- Grafana + Prometheus — связка двух сервисов для сбора метрик и построения отчетов
Логическая схема взаимодействия микросервисов бэкенда AI-чата с GPU-инстансами может быть представлена так:
VPS взаимодействует с GPU-инстансами по OpenAI совместимому API на программном уровне: liteLLM на VPS проксирует запросы по API в vLLM, запущенном на GPU-инстансах. Удаленные GPU-инстансы, они же поды, они же поды с GPU, можно арендовать у любого GPU-провайдера. Мы выбрали Runpod, потому что у него широкий выбор видеокарт, а главное — есть все нужные нам шаблоны подов. Ничего не нужно собирать самому из образов.
Поды развернуты из шаблона vLLM-Llama3 8B — это значит, что на поде запущен процесс vLLM с загруженной в vRAM моделью Llama-3 8B.
Всего у нас поднято 2 пода следующих конфигураций:
| Ресурс | Под‑1 | Под‑2 |
| GPU | RTX 4000 Ada SFF x1 | RTX 4000 Ada SFF x2 |
| vRAM | 24 GB | 48 GB |
| vCPU | 8 | 12 |
| Memory | 35 GB | 62 GB |
| Container disk | 10 GB | 10 GB |
| Pod volume | 20 GB | 20 GB |
Поды работают по следующей схеме: Под‑1 работает 24/7, а Под‑2 включается и выключается по расписанию через API. Такой подход позволяет экономить ресурсы и бюджет. Детально про работу подов мы рассказываем в третьей части статьи, а пока коротко расскажем о том, как все работает вкупе.
Как работает корпоративный AI-чат
Запрос пользователя транслируется в liteLLM — прокси-сервер для различных сред запуска LLM, а liteLLM уже в свою очередь по OpenAI совместимому API проксирует запрос непосредственно в среду запуска LLM, в нашем случае — это vLLM на подах. Это может быть также Ollama или любая другая среда запуска LLM, которая поддерживает OpenAI совместимый API.
Запрос обрабатывается в vLLM, а результат по API отправляется обратно в liteLLM, а из него — пользователю в Web UI. Такая схема раздельных ресурсов позволяет масштабировать как бэкенд AI-чата, так и вычислительные ресурсы GPU.
liteLLM сам балансирует запросы по нодам исходя из нагрузки и мощности нод. Также стратегия балансировки учитывает ночные отключения более мощного пода для сокращения расходов.
Производительность, бюджет, масштабируемость
AI-чат на базе liteLLM и vLLM способен обслуживать сотни одновременных запросов пользователей чата. Комфортность работы зависит от производительности GPU-подов. Мы провели несложное нагрузочное тестирование с помощью Python — давали нагрузки по API в liteLLM. У нас получились следующие результаты:
- 100 одновременных запросов, 200 запросов в минуту — 35 с на ответ
- 50 одновременных запросов, 200 запросов в минуту — 23 с на ответ
- 25 одновременных запросов, 200 запросов в минуту — 12 с на ответ
- 10 одновременных запросов, 200 запросов в минуту — 7 с на ответ
Это результаты дневного теста подов при параллельной работе трех видеокарт RTX 4000 Ada 24 GB на двух подах. Нагрузочный тест вечернего и ночного режима работы инфраструктуры с одним подом с одной видеокартой RTX 4000 Ada 24 GB vRAM показал следующие результаты:
- 25 одновременных запросов, 50 запросов в минуту — 9 с на ответ
- 10 одновременных запросов, 50 запросов в минуту — 6 с на ответ
- 5 одновременных запросов, 50 запросов в минуту — 4 с на ответ
Полученные результаты позволяют предположить, что наша конфигурация AI-чата, построенная на одном VPS (4 CPU-ядра, 8 GB DDR, 150 GB SSD) и двух GPU-подах (RTX 4000 Ada 24 GB vRAM × 3), способна обслуживать несколько сотен пользователей днем и десятки пользователей ночью, что делает AI-чат привлекательным инструментом для малого и среднего бизнеса, особенно в свете стоимости аренды подов.
Стоимость аренды подов зависит от класса видеокарты и количества подключенных видеокарт к поду. Например, стоимость аренды пода с одной RTX 4000 Ada 24 GB vRAM составляет 0.20 USD в час, а аренда пода с двумя RTX 4000 Ada 24 GB vRAM — 0.40 USD в час. При работе пода с одной видеокартой 24/7 и с отключаемым на ночь подом с двумя видеокартами расход в месяц составляет 288 USD.
Конечно, это приблизительные цифры, которые могут сильно меняться в зависимости от класса видеокарты и модели, которую нужно запустить в vLLM. Однако благодаря большому выбору видеокарт и возможности подключения от 1 до 8 видеокарт к подам можно подобрать наиболее сбалансированную финансовую схему работы AI-чата.
Возможность комбинировать разные видеокарты в одном GPU-кластере позволяет не только гибко управлять бюджетом, но и масштабировать GPU-кластер под возрастающие корпоративные нужды. Например, можно выделить отдельные мощности для запросов разработчиков через Continue (чат-агент для VS Code).
Кратко о корпоративном AI-чате и том, что будет в следующих статьях
У нас получился AI-чат в защищенном корпоративном контуре на VPS малой мощности с удаленными GPU-инстансами, которым могут пользоваться сотни пользователей днем и десятки пользователей ночью. При этом стек может быть расширен другими инструментами автоматизации без значимого увеличения ресурсов и расходов.
Например, можно подключить к текущему стеку n8n для автоматизации бизнес-процессов или Continue.dev для разработки в IDE.
В следующих двух статьях мы раскроем технические детали реализации бэкенда и разберем принцип работы удаленных GPU-инстансов. Можно не ждать материалов, а сразу перейти по ссылке, скачать код проекта и пробовать AI-чат в боевых условиях. Удобнее и проще разворачивать и тестировать AI-чат на арендованной VPS, подходящей по параметрам. В разделе VPS/VDS есть много подходящих вариантов.