Локальная ИИ-инфраструктура
Планирование мощностей инференса
Сколько GPU нужно для этой нагрузки?
Переведите запросы в секунду и число токенов в токены в секунду, которые нужно обслужить, посмотрите, какой максимум дает оборудование, и планируйте по измеренной вами пропускной способности.
1 · Модель
Qwen3-8B
Qwen
Карточка модели на Hugging Face(откроется в новой вкладке)config.json(откроется в новой вкладке)
- Параметры
- 8,19 млрд
- Слои
- 36
- Головы
- 32 для запросов, 8 KV
- Размерность головы
- 128
- Максимальный контекст
- 40 960 токенов
- KV cache на токен, 16 бит
- 147,46 KB/token
- Скрытая размерность
- 4 096
- Словарь
- 151 936
Значения прочитаны из config.json на Hugging Face 30 октября 2026 г..
Эти значения получены с Hugging Face и не редактируются. Чтобы изменить их, выберите «Изменить значения».
2 · Точность
Сколько бит занимает каждый параметр.
›Опубликованные квантизации
Только для квантизованных форматов.
Задается отдельно от весов. FP8 вдвое сокращает KV cache.
3 · Рабочая нагрузка
Токенов на последовательность: промпт и сгенерированный текст вместе.
Запросы, которые обрабатываются одновременно, то есть батч.
4 · Оборудование
RTX PRO 6000 Blackwell Server Edition
NVIDIA · Blackwell
Память
96 GB
GDDR7 · учтено как 96 GiB
Пропускная способность памяти
1 597 GB/s
Макс. мощность
300 to 600 W
Настраивается.
Столбцы сравнивают каждое значение с самым большим GPU в каталоге.
- NVLink
- Нет
- Экземпляры MIG
- 4
- Группа NVLink
- Нет, только PCIe
- GPU на сервер
- до 8
Как GPU встраивается в серверы
- The Server Edition lists no NVLink. NVIDIA-Certified RTX PRO servers hold up to 8 GPUs. NVIDIA RTX PRO 6000 Blackwell Server Edition(откроется в новой вкладке)
Деление этого GPU
MIG
Делится на срезы (памяти: 4, вычислений: 4), до 4 экземпляров на одном GPU. Профили:
- 1g.24gb
- 2g.48gb
- 4g.96gb
С каких срезов может начинаться экземпляр:Вычислено
vGPU for Compute
10 типов с framebuffer от 8 до 96 GB, до 12 vGPU на одном GPU. Нужны лицензия NVIDIA AI Enterprise и гипервизор.
Совместное использование без деления
Time-slicing работает на любом GPU, без изоляции памяти и сбоев между репликами. MPS позволяет совместно использовать GPU целиком, но не экземпляр MIG.
Числовые форматы
Документы NVIDIA
›Характеристики и источники
- Память
- 96 GB[1]
- Тип
- GDDR7[1]
- Пропускная способность памяти
- 1 597 GB/s[1]
- Макс. мощность
- 300 to 600 W[2]Настраивается.
- NVLink
- 0[3]Не поддерживается.
- Экземпляры MIG
- 4[4]
- FP4
- 4 000 TFLOPS[1]NVIDIA не уточняет, плотное это значение или с разреженностью.
- FP8
- 2 000 TFLOPS[1]NVIDIA не уточняет, плотное это значение или с разреженностью.
- FP16 / BF16
- 1 000 TFLOPS[1]NVIDIA не уточняет, плотное это значение или с разреженностью.
- TF32
- 234 TFLOPS[1]NVIDIA не уточняет, плотное это значение или с разреженностью.
Числовые форматы: FP4, FP8, FP16, BF16, TF32, FP32
Значения для тензорных ядер пиковые, взяты из технических описаний и не отражают производительность приложений.
Источники
Загрузка источников
Всего GPU. Модель делится между ними через tensor parallel, стадии pipeline parallel и реплики, как задано в схеме развертывания ниже.
1 сервер по 8 GPU, последний с 1
Как используется GPU
Разделите каждый GPU на срезы или используйте его совместно для нескольких реплик вместо добавления GPU. Срезы и доли запускают реплики модели: объединить их в группу tensor parallel нельзя.
›Схема развертывания
Как модель распределяется между GPU. От этого зависят память на каждом GPU, место под KV cache и число GPU, по схеме деления vLLM.
Стадии pipeline parallel
Делит слои на последовательные блоки, каждый на своем GPU. Между стадиями передается мало данных, поэтому этот способ подходит для GPU без быстрой связи и для серверов, соединенных сетью.
Реплики
Независимые копии модели, у каждой свой KV cache. Последовательности делятся между репликами. Модель со смесью экспертов распределяет своих экспертов по всем репликам.
Размер tensor parallel: 1, то есть число GPU, деленное на число стадий и реплик.
GPU на сервер
Tensor parallel работает внутри сервера. Остальные GPU становятся стадиями pipeline parallel.
Размер decode context parallel
Делит KV cache каждой последовательности по токенам между GPU tensor parallel. Новых GPU не требует, но замедляет decode.
Только для моделей со смесью экспертов.
Нагрузка
Сколько запросов поступает за секунду в самое загруженное время.
Среднее число входных токенов в запросе.
Среднее число токенов, которое модель пишет в ответе.
Ваше измерение
Один RTX PRO 6000 Server Edition, Qwen3-8B в BF16, vLLM 0.31.0, 1200 токенов на входе и 180 на выходе, 8 запросов одновременно: 550,8 токена в секунду, 356 ms до первого токена, 12,3 ms между токенами.
Для этой конфигурации со всеми ее GPU, при числе одновременных запросов, указанном ниже.
Пропускная способность зависит от числа одновременных запросов, поэтому для сравнения нужно это число.
Необязательно. Медиана при указанном выше числе одновременных запросов.
Необязательно. Медиана при указанном выше числе одновременных запросов.
В плане стоит оставить запас на пики нагрузки. Обычно начинают с 80%.
Prefill и decode
Необязательно. Ваша цель, для сравнения с измерением.
Необязательно. Ваша цель, для сравнения с измерением.
Скорость сети, по которой передавался бы KV cache. Обычные значения: 100, 200, 400 и 800.
Необязательно. Нужно для подсчета числа экземпляров.
Необязательно. Нужно для подсчета числа экземпляров.
Допущения среды выполнения›накладные расходы 3,22 GB на GPU, доступно 90 %, запас 10 %
Память под контекст CUDA, активации и графы, в единицах, выбранных на странице. Это эвристика.
Доля памяти GPU, которую может использовать движок инференса. В vLLM по умолчанию 92%.
Доля доступной памяти, которая должна остаться свободной, чтобы модель помещалась с запасом.
В этой модели нет слоев со скользящим окном.
Данные об оборудовании дают предел, то есть оценку «не менее». Для плана нужна пропускная способность, измеренная на вашей конфигурации.
Нужно выходных токенов в секунду
360 tok/s
Запросы в секунду (2) умножаются на сгенерированные токены (180).
Запросов в минуту
120 req/min
Нужно токенов промпта в секунду: 2 400 tok/s
Сколько копий этой конфигурации
По вашему измерению
Введите измеренное число выходных токенов в секунду и число одновременных запросов, чтобы получить число копий и GPU, на которые опирается план.
По оборудованию, не менее
Не менее 1 копии конфигурации, 1 GPU
Одна копия не может превысить 372,64 tok/s при 4 запросах одновременно, с учетом промптов остальных запросов. Реальные движки работают медленнее.
Запросы в обработке
При 2 req/s, времени до первого токена 34,19 ms и времени между токенами 10,73 ms число запросов в обработке в любой момент составляет около 3,9.
Запросы в обработке
3,9
Последовательностей в одной копии
60
Последовательностей по 8 192 токена в KV cache одной копии: 60. Этого достаточно.
По пределам, поэтому это нижняя граница.
Prefill и decode
vLLM выполняет prefill и decode на одних и тех же GPU и делит длинные промпты на части. На этом GPU его планировщик берет за шаг до 8 192 токена и до 1 024 последовательностей одновременно. Меньший бюджет токенов выгоднее для времени между токенами, а больший для времени до первого токена.
Передача KV cache одного промпта из 1 200 токенов занимает не менее 7,08 ms при 200 Gbit/s (объем 176,95 MB). Это минимум по номинальной скорости. Измеренные передачи были медленнее в 3,6-9 раз.
Что говорит vLLM
- Введите оба значенияВремя между токенами в сравнении с целью
- Введите оба значенияВремя до первого токена в сравнении с целью
- Отдельные экземпляры могут помочь, когда хвост времени между токенами не укладывается в цель, или при длинных промптах и большом числе одновременных запросов, и только если передача быстрая.
- Держите их вместе, если решающее значение имеет время до первого токена, если передача медленная или если трафик небольшой.
- Документация vLLM называет disaggregated prefilling экспериментальным и сообщает, что он не повышает пропускную способность. Он позволяет настраивать эти два показателя по отдельности.
Без измеренных скоростей соотношение не рассчитать. vLLM не публикует для него формулу, а опубликованные результаты зависят от цели: в одном бенчмарке при одной цели по скорости выигрыш составил 40%, а при другой проигрыш составил 31%. Введите измеренное число токенов промпта в секунду для одного экземпляра prefill и выходных токенов в секунду для одного экземпляра decode.
- Примечание: Производитель указывает пиковую производительность этого GPU, не уточняя, включает ли она разреженность. Используется половина значения, как для GPU того же поколения, у которых это указано.
- Примечание: Число запросов в обработке рассчитано по пределам, поэтому это нижняя граница. Введите измеренные значения времени, чтобы получить реальное значение.
Развернуть эту конфигурацию
Эти команды написаны для конфигурации, которую вы рассчитали выше, и для выбора, который вы делаете здесь, и меняются вместе с ними. Ничего не меняется за вас: выбор, который перестал работать, сохраняется и помечается, а рядом указаны способы исправления.
Сервер
Способ запуска
Движок
Сервер, который загружает модель.
GPU
Индексы GPU на машине в том виде, как их показывает nvidia-smi, через запятую. Конфигурации нужно 1 GPU.
Как идентифицировать GPU
Индекс зависит от порядка, в котором драйвер находит GPU. UUID привязан к карте.
Эндпоинт
Порт, на котором отвечает эндпоинт. 8000 (по умолчанию)
Принимать подключения на
По умолчанию эндпоинт остается доступным только на этой машине.
Эндпоинт отвечает только на запросы с ключом. Ключ создается на вашей машине и никогда не записывается в команду или ссылку.
Дополнительные параметры
Где хранятся скачанные веса. Если каталог уже существует, повторная загрузка не нужна.
По умолчанию это релиз, для которого написаны команды. latest следует за самым новым.
Что будет запущено
vLLM · Docker · 1 GPU, RTX PRO 6000 Blackwell
- Репозиторий
- Qwen/Qwen3-8BИз калькулятора
- Движок
- vLLMПо умолчанию
- Способ запуска
- DockerПо умолчанию
- GPU
- 1 GPU, RTX PRO 6000 BlackwellИз калькулятора
- индекс 0По умолчанию
- Контекст
- токенов: 8 192Из калькулятора
- Последовательностей на реплику
- 4Вычислено
- Память на GPU
- Нужно 22,76 GiB из 86,40 GiB доступных
- Доля каждого GPU для движка
- 90%Вычислено
- Доступ
- ОткрытыйИз калькулятора
- Эндпоинт
- 127.0.0.1:8000По умолчанию
Стоит обратить внимание
Вы рассчитали KV cache fp16 для весов bf16. KV cache в 16 бит занимает одинаковое место в любом из типов, а vLLM хранит его в собственном типе модели, если не указано иное, поэтому команды не навязывают fp16.
16 шагов в 5 этапах. Открывайте по одному или все сразу.
1Проверка оборудования
Посмотрите, что предлагает машина или кластер, прежде чем что-либо менять.3 шага
- Шаг 1
Проверка драйвера
Убедитесь, что драйвер NVIDIA установлен и достаточно новый для программ ниже.
nvidia-smiЧто вы увидите
- Таблица с версией драйвера и версией CUDA не ниже 13.0, которая нужна образу.
Справка и источники
Если не работает
- Если версия CUDA ниже, чем нужно программам, обновите драйвер и проверьте снова.
Откуда берутся значения
- Выбранный вами GPU: RTX PRO 6000 Blackwell.
- Шаг 2
Проверка GPU
Убедитесь, что машина показывает GPU с индексом 0.
nvidia-smi -LЧто вы увидите
- По одной строке на каждый GPU, в каждой указано RTX PRO 6000 Blackwell так, как его называет машина.
Справка и источники
Если не работает
- Если выбранного вами GPU нет в списке, его нет в этой машине или драйвер его не видит.
- Если названия не совпадают с ожидаемыми, индексы не такие, как вы думаете. Идентифицируйте GPU по UUID, который не зависит от порядка.
Откуда берутся значения
- Калькулятор использует 1 GPU.
- Выбранный вами GPU: RTX PRO 6000 Blackwell.
- Шаг 3
Проверка свободной памяти
Калькулятор ожидает 22,76 GiB на каждом GPU из 86,40 GiB, которые может использовать движок. Проверьте, что память GPU с индексом 0 свободна.
nvidia-smi --query-gpu=index,name,memory.total,memory.used,memory.free --format=csv -i 0Что вы увидите
- Почти вся память GPU свободна, не менее 22,76 GiB.
Что учесть
- Эти GPU уже могут использоваться другими задачами. Если их память занята, остановите эти задачи или выберите другие GPU, прежде чем начинать.
Справка и источники
Откуда берутся значения
- Калькулятор: нужно 22,76 GiB из 86,40 GiB доступных на каждом GPU.
2Подготовка
Получите доступ к модели, установите то, что нужно серверу, и скачайте сам сервер. Здесь же создается разделенный GPU.2 требуют прав администратора5 шагов
Установка инструментов
- Шаг 4
Проверка Docker
Убедитесь, что Docker Engine установлен.
docker --versionЧто вы увидите
- Версия Docker.
Справка и источники
- Шаг 5
Установка NVIDIA Container Toolkit
Нужны права администратораОн позволяет контейнерам использовать GPU. Эти команды для Ubuntu и Debian, а для других дистрибутивов см. страницу по ссылке ниже.
Выполняется после шага 1
sudo apt-get update && sudo apt-get install -y --no-install-recommends ca-certificates curl gnupg2 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.20.1-1 sudo apt-get install -y \ nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \ nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \ libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \ libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}Что вы увидите
- Пакеты устанавливаются без ошибок.
Справка и источники
- Шаг 6
Подключение Docker к GPU
Нужны права администратораЗарегистрируйте среду выполнения NVIDIA в Docker и перезапустите его.
sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart dockerЧто вы увидите
- Без ошибок, и Docker снова запускается.
Что учесть
- Перезапуск Docker останавливает работающие контейнеры.
Справка и источники
- Шаг 7
Проверка, что контейнер видит GPU
Запустите nvidia-smi в контейнере, которому выданы GPU с индексом 0. Ожидаемый результат: только этот GPU.
docker run --rm --runtime=nvidia --gpus '"device=0"' \ ubuntu nvidia-smiЧто вы увидите
- Таблица с одним GPU, который вы выбрали.
Справка и источники
Если не работает
- Если Docker не запускается с GPU, toolkit не настроен или таких индексов на этой машине нет.
- Если названия не совпадают с ожидаемыми, индексы не такие, как вы думаете. Идентифицируйте GPU по UUID, который не зависит от порядка.
- NVIDIA Container Toolkit: sample workload(откроется в новой вкладке)
- NVIDIA Container Toolkit: Specialized configurations with Docker(откроется в новой вкладке)
Откуда берутся значения
--gpus '"device=0"'По умолчанию Первые GPU, считая с 0.
Загрузка сервера
- Шаг 8
Загрузка образа
Скачайте vllm/vllm-openai:v0.32.0 до первого запуска, чтобы при запуске оставалось только загрузить модель.
docker pull vllm/vllm-openai:v0.32.0Что вы увидите
- Загрузка завершается, и последняя строка называет образ.
Что учесть
- Образ занимает несколько гигабайт.
3Запуск сервера
Запустите его с рассчитанной вами конфигурацией.1 шаг
- Шаг 9
Запуск сервера
Запустите vllm-qwen3-8b с рассчитанной вами конфигурацией: модель Qwen/Qwen3-8B, параллелизм, контекст и выделенная память. При первом запуске скачивается модель, это занимает несколько минут.
Выполняется после шага 3
# config YSTVGT docker run -d --name vllm-qwen3-8b \ --runtime nvidia --gpus '"device=0"' \ --ipc=host \ -v "$HOME/.cache/huggingface":/root/.cache/huggingface \ -p 127.0.0.1:8000:8000 \ vllm/vllm-openai:v0.32.0 \ --model Qwen/Qwen3-8B \ --max-model-len 8192 --max-num-seqs 4 \ --gpu-memory-utilization 0.90Что вы увидите
- Идентификатор контейнера.
Что учесть
- При первом запуске скачивается модель и подготавливаются ядра, это занимает несколько минут. До этого сервер не готов.
Справка и источники
Если не работает
- Если запуск останавливается с сообщением о нехватке памяти, конфигурации нужно больше, чем вмещает GPU. Уменьшите контекст или число последовательностей, отдайте движку большую долю GPU или используйте больше GPU. Насколько больше, показывает калькулятор.
- Если vLLM сообщает, что контекст длиннее, чем может вместить KV cache, уменьшите контекст или число последовательностей.
- Если vLLM сообщает, что головы внимания не делятся на размер tensor parallel, выберите размер, на который они делятся.
- Если порт занят, выберите другой в своих настройках.
- Если Docker не запускается с GPU, toolkit не настроен или таких индексов на этой машине нет.
- vLLM: vllm serve arguments(откроется в новой вкладке)
- vLLM: engine arguments(откроется в новой вкладке)
Откуда берутся значения
-dПо умолчанию Выбранный вами способ запуска.
--name vllm-qwen3-8bИз калькулятора Репозиторий выбранной вами модели.
--runtime nvidiaПо умолчанию Выбранный вами способ запуска.
--gpus '"device=0"'По умолчанию Первые GPU, считая с 0.
--ipc=hostПо умолчанию Выбранный вами способ запуска.
-v "$HOME/.cache/huggingface":/root/.cache/huggingfaceПо умолчанию Где хранятся скачанные веса.
-p 127.0.0.1:8000:8000По умолчанию Порт, на котором отвечает эндпоинт.
--model Qwen/Qwen3-8BИз калькулятора Репозиторий выбранной вами модели.
--max-model-len 8192Из калькулятора Заданная вами длина контекста, токенов: 8 192.
--max-num-seqs 4Вычислено Всего 4 последовательности на 1 реплику.
--gpu-memory-utilization 0.90Вычислено Заданная вами доля доступной памяти, 90%, делится между 1 репликой на устройстве, с округлением вниз, чтобы доли в сумме никогда не превышали устройство.
- Репозиторий выбранной вами модели.
- Заданная вами длина контекста, токенов: 8 192.
- Заданная вами доля доступной памяти, 90%, делится между 1 репликой на устройстве, с округлением вниз, чтобы доли в сумме никогда не превышали устройство.
4Проверка работоспособности
Дождитесь ответа, задайте вопрос и сравните память с калькулятором.6 шагов
Проверка эндпоинта
- Шаг 10
Ожидание готовности
Сервер начинает отвечать на /health, когда модель загружена.
timeout 900 bash -c 'until curl -fs http://127.0.0.1:8000/health >/dev/null; do sleep 5; done' && echo readyЧто вы увидите
- Слово ready, но не сразу: загрузка модели занимает минуту и больше.
Справка и источники
Если не работает
- Если сервер не становится готовым, прочитайте последние строки журнала: модель еще загружается или сервер остановился с ошибкой.
- Если запуск останавливается с сообщением о нехватке памяти, конфигурации нужно больше, чем вмещает GPU. Уменьшите контекст или число последовательностей, отдайте движку большую долю GPU или используйте больше GPU. Насколько больше, показывает калькулятор.
- Шаг 11
Проверка, что модель обслуживается
Спросите у сервера, какие модели он обслуживает.
curl -sS http://127.0.0.1:8000/v1/modelsЧто вы увидите
- Список, в котором есть Qwen/Qwen3-8B.
Справка и источники
Если не работает
- Если ответ 401, ключ в этой оболочке не тот, с которым запускался сервер.
- Шаг 12
Запрос к модели
Один запрос через эндпоинт, который будут использовать ваши приложения.
curl -sS http://127.0.0.1:8000/v1/chat/completions \ -H 'Content-Type: application/json' \ -d '{"model": "Qwen/Qwen3-8B", "messages": [{"role": "user", "content": "Say hello in five words."}], "max_tokens": 32}'Что вы увидите
- Ответ в формате JSON с сообщением от модели.
Справка и источники
Если не работает
- Если ответ 401, ключ в этой оболочке не тот, с которым запускался сервер.
- Если сервер не становится готовым, прочитайте последние строки журнала: модель еще загружается или сервер остановился с ошибкой.
Состояние машины
- Шаг 13
Просмотр GPU
Посмотрите занятую память и нагрузку на GPU с индексом 0, пока сервер работает.
nvidia-smi --query-gpu=index,name,memory.used,memory.total,utilization.gpu --format=csv -i 0Что вы увидите
- Занятая память близка к той, что выдана движку.
Справка и источники
- Шаг 14
Просмотр сервера
Убедитесь, что vllm-qwen3-8b работает, и посмотрите его последние сообщения.
Выполняется после шага 12
docker ps --filter name=vllm-qwen3-8b --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}' docker logs --tail 20 vllm-qwen3-8bЧто вы увидите
- Сервер работает, и в последних строках его журнала нет ошибок.
Справка и источники
Сравнение с калькулятором
- Шаг 15
Сравнение с калькулятором
Калькулятор ожидал 22,76 GiB на каждом GPU, при этом 90% GPU отдается движку. Собственный журнал сервера показывает, сколько ушло на веса и сколько осталось под KV cache.
Выполняется после шага 12
docker logs vllm-qwen3-8b 2>&1 | grep -E 'Model loading took|Available KV cache memory|GPU KV cache size'Что вы увидите
- Строки с объемом памяти, который заняли веса, памятью, оставшейся под KV cache, и числом токенов, которое она вмещает.
Справка и источники
- vLLM: parallelism and scaling(откроется в новой вкладке)
- vLLM: conserving memory(откроется в новой вкладке)
Откуда берутся значения
- Калькулятор: нужно 22,76 GiB из 86,40 GiB доступных на каждом GPU.
5Очистка
Остановите сервер и удалите то, что создали эти шаги.1 шаг
- Шаг 16
Остановка
Может что-то остановить или удалитьОстановите vllm-qwen3-8b и освободите GPU.
Выполняется после шага 9
docker stop vllm-qwen3-8b && docker rm vllm-qwen3-8bЧто вы увидите
- Вывода нет, и GPU свободны.
Что учесть
- Эндпоинт перестает отвечать.
Справка и источники
Расчет
- Ваши данные
- Расчетный результат
- Оценка
- Теоретический предел
›Нагрузка
Запросов в минуту
Расчетный результатЗапросов в минуту = Запросов в секунду × 60
= Ваши данные: 2 req/s × 60
= 120 req/min
Нужно выходных токенов в секунду
Расчетный результатНужно выходных токенов в секунду = Запросов в секунду × Сгенерированных токенов на запрос
= Ваши данные: 2 req/s × Ваши данные: 180 токенов
= 360 tok/s
Нужно токенов промпта в секунду
Расчетный результатНужно токенов промпта в секунду = Запросов в секунду × Токенов промпта на запрос
= Ваши данные: 2 req/s × Ваши данные: 1 200 токенов
= 2 400 tok/s
›Что допускает оборудование, не менее
Токенов промпта на каждый шаг
Теоретический пределТокенов промпта на каждый шаг = Последовательностей на реплику × Токенов промпта на запрос ÷ Сгенерированных токенов на запрос
= Ваши данные: 4 × Ваши данные: 1 200 токенов ÷ Ваши данные: 180 токенов
= 26,67 токена
Минимальное время шага по вычислениям
Теоретический пределМинимальное время шага по вычислениям = 2 × Активные параметры × (Последовательностей на реплику + Токенов промпта на каждый шаг) ÷ (Пиковая вычислительная мощность, плотная × 1 000 000 000 000 × Размер tensor parallel)
= 2 × Ваши данные: 8,19 млрд параметров × (Ваши данные: 4 + Теоретический предел: 26,67 токена) ÷ (Оценка: 500 TFLOPS × 1 000 000 000 000 × Ваши данные: 1)
= 1 ms
Минимальное время шага при этой нагрузке
Теоретический пределМинимальное время шага при этой нагрузке = max(Минимальное время одного шага, Минимальное время шага по вычислениям)
= max(Теоретический предел: 10,73 ms, Теоретический предел: 1 ms)
= 10,73 ms
Предел выходных токенов для конфигурации
Теоретический пределПредел выходных токенов для конфигурации = одновременные последовательности ÷ Минимальное время шага при этой нагрузке
= Ваши данные: 4 ÷ Теоретический предел: 10,73 ms
= 372,64 tok/s
Нужно копий конфигурации не менее
Теоретический пределНужно копий конфигурации не менее = ceil(Нужно выходных токенов в секунду ÷ Предел выходных токенов для конфигурации)
= ceil(Расчетный результат: 360 tok/s ÷ Теоретический предел: 372,64 tok/s)
= 1
Нужно GPU не менее
Теоретический пределНужно GPU не менее = Нужно копий конфигурации не менее × число GPU
= Теоретический предел: 1 × Ваши данные: 1
= 1
›Запросы в обработке
Время выполнения запроса
Расчетный результатВремя выполнения запроса = Время до первого токена + Сгенерированных токенов на запрос × Время между токенами
= Теоретический предел: 34,19 ms + Ваши данные: 180 токенов × Теоретический предел: 10,73 ms
= 1,97 s
Запросы в обработке
Расчетный результатЗапросы в обработке = Запросов в секунду × Время выполнения запроса
= Ваши данные: 2 req/s × Расчетный результат: 1,97 s
= 3,93
Допущения
- Теоретический предел: Это пределы, а не прогнозы. Реальные движки добавляют время на ядра, планирование и сеть: опубликованные измерения vLLM оказались медленнее расчета по той же формуле на 30-270%, а измерения воркшопа на одном GPU на 10-15%.
- Допущение: Спекулятивное декодирование не учитывается. Оно может выдавать несколько токенов за шаг и превзойти предел для одной последовательности.
- Допущение: Закон Литтла: число запросов в обработке равно интенсивности поступления, умноженной на время пребывания запроса в системе: первый токен плюс все последующие.
Продолжить
Модель и настройки переносятся.
360 tok/sНе менее 1 копии конфигурации, 1 GPU
Почему это важно
Характеристики оборудования не говорят, как быстро движок реально запускает модель: опубликованные измерения vLLM оказались на 30-270% медленнее расчета по формуле из пропускной способности памяти и вычислительной мощности. Поэтому оборудование дает предел, то есть оценку «не менее», а для плана нужна пропускная способность, измеренная на вашей конфигурации. В vLLM prefill и decode по умолчанию делят одни и те же GPU. Их разделение экспериментально, а правила для соотношения нет, поэтому соотношение здесь берется только из измеренных вами скоростей.
Как читать результат
Начните с нагрузки: она задает нужное число выходных токенов и токенов промпта в секунду. Предел оборудования показывает, какого минимального числа копий вашей конфигурации может хватить. Введите измеренную пропускную способность и число одновременных запросов, при котором вы измеряли, чтобы получить число копий и GPU, на которые опирается план. Запросы в обработке показывают, вмещает ли память одной копии столько последовательностей. Раздел prefill и decode перечисляет, что говорит vLLM об их разделении, и считает экземпляры по измеренным вами скоростям.
Локальный ИИ и суверенитет
Запуск модели на оборудовании, которое вы контролируете, служит лишь одним из факторов при решении о суверенитете. Сам по себе он не делает развертывание суверенным и не обеспечивает соответствие GDPR или EU AI Act.
Эти инструменты появились в рамках воркшопа ИИ без облака.