14 октября 2026 г. · Анатолий Крылов, редактор Тераферма
Сколько GPU нужно на 1000 пользователей чат-бота: расчёт нагрузки и цены
Сколько GPU нужно для LLM-сервиса на 1000 активных пользователей в день с открытой моделью 8B? Одной видеокарты на 24 ГБ: RTX 4090 в пиковый час держит 20–25 параллельных диалогов с запасом по скорости. Если нужна модель 32B, понадобится карта на 48–80 ГБ, а для 70B — две карты по 80 ГБ. Круглосуточная работа RTX 4090 стоит 34 560 ₽ в месяц, или 35 ₽ на пользователя.
Подставьте свои цифры, и через 10 минут у вас будет оценка для своего сервиса.
Шаг 1. Из пользователей в запросы в секунду
«1000 пользователей» звучит слишком размыто. Видеокарте важно не число зарегистрированных, а сколько запросов приходит в самый нагруженный момент. Для расчёта нужны четыре допущения:
- 1000 активных пользователей в день (DAU). Зарегистрированных может быть 5 000–10 000, но заходят в бот не все.
- 10 сообщений на пользователя в день. Для поддержки и справочного бота это много, для ассистента-собеседника — норма.
- 15% дневного трафика приходится на пиковый час. Типичная картина для сервисов с аудиторией в одном часовом поясе.
- Коэффициент всплеска 2,5. Внутри часа запросы приходят неравномерно: в отдельные минуты их в 2–3 раза больше среднего.
Считаем:
10 000 сообщений в день × 15% = 1 500 сообщений в пиковый час
1 500 ÷ 3 600 с × 2,5 ≈ 1 запрос в секунду в пике
Один запрос в секунду — это немного. Для сравнения: такую нагрузку многие разработчики создают сами, когда гоняют тесты. Но у LLM каждый запрос длится секунды, и важен не поток запросов, а то, сколько их обрабатывается одновременно.
Шаг 2. Длина запроса и ответа в токенах
Нагрузку на видеокарту задают токены. Типичный диалог в чат-боте:
- Вход — около 2 000 токенов. Системный промпт (300–800 токенов) плюс история последних сообщений. Если бот ищет ответы в базе знаний (RAG), добавьте 3 000–6 000 токенов найденных фрагментов.
- Выход — около 300 токенов. Ответ в 2–3 абзаца. Рассуждающие модели перед ответом генерируют ещё сотни и тысячи токенов «размышлений», и их тоже нужно считать.
Отсюда суммарный поток в пике:
- генерация: 1 запрос/с × 300 токенов = 300 токенов в секунду;
- обработка промптов (prefill): 1 запрос/с × 2 000 токенов = 2 000 токенов в секунду.
Prefill на современных картах идёт в десятки раз быстрее генерации, поэтому узким местом почти всегда становится выдача ответа. Подробно о двух фазах и о том, почему генерация упирается в память, рассказано в статье про скорость генерации токенов LLM.
Шаг 3. Сколько диалогов идёт одновременно
Число одновременных диалогов считается по закону Литтла:
параллельных запросов = запросов в секунду × время обработки одного запроса
Если пользователь получает ответ со скоростью 30 токенов в секунду, 300 токенов генерируются за 10 секунд, плюс около секунды до первого токена. Значит, в пике на сервере одновременно идут:
1 × 11 ≈ 11 диалогов
Закладываем двукратный запас на неточность допущений и неравномерность и получаем 20–25 параллельных запросов. Под это число и подбираем видеокарту.
Важный момент: 30 токенов в секунду для чата вполне комфортны, человек читает медленнее. Гнаться за 100 токенами в секунду на пользователя нет смысла, а вот общую пропускную способность сервера нужно держать с запасом.
Шаг 4. Видеопамять: веса плюс KV-кеш
Видеопамять уходит на три вещи:
- Веса модели. 8B в FP8 — около 8,5 ГБ, 32B в 4 битах — около 19 ГБ, 70B в 4 битах — около 40 ГБ.
- KV-кеш. Каждый параллельный диалог хранит в памяти промежуточные данные по всем своим токенам. Именно кеш, а не веса, ограничивает число одновременных пользователей.
- Служебная память движка занимает 1,5–3 ГБ на активации, CUDA-графы и буферы.
Размер KV-кеша на один токен считается по формуле:
2 × число слоёв × число KV-голов × размер головы × байт на значение
Для моделей с группированным вниманием (GQA), к которым относятся Llama 3 и Qwen3, это даёт в 16 битах:
| Модель | Слоёв | KV на токен | Кеш на 25 диалогов × 2 300 токенов | Кеш в FP8 |
|---|---|---|---|---|
| Llama 3.1 8B | 32 | ~128 КБ | ~7,4 ГБ | ~3,7 ГБ |
| Qwen3-8B | 36 | ~144 КБ | ~8,3 ГБ | ~4,1 ГБ |
| Qwen3-32B | 64 | ~256 КБ | ~14,7 ГБ | ~7,4 ГБ |
| Llama 3.3 70B | 80 | ~320 КБ | ~18,4 ГБ | ~9,2 ГБ |
Хранение кеша в FP8 вдвое сокращает его размер почти без потери качества, в vLLM это включается одним параметром --kv-cache-dtype fp8. Для RAG с контекстом 6 000–8 000 токенов кеш вырастает в 3 раза, и это первое, что нужно пересчитать.
Итоговая потребность в памяти для нашего сценария:
| Модель | Веса | KV-кеш (FP16) | Служебное | Всего |
|---|---|---|---|---|
| 8B, FP8 | ~8,5 ГБ | ~7–8 ГБ | ~2 ГБ | ~18 ГБ |
| 32B, 4 бита | ~19 ГБ | ~15 ГБ | ~2,5 ГБ | ~36 ГБ |
| 70B, 4 бита | ~40 ГБ | ~18 ГБ | ~3 ГБ | ~61 ГБ |
| 70B, FP8 | ~70 ГБ | ~18 ГБ | ~3 ГБ | ~91 ГБ |
Проверить свой вариант с другой длиной контекста можно в калькуляторе VRAM.
Шаг 5. Хватит ли скорости
Память — необходимое условие, но не достаточное. Карта должна ещё и выдавать 300 токенов в секунду суммарно, не опуская скорость каждого диалога ниже 20–30 токенов.
При батчинге карта читает веса один раз и применяет их сразу ко всем параллельным запросам. Поэтому суммарная скорость растёт почти линейно с числом запросов, пока не упрётся в вычисления или память под кеш. Ориентиры для vLLM на одной карте:
- 8B на RTX 4090 — одному пользователю 120–160 токенов в секунду, при 25–30 параллельных запросах суммарно больше 1 000. Наши 300 токенов в секунду занимают около трети возможностей.
- 32B в 4 битах на A100 80 ГБ — одному пользователю 50–70 токенов в секунду, при 20 параллельных запросах суммарно несколько сотен. Запас есть, но меньше.
- 70B в 4 битах на одной A100 — одному пользователю 30–40 токенов в секунду. При 20 параллельных диалогах скорость каждого падает к 15–20, на границу комфорта. Поэтому для 70B лучше две карты.
Это оценки, а не гарантия: реальная цифра зависит от длины промптов, версии движка и квантизации. Перед запуском сервиса прогоните нагрузочный тест: vllm bench serve с вашей длиной входа и выхода и нужным числом параллельных запросов. Тест на арендованной карте занимает 20–30 минут.
Итог: конфигурации и цена в месяц
Сводим всё в таблицу. Цена указана при круглосуточной работе 720 часов. «На пользователя» значит месячная стоимость, делённая на 1000 активных пользователей.
| Модель | Конфигурация | ₽/час | ₽ в месяц 24/7 | ₽ на пользователя в месяц |
|---|---|---|---|---|
| 8B, FP8 | 1× RTX 4090, 24 ГБ | 48 | 34 560 | 35 |
| 8B, FP8, с запасом | 1× RTX 5090, 32 ГБ | 83 | 59 760 | 60 |
| 32B, 4 бита | 1× RTX A6000, 48 ГБ | 66 | 47 520 | 48 |
| 32B, 4 бита | 1× A100, 80 ГБ | 97 | 69 840 | 70 |
| 70B, 4 бита | 2× A100, 80 ГБ | 194 | 139 680 | 140 |
| 70B, FP8 | 2× H100, 80 ГБ | 678–834 | 488 160–600 480 | 488–600 |
Для понимания масштаба: при наших допущениях сервис выдаёт около 90 млн токенов ответа в месяц (1 000 × 10 × 300 × 30). На одной RTX 4090 миллион выходных токенов обходится примерно в 384 ₽, и это с учётом ночных часов, когда карта почти простаивает.
Цены указаны с поминутной оплатой без абонентской платы. Выбрать конфигурацию под инференс можно на странице аренда GPU-сервера для ИИ.
Какую модель брать: 8B, 32B или 70B
Цена между первой и последней строкой таблицы отличается в разы, поэтому выбор модели важнее выбора карты.
8B хватает, если бот отвечает по сценарию: поддержка, FAQ, запись на услуги, классификация обращений. С хорошим системным промптом и RAG по базе знаний маленькая модель справляется, а ошибки ловятся тестовым набором из 100–200 типичных вопросов.
32B нужна, когда бот должен рассуждать: разбирать договоры, писать код, вести длинный диалог без потери контекста. Разница с 8B на сложных вопросах заметна сразу.
70B и больше оправданы, когда ошибка дорогая: юридические и медицинские консультации, аналитика. Здесь стоимость GPU обычно мала по сравнению с ценой неверного ответа.
Отдельный вариант: модели Mixture of Experts. У Qwen3-30B-A3B около 30 млрд параметров, но на каждый токен работают лишь около 3 млрд. В 4 битах она занимает около 17 ГБ, помещается в 24 ГБ вместе с кешем и генерирует почти со скоростью маленькой модели. Для чат-бота на одной RTX 4090 это хороший компромисс между качеством и ценой. Сколько памяти занимают разные модели, сведено в таблицу сколько видеопамяти нужно для LLM.
Как не платить за пустые ночные часы
В нашем сценарии на пиковый час приходится 15% трафика, а ночью запросов почти нет. Круглосуточная карта большую часть суток загружена на 10–30%. Варианты экономии:
- Одна базовая реплика 24/7 плюс пиковые. Если нагрузка выросла до 3 000–5 000 пользователей, держите одну карту постоянно, а вторую и третью запускайте на дневные часы.
- Очередь вместо отказа. Если в редкие пиковые минуты запросов больше, чем мест в батче, vLLM ставит их в очередь. Пользователь подождёт на 1–2 секунды дольше, и это лучше, чем держать лишнюю карту ради пяти минут в день.
- Короче история диалога. Передавайте модели не всю переписку, а последние 6–10 сообщений и краткое резюме. Это сокращает и prefill, и KV-кеш.
- Кеширование префикса. Одинаковый системный промпт для всех пользователей vLLM обрабатывает один раз и переиспользует (
--enable-prefix-caching).
Учтите время запуска: новая машина стартует за несколько минут, а модель грузится ещё 5–10 минут. Поэтому реплики для пиков запускайте заранее, по расписанию, а не в ответ на всплеск. И помните, что при остановке данные на сервере удаляются: веса каждый раз скачиваются заново, а логи и настройки нужно хранить вне машины.
Как масштабировать на 10 000 пользователей
Расчёт линейный: в 10 раз больше пользователей — около 10 запросов в секунду в пике, 110 параллельных диалогов с запасом до 200–250. Варианты:
- Несколько одинаковых реплик за балансировщиком. 8B на 4–5 картах RTX 4090. Надёжнее одной большой машины: выход из строя одной реплики не роняет сервис.
- Одна мощная карта. H100 держит больше параллельных запросов на реплику за счёт памяти 3,35 ТБ/с и 80 ГБ под кеш. Имеет смысл для 32B–70B.
Перед масштабированием снимите реальную статистику: сколько сообщений на пользователя, какая длина ответа, какой процент трафика в пиковый час. Допущения из этой статьи могут отличаться от вашего сервиса в 2–3 раза в любую сторону.
На 1000 активных пользователей в день хватает одной RTX 4090 с моделью 8B или одной карты на 48–80 ГБ с моделью 32B. Модель 70B требует двух карт по 80 ГБ и стоит в несколько раз дороже. Сначала выберите модель по качеству на своих вопросах, потом посчитайте KV-кеш под свою длину контекста и проверьте всё нагрузочным тестом на арендованной карте.
Баланс пополняется криптовалютой от 500 ₽, оплата картой появится позже. Начните с одной RTX 4090 за 48 ₽ в час, прогоните тест на 30 минут и только потом решайте, сколько карт держать постоянно. Как развернуть модель как API, описано на странице запуска vLLM.