# vLLM: как задать долю памяти GPU при запуске модели

Источник: https://modelium.tech/zhurnal/vllm-gpu-memory-utilization/

Параметр `--gpu-memory-utilization` задаёт vLLM долю памяти видеокарты для одного экземпляра сервера; в v0.32.0 по умолчанию это 0.92. Можно попробовать, например, 0.8 при запуске и затем проверить лог, занятость GPU и реальный ответ модели. Это не жёсткий предел фактического расхода и не способ заставить любую модель поместиться в память.

Если vLLM не стартует рядом с другой программой на видеокарте, параметр `--gpu-memory-utilization` помогает **задать долю памяти для одного экземпляра vLLM**. Это не ограничитель, который заставит любую модель уместиться в GPU: при запуске сервер отдельно загружает веса, оценивает служебную память и выделяет место под KV-кеш — память для уже обработанного текста. [s1](#src-s1) [s4](#src-s4)

**Статус на 31 октября 2026 года:** ниже инженерная инструкция по закреплённым исходникам vLLM v0.32.0. Редакция не запускала модель на GPU и не измеряла экономию памяти. Нужен Linux-компьютер с установленным vLLM и совместимой NVIDIA CUDA-видеокартой; в документации этой версии для NVIDIA указан compute capability от 7.5, но минимальный объём видеопамяти **для вашего сочетания модели и настроек не установлен этой цифрой**. Не применяйте эти шаги к обычному Windows без WSL и к Mac как готовый рецепт. [s5](#src-s5)

## Что означает число и что подготовить?

В v0.32.0 значение по умолчанию — `0.92`, а допустимая доля больше нуля и не больше единицы. Например, `0.8` — учебное значение, а не универсальная рекомендация или гарантия, что останется ровно 20% свободной памяти. Параметр относится к текущему экземпляру: запущенные рядом программы и другие экземпляры vLLM не координируют свои лимиты автоматически. Если вы задали `--kv-cache-memory-bytes`, этот ручной размер KV-кеша имеет приоритет и доля перестаёт управлять его расчётом. [s1](#src-s1) [s4](#src-s4)

Перед запуском убедитесь, что ваша установленная версия vLLM понимает этот флаг, а GPU видна через `nvidia-smi`. Для примера возьмём `Qwen/Qwen2.5-1.5B-Instruct` из официального Quickstart vLLM; это **не** обещание, что модель поместится на любой видеокарте. Её веса потребуется предварительно получить из Hugging Face, если они ещё не кешированы; во время такой загрузки нужен интернет. Оцените свободное место для файлов и совместимость своей видеокарты отдельно. [s3](#src-s3) [s5](#src-s5) [s6](#src-s6) [s7](#src-s7)

## Как задать долю и увидеть результат?

Откройте терминал Linux и запустите `vllm serve Qwen/Qwen2.5-1.5B-Instruct --host 127.0.0.1 --gpu-memory-utilization 0.8`. Адрес `127.0.0.1` оставляет учебный сервер доступным на этом компьютере, не публикуя его в локальной сети. Если загрузка завершилась, сервер должен остаться запущенным; в его журнале найдите сообщение `Available KV cache memory` и проверьте, не появилось ли ошибки выделения памяти. Если он остановился с ошибкой, это не успешная настройка. [s1](#src-s1) [s2](#src-s2) [s3](#src-s3) [s4](#src-s4)

Оставив сервер открытым, в **другом** терминале выполните `curl http://127.0.0.1:8000/v1/models`: в ответе ищите идентификатор `Qwen/Qwen2.5-1.5B-Instruct`. Это проверяет список моделей, но **не** ответ модели. Затем отправьте учебный запрос: `curl -sS http://127.0.0.1:8000/v1/chat/completions -H 'Content-Type: application/json' -d '{"model":"Qwen/Qwen2.5-1.5B-Instruct","messages":[{"role":"user","content":"Напиши одно слово: тест"}],"max_tokens":32}'`. В JSON-ответе проверьте наличие `choices` и текста ответа; точное слово модель может не повторить. Доступность API и полезность ответа — разные проверки. [s3](#src-s3)

Во время работы вызовите `nvidia-smi` ещё раз и сравните занятую память GPU с состоянием **до** запуска. Это показывает общую фактическую занятость GPU на вашей машине, включая другие процессы; одно число не измеряет отдельно расход vLLM и не доказывает жёсткий потолок `0.8`. После проверки остановите учебный сервер клавишами Ctrl+C в первом терминале и снова посмотрите `nvidia-smi`. [s1](#src-s1) [s4](#src-s4) [s7](#src-s7)

## Если запуск не удался

Если в логе нет доступного KV-кеша либо возникает ошибка памяти, сначала проверьте, есть ли параллельные GPU-процессы, верно ли выбрана модель и не задан ли отдельно `--kv-cache-memory-bytes`. Меньшее число может оставить меньше места под KV-кеш и тоже помешать запуску; большее может конфликтовать с другими процессами. Не увеличивайте долю вслепую и не считайте размер файла весов минимальным объёмом VRAM. Для следующего шага откройте [оценку памяти для конкретной модели](/zhurnal/videokarta-dlya-llm/). [s1](#src-s1) [s4](#src-s4) [s7](#src-s7)

## Источники

1. [vLLM v0.32.0 — CacheConfig: gpu_memory_utilization и kv_cache_memory_bytes](https://github.com/vllm-project/vllm/blob/5df63a7203cdb9328d824a27b682e77c7b9928be/vllm/config/cache.py#L102-L110) — получено 2026-10-31
2. [vLLM v0.32.0 — аргументы serve](https://github.com/vllm-project/vllm/blob/5df63a7203cdb9328d824a27b682e77c7b9928be/vllm/engine/arg_utils.py#L1350-L1364) — получено 2026-10-31
3. [vLLM v0.32.0 — Quickstart с Qwen2.5-1.5B-Instruct и локальным API](https://github.com/vllm-project/vllm/blob/5df63a7203cdb9328d824a27b682e77c7b9928be/docs/getting_started/quickstart.md#L205-L232) — получено 2026-10-31
4. [vLLM v0.32.0 — GPU Worker: профилирование памяти и KV-кеш](https://github.com/vllm-project/vllm/blob/5df63a7203cdb9328d824a27b682e77c7b9928be/vllm/v1/worker/gpu_worker.py#L635-L762) — получено 2026-10-31
5. [vLLM v0.32.0 — требования к GPU и Linux](https://github.com/vllm-project/vllm/blob/5df63a7203cdb9328d824a27b682e77c7b9928be/docs/getting_started/installation/gpu.md) — получено 2026-10-31
6. [Qwen2.5-1.5B-Instruct — карточка конкретных весов](https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct/blob/989aa7980e4cf806f80c7fef2b1adb7bc71aa306/README.md) — получено 2026-10-31
7. [NVIDIA — руководство nvidia-smi](https://docs.nvidia.com/deploy/nvidia-smi/index.html) — получено 2026-10-31
