Локальная ИИ-инфраструктура
Память модели и размещение на GPU
Сколько памяти нужно этой модели и поместится ли она на эти GPU?
Оцените модель, контекст и конфигурацию GPU до того, как что-то скачивать или покупать.
1 · Модель
Qwen3-8B
Qwen
Карточка модели на Hugging Face(откроется в новой вкладке)config.json(откроется в новой вкладке)
- Параметры
- 8,19 млрд
- Слои
- 36
- Головы
- 32 для запросов, 8 KV
- Размерность головы
- 128
- Максимальный контекст
- 40 960 токенов
- KV cache на токен, 16 бит
- 144 KiB/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.
Только для моделей со смесью экспертов.
Допущения среды выполнения›накладные расходы 3 GiB на GPU, доступно 90 %, запас 10 %
Память под контекст CUDA, активации и графы, в единицах, выбранных на странице. Это эвристика.
Доля памяти GPU, которую может использовать движок инференса. В vLLM по умолчанию 92%.
Доля доступной памяти, которая должна остаться свободной, чтобы модель помещалась с запасом.
В этой модели нет слоев со скользящим окном.
Помещается с запасом
Нужно 22,76 GiB на GPU. Свободными остаются 63,64 GiB из 86,4 GiB доступных, больше заданного вами запаса 10 %.
Нужная память на GPU
22,76 GiB
из доступных 86,4 GiB
Оставшаяся память на GPU
63,64 GiB
Свободно 73,66 % доступной памяти
Исходный размер весов
15,26 GiB
Параметры × номинальные биты
Общая расчетная память
22,76 GiB
Общая память GPU
96 GiB
Память одного GPU
Память на каждом GPU
Память GPU 96 GiB
- Веса в памяти15,26 GiB67,04 %
- KV cache4,5 GiB19,77 %
- Накладные расходы среды выполнения3 GiB13,18 %
Бюджет памяти
| Часть | Память |
|---|---|
| Исходный размер весовПараметры × номинальные биты | 15,26 GiB |
| Веса в памяти | 15,26 GiB |
| Накладные расходы среды выполнения | 3 GiB |
| Модель с накладными расходами среды выполнения | 18,26 GiB |
| KV cache | 4,5 GiB |
| Всего | 22,76 GiB |
Место под KV cache
Движок мог бы держать KV cache на 496 206 токенов в памяти, которая остается после весов и накладных расходов. Этого хватит на 60,57 последовательности по 8 192 токена.
vLLM выводит это значение при запуске как емкость KV cache. Реальная емкость немного ниже: KV cache хранится блоками.
Число GPU
Минимум по памяти
1
TP 1
26,34 % доступной памяти, свободно 63,64 GiB на GPU
Наименьшее число GPU, память которых вмещает модель при любом делении. Такая схема может не поддерживаться vLLM.
Наименьшее допустимое деление
1
TP 1
26,34 % доступной памяти, свободно 63,64 GiB на GPU
Наименьшее число GPU в схеме, которую принимает vLLM: tensor parallel внутри сервера, стадии pipeline parallel за его пределами.
Рекомендуется
1
TP 1
26,34 % доступной памяти, свободно 63,64 GiB на GPU
Допустимое деление, которое к тому же сохраняет ваш запас.
Каждый GPU должен вместить свою долю, поэтому память нескольких GPU не образует единый пул. Больше восьми GPU обычно означают несколько серверов.
Память на GPU в зависимости от числа GPU
Каждый столбец показывает одно число GPU со схемой, которую для него предпочитают рекомендации vLLM. Линия показывает доступную память. Выберите столбец, чтобы применить это число.
- Доступно 86,4 GiB
- Граница запаса
- Веса в памяти
- KV cache
- Накладные расходы среды выполнения
- Звезда: рекомендуется
- Ромб: наименьшее допустимое деление
- Круг: минимум по памяти
- С обводкой: используется
- Бледный, пунктир: vLLM не запустится с такой схемой
›Показать таблицей
| GPU | Схема | На GPU | Помещается |
|---|---|---|---|
| 1 | TP 1 | 22,76 GiB | Помещается с запасомминимум по памяти, наименьшее допустимое деление, рекомендуется, используется |
| 2 | TP 2 | 12,88 GiB | Помещается с запасом |
| 3 | TP 3vLLM не запустится с такой схемой | 9,77 GiB | Помещается с запасом |
| 4 | TP 4 | 7,94 GiB | Помещается с запасом |
| 5 | TP 5vLLM не запустится с такой схемой | 7,18 GiB | Помещается с запасом |
| 6 | TP 3 × PP 2vLLM не запустится с такой схемой | 6,39 GiB | Помещается с запасом |
| 7 | TP 7vLLM не запустится с такой схемой | 6,3 GiB | Помещается с запасом |
| 8 | TP 8 | 5,47 GiB | Помещается с запасом |
| 9 | TP 1 × PP 9 | 6,1 GiB | Помещается с запасом |
| 10 | TP 2 × PP 5 | 5,27 GiB | Помещается с запасом |
| 11 | TP 1 × PP 11 | 5,61 GiB | Помещается с запасом |
| 12 | TP 4 × PP 3 | 4,74 GiB | Помещается с запасом |
| 13 | TP 1 × PP 13 | 5,13 GiB | Помещается с запасом |
| 14 | TP 2 × PP 7 | 4,79 GiB | Помещается с запасом |
| 15 | TP 1 × PP 15 | 5,13 GiB | Помещается с запасом |
| 16 | TP 8 × PP 2 | 4,23 GiB | Помещается с запасом |
Что помещается при других контекстах и числе одновременных запросов
Каждая ячейка показывает, сколько памяти нужно одному GPU при таком контексте и числе последовательностей, на заданных вами GPU и схеме. Выберите ячейку, чтобы применить ее.
Последовательности ↓Контекст, в токенах →
| 2K | 4K | 8K | 16K | 32K | 40Kмаксимум модели | |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 4 | ||||||
| 16 | ||||||
| 64 | ||||||
| 128 | ||||||
| 256 | ||||||
| 512 | ||||||
| 1024 |
- Галочка: помещается с запасом
- Треугольник: помещается, но без заданного запаса
- Крест: не помещается
- С обводкой: используется
Способы изменить конфигурацию
Запас на рост
Эта конфигурация помещается с запасом. Вот насколько ее можно нагрузить.
Контекст можно увеличить до 40 960 токенов при 4 последовательностях
Тогда: помещается с запасом, 47,17 % доступной памяти
Помещается до 52 одновременных последовательностей при 8 192 токена
Тогда: помещается с запасом, 88,84 % доступной памяти
Развернуть эту конфигурацию
Эти команды написаны для конфигурации, которую вы рассчитали выше, и для выбора, который вы делаете здесь, и меняются вместе с ними. Ничего не меняется за вас: выбор, который перестал работать, сохраняется и помечается, а рядом указаны способы исправления.
Сервер
Способ запуска
Движок
Сервер, который загружает модель.
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 свободны.
Что учесть
- Эндпоинт перестает отвечать.
Справка и источники
Расчет
- Ваши данные
- Официальная спецификация
- Расчетный результат
- Оценка
- Эвристика
- Допущение
›Веса
Исходный размер весов
Расчетный результатИсходный размер весов = параметры × номинальных бит на параметр ÷ 8
= Ваши данные: 8,19 млрд параметров × Официальная спецификация: 16 bit/param ÷ 8
= 15,26 GiB
Веса в памяти
Расчетный результатВеса в памяти = параметры × эффективных бит на параметр ÷ 8
= Ваши данные: 8,19 млрд параметров × Официальная спецификация: 16 bit/param ÷ 8
= 15,26 GiB
›KV cache
KV cache на токен
Расчетный результатKV cache на токен = 2 × слои с KV cache × головы KV × размерность головы × бит KV cache на значение ÷ 8
= 2 × Ваши данные: 36 × Ваши данные: 8 × Ваши данные: 128 × Ваши данные: 16 bit ÷ 8
= 144 KiB/token
KV cache на последовательность
Расчетный результатKV cache на последовательность = KV cache на токен × длина контекста
= Расчетный результат: 144 KiB/token × Ваши данные: 8 192 токена
= 1,13 GiB
KV cache
Расчетный результатKV cache = KV cache на последовательность × одновременные последовательности
= Расчетный результат: 1,13 GiB × Ваши данные: 4
= 4,5 GiB
›Память на GPU и в сумме
Нужная память на GPU
ОценкаНужная память на GPU = Веса в памяти + KV cache + Накладные расходы среды выполнения
= Расчетный результат: 15,26 GiB + Расчетный результат: 4,5 GiB + Эвристика: 3 GiB
= 22,76 GiB
Модель с накладными расходами среды выполнения
ОценкаМодель с накладными расходами среды выполнения = Веса в памяти + Накладные расходы среды выполнения
= Расчетный результат: 15,26 GiB + Эвристика: 3 GiB
= 18,26 GiB
›Помещается ли на GPU
Доступная память на GPU
ОценкаДоступная память на GPU = Память GPU × доля доступной памяти ÷ 100
= Официальная спецификация: 96 GiB × Допущение: 90 % ÷ 100
= 86,4 GiB
Комфортный предел на GPU
ОценкаКомфортный предел на GPU = Доступная память на GPU × (100 − требуемый запас) ÷ 100
= Оценка: 86,4 GiB × (100 − Допущение: 10 %) ÷ 100
= 77,76 GiB
Оставшаяся память на GPU
ОценкаОставшаяся память на GPU = Доступная память на GPU − Нужная память на GPU
= Оценка: 86,4 GiB − Оценка: 22,76 GiB
= 63,64 GiB
Загрузка доступной памяти
ОценкаЗагрузка доступной памяти = Нужная память на GPU ÷ Доступная память на GPU × 100
= Оценка: 22,76 GiB ÷ Оценка: 86,4 GiB × 100
= 26,34 %
›Место под KV cache
Память, оставшаяся под KV cache, на GPU
ОценкаПамять, оставшаяся под KV cache, на GPU = max(0, Доступная память на GPU − Веса в памяти − Накладные расходы среды выполнения)
= max(0, Оценка: 86,4 GiB − Расчетный результат: 15,26 GiB − Эвристика: 3 GiB)
= 68,14 GiB
Емкость KV cache
ОценкаЕмкость KV cache = floor(Память, оставшаяся под KV cache, на GPU ÷ KV cache на токен)
= floor(Оценка: 68,14 GiB ÷ Расчетный результат: 144 KiB/token)
= 496 206 токенов
Сколько последовательностей такого контекста помещается
ОценкаСколько последовательностей такого контекста помещается = Емкость KV cache ÷ длина контекста
= Оценка: 496 206 токенов ÷ Ваши данные: 8 192 токена
= 60,57 ×
›При 1 GPU минимум по памяти, наименьшее допустимое деление, рекомендуется
Нужная память на GPU
ОценкаНужная память на GPU = Веса в памяти + KV cache + Накладные расходы среды выполнения
= Расчетный результат: 15,26 GiB + Расчетный результат: 4,5 GiB + Эвристика: 3 GiB
= 22,76 GiB
Доступная память на GPU
ОценкаДоступная память на GPU = Память GPU × доля доступной памяти ÷ 100
= Официальная спецификация: 96 GiB × Допущение: 90 % ÷ 100
= 86,4 GiB
Комфортный предел на GPU
ОценкаКомфортный предел на GPU = Доступная память на GPU × (100 − требуемый запас) ÷ 100
= Оценка: 86,4 GiB × (100 − Допущение: 10 %) ÷ 100
= 77,76 GiB
Оставшаяся память на GPU
ОценкаОставшаяся память на GPU = Доступная память на GPU − Нужная память на GPU
= Оценка: 86,4 GiB − Оценка: 22,76 GiB
= 63,64 GiB
Загрузка доступной памяти
ОценкаЗагрузка доступной памяти = Нужная память на GPU ÷ Доступная память на GPU × 100
= Оценка: 22,76 GiB ÷ Оценка: 86,4 GiB × 100
= 26,34 %
Допущения
- Допущение: KV cache хранится блоками (в vLLM по 16 токенов), поэтому реальная емкость немного ниже показанного числа.
- Эвристика: Накладные расходы среды выполнения составляют 3 GiB на GPU: контекст CUDA, активации и графы. Это эвристика: vLLM измерил 2.57 GiB для модели 8B, значение зависит от движка и настроек. Изменить
- Допущение: Модели отдается только 90 % памяти GPU. Остальное резервируют движки инференса: в vLLM по умолчанию используется 92% (документация версии 0.32). Изменить
- Допущение: Модель помещается комфортно, если свободной остается не менее 10 % доступной памяти. Изменить
- Допущение: NVIDIA указывает память GPU в GB, а физически установлено столько же GiB: у H100 80 GB есть 80 GiB, а nvidia-smi показывает 79.6. Несколько процентов, которые забирают ECC и драйвер, покрываются долей доступной памяти.
- Допущение: Точность KV cache задается отдельно от точности весов. Квантизация весов не уменьшает ни KV cache, ни накладные расходы. Изменить
- Допущение: Предполагается, что каждая последовательность одновременно использует весь контекст: это худший случай. Реальные запросы обычно короче. Изменить
- Допущение: Предполагается, что несколько GPU делят модель через tensor parallel, как в vLLM: веса и головы KV делятся, а накладные расходы среды выполнения несет каждый GPU.
Помещается с запасом22,76 GiB / 86,4 GiBнужно / доступно
Почему это важно
Число на карточке модели относится только к весам. Работающая модель хранит еще KV cache, который растет вместе с контекстом и числом одновременных запросов, плюс накладные расходы среды выполнения, и каждый GPU должен вместить свою долю: память нескольких GPU не образует единый пул. Самая частая ошибка при оценке размера: считать только по весам.
Как читать результат
«Помещается с запасом» значит, что на каждом GPU остается свободным заданный вами запас. «Помещается в теории» значит, что модель укладывается в доступную память, но запас меньше заданного. «Не помещается» значит, что на каком-то GPU память закончится. Бюджет памяти показывает каждую часть для всех GPU и для одного. Число GPU считается по рекомендациям vLLM: tensor parallel внутри сервера, стадии pipeline parallel за его пределами. Схема развертывания позволяет разделить GPU иначе и посмотреть, что вмещает каждый вариант.
Локальный ИИ и суверенитет
Запуск модели на оборудовании, которое вы контролируете, служит лишь одним из факторов при решении о суверенитете. Сам по себе он не делает развертывание суверенным и не обеспечивает соответствие GDPR или EU AI Act.
Эти инструменты появились в рамках воркшопа ИИ без облака.