# Настройка vLLM на сервере: быстрый инференс LLM

> Настройка vLLM на GPU-сервере: требования к видеокарте, установка, запуск OpenAI-совместимого API и решение ошибок нехватки памяти.

## Что такое vLLM и зачем он нужен на сервере

vLLM — библиотека для быстрого инференса больших языковых моделей на GPU. Она использует технологию PagedAttention, которая экономит видеопамять и увеличивает пропускную способность в несколько раз по сравнению с обычным запуском через Transformers. vLLM поднимает OpenAI-совместимый HTTP-сервер, поэтому клиенты для ChatGPT API переключаются на свою модель без переписывания кода.

Библиотеку выбирают, когда сервер обслуживает много параллельных запросов: чат-бот на сайте, внутренний ассистент компании или API для мобильного приложения. Для единичных экспериментов на CPU подходит llama.cpp, а vLLM раскрывает возможности именно на GPU-сервере с одной или несколькими видеокартами.

## Требования к серверу для запуска vLLM

Перед установкой проверьте параметры сервера. vLLM требует NVIDIA GPU с поддержкой CUDA и достаточным объёмом видеопамяти — расчёт объёма зависит от размера модели и квантования.

| Параметр | Минимум | Рекомендуется |
| --- | --- | --- |
| GPU | NVIDIA, 8 ГБ VRAM | NVIDIA, 24 ГБ VRAM |
| Драйвер NVIDIA | 525 | 550 |
| CUDA | 12.1 | 12.4 |
| Python | 3.10 | 3.11 |
| Оперативная память | 16 ГБ | 32 ГБ |

Точный объём видеопамяти для конкретной модели стоит посчитать заранее — см. [расчёт VRAM для модели](https://www.zevshost.net/ru/kb/skolko-vram-nuzhno-modeli/).

## Установка vLLM на VDS

Поставьте драйвер NVIDIA и CUDA Toolkit, затем создайте виртуальное окружение Python и установите пакет через pip.

```
sudo apt update
sudo apt install -y nvidia-driver-550 python3.11-venv
python3.11 -m venv /opt/vllm-env
source /opt/vllm-env/bin/activate
pip install --upgrade pip
pip install vllm
```

Проверьте, что GPU виден системе, командой `nvidia-smi`. Если карта не отображается, перезагрузите сервер и проверьте, что модуль `nouveau` отключён в конфигурации ядра.

## Как запустить OpenAI-совместимый сервер

vLLM поставляется с готовым сервером, который повторяет формат запросов OpenAI API. Запустите его одной командой, указав модель с Hugging Face.

```
python -m vllm.entrypoints.openai.api_server --model mistralai/Mistral-7B-Instruct-v0.2 --host 0.0.0.0 --port 8000 --gpu-memory-utilization 0.9
```

После запуска сервер принимает запросы на порту 8000 по пути `/v1/chat/completions` — формат совпадает с [OpenAI API](https://www.zevshost.net/ru/kb/openai-api-nastroika/), поэтому библиотеки openai для Python и JavaScript подключаются без изменений: достаточно поменять base\_url.

## Чем ускорить работу и сэкономить память

Скорость и объём памяти регулируются параметрами запуска. Основные приёмы:

- Квантование модели в AWQ или GPTQ снижает потребление VRAM почти вдвое без заметной потери качества.
- Параметр `--max-model-len` ограничивает длину контекста и освобождает память под очередь запросов.
- Continuous batching в vLLM объединяет параллельные запросы автоматически, отдельная настройка не требуется.
- Несколько видеокарт подключаются параметром `--tensor-parallel-size`, что позволяет запускать модели крупнее одной GPU.

Когда видеопамяти не хватает даже с квантованием, вариант — запуск на процессоре через [llama.cpp и формат GGUF](https://www.zevshost.net/ru/kb/llama-cpp-kvantizaciya-gguf/): медленнее, зато без GPU.

## Что делать при ошибке нехватки памяти

Ошибка `CUDA out of memory` — частая проблема при первом запуске. Порядок действий:

- Уменьшите значение `--gpu-memory-utilization` до 0.8 и перезапустите сервер.
- Сократите `--max-model-len`, если полный контекст модели избыточен для задачи.
- Возьмите квантованную версию модели вместо полной точности fp16.
- Проверьте зависшие процессы на GPU командой `nvidia-smi` и завершите их через `kill`.
- Если модель всё равно не помещается, пересчитайте требуемый объём и выберите GPU с большим запасом VRAM.

После настройки отправьте тестовый запрос через curl и сравните скорость ответа с обычным запуском модели. Базовая установка vLLM на этом завершена — дальше сервер подключают к веб-интерфейсу или встраивают в продукт.

---

Источник: https://www.zevshost.net/ru/kb/vllm-nastroika-servera/
