vLLM: как задать долю памяти GPU при запуске модели
На странице · 3 разделов
Параметр `--gpu-memory-utilization` задаёт vLLM долю памяти видеокарты для одного экземпляра сервера; в v0.32.0 по умолчанию это 0.92. Можно попробовать, например, 0.8 при запуске и затем проверить лог, занятость GPU и реальный ответ модели. Это не жёсткий предел фактического расхода и не способ заставить любую модель поместиться в память.
Если vLLM не стартует рядом с другой программой на видеокарте, параметр --gpu-memory-utilization помогает задать долю памяти для одного экземпляра vLLM. Это не ограничитель, который заставит любую модель уместиться в GPU: при запуске сервер отдельно загружает веса, оценивает служебную память и выделяет место под KV-кеш — память для уже обработанного текста. s1 s4
Статус на 31 октября 2026 года: ниже инженерная инструкция по закреплённым исходникам vLLM v0.32.0. Редакция не запускала модель на GPU и не измеряла экономию памяти. Нужен Linux-компьютер с установленным vLLM и совместимой NVIDIA CUDA-видеокартой; в документации этой версии для NVIDIA указан compute capability от 7.5, но минимальный объём видеопамяти для вашего сочетания модели и настроек не установлен этой цифрой. Не применяйте эти шаги к обычному Windows без WSL и к Mac как готовый рецепт. s5
Что означает число и что подготовить?
В v0.32.0 значение по умолчанию — 0.92, а допустимая доля больше нуля и не больше единицы. Например, 0.8 — учебное значение, а не универсальная рекомендация или гарантия, что останется ровно 20% свободной памяти. Параметр относится к текущему экземпляру: запущенные рядом программы и другие экземпляры vLLM не координируют свои лимиты автоматически. Если вы задали --kv-cache-memory-bytes, этот ручной размер KV-кеша имеет приоритет и доля перестаёт управлять его расчётом. s1 s4
Перед запуском убедитесь, что ваша установленная версия vLLM понимает этот флаг, а GPU видна через nvidia-smi. Для примера возьмём Qwen/Qwen2.5-1.5B-Instruct из официального Quickstart vLLM; это не обещание, что модель поместится на любой видеокарте. Её веса потребуется предварительно получить из Hugging Face, если они ещё не кешированы; во время такой загрузки нужен интернет. Оцените свободное место для файлов и совместимость своей видеокарты отдельно. s3 s5 s6 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 s2 s3 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
Во время работы вызовите nvidia-smi ещё раз и сравните занятую память GPU с состоянием до запуска. Это показывает общую фактическую занятость GPU на вашей машине, включая другие процессы; одно число не измеряет отдельно расход vLLM и не доказывает жёсткий потолок 0.8. После проверки остановите учебный сервер клавишами Ctrl+C в первом терминале и снова посмотрите nvidia-smi. s1 s4 s7
Если запуск не удался
Если в логе нет доступного KV-кеша либо возникает ошибка памяти, сначала проверьте, есть ли параллельные GPU-процессы, верно ли выбрана модель и не задан ли отдельно --kv-cache-memory-bytes. Меньшее число может оставить меньше места под KV-кеш и тоже помешать запуску; большее может конфликтовать с другими процессами. Не увеличивайте долю вслепую и не считайте размер файла весов минимальным объёмом VRAM. Для следующего шага откройте оценку памяти для конкретной модели. s1 s4 s7
Источники
- vLLM v0.32.0 — CacheConfig: gpu_memory_utilization и kv_cache_memory_bytes — revision 5df63a7203cdb9328d824a27b682e77c7b9928be; Строки 102–110 и 257–264; сохранённый файл и SHA в research/raw/2026-10-31/seo/vllm-gpu-memory-utilization/.. Получено 31.10.2026.
- vLLM v0.32.0 — аргументы serve — revision 5df63a7203cdb9328d824a27b682e77c7b9928be; Оба флага памяти передаются CLI-парсеру; источник закреплён.. Получено 31.10.2026.
- vLLM v0.32.0 — Quickstart с Qwen2.5-1.5B-Instruct и локальным API — revision 5df63a7203cdb9328d824a27b682e77c7b9928be; Строки 205–232 и 275–290: модель, serve, /v1/models и /v1/chat/completions.. Получено 31.10.2026.
- vLLM v0.32.0 — GPU Worker: профилирование памяти и KV-кеш — revision 5df63a7203cdb9328d824a27b682e77c7b9928be; Строки 649–674 — приоритет ручного KV; 676–743 — профилирование и расчёт; 759–762 — запись доступного KV в лог.. Получено 31.10.2026.
- vLLM v0.32.0 — требования к GPU и Linux — revision 5df63a7203cdb9328d824a27b682e77c7b9928be; Требования Linux и Python; NVIDIA CUDA compute capability 7.5+ — в подключённом gpu.cuda.inc.md той же ревизии.. Получено 31.10.2026.
- Qwen2.5-1.5B-Instruct — карточка конкретных весов — revision 989aa7980e4cf806f80c7fef2b1adb7bc71aa306; Пример модели из vLLM Quickstart; карточка указывает Apache-2.0 и русский язык, но это заявление автора, не тест Modelium.. Получено 31.10.2026.
- NVIDIA — руководство nvidia-smi — Официальное руководство по команде мониторинга; сохранён HTML-снимок с SHA.. Получено 31.10.2026.